Komplexní typy

  • modelování elementů, které obsahují další elementy nebo atributy

  • lze určit pořadí elementů, jejich opakování, volitelnost atd.

<xs:element name="kniha">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="nazev" type="xs:string"/>
      <xs:element name="autor" type="xs:string"
                  minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="odstavec" type="xs:string"/>
        <xs:element name="obrazek" type="xs:base64Binary"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:element>
  • sekvence za sebou jdoucích elementů – <xs:sequence>

  • výběr jednoho z elementů – <xs:choice>

  • nezáleží na pořadí elementů – <xs:all>

  • vytvoření skupiny – <xs:group>

  • lze vzájemně kombinovat

  • smíšený obsah (mezi elementy se může objevit text) – <xs:complexType mixed="true">