Qual é a finalidade dos arquivos XSD?


90

Visto que podemos consultar o arquivo XML em C # (.NET), por que precisamos de um arquivo XSD? Eu sei que é um arquivo de metadados de um arquivo XML específico. Podemos especificar os relacionamentos em XSD, mas como funciona 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>

Eu quero obter dados dos Orderelementos de acordo com um fornecido CustomerID.

Além disso : Qual é o propósito de fornecer os relacionamentos no XSD?


stackoverflow.com/questions/2333998/… , também pode ser referido!
AVA

Respostas:


106

Os arquivos XSD são usados ​​para validar se os arquivos XML estão em conformidade com um determinado formato.

Nesse aspecto, são semelhantes aos DTDs que existiam antes deles.

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


Obrigado, então posso consultar arquivos xsd de c3.net usando Linq para obter os dados do arquivo xml? Quão?
Red Swan

@Lalit - Linq não tem nada a ver com isso.
Oded

Outra diferença importante é que você não pode fazer muitas coisas facilmente feitas em XSD em um DTD.
morte de

Portanto, para obter dados, posso usar apenas o arquivo xml, certo? Não preciso gerar seu arquivo de esquema. (Não quero validá-lo por enquanto) Só quero obter dados de xml que tenham vários registros dependentes de mapas de IDs em cada elemento.
Red Swan

4
@Lalit - se você não se importa com os relacionamentos como tais e não precisa verificar se eles estão em conformidade com algum tipo de regra (codificada em um XSD), então não use um XSD e apenas consulte o XML diretamente.
Oded

48

Sem o XML Schema (arquivo XSD), um arquivo 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, XML é uma metalinguagem. Os arquivos XSD definem idiomas específicos dentro dessa metalinguagem. Por exemplo, se seu arquivo XSD contém a definição de XHTML 1.0, então seu arquivo XML deve caber em XHTML 1.0 em vez de algum outro formato.


18

Você mencionou C # em sua pergunta, portanto, pode ser útil pensar em XSD como tendo uma função semelhante a uma interface C #.

Ele define como o XML deve ser "parecido" de maneira semelhante a uma interface que define o que uma classe deve implementar.


4
Se você pegar uma classe e uma interface que ela deve implementar, poderá saber se a classe está correta. Da mesma forma, se você pegar um arquivo xml e for xsd, poderá saber se o xml está correto.
Garry

16

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

XML tem tudo a ver com acordo , e XSDs fornecem os meios para estruturar e comunicar o acordo além da definição básica do próprio XML.


12

Também perguntas são: Qual é o propósito de fornecer os relacionamentos no xsd.

Suponha que você queira gerar algum XML para a ferramenta de uma parte externa, ou similar - como você saberia que estrutura é permitido seguir para ser usado corretamente por sua ferramenta? você escreve para um esquema. Da mesma forma, se quiser que outras pessoas usem sua ferramenta, você deve escrever um esquema para que elas sigam. Também pode ser útil para validar seu próprio XML.


8

Antes de entender o XSD (XML Schema Definition), deixe-me explicar;

O que é esquema?

por exemplo; emailID: peter # gmail

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

Conhecemos o esquema de e-mail, ele se parece com peter@gmail.com.

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

XSD é na verdade uma das implementações do XML Schema. outros nós temos

Usamos XSD para validar dados XML.


7

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


5

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


5

Um arquivo .xsd é chamado de esquema XML. Por meio de um esquema XML, podemos exigir uma certa estrutura em um determinado XML - quais elementos em que ordem, quantas vezes, com quais atributos, como eles são aninhados, etc. Se tivermos um esquema para nossa entrada XML, podemos verificar que contém os dados que precisamos conter, e nada mais, com algumas linhas invocando um validador de esquema.


4

O arquivo xsd é o esquema do arquivo xml - ele define quais elementos podem ocorrer e suas restrições (como quantidade, ordem, limites, relacionamentos, ...)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.