eispiel für @XSD-Elementersetzungsgruppe?
Ich möchte Single-Choice-Typen für mehrere Erweiterungstypen angeben können.
Zum Beispiel sagen wir, wir haben das Meer, im Meer gibt es viele Arten von Fischen. Also werde ich in XML schreiben:
<Sea name="Atlantic Ocean">
<Tuna name="tuna1" />
<Carp name="carp1" />
<Carp name="carp2" />
<Tuna name="tuna2" />
<Salmon name="salmon1" />
</Sea>
XSD <xs:complexType name="Fish">
</xs:complexType>
<xs:complexType name="Salmon">
<xs:complexContent>
<xs:extension base="Fish">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Carp">
<xs:complexContent>
<xs:extension base="Fish">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Tuna">
<xs:complexContent>
<xs:extension base="Fish">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Sea">
<xs:complexContent>
<xs:extension base="GeoZone">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element type="Fish" name="Fish" minOccurs="0"
maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
Das ist leider nicht gültig, da ich nur den Typ @ hinzufügen kaFish
selbst und nicht seine Erweiterungstypen.