XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] What does an empty element denote?

Roger, must we not stick with the data model? Element content is expressed by child nodes (or information items, if you prefer to use the information set model, rather than the XDM); empty content means zero child nodes. The fact that XSD allows several alternatives expressing this constraint (which even imply different possibilities of reusing, e.g., extending, the given type) do not mean that the constraint itself "zero child nodes" can be qualified in any way.

Greetings,
Hans-Jürgen



"Costello, Roger L." <costello@mitre.org> schrieb am 14:48 Dienstag, 2.Juni 2015:


Hi Folks,
 
This XML Schema declares an element with a content model that is a simple type:
 
    <xs:element name="Test1">
       
<xs:simpleType>
           
<xs:restriction base="xs:int">
                
<xs:minInclusive value="0" />
               
<xs:maxInclusive value="9" />
           
</xs:restriction>
       
</xs:simpleType>
   
</xs:element>
 
In an XML instance document, the value of <Test1> can be 0, 1, …, 9.
 
The content model of Test1 denotes this set: {0, 1, …, 9}
 
Now consider this XML Schema, it declares an element with a content model that is a complex type with an empty sequence:
 
    <xs:element name="Test2">
       
<xs:complexType>
           
<xs:sequence/>
       
</xs:complexType>
   
</xs:element>
 
Lastly, consider this XML Schema, it declares an element with a content model that is a complex type that is an empty choice:
    
    
<xs:element name="Test3">
       
<xs:complexType>
           
<xs:choice/>
       
</xs:complexType>
   
</xs:element>
 
Michael Sperberg-McQueen wrote an article [1] which says that a content model which is an empty sequence denotes a set with an empty string, { ε }. So the value of <Test2> must be a string of length zero. Here’s how a string of length zero is physically expressed in an XML instance document:

    
<Test2></Test2>
 
MSM says that a content model that is an empty choice denotes an empty set, {}.  That puzzled me, so I created an XML instance document containing <Test3>:

   
<Test3></Test3>
 
and validated it against the schema. It validated!
 
Okay, I’m confused. In an XML instance document, does an empty element denote that the element’s value is ε (the empty string, i.e., a string of length zero), or does an empty element denote that the element has no value, i.e., the set of allowable values is the empty set?
 
Can you give a concrete example that illustrates how Test2’s content is different than Test3’s content?
 
/Roger
 
[1] http://conferences.idealliance.org/extreme/html/2005/SperbergMcQueen01/EML2005SperbergMcQueen01.html#id2624489
 
 




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS