Qual é o propósito dos arquivos XSD?

Uma vez que podemos consultar o ficheiro XML a partir de C# (. NET), por que precisamos de um ficheiro XSD? Eu sei que é um ficheiro de metadados de um ficheiro XML em particular. Podemos especificar as relações no XSD, mas qual é o seu funcionamento então?

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>

quero obter dados dos elementos Order de acordo com um CustomerID fornecido.

Também: Qual é o propósito de dar as relações no XSD?

 77
Author: kjhughes, 2010-08-04

10 answers

Os arquivos XSD são usados para validar XML-que está em conformidade com um determinado formato.

A este respeito, são semelhantes aos DTD que existiam antes deles.

A principal diferença entre o XSD e o DTD é que o XSD é escrito em XML e é considerado mais fácil de ler e compreender.

 91
Author: Oded, 2010-08-04 08:02:47

Sem XML Schema (ficheiro XSD) um ficheiro XML é um conjunto relativamente livre de elementos e atributos. O arquivo XSD define quais elementos e atributos são permitidos e em que ordem.

Em geral, o XML é uma metalinguagem. Os arquivos XSD definem linguagens específicas dentro dessa metalinguagem. Por exemplo, se seu arquivo XSD contém a definição de XHTML 1.0, então seu arquivo XML é necessário para caber XHTML 1.0 em vez de qualquer outro formato.
 39
Author: Oleg, 2013-11-15 18:41:20

Mencionas o C# na tua pergunta para que possa ajudar a pensar que o XSD serve um papel semelhante a uma interface C#.

Define o que o XML deve 'parecer' de uma forma semelhante à que uma interface define o que uma classe deve implementar.

 16
Author: Garry, 2010-08-04 08:06:21

XSDs restringem o vocabulário e a estrutura dos documentos XML.

  • sem um XSD , um documento XML só precisa de seguir as regras para ser bem formadas tal como indicado na recomendação W3C XML.
  • Com um XSD, um documento XML deve respeitar restrições adicionais colocados sobre os nomes e valores de seus elementos e atributos para ser considerado válido contra o XSD per the W3C XML Schema Recommendation .

XML é tudo sobre Acordo , e XSDs fornecem os meios para estruturar e comunicar o Acordo além da definição básica de XML em si.

 13
Author: kjhughes, 2017-05-23 12:10:27

Também as perguntas são: Qual é o propósito de dar as relações no xsd.

Suponha que deseja gerar algum XML para a ferramenta de uma parte externa, ou similar - como é que sabe que estrutura é permitido seguir para ser usado correctamente para a sua ferramenta? escreves a um esquema. Da mesma forma, se você quiser que outras pessoas usem sua ferramenta, você escreveria um esquema para que elas sigam. Também pode ser útil para validar o seu próprio XML.

 10
Author: Robert, 2010-08-04 08:26:09

Um XSD é um contrato formal que especifica como um documento XML pode ser formado. É muitas vezes usado para validar um documento XML, ou para gerar código a partir.

 6
Author: troelskn, 2010-08-04 08:27:07

Antes de compreender a definição do xsd(XML Schema) deixe-me explicar;

Qual é o esquema?

Por exemplo; emailID: peter#gmail

Você pode identificar o emailID acima não é válido porque não existe @, .com ou. NET ou. org.

Sabemos o esquema de E-mail que parece [email protected].

Conclusão: o esquema não valida os dados, faz a validação da estrutura.

O XSD é na verdade um dos implementação do esquema XML. outros nós temos relaxar

Usamos o XSD para validar dados XML.

 6
Author: Premraj, 2015-12-23 02:00:35

Um ficheiro XSD é uma definição de esquema XML e é usado para fornecer um método padrão de verificação de que um dado documento XML está em conformidade com o que espera.

 5
Author: a'r, 2010-08-04 08:03:33

An .xsd file is called an XML schema. Através de um esquema XML, podemos exigir uma determinada estrutura em um dado XML - quais elementos em que ordem, quantas vezes, com que atributos, como eles são aninhados, etc. Se tivermos um esquema para nossa entrada em XML, podemos verificar que ele contém os dados que precisamos que ele contenha, e nada mais, com algumas linhas invocando um validador de esquema.

 5
Author: , 2010-08-04 08:06:24

O ficheiro xsd é o esquema do ficheiro xml - define quais os elementos que podem ocorrer e as suas restrições (como a quantidade, a ordem, os limites, as relações, etc...)

 3
Author: mort, 2010-08-04 08:03:07