Hallo zusammen,
ich habe öfters dasselbe Problem, kann aber keine Lösung dafür finden.
Ich habe zum Beispiel die folgende XML-Datei: (Die Punkte dienen nur der Übersicht)
<root>
. <elem1>
. . <child1/>
. </elem1>
. <elem1>
. . <child1/>
. . <child2/> <!-- -->
. </elem1>
. <elem1>
. . <child1/>
. . <child2/> <!-- -->
. </elem1>
</root>
Um den Typ von <elem1> in einem Schema zu beschreiben, habe ich bisher <child1> als fest und <child2> als optional angenommen.
Das erste <elem1> soll aber nie das <child2> element haben, sondern nur alle <elem1> ab position 2. Mit der bisherigen XML Schema Definition kann ich das aber nicht verhindern.
Gibt es eine Möglichkeit, um die Type-Definition in einem XML-Schema von der Position abhängig zu machen?
Ich bin für jeden Hinweis dankbar!
Viele Dank für eure Mithilfe
mannixs
P.S.: Hier meine bisherige XML Schema Definition
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
. <xs:element name="child1" type="xs:string"/>
. <xs:element name="child2" type="xs:string"/>
. <xs:element name="elem1">
. . <xs:complexType>
. . . <xs:sequence>
. . . . <xs:element ref="child1"/>
. . . . <xs:element ref="child2" minOccurs="0"/>
. . . </xs:sequence>
. . </xs:complexType>
. </xs:element>
. <xs:element name="root">
. . <xs:complexType>
. . . <xs:sequence>
. . . . <xs:element ref="elem1" maxOccurs="unbounded"/>
. . . </xs:sequence>
. . </xs:complexType>
. </xs:element>
</xs:schema>
ich habe öfters dasselbe Problem, kann aber keine Lösung dafür finden.
Ich habe zum Beispiel die folgende XML-Datei: (Die Punkte dienen nur der Übersicht)
<root>
. <elem1>
. . <child1/>
. </elem1>
. <elem1>
. . <child1/>
. . <child2/> <!-- -->
. </elem1>
. <elem1>
. . <child1/>
. . <child2/> <!-- -->
. </elem1>
</root>
Um den Typ von <elem1> in einem Schema zu beschreiben, habe ich bisher <child1> als fest und <child2> als optional angenommen.
Das erste <elem1> soll aber nie das <child2> element haben, sondern nur alle <elem1> ab position 2. Mit der bisherigen XML Schema Definition kann ich das aber nicht verhindern.
Gibt es eine Möglichkeit, um die Type-Definition in einem XML-Schema von der Position abhängig zu machen?
Ich bin für jeden Hinweis dankbar!
Viele Dank für eure Mithilfe

mannixs
P.S.: Hier meine bisherige XML Schema Definition
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
. <xs:element name="child1" type="xs:string"/>
. <xs:element name="child2" type="xs:string"/>
. <xs:element name="elem1">
. . <xs:complexType>
. . . <xs:sequence>
. . . . <xs:element ref="child1"/>
. . . . <xs:element ref="child2" minOccurs="0"/>
. . . </xs:sequence>
. . </xs:complexType>
. </xs:element>
. <xs:element name="root">
. . <xs:complexType>
. . . <xs:sequence>
. . . . <xs:element ref="elem1" maxOccurs="unbounded"/>
. . . </xs:sequence>
. . </xs:complexType>
. </xs:element>
</xs:schema>