Hallo,
wie überrede ich XML Schema dazu, dass im Element s neben den Elementen alt.gr, w und tilde auch normaler Text mehrmals enthalten sein kann, ohne dass dabei eine spezielle Reihenfolge beachtet werden muss?
In DTD hätte ich das so formuliert:
<!ELEMENT s (#PCDATA | alt.gr | w | tilde)+>
Es wäre somit auch die Reihenfolge #PCDATA-tilde-w-#PCDATA möglich.
Eine Abfolge in der PCDATA vorkommt ist in einer DTD nicht möglich.
Du hättest es nur so formulieren können:
<!ELEMENT s (#PCDATA | alt.gr | w | tilde)*>
Doch wie mache ich das bei XML Schema?
<xsd:element name="s">
<xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="w" />
<xsd:element ref="alt.gr" />
<xsd:element ref="tilde" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
Hier fehlt allerdings noch die Legitimierung für den normalen Text. Zudem müsste laut http://www.edition-w3c.de/TR/2001/REC-xmlschema-0-20010502/ die Reihenfolge der Elemente in xsd:sequences exakt eingehalten werden.
Deshalb kannst du xs:choice nehmen.
Grüße
Thomas