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: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: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: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: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: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":
<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":
<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>
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: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: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>
L'exemple suivant définit un groupe de propriété nommée "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>
Après avoir défini un ensemble complet d'attributs, vous pouvez référencer dans une autre définition, comme suit:
<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>