Latest web development tutorials

Indicador de XML Schema

Pelo indicador, que pode controlar a utilização dos elementos do modo de documento.


indicador

Há sete indicadores:

indicadores de encomendas:

  • tudo
  • escolha
  • seqüência

indicador de ocorrência:

  • maxOccurs
  • minOccurs

Indicador de grupo:

  • nome do grupo
  • nome attributeGroup

indicador de ordem

indicadores de ordem são usados ​​para definir a ordem dos elementos.

tudo indicador

<All> indicador, de acordo com as disposições do sub-elementos podem aparecer em qualquer ordem, e cada elemento filho deve aparecer apenas uma vez:

<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

NOTA: Ao usar o <all> indicador, você pode colocar <minOccurs> está definido para 0 ou 1, mas apenas o indicador <maxOccurs> é definido como 1 (mais tarde explicar <minOccurs> e <maxOccurs>).

Indicador de escolha

<Choice> indicador prevê um sub-elemento ocorrer ou pode ocorrer outro elemento filho (ou outro):

<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

Indicador de sequência

<Sequence> elemento filho deve ser especificado em uma ordem específica:

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


indicador de ocorrência

indicadores de ocorrência são usados ​​para definir a frequência de um elemento de ocorrer.

Nota: Para todos os e indicador de "Ordem" "Grupo" (qualquer, todos, escolha, sequência , o nome do grupo e referência de grupo), que maxOccurs e minOccurs padrão 1.

indicador maxOccurs

Indicador <MaxOccurs> pode especificar o número máximo de vezes que um elemento pode ocorrer:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Os exemplos acima mostram que a criança elemento "child_name" pode aparecer no elemento menos "pessoa" uma vez (em que o valor padrão de minOccurs é 1), aparece no máximo 10 vezes.

indicador minOccurs

<MinOccurs> indicador pode exigir um número mínimo de vezes que um elemento pode ocorrer:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Os exemplos acima mostram que a criança elemento "child_name" pode haver um mínimo de 0 no elemento de "pessoa", aparece um máximo de 10 vezes.

Dica: Para fazer com que o número de ocorrências de um elemento não é limitado, por favor use o maxOccurs = "unbounded" esta declaração:

Um exemplo prático:

Chamado de "Myfamily.xml" arquivo XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>

<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>

<person>
<full_name>Stale Refsnes</full_name>
</person>

</persons>

Acima deste arquivo XML contém um elemento raiz chamado "pessoas" de. Dentro deste elemento raiz, definimos três elementos "pessoa". Cada elemento "pessoa" deve conter um elementos "FULL_NAME", mas pode conter até 5 elementos "child_name".

Este é o arquivo de esquema "family.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>


indicador de grupo

Indicador de grupo para vários lotes de elementos relacionados com a definição.

elemento Grupo

grupo elemento definido pelo grupo declarou:

<xs:group name="groupname">
...
</xs:group>

É necessário definir uma declaração dentro do grupo de tudo, escolha ou elementos de sequência. O exemplo a seguir define um grupo denominado "persongroup", que define um conjunto de elementos que devem estar presentes de acordo com uma ordem exacta:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

Depois de ter definido o grupo estiver completo, você pode se referir a ele em outra definição de:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

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

<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>

grupo de propriedades

grupos definidos pela declaração attributeGroup Atributo:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

O exemplo a seguir define um grupo propriedade denominada "personattrgroup" de:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

Depois de definir um conjunto completo de atributos, você pode fazer referência a ela em outra definição, assim:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>