Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

XSD: xs:choice maxOccurs > 1

2 views
Skip to first unread message

robson

unread,
Oct 7, 2009, 2:14:41 AM10/7/09
to
Hallo zusammen,

ich bin gerad dabei eine XML-Schnittstelle mittels XSD zu
spezifizieren und bin dabei auf folgendes Problem gestoßen:

Folgendes XML ist zu validieren:

<root>
<node1>...</node1>
<node2>...</node2>
<node3>...</node3>
</root>

wobei mindestens ein node(n)-element und höchstens 3 elemente
vorhanden sein dürfen.
Und jetzt kommts: Wenn ein node(n)-element vorhanden ist, darf es nur
einmal vorkommen.

Ich habe es so versucht:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root" type="rootType"/>
<xs:complexType name="rootType">
<xs:choice minOccurs="1" maxOccurs="3">
<xs:element name="node1" type="xs:string"/>
<xs:element name="node2" type="xs:string"/>
<xs:element name="node3" type="xs:string"/>
</xs:choice>
</xs:complexType>
</xs:schema>

Allerdings gelingt mir damit nicht die Häufigkeit eines node(n)-
Elements (z.b. "node1") genau auf "1" festzusetzen. Da die Reihenfolge
der nodes nicht zwingend ist möchte ich am liebsten auf die Verwendung
einer Sequenz verzichten.

Jemand ne Idee wie man sowas bewerkstelligen könnte?

Gruß Robson

BTW: ein explizites Setzen von maxOccurs="1" auf die nodes bringt
nichts da dies dem choice offensichtlich egal zu seien scheint.

Martin Honnen

unread,
Oct 14, 2009, 9:29:26 AM10/14/09
to
robson wrote:

> ich bin gerad dabei eine XML-Schnittstelle mittels XSD zu

> spezifizieren und bin dabei auf folgendes Problem gesto�en:


>
> Folgendes XML ist zu validieren:
>
> <root>
> <node1>...</node1>
> <node2>...</node2>
> <node3>...</node3>
> </root>
>

> wobei mindestens ein node(n)-element und h�chstens 3 elemente
> vorhanden sein d�rfen.


> Und jetzt kommts: Wenn ein node(n)-element vorhanden ist, darf es nur
> einmal vorkommen.

xs:all macht doch genau, was du verlangst. Jedes Element darf einmal
vorkommen und die Reihenfolge ist beliebig.
http://www.w3.org/TR/xmlschema-0/#element-all

--

Martin Honnen --- MVP XML
http://msmvps.com/blogs/martin_honnen/

0 new messages