Latest web development tutorials

XML Schema elementos complexos

Complexo elemento contém outros elementos e / ou atributos.


h2> O que é um elemento composto?

elemento composto refere-se ao elemento XML que contém outros elementos e / ou atributos.

Existem quatro tipos de elementos compostos:

  • Os elementos vazios
  • Ele contém outros elementos de
  • Elemento contém apenas texto
  • Elemento contém elementos e texto

Nota: Os elementos supra podem conter atributos!


Exemplos de elementos compostos

elemento composto, "produto", está vazio:

<product pid="1345"/>

elemento composto, "trabalhador", contém apenas outros elementos:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

elemento XML complexo, "alimento", contendo apenas texto:

<food type="dessert">Ice cream</food>

Complexo elemento XML, "descrição" contém elementos e texto:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>


Como definir elemento complexo?

Olhe para este elemento XML complexo, "trabalhador", contém apenas outros elementos:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

No XML Schema, temos duas maneiras de definir elementos complexos:

1. O nome do elemento directamente ao "trabalhador" declaração de elemento, como este:

<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Se você usar o método descrito acima, o único "funcionário" pode usar o tipo complexo especificado. Por favor note que seus elementos filho, "nome" e "sobrenome", está cercado pelo indicador <sequence> em. Isto significa que os elementos filhos devem aparecer na ordem em que são declaradas. Você vai XSD Indicadores de aprender mais sobre os indicadores nesta seção.

2. elemento de "funcionário" pode usar o atributo de tipo, o papel deste atributo é uma referência ao nome do tipo complexo a ser usada:

<xs:element name="employee" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Se é utilizado o método acima descrito, ele pode ser usado por um certo número de elementos do mesmo tipo complexo, como este:

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Pode também sobre um elemento composto existente para uma base de elemento composto, em seguida, adicionar alguns elementos, como este:

<xs:element name="employee" type="fullpersoninfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>