HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Ce chapitre démontrera comment écrire des schémas d'un XML. Vous apprendrez également qu'un schéma de xml peut être écrit dans différentes manières.
|
Un document de XML
|
Allons voir des documents de ce XML appelés les « shiporder.xml » :
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
|
|
Le document de XML ci-dessus se composent d'un élément de racine, le « shiporder », qui contient un attribut exigé appelé le « orderid ». L'élément de « shiporder » contiennent trois éléments différents d'enfant : « orderperson », « shipto » et « article ». L'élément de « article » apparaissent deux fois, et il contient « titre », un élément facultatif de « note », « quantité », et un élément des « prix ».
La ligne ci-dessus : xmlns : le xsi= " http://www.w3.org/2001/XMLSchema-instance « indique à l'analyseur de XML que ceci documente devrait être validé contre un schéma. La ligne : xsi : le noNamespaceSchemaLocation= " shiporder.xsd » indiquent OÙ le schéma réside (ici il est dans la même chemise que « shiporder.xml »).
|
Créer un schéma de XML
|
Maintenant nous voulons créer un schéma pour le document de XML ci-dessus.
Nous commençons par ouvrir un nouveau dossier que nous appellerons en tant que « shiporder.xsd ». Pour créer le schéma nous pourrions simplement suivre la structure dans les documents de XML et définir chaque élément comme nous le trouvons. Nous commencerons par la déclaration standard de XML suivie des xs : élément de schéma qui définissent un schéma :
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
...
</xs:schema>
|
|
Dans le schéma ci-dessus nous employons le namespace standard (xs), et l'URI lié à ce namespace est la définition de langue de schéma, qui a la valeur standard de http://www.w3.org/2001/XMLSchemas.
Après, nous devons définir l'élément de « shiporder ». Cet élément fait contenir un attribut et lui d'autres éléments, donc nous le considérons comme type complexe. L'élément d'enfant de l'élément de « shiporder » est entouré par des xs : ordonnancer l'élément qui définit un ordre commandé des sous-éléments :
|
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
...
...
</xs:sequence>
...
</xs:complexType>
</xs:element>
|
|
Alors nous devons définir l'élément de « orderperson » en tant que type simple (parce qu'il ne contient aucun attribut ou d'autres éléments). Le type (xs : de la corde) est mise en tête avec le préfixe de namespace lié aux schémas de XML qui indique un type de données prédéfini de schéma :
|
<xs:element name="orderperson" type="xs:string"/>
|
|
Après, nous devons définit deux éléments qui sont du type complexe : « shipto » et « article ». Nous commençons par définir l'élément de « shipto » comme suit :
|
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
|
|
Avec le schéma nous pouvons définir le nombre d'occurrences possibles pour un élément avec les maxOccurs et les attributs de minOccurs. les maxOccurs indiquent le nombre maximum des occurrences pour un élément et les minOccurs indique le nombre minimum d'occurrences pour un élément. La valeur par défaut pour les deux maxOccurs et minOccurs est toujours 1 !
Maintenant nous pouvons définir l'élément de « article ». Cet élément peut apparaître des périodes multiples à l'intérieur de l'élément de « shiporder ». Ceci est indiqué en plaçant l'attribut de maxOccurs de l'élément de « article » « illimité » qui signifient qu'il peut y avoir autant d'occurrences de l'élément de « article » comme l'auteur souhaite. Noter que l'élément de « note » est facultatif ici. Nous avons indiqué ceci en plaçant l'attribut de minOccurs pour être zéro :
|
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
|
|
Nous pouvons maintenant déclarer l'attribut de l'élément de « shiporder ». Puisque c'est un attribut exigé nous indiquons l'use= " prié ».
Note : La déclaration d'attribut doit toujours venir pour la dernière fois :
|
<xs:attribute name="orderid" type="xs:string" use="required"/>
|
|
Voici la liste complète du dossier de schéma appelé le « shiporder.xsd » :
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
|
|
Diviser le schéma
|
La méthode de conception précédente est très simple, mais peut être difficile de lire et maintenir quand le document sont complexe.
La prochaine méthode de conception est basée sur définir tous les éléments et attributs d'abord, et se rapporter ensuite à eux employant les attributs de référence.
Voici la nouvelle conception du dossier de schéma (« shiporder.xsd ») :
|
< ? encoding= " ISO-8859-1 " du version= " 1.0 " de xml ? > <xs : xmlns de schéma : xs= " http://www.w3.org/2001/XMLSchema " > < ! -- définition des éléments simples --> <xs : xs de type= " de " orderperson de name= " d'élément : corde "/> <xs : xs de type= " de " nom de name= " d'élément : corde "/> <xs : xs de type= " de " adresse de name= " d'élément : corde "/> <xs : xs de type= " de " ville de name= " d'élément : corde "/> <xs : xs de type= " de " pays de name= " d'élément : corde "/> <xs : xs de type= " de " titre de name= " d'élément : corde "/> <xs : xs de type= " de " note de name= " d'élément : corde "/> <xs : xs de type= " de " quantité de name= " d'élément : positiveInteger "/> <xs : xs de type= " des " prix de name= " d'élément : "/> décimal < ! -- définition des attributs --> <xs : xs de type= " de " orderid de name= " d'attribut : corde "/> < ! -- définition des éléments complexes --> <xs : name= " shipto " d'élément > <xs : complexType> <xs : sequence> <xs : ref= " nom "/> d'élément <xs : ref= " adresse "/> d'élément <xs : ref= " ville "/> d'élément <xs : ref= " pays "/> d'élément </xs : sequence> </xs : complexType> </xs : element> <xs : name= " article " d'élément > <xs : complexType> <xs : sequence> <xs : ref= " titre "/> d'élément <xs : minOccurs= " de " note de ref= " d'élément 0 "/> <xs : ref= " quantité "/> d'élément <xs : ref= " prix "/> d'élément </xs : sequence> </xs : complexType> </xs : element>
<xs : name= " shiporder " d'élément > <xs : complexType> <xs : sequence> <xs : ref= " orderperson "/> d'élément <xs : ref= " shipto "/> d'élément <xs : maxOccurs=/> " illimité " de " article " de ref= d'élément </xs : sequence> <xs : use=/> " requis " de " orderid " de ref= d'attribut </xs : complexType> </xs : element> </xs : schema>
|
|
Employer Types appelé
|
La troisième méthode de conception définissent des classes ou les types, celui nous permet de réutiliser des définitions d'élément. Ceci est fait en appelant les simpleTypes et l'élément de complexTypes, et puis se dirige à eux par le type attribut de l'élément.
Voici la troisième conception du dossier de schémas (« shiporder.xsd ») :
|
< ? encoding= " ISO-8859-1 " du version= " 1.0 " de xml ? > <xs : xmlns de schéma : xs= " http://www.w3.org/2001/XMLSchema " > <xs : name= " stringtype " de simpleType > <xs : xs de base= de restriction " : corde "/> </xs : simpleType> <xs : name= " inttype " de simpleType > <xs : xs de base= de restriction " : positiveInteger "/> </xs : simpleType> <xs : name= " dectype " de simpleType > <xs : xs de base= de restriction " : "/> décimal </xs : simpleType> <xs : name= " orderidtype " de simpleType > <xs : xs de base= de restriction " : corde " > <xs : value= de modèle " [0-9] {6} « /> </xs : restriction> </xs : simpleType> <xs : name= " shiptotype " de complexType > <xs : sequence> <xs : type= " stringtype "/> de " nom " de name= d'élément <xs : type= " stringtype "/> de " adresse " de name= d'élément <xs : type= " stringtype "/> de " ville " de name= d'élément <xs : type= " stringtype "/> de " pays " de name= d'élément </xs : sequence> </xs : complexType> <xs : name= " itemtype " de complexType > <xs : sequence> <xs : type= " stringtype "/> de " titre " de name= d'élément <xs : minOccurs= " de " stringtype de type= " de " note " de name= d'élément 0 "/> <xs : type= " inttype "/> de " quantité " de name= d'élément <xs : type= " dectype "/> des " prix " de name= d'élément </xs : sequence> </xs : complexType> <xs : name= " shipordertype " de complexType > <xs : sequence> <xs : type= " stringtype "/> de " orderperson " de name= d'élément <xs : type= " shiptotype "/> de " shipto " de name= d'élément <xs : type= " de " article " de name= d'élément illimité " " itemtype "/> de maxOccurs= </xs : sequence> <xs : use=/> " requis " de " orderidtype " de type= de " orderid " de name= d'attribut </xs : complexType> <xs : type= " shipordertype "/> de " shiporder " de name= d'élément </xs : schema>
|
|
L'élément de restriction indiquent que le datatype est dérivé d'un datatype de namespace de schéma de W3C XML. Ainsi, le moyen suivant de fragment que la valeur de l'élément ou de l'attribut doit être une valeur de corde :
|
<xs : xs de base= de restriction " : corde " >
|
|
L'élément de restriction est plus employé souvent pour s'appliquer la restriction aux éléments. Regarder la ligne suivante du schéma ci-dessus :
|
<xs : name= " orderidtype " de simpleType > <xs : xs de base= de restriction " : corde " > <xs : value= de modèle " [0-9] {6} « /> </xs : restriction> </xs : simpleType>
|
|
Ceci indiquent que la valeur de l'élément ou de l'attribut doit être une corde, il doit être exactement six caractères dans une rangée, et ces caractères doivent être un nombre de 0 à 9.
|
|
|
Keywords:
xsd tutorial,xsd xml,xsd dtd,xsd examples,xsd validator,xsd specification,sample xsd,xsd tools,xsd example,xsd editor,xsd syntax,xslt xsd,xsd format,cdata xsd,xml element.
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|