> no but a fun variation , more sequences valid than you specify, but all you
> specify are valid - using XSV.
>
>
> <xs:complexType>
> <xs:choice>
> <xs:sequence>
> <xs:element name="A" type="xs:string" />
> <xs:element name="B" type="xs:string" minOccurs="0" />
> <xs:element name="C" type="xs:string" minOccurs="0" />
> </xs:sequence>
> <xs:sequence>
> <xs:element name="B" type="xs:string" />
> <xs:element name="A" type="xs:string" minOccurs="0" />
> <xs:element name="C" type="xs:string" minOccurs="0" />
> </xs:sequence>
> <xs:sequence>
> <xs:element name="C" type="xs:string" />
> <xs:element name="A" type="xs:string" minOccurs="0" />
> <xs:element name="B" type="xs:string" minOccurs="0" />
>
> </xs:sequence>
> </xs:choice>
> </xs:complexType>
>
> the limits of of XML Schema could make an amusing parlor game.
>
> Cheers,
> Bryan Rasmussen
>
>
> On Thu, Aug 14, 2008 at 2:02 PM, Costello, Roger L. <
costello@mitre.org>
> wrote:
>>
>> Hi Folks,
>>
>> Consider this problem: you have 3 elements - A, B, C - and you need at
>> least one of them to be present in your XML instance document.
>>
>> Here are the valid instances:
>>
>> <A>...</A>
>> <B>...</B>
>> <C>...</C>
>>
>> or
>>
>> <A>...</A>
>> <B>...</B>
>>
>> or
>>
>> <A>...</A>
>> <C>...</C>
>>
>> or
>>
>> <B>...</B>
>> <C>...</C>
>>
>> or
>>
>> <A>...</A>
>>
>> or
>>
>> <B>...</B>
>>
>> or
>>
>> <C>...</C>
>>
>> Question: will this XML Schema definition work:
>>
>> <complexType name="ThreeElements">
>> <choice>
>> <sequence>
>> <element name="A" type="string" />
>> <element name="B" type="string" minOccurs="0" />
>> <element name="C" type="string" minOccurs="0" />
>> </sequence>
>> <sequence>
>> <element name="A" type="string" minOccurs="0" />
>> <element name="B" type="string" />
>> <element name="C" type="string" minOccurs="0" />
>> </sequence>
>> <sequence>
>> <element name="A" type="string" minOccurs="0" />
>> <element name="B" type="string" minOccurs="0" />
>> <element name="C" type="string" />
>> </sequence>
>> </choice>
>> </complexType>
>>
>> Notice that in the first choice A is required and B, C are optional.
>> In the second choice B is required and A, C are optional. In the third
>> choice C is required and A,B are optional.
>>
>> Scroll down for the answer ...
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Answer:
>>
>> Let's play schema validator: You are parsing the instance document and
>> encounter this element:
>>
>> <A>...</A>
>>
>> How shall you validate it? In the above schema there are three
>> declarations for the <A> element. The only way for you to know which
>> declaration to use is to "look ahead" in the instance document. For
>> example, if there is no <B> element then you can eliminate the second
>> choice.
>>
>> Requiring an XML Schema validator to "look ahead" is not allowed (it is
>> allowed with Relax NG).
>>
>> The technical term for the above content model is: non-deterministic
>> content model. XML Schema 1.0 does not allow non-deterministic content
>> models.
>>
>> Thus, the above complexType definition is not valid.
>>
>> /Roger
>>
>> _______________________________________________________________________
>>
>> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
>> to support XML implementation and development. To minimize
>> spam in the archives, you must subscribe before posting.
>>
>> [Un]Subscribe/change address:
http://www.oasis-open.org/mlmanage/
>> Or unsubscribe:
xml-dev-unsubscribe@lists.xml.org
>> subscribe:
xml-dev-subscribe@lists.xml.org
>> List archive:
http://lists.xml.org/archives/xml-dev/
>> List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php
>>
>
>
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address:
http://www.oasis-open.org/mlmanage/
Or unsubscribe:
xml-dev-unsubscribe@lists.xml.org
subscribe:
xml-dev-subscribe@lists.xml.org
List archive:
http://lists.xml.org/archives/xml-dev/
List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php