tutoriais mais recente desenvolvimento web
 

XSD conteúdo misto


Um complexo elemento de tipo misto pode conter atributos, elementos e texto.


Tipos complexos com conteúdo misto

Um elemento XML, "letter" , que contém texto e outros elementos:

<letter>
  Dear Mr.<name>John Smith</name>.
  Your order <orderid>1032</orderid>
  will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

O esquema a seguir declara a "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: Para permitir que os dados de caracteres para aparecer entre os elementos-filho de "letter" , o mixed atributo deve ser definida como "true" . O <xs:sequence> tag significa que os elementos definidos (name, orderid and shipdate) deve aparecer nessa ordem dentro de uma "letter" elemento.

Nós também poderia dar o elemento complexType um nome e deixar a "letter" elemento tem um atributo do tipo que se refere ao nome do complexType (se você usar esse método, vários elementos podem se referem ao mesmo tipo complexo):

<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>