[osis-core] empty tag / milestone proposal

Harry Plantinga osis-core@bibletechnologieswg.org
Wed, 19 Jun 2002 14:27:30 -0400


I can think of two reasons why such usage would be less than
idea. (Of course, all solutions to the overlapping hierarchies
problem are less than ideal.)

1. In <verse verseID="jn.1.1" mStart="jn.1.1"/>In the beginning...<verse
mEnd="jn.1.1"/>, the verse is not a container as far as CSS, XSLT,
etc. are concerned.  Want to render in HTML and give a style to the
whole verse?  Can't do it, unless you put some container around the verse.

To process a verse like this, you might have to parse the whole document,
turning on processing at the opening <verse/> and turning off processing
at the closing <verse/>. That means every access to such an element
means traversing the whole document, or some large part of it.

2. Worse, what is between the <verse/> tags may not be well-formed xml.
E.g.

<p>...<verse verseID="jn.1.1" mStart="jn.1.1"/>In the </p>beginning...<verse
mEnd="jn.1.1"/>

The verse itself is

In the </p> beginning...

What are we to make of that? what elements might it be intended that
the "In the" belongs in? Do we have to search backwards to see where
the <p> started, what its attributes were, etc?

One way to process such things that I can think of is to process the
smallest container containing both milestones and jump to/highlight
the verse in question. (Hence the imporance of having <div> containers.)

However, the other solution also has problems. If you split containers
into pieces at overlapping hierarchy boundaries, you get unreasonable
growth in the number of pieces you need when you have multiple overlapping
hierarchies.

I don't know how to solve these problems, but I would suggest that the
linked containers would be easier if there is little overlap and the
milestone approach may be necessary (though a pain in the posterior)
if there is lots of overlap.

-Harry

-----Original Message-----
From: owner-osis-core@bibletechnologieswg.org
[mailto:owner-osis-core@bibletechnologieswg.org]On Behalf Of Troy A.
Griffitts
Sent: Wednesday, June 19, 2002 2:05 PM
To: osis-core@bibletechnologieswg.org
Subject: Re: [osis-core] empty tag / milestone proposal


I am proposing that, in OSIS, the following 2 structures be
interchangable and identical:

<verse verseID="jn.1.1">In the beginning...</verse>
<verse verseID="jn.1.1" mStart="jn.1.1"/>In the beginning...<verse
mEnd="jn.1.1"/>


mStart and mEnd should NOT be global attributes.  <div>, for example,
should NOT allow this type of behaviour.

Please tell me why this sucks.  I'm perfectly ok with someone explaining
why this sucks and finally implementing my problem passages some other
way, but I really have been frustrated, and frozen from completing ABS
work because this issue has not been resolved.  Can we get more than 2
of us on the phone or in person to deal with these issues that have
lagged for more than a month?

	-Troy.







Patrick Durusau wrote:
> (Got a delayed start this morning getting house guests on the road.
> Expect the next version just after NOON East Coast time.)
>
> Troy,
>
> XML treats <head></head> and <head/> as syntactically equivalent. Unless
> an element has required content (in other words, elements that must
> occur)  I think you already have milestones. (Am I missing something
here?)
>
> Since <div> is mixed content, you could write all of the elements that
> may occur in <div> as empty elements, or so I am reading the XML spec.
>
> I may be missing the purpose of the patch. Is it to add the mstart,
> mstop attributes? Is so, can I add them to global?
>
> I would like to leave the generic milestone for cases where people want
> to use standard containers and yet also do some milestone markup.
>
> Patrick
>
> Troy A. Griffitts wrote:
>
>> Attached is a proposal to allow some elements to be used as empty
>> milestones optionally.  Please consider applying this patch.
>>
>> I would also suggest removing the generic milestone element, but this
>> patch does not do this.
>>
>>
>> ------------------------------------------------------------------------
>>
>> --- osisCore_1test12.xsd.orig    Tue Jun 18 19:45:00 2002
>> +++ osisCore_1test12.xsd    Tue Jun 18 20:13:05 2002
>> @@ -308,6 +308,7 @@
>>                            <xs:element ref="w"/>
>>         </xs:choice>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -765,6 +766,7 @@
>>                <xs:element ref="w"/>
>>         </xs:choice>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -798,6 +800,7 @@
>>         <xs:attribute name="next" type="xs:string" use="optional"/>
>>         <xs:attribute name="prev" type="xs:string" use="optional"/>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -895,6 +898,7 @@
>>         <xs:attribute name="next" type="xs:string" use="optional"/>
>>         <xs:attribute name="prev" type="xs:string" use="optional"/>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -976,6 +980,7 @@
>>         <xs:attribute name="prev" type="xs:string" use="optional"/>
>>             <xs:attribute name="who" type="xs:string" use="optional"/>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -1027,6 +1032,7 @@
>>         </xs:choice>
>>         <xs:attribute name="changeType" type="changeType"
>> use="optional"/>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -1059,6 +1065,7 @@
>>         <xs:attribute name="next" type="xs:string" use="optional"/>
>>         <xs:attribute name="prev" type="xs:string" use="optional"/>
>>         <xs:attributeGroup ref="globalAttributes"/>
>> +        <xs:attributeGroup ref="milestoneAttributes"/>
>>        </xs:complexType>
>> </xs:element>
>>
>> @@ -1117,6 +1124,11 @@
>>     <xs:attribute name="outCite" type="osisRef" use="optional"/>
>> </xs:attributeGroup>
>>
>> +<!-- allow some container elements to be left empty and used as
>> milestones. eg. either <verse verseID="jn.1.1">In the
>> beginning...</verse> OR <verse verseID="jn.1.1" mStart="jn.1.1"/>In
>> the beginning...<verse mEnd="jn.1.1"/> -->
>> +<xs:attributeGroup name="milestoneAttributes">
>> +    <xs:attribute name="mStart" type="xs:string" use="optional"/>
>> +    <xs:attribute name="mEnd" type="xs:string" use="optional"/>
>> +</xs:attributeGroup>
>>
>> <!-- simple types -->
>>
>> @@ -1369,4 +1381,4 @@
>>     <xs:union memberTypes="roleOSIS attributeExtension"/>
>> </xs:simpleType>
>>
>> -</xs:schema>
>> \ No newline at end of file
>> +</xs:schema>
>>
>