Latest web development tutorials

Indicateur de schéma XML

Par l'indicateur, on peut contrôler l'utilisation des éléments dans le mode de document.


indicateur

Il y a sept indicateurs:

Ordre des indicateurs:

  • tous
  • choix
  • séquence

indicateur de Présence:

  • maxOccurs
  • minOccurs

Indicateur de groupe:

  • Nom du groupe
  • nom attributeGroup

Indicateur de commande

Ordre des indicateurs sont utilisés pour définir l'ordre des éléments.

Tout indicateur

<Tous> indicateur conformément aux dispositions des sous-éléments peuvent apparaître dans un ordre quelconque, et chaque élément enfant doit apparaître qu'une seule fois:

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

Remarque: Lorsque vous utilisez le <all> indicateur, vous pouvez mettre <minOccurs> est réglé sur 0 ou 1, mais seulement le <maxOccurs> indicateur est réglé sur 1 (expliquer plus tard <minOccurs> et <maxOccurs>).

Choix Indicateur

<Choice> indicateur fournit un sous-élément se produit ou peut se produire un autre élément de l'enfant (ou l'autre):

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

Indicateur d'ordre

<Sequence> élément enfant doit être spécifié dans un ordre spécifique:

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


indicateur de Présence

Les indicateurs sur les événements sont utilisés pour définir la fréquence d'un élément se produit.

Note: Pour l' ensemble de la «commande» et l' indicateur "Groupe" (tout, tout, choix, séquence , le nom du groupe et de référence du groupe), qui maxOccurs et minOccurs valeurs par défaut sont 1.

indicateur maxOccurs

<MaxOccurs> indicateur peut spécifier le nombre maximum de fois qu'un élément peut se produire:

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

Les exemples ci-dessus montrent que l'enfant élément "child_name" peut apparaître dans l'élément le moins «personne» une fois (où la valeur par défaut de minOccurs est 1), apparaît dans la plupart des 10 fois.

indicateur minOccurs

<MinOccurs> indicateur peut exiger un nombre minimum de fois un élément peut se produire:

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

Les exemples ci-dessus montrent que l'enfant élément "child_name" il peut y avoir un minimum de 0 dans l'élément «personne», apparaît au plus 10 fois.

Astuce: Pour faire le nombre d'occurrences d'un élément ne se limite pas, s'il vous plaît utiliser le maxOccurs = "unbounded" cette déclaration:

Un exemple pratique:

Appelé fichier 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>

Au-dessus de ce fichier XML contient un élément racine nommé "personnes" de. A l'intérieur de cet élément de racine, nous avons défini trois éléments «personne». Chaque élément "personne" doit contenir un des éléments «FULL_NAME», mais il peut contenir jusqu'à 5 élément "child_name".

Ceci est le fichier de schéma "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>


Indicateur de groupe

indicateur de groupe pour plusieurs lots d'éléments liés à la définition.

Groupe élément

groupe Element défini par le groupe a déclaré:

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

Vous devez définir une déclaration au sein du groupe tout, choix ou éléments de séquence. L'exemple suivant définit un groupe nommé "persongroup", qui définit un ensemble d'éléments qui doivent être présents selon un ordre précis:

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

Après avoir défini le groupe est terminé, vous pouvez vous référer à elle dans une autre définition:

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

groupe de propriété

Attribut des groupes définis par la déclaration attributeGroup:

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

L'exemple suivant définit un groupe de propriété nommée "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>

Après avoir défini un ensemble complet d'attributs, vous pouvez référencer dans une autre définition, comme suit:

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