xs:element

Ein Element kann nur Text enthalten. Es kann keine weiteren Elemente oder Attribute beinhalten.

Wobei “Text” missverständlich sein kann. Denn der Inhalt kann einer von den xsd Typen (boolean, string, date, etc.) sein, oder ein benutzerdefinierter Typ, den man selbst erstellt.

<xs:element name=”xxx” type=”yyy”/>

Komplexes Element

Es gibt vier Möglichkeiten:

  • leere elemente
    <result state=”true” />
  • solche die nur andere elemente beinhalten
    <result>
    <state>true</state>
    </result>
  • solche die nur text beinhalten
    <result state=”true”>no error occurred</result>
  • elemente, die andere elemente und text beinhalten
    <result state=”true”>no <green>error</green> occurred</result>

Definition eines komplexen Elementes

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

XSD

<xs:element name=”employee”>
<xs:complexType>
<xs:sequence>
<xs:element name=”firstname” type=”xs:string”/>
<xs:element name=”lastname” type=”xs:string”/>
</xs:sequence>
</xs:complexType>
</xs:element>

Oder mehr genereller, damit beispielsweise ein anderes Element wie “Kunde” dieselbe Definition verwenden kann:

<xs:element name=”employee” type=”personinfo”/>

<xs:complexType name=”personinfo”>
<xs:sequence>
<xs:element name=”firstname” type=”xs:string”/>
<xs:element name=”lastname” type=”xs:string”/>
</xs:sequence>
</xs:complexType>

Ohne Angaben von minOccurs and maxOccurs muss das Element exakt einmal vorkommen. (entspricht also minOccurs=1 und maxOccurs=1).

ACHTUNG! Attribute Definitionen müssen immer am Ende (z.B. nach sequence) erfolgen!

Leave a Reply

  

  

  

*