Gli ultimi tutorial di sviluppo web
 

XSD contenuto misto


Un elemento di tipo complesso misto può contenere attributi, elementi, e il testo.


Tipi complessi con contenuto misto

Un elemento XML, "letter" , che contiene sia il testo e 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 la "letter" elemento:

<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 i dati di carattere ad apparire tra i bambini-elementi della "letter" , il mixed attributo deve essere impostato su "true" . Il <xs:sequence> tag significa che gli elementi definiti (name, orderid and shipdate) devono apparire in questo ordine all'interno di una "letter" elemento.

Potremmo anche dare l'elemento complexType un nome, e lasciare che la "letter" elemento di avere un attributo type che si riferisce al nome del complexType (se si utilizza questo metodo, alcuni elementi possono fare riferimento 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>