Article Index

Komplexní datový typ

Jiná možnost k omezení rozvětveného XSD kódu je použití komplexních datových typů. Ty umožňují definovat datový typ obsahující elementy, které se mohou vyskytovat v několika pozicích. Typicky to může být jméno a příjmení.

<xs:complexType name="osobni-info">
  <xs:sequence>
    <xs:element name="jmeno" type="xs:string"/>
    <xs:element name="prijmeni" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Použití je potom následující:

<xs:complexType name="kontakt">
  <xs:complexContent>
    <xs:extension base="osobni-udaje">
      <xs:sequence>
        <xs:element name="ulice" type="xs:string"/>
        <xs:element name="mesto" type="xs:string"/>
        <xs:element name="psc" type="xs:string"/>
      </xs:sequence>
  </xs:complexContent>
</xs:complexType>

Finální sestavení je pak toto:

<xs:element name="student" type="kontakt" />

Jak je vidět, tak z celého rozsáhlého kódu máme tři části - dílčí komplexní typ obsahující jméno a příjmení, sestavený s dalšími značkami dává komplexní typ adresa a je je přiřazen studentovi - jediné značce.