Quelle est la différence entre Extensible Markup Language (XML) et XML Schema (XSD)?
Quelle est la différence entre Extensible Markup Language (XML) et XML Schema (XSD)?
Réponses:
En fait, le XSD est XML lui-même. Son but est de valider la structure d'un autre document XML. Le XSD n'est obligatoire pour aucun XML, mais il garantit que le XML pourrait être utilisé à des fins particulières. Le XML ne contient que des données dans un format et une structure appropriés.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
mais j'ai fini par obtenir l'erreur: Error!!! The 'minOccurs' attribute cannot be present.
Prenons un exemple
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
et concevez un xsd pour cela:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="child_one" type="xs:string" />
<xs:element name="child_two" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ce qui n'est pas possible avec XSD: je voudrais l'écrire en premier car la liste est très petite
1) Vous ne pouvez pas valider un nœud / attribut en utilisant la valeur d'un autre nœud / attribut.
2) Ceci est une restriction: un élément défini dans un fichier XSD doit être défini avec un seul type de données. [dans l'exemple ci-dessus, pour <child_two>
apparaître dans un autre <parent>
nœud, le type de données ne peut pas être défini autrement que int.
3) Vous ne pouvez pas ignorer la validation des éléments et des attributs, c'est-à-dire que si un élément / attribut apparaît en XML, il doit être bien défini dans le XSD correspondant. Bien que l'utilisation de le <xsd:any>
permette, mais il a ses propres règles. Respecter ce qui conduit à l'erreur de validation. J'avais essayé une approche similaire, et je n'ai certainement pas réussi, voici les questions / réponses
ce qui est possible avec XSD:
1) Vous pouvez tester la bonne hiérarchie des nœuds XML. [xsd définit quel enfant doit appartenir à quel parent, etc., respectant ce qui sera compté comme une erreur, dans l'exemple ci-dessus, child_two ne peut pas être l'enfant immédiat de root, mais c'est l'enfant de la balise "parent" qui est à son tour un enfant du nœud "racine", il existe une hiérarchie ..]
2) Vous pouvez définir le type de données des valeurs des nœuds. [dans l'exemple ci-dessus child_two ne peut pas avoir d'autres données que nombre]
3) Vous pouvez également définir des types de données personnalisés, [exemple, pour le nœud <month>
, les données possibles peuvent être l'un des 12 mois .. vous devez donc définir tous les 12 mois dans un nouveau type de données écrivant tous les noms de 12 mois comme valeurs d'énumération.
4) Vous pouvez mettre la restriction sur l'occurrence des éléments, en utilisant minOccurs et maxOccurs, les valeurs par défaut sont 1 et 1.
.. et beaucoup plus ...
<root> <A>A</A> <B/> <C/> </root>
et si Node l' <A>
est <A>B</A>
, alors rendez <B>
obligatoire, si <A>C</A>
alors rendez <C>
obligatoire.
XSD:
XSD (XML Schema Definition) spécifie comment décrire formellement les éléments dans un document XML (Extensible Markup Language).
Xml:
XML a été conçu pour décrire les données . Il est indépendant des logiciels et du matériel.
Cela améliore les choses suivantes.
-Partage de données.
-Indépendant de la plateforme.
-Augmentation de la disponibilité des données.
Différences:
XSD est basé et écrit sur XML.
XSD définit les éléments et les structures qui peuvent apparaître dans le document, contrairement à XML.
XSD garantit que les données sont correctement interprétées, contrairement à XML.
Un document XSD est validé en tant que XML, mais l'inverse n'est pas toujours vrai.
XSD est meilleur pour détecter les erreurs que XML.
Un XSD définit les éléments qui peuvent être utilisés dans les documents, relatifs aux données réelles avec lesquelles il doit être encodé.
Par exemple:
une date exprimée en 1/12/2010 peut signifier soit le 12 janvier, soit le 1er décembre. La déclaration d'un type de données de date dans un document XSD garantit qu'il respecte le format dicté par XSD.
XML définit la syntaxe des éléments et des attributs pour structurer les données dans undocument bien formé .
XSD (aka XML Schema) , comme DTD avant, alimente latensibilitée X en XML en permettant à l'utilisateur de définir le vocabulaire et la grammaire des éléments et des attributs dans undocument XML valide .
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Ici:
xs: element : définit un élément.
xs: sequence : indique que les éléments enfants n'apparaissent que dans l'ordre mentionné.
xs: complexType : indique qu'il contient d'autres éléments.
xs: simpleType : indique qu'ils ne contiennent pas d'autres éléments.
type: chaîne, décimal, entier, booléen, date, heure,
Avec l'aide d'attributs supplémentaires, nous pouvons effectuer plusieurs opérations.
Effectuer n'importe quelle tâche sur xsd est plus simple que xml.
Fondamentalement, un fichier XSD définit à quoi ressemblera le fichier XML. C'est un fichier de schéma qui définit la structure du fichier XML. Donc, il spécifie quels sont les champs possibles et quelle taille ils vont être.
Un fichier XML est une instance de XSD car il utilise les règles définies dans le XSD.
XML a une application beaucoup plus large que f.ex. HTML. Il n'a pas d '"application" intrinsèque ou par défaut. Ainsi, même si vous ne vous souciez pas vraiment du fait que les pages Web sont également régies par ce qui est autorisé, du côté de l'auteur, vous voudrez probablement définir précisément ce qu'un document XML peut et ne peut pas contenir.
C'est comme concevoir une base de données.
Le problème avec les technologies XML est qu'elles sont de nature textuelle. Avec XSD, cela signifie que vous avez un cadre de définition de structure de données qui peut être «branché» à des outils de traitement de texte comme PHP. Ainsi, non seulement vous pouvez manipuler les données elles-mêmes, mais également modifier et documenter très facilement la structure, et même générer automatiquement des frontaux.
Vu sous cet angle, XSD est la "colle" ou "middleware" entre les données (XML) et les outils informatiques.