Kompozytowe typy XSD - zawierające wyłącznie tekst

Złożony element zawierający tylko tekst może zawierać tekst i atrybuty.

Złożony element zawierający tylko tekst

Ten typ zawiera tylko prostą zawartość (tekst i atrybuty), więc musimy dodać element simpleContent do tej zawartości. Gdy używamy prostej zawartości, musimy zdefiniować rozszerzenie lub ograniczenie wewnątrz elementu simpleContent, jak tutaj:

<xs:element name="nazwa">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="basetype">
        ....
        ....
      </xs:extension>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

lub:

<xs:element name="nazwa">
  <xs:complexType>
    <xs:simpleContent>
      <xs:restriction base="basetype">
        ....
        ....
      </xs:restriction>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Wskazówka:Użyj elementów extension lub restriction, aby rozszerzyć lub ograniczyć podstawowy prosty typ elementu.

Oto przykład elementu XML, "shoesize", który zawiera tylko tekst:

<shoesize country="france">35</shoesize>

Poniższy przykład deklaruje typ złożony, którego zawartość jest zdefiniowana jako wartość liczby całkowitej, a element "shoesize" zawiera atrybut o nazwie "country":

<xs:element name="shoesize">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="country" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Możemy również ustalić nazwę dla elementu complexType i umożliwić elementowi "shoesize" na odwoływanie się do tej nazwy (poprzez ten sposób, kilka elementów może odnosić się do tego samego typu złożonego):

<xs:element name="shoesize" type="shoetype"/>
<xs:complexType name="shoetype">
  <xs:simpleContent>
    <xs:extension base="xs:integer">
      <xs:attribute name="country" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>