Latest web development tutorials

Indicador de esquema XML

Por el indicador, se puede controlar el uso de los elementos en el modo de documento.


indicador

Hay siete indicadores:

indicadores de orden:

  • todos
  • elección
  • secuencia

indicador de ocurrencia:

  • maxOccurs
  • minOccurs

Indicador de grupo:

  • nombre del grupo
  • nombre attributeGroup

indicador de fin

indicadores de pedido se utilizan para definir el orden de los elementos.

Todo indicador

<Todos> Indicador de conformidad con lo dispuesto en el sub-elementos pueden aparecer en cualquier orden, y cada elemento secundario debe aparecer sólo una 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: Cuando se utiliza el <todos> indicador, se puede poner <minOccurs> se establece en 0 o 1, pero sólo el indicador <maxOccurs> se establece en 1 (más adelante explicar <minOccurs> y <maxOccurs>).

elección del indicador

<Choice> indicador proporciona un sub-elemento se producen o pueden producirse otro elemento secundario (u otro):

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

<Secuencia> elemento secundario debe ser especificado en un orden específico:

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

indicadores de ocurrencia se utilizan para definir la frecuencia de un elemento se produce.

Nota: Para todos los e indicador de "orden" "Grupo" (cualquiera, todos elección, secuencia , el nombre del grupo y el grupo de referencia), que maxOccurs y minOccurs valores por defecto son 1.

indicador maxOccurs

<MaxOccurs> indicador puede especificar el número máximo de veces que puede ocurrir un elemento:

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

Los ejemplos anteriores demuestran que el elemento "child_name" niño puede aparecer en el elemento menos "persona" una vez (en el que el valor por defecto de minOccurs es 1), aparece en la mayoría de 10 veces.

indicador minOccurs

<MinOccurs> indicador pueden requerir un número mínimo de veces que puede ocurrir un elemento:

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

Los ejemplos anteriores demuestran que el elemento "child_name" niño puede haber un mínimo de 0 en el elemento "persona", aparece como máximo 10 veces.

Consejo: Para hacer que el número de apariciones de un elemento no se limita, por favor utilice la maxOccurs = "sin límites" esta declaración:

Un ejemplo práctico:

Llamado archivo XML "Myfamily.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>

Por encima de este archivo XML contiene un elemento raíz denominado "personas" de. Dentro de este elemento raíz, hemos definido tres elementos "persona". Cada elemento de "persona" debe contener una serie de elementos "FULL_NAME", pero puede contener hasta un 5 elemento "child_name".

Este es el archivo 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 varios lotes de elementos relacionados con la definición.

Grupo de elementos

grupo de elementos definidos por el grupo declaró:

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

Debe definir una declaración dentro del grupo de todo, elección o elementos de la secuencia. El ejemplo siguiente define un grupo llamado "persongroup", que define un conjunto de elementos que deben estar presentes de acuerdo con un orden preciso:

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

Después de haber definido es completado el grupo, puede hacer referencia a ella en otra definición:

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

grupos definidos por la declaración attributeGroup Atributo:

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

En el siguiente ejemplo se define un grupo propiedad 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>

Después de haber definido un conjunto completo de atributos, se puede hacer referencia a ella en otra definición, así:

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