Tipi complessi XSD - Contengono contenuti misti

Il tipo complesso misto può contenere attributi, elementi e testo.

Tipo complesso con contenuto misto

L'elemento XML, "letter", contiene testo e altri elementi:

<letter>
Gentile signor.<name>John Smith</name>.
Il tuo ordine <orderid>1032</orderid>
sarà spedito il <shipdate>2001-07-13</shipdate>.
</letter>

Il seguente schema dichiara l'elemento "letter":

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Note:Per consentire che i dati dei caratteri possano apparire tra i sottoelementi di "letter", l'attributo mixed deve essere impostato su "true". Il tag <xs:sequence> (name, orderid e shipdate) significa che gli elementi definiti devono apparire in successione all'interno dell'elemento "letter".

Anche possiamo dare un nome all'elemento complexType e far riferimento a questo nome come tipo dell'elemento "letter" (attraverso questo metodo, vari elementi possono riferirsi allo stesso tipo complesso):

<xs:element name="letter" type="lettertype"/>
<xs:complexType name="lettertype" mixed="true">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="orderid" type="xs:positiveInteger"/>
    <xs:element name="shipdate" type="xs:date"/>
  </xs:sequence>
</xs:complexType>