[osis-core] empty tag / milestone proposal

Troy A. Griffitts osis-core@bibletechnologieswg.org
Wed, 19 Jun 2002 11:04:58 -0700


As I understand it, <head>text</head> and <head/>text<head/> are NOT 
identical.

In an XML DOM tree, you have 1 head node with a child text node, in the 
first case.  The second cases has 3 nodes (2 head and 1 text) all at the 
same level.

The fact that XML ALLOWS this doesn't mean that it is part of the OSIS 
specification.

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>
>>
>