web-dev-qa-db-fra.com

Quel est le but des fichiers XSD?

Puisque nous pouvons interroger le fichier XML à partir de C # (.NET), pourquoi avons-nous besoin d'un fichier XSD? Je sais que c'est un fichier de métadonnées d'un fichier XML particulier. Nous pouvons spécifier les relations dans XSD, mais quel est son fonctionnement alors?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

Je veux obtenir des données à partir des éléments Order en fonction d'un CustomerID fourni.

Aussi: Quel est le but de donner les relations dans XSD?

86
Red Swan

XSD les fichiers sont utilisés pour valider que les fichiers XML sont conformes à un certain format.

À cet égard, ils sont similaires à DTD s qui existaient avant eux.

La principale différence entre XSD et DTD est que XSD est écrit en XML et est considéré comme plus facile à lire et à comprendre.

102
Oded

Sans schéma XML (fichier XSD), un fichier XML est un ensemble relativement libre d'éléments et d'attributs. Le fichier XSD définit quels éléments et attributs sont autorisés et dans quel ordre.

En général, XML est un métalangage. Les fichiers XSD définissent des langues spécifiques au sein de ce métalangage. Par exemple, si votre fichier XSD contient la définition de XHTML 1.0, votre fichier XML doit s’adapter au format XHTML 1.0 plutôt qu’à un autre format.

44
Oleg

Vous avez mentionné C # dans votre question, il est donc utile de penser à XSD jouant un rôle similaire à celui d'une interface C #.

Il définit à quoi doit ressembler le XML de la même manière qu'une interface définit ce qu'une classe doit implémenter.

16
Garry

Les XSD limitent le vocabulaire et la structure des documents XML.

XML est synonyme d'accord , et les fichiers XSD permettent de structurer et de communiquer l'accord au-delà de la définition de base de XML lui-même.

14
kjhughes

Les questions sont également: Quel est le but de donner les relations dans xsd.

Supposons que vous souhaitiez générer du code XML pour un outil d'un tiers, ou similaire - comment sauriez-vous quelle structure il est autorisé à suivre pour être utilisé correctement pour leur outil? vous écrivez à un schéma. De même, si vous souhaitez que d'autres personnes utilisent votre outil, vous devez écrire un schéma à suivre. Cela peut également être utile pour valider votre propre XML.

11
Robert

Avant de comprendre le XSD (XML Schema Definition), laissez-moi vous expliquer;

Quel est le schéma?

par exemple; emailID: peter # gmail

Vous pouvez identifier que l'email ci-dessus n'est pas valide car il n'y a pas de @, .com, .net ou .org.

Nous connaissons le schéma de messagerie qui ressemble à [email protected].

Conclusion: le schéma ne valide pas les données, il valide la structure.

XSD est en réalité l’une des implémentations de XML Schema. autres nous avons relaxng

Nous utilisons XSD pour valider les données XML.

7
Premraj

Un XSD est un contrat formel qui spécifie comment un document XML peut être formé. Il est souvent utilisé pour valider un document XML ou pour générer du code.

6
troelskn

Un fichier XSD est une définition de schéma XML. Il sert à fournir une méthode standard pour vérifier qu'un document XML donné est conforme à vos attentes.

5
a'r

Un fichier .xsd est appelé schéma XML. Via un schéma XML, nous pouvons avoir besoin d’une certaine structure dans un XML donné - quels éléments dans quel ordre, combien de fois, avec quels attributs, comment ils sont imbriqués, etc. Si nous avons un schéma pour notre entrée XML, nous pouvons vérifier qu'il contient les données que nous devons contenir, et rien d'autre, avec quelques lignes appelant un validateur de schéma.

5
user395760

Le fichier xsd est le schéma du fichier xml - il définit quels éléments peuvent se produire et leurs restrictions (comme la quantité, l'ordre, les limites, les relations, ...)

4
mort