web-dev-qa-db-fra.com

Quelle est la différence entre XML et XSD?

Quelle est la différence entre XML (Extensible Markup Language) et XML Schema (XSD)?

96
Gandalf StormCrow

En réalité, 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.

130
anthares


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: aimerait l’écrire d’abord car la liste est très petite
1) Vous ne pouvez pas valider un noeud/attribut en utilisant la valeur d'un autre noeud/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 que <child_two> apparaisse dans un autre noeud <parent>, 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. En d'autres termes, si un élément/attribut apparaît en XML, il doit être bien défini dans le XSD correspondant. Bien que l'utilisation de <xsd:any> le permette, il a ses propres règles. Rester ce qui conduit à l'erreur de validation. J'avais essayé une approche similaire et je n'ai certainement pas réussi, voici le Q & R


ce qui est possible avec XSD:
1) Vous pouvez tester la hiérarchie appropriée des nœuds XML. [xsd définit quel enfant doit appartenir à quel parent, etc., qui sera considéré 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 une enfant du noeud "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 avoir aucune autre donnée que le nombre]
3) Vous pouvez également définir des types de données personnalisés. Par exemple, pour le noeud <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 en écrivant tous les 12 mois. les noms en tant que valeurs d’énumération .. la validation indique une erreur si le XML d’entrée contient une valeur autre que ces 12 valeurs ..]
4) Vous pouvez limiter l’occurrence des éléments à l’aide de minOccurs et maxOccurs. Les valeurs par défaut sont 1 et 1.

.. et beaucoup plus ...

103
InfantPro'Aravind'

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 des données . Il est indépendant du logiciel ainsi que du matériel.
Il améliore les choses suivantes.
-Partage de données.
-Plateforme indépendante.
-Augmenter la disponibilité des données.

Différences: 

  1. XSD est basé et écrit en XML.

  2. XSD définit les éléments et les structures pouvant apparaître dans le document, contrairement à XML.

  3. XSD garantit que les données sont correctement interprétées, contrairement à XML.

  4. Un document XSD est validé en tant que XML, mais le contraire peut ne pas toujours être vrai.

  5. XSD est meilleur pour attraper 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 ils doivent être codés.
par exemple:
Une date exprimée comme 1/12/2010 peut signifier le 12 janvier ou le 1er décembre. La déclaration d'un type de données de date dans un document XSD garantit que celui-ci respecte le format dicté par XSD.

13
Skull

XML versus XSD

XML définit la syntaxe de éléments et attributs pour la structuration des données dans un bien formé _ document.

XSD (aka schéma XML) , comme DTD auparavant, alimente la tensibilité eX dans XML en permettant à l'utilisateur de définir le vocabulaire et grammaire des éléments et attributs dans un document valide _] XML.

5
kjhughes

EXEMPLE XML SIMPLE:

<school>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</school>

XSD OF XML ci-dessus:

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

type complexe : indique qu'il contient d'autres éléments . type simple : indique qu'ils ne contiennent pas d'autres éléments.

type: chaîne, décimale, entier, boolean, date, heure,

En termes simples, xsd est un autre moyen de représenter et de valider des données XML avec le type spécifique. Avec l’aide d’attributs supplémentaires, nous pouvons effectuer plusieurs opérations. effectuer une tâche sur xsd est plus simple que xml. 

0
shubham1js

XML a une application beaucoup plus large que f.ex. HTML. Il n'a pas d'application intrinsèque ou par défaut. Ainsi, bien que les pages Web soient également régies par ce qui est autorisé, vous voudrez peut-être définir avec précision ce qu'un document XML peut contenir ou non.

C'est comme concevoir une base de données.

Le problème des 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 tels que PHP. Ainsi, non seulement vous pouvez manipuler les données elles-mêmes, mais également très facilement modifier et documenter la structure, et même générer automatiquement des frontaux.

Vu sous cet angle, XSD est le "ciment" ou le "middleware" entre les outils de traitement de données (XML).

0
Agnes K. Cathex

Fondamentalement, un fichier XSD définit l'apparence du 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 avoir.

Un fichier XML est une instance de XSD car il utilise les règles définies dans XSD.

0
SelMez