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: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: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: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: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: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":
<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":
<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ó:
es.
</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: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: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:
es.
</xs:attributeGroup>
En el siguiente ejemplo se define un grupo propiedad denominada "personattrgroup" de:
<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: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>