Thomas J.S.: XML Schema

Beitrag lesen

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

--
Surftip: kennen Sie schon Pipolino's Clowntheater?
http://www.clowntheater-pipolino.net/