[
Lists Home |
Date Index |
Thread Index
]
- To: XML Developers List <xml-dev@lists.xml.org>
- Subject: xml schema question: subst group example in Primer?
- From: Burak Emir <Burak.Emir@epfl.ch>
- Date: Thu, 02 Dec 2004 14:28:22 +0100
- Organization: EPFL
- User-agent: Mozilla Thunderbird 0.8 (X11/20040913)
Hello, xml-dev,
I try it here because I have not received an answer on xmlschema-dev.
Could someone give me an answer on this please?
I always thought there was nothing difficult substitution, but stumbling
again over this example in the primer confused me.
The instances <items>...</items> with the *two* comments will surely
never validate?? Because its *two* comments, not one?
Isnt the default maxOccurs="1"? Does the example try to say "you can use
either one of these" ?
Thanks in advance,
Burak
=======
Hello all,
The XML Schema Part 0, Section 4.6 "Substitution groups" reads
=======
Example
Declaring Elements Substitutable for comment
<element name="shipComment" type="string"
substitutionGroup="ipo:comment"/>
<element name="customerComment" type="string"
substitutionGroup="ipo:comment"/>
When these declarations are added to the international purchase order
schema, |shipComment| and |customerComment| can be substituted for
|comment| in the instance document, for example:
Example
Snippet of ipo.xml <http://www.w3.org/TR/xmlschema-0/#ipo.xml> with
Substituted Elements
....
<items>
<item partNum="833-AA">
<productName>Lapis necklace</productName>
<quantity>1</quantity>
<USPrice>99.95</USPrice>
<ipo:shipComment>
Use gold wrap if possible
</ipo:shipComment>
<ipo:customerComment>
Want this for the holidays!
</ipo:customerComment>
<shipDate>1999-12-05</shipDate>
</item>
</items>
....
=====
But if you check ipo.xsd elsewhere, you find:
...
<complexType name="Items">
<sequence>
<element name="item" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="productName" type="string"/>
<element name="quantity">
<simpleType>
<restriction base="positiveInteger">
<maxExclusive value="100"/>
</restriction>
</simpleType>
</element>
<element name="USPrice" type="decimal"/>
<element ref="ipo:comment" minOccurs="0"/> <!-- HERE -->
<element name="shipDate" type="date" minOccurs="0"/>
</sequence>
<attribute name="partNum" type="ipo:SKU" use="required"/>
</complexType>
</element>
</sequence>
</complexType>
...
====
Why would it be allowed to include a customerComment AND a shipComment
?!? My thinking goes, there should be up to one.
Have I overlooked something?
Thanks,
Burak Emir
http://lamp.epfl.ch/~buraq
|