Qual è lo scopo dei file XSD?


90

Dato che possiamo eseguire query sul file XML da C # (.NET), perché abbiamo bisogno di un file XSD? So che è un file di metadati di un particolare file XML. Possiamo specificare le relazioni in XSD, ma qual è il suo funzionamento allora?

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>

Voglio ottenere i dati dagli Orderelementi secondo un fornito CustomerID.

Inoltre : qual è lo scopo di fornire le relazioni in XSD?


stackoverflow.com/questions/2333998/… , può anche essere segnalato!
AVA

Risposte:


106

I file XSD vengono utilizzati per verificare che i file XML siano conformi a un determinato formato.

Sotto questo aspetto sono simili ai DTD che esistevano prima di loro.

La principale differenza tra XSD e DTD è che XSD è scritto in XML ed è considerato più facile da leggere e capire.


grazie, quindi posso interrogare i file xsd da c3.net usando Linq per ottenere i dati dal file xml? Come?
Red Swan il

@Lalit - Linq non ha nulla a che fare con questo.
Oded

Un'altra importante differenza è che non puoi fare molte cose facilmente fatte in XSD in un DTD.
mort

Quindi per ottenere i dati, posso usare solo il file xml giusto? Non ho bisogno di generare il suo file di schema. (Non voglio convalidarlo per ora) Voglio solo ottenere dati di xml che hanno vari record dipendenti dalle mappe ID in ogni elemento.
Red Swan

4
@Lalit - se non ti interessano le relazioni in quanto tali e non è necessario verificare che siano conformi a una sorta di regola (codificata in un XSD), non utilizzare un XSD e interrogare direttamente l'XML.
Oded

48

Senza XML Schema (file XSD) un file XML è un insieme relativamente libero di elementi e attributi. Il file XSD definisce quali elementi e attributi sono consentiti e in quale ordine.

In generale XML è un metalinguaggio. I file XSD definiscono lingue specifiche all'interno di quel metalinguaggio. Ad esempio, se il file XSD contiene la definizione di XHTML 1.0, è necessario che il file XML si adatti a XHTML 1.0 piuttosto che ad un altro formato.


19

Hai menzionato C # nella tua domanda, quindi potrebbe essere utile pensare a XSD che svolge un ruolo simile a un'interfaccia C #.

Definisce come dovrebbe "apparire" l'XML in un modo simile a quello in cui un'interfaccia definisce ciò che una classe dovrebbe implementare.


4
Se prendi una classe e un'interfaccia che dovrebbe implementare, puoi dire se la classe è corretta. Allo stesso modo, se prendi un file xml ed è xsd, puoi dire se xml è corretto.
Garry

16

Gli XSD vincolano il vocabolario e la struttura dei documenti XML.

L'XML è tutto basato sull'accordo e gli XSD forniscono i mezzi per strutturare e comunicare l'accordo oltre la definizione di base dell'XML stesso.


12

Un'altra domanda è: qual è lo scopo di fornire le relazioni in xsd.

Supponi di voler generare un po 'di XML per uno strumento di una parte esterna o simile: come fai a sapere quale struttura è consentito seguire per essere utilizzato correttamente per il loro strumento? scrivi su uno schema. Allo stesso modo, se vuoi che altre persone utilizzino il tuo strumento, scriveresti uno schema da seguire. Può anche essere utile per convalidare il tuo XML.


8

Prima di comprendere l'XSD (XML Schema Definition) lasciatemi spiegare;

Cos'è lo schema?

per esempio; emailID: peter # gmail

È possibile identificare l'ID e-mail di cui sopra non è valido perché non sono presenti @, .com o .net o .org.

Conosciamo lo schema dell'email che assomiglia a peter@gmail.com.

Conclusione: lo schema non convalida i dati, esegue la convalida della struttura.

XSD è in realtà una delle implementazioni di XML Schema. altri che abbiamo

Usiamo XSD per convalidare i dati XML.


7

Un XSD è un contratto formale che specifica come può essere formato un documento XML. Viene spesso utilizzato per convalidare un documento XML o per generare codice da.


5

Un file XSD è una definizione di schema XML e viene utilizzato per fornire un metodo standard per verificare che un determinato documento XML sia conforme a ciò che ci si aspetta.


5

Un file .xsd è chiamato schema XML. Tramite uno schema XML, potremmo richiedere una certa struttura in un dato XML - quali elementi in quale ordine, quante volte, con quali attributi, come sono nidificati, ecc. Se abbiamo uno schema per il nostro input XML, possiamo verificare che contiene i dati che dobbiamo contenere, e nient'altro, con poche righe che invocano un validatore di schema.


4

Il file xsd è lo schema del file xml: definisce quali elementi possono verificarsi e le loro restrizioni (come quantità, ordine, confini, relazioni, ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.