Contenuto misto XSD
Un elemento di tipo complesso misto può contenere attributi, elementi e testo.
Tipi complessi con contenuto misto
Un elemento XML, "lettera", che contiene sia testo che altri elementi:
<letter>
Dear Mr. <name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>
Lo schema seguente dichiara l'elemento "lettera":
<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>
Nota: per consentire la visualizzazione dei dati del carattere tra gli elementi figlio di "lettera", l'attributo misto deve essere impostato su "true". Il tag <xs:sequence> significa che gli elementi definiti (nome, orderid e data di spedizione) devono apparire in quell'ordine all'interno di un elemento "lettera".
Potremmo anche dare un nome all'elemento complexType e lasciare che l'elemento "letter" abbia un attributo type che fa riferimento al nome del complexType (se usi questo metodo, più 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>