O que é um arquivo de esquema XSD?
Um arquivo XSD é um arquivo de definição que especifica os elementos e atributos que podem fazer parte de um documento XML. Isso garante que os dados sejam interpretados adequadamente e que os erros sejam detectados, resultando na validação de XML apropriada. Os arquivos XSD garantem que os dados inseridos sigam a mesma estrutura definida no arquivo. Os arquivos XSD são armazenados no formato de arquivo XML e podem ser abertos ou editados em qualquer editor de texto, como Microsoft Notepad, Notepad++ ou [Microsoft XML Notepad](https://microsoft.github.io /XmlNotepad/).
Formato de arquivo XSD
Os arquivos XSD são armazenados no disco em formato de arquivo de texto simples que é legível por humanos. Um XSD define os elementos que podem ser usados nos documentos, relacionados aos dados reais com os quais deve ser codificado.
Exemplo de arquivo XSD
Um arquivo XSD simples com um esquema de ordem de compra define os elementos usando tags conforme mostrado a seguir exemplo XSD da Microsoft.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://tempuri.org/PurchaseOrderSchema.xsd"
targetNamespace="http://tempuri.org/PurchaseOrderSchema.xsd"
elementFormDefault="qualified">
<xsd:element name="PurchaseOrder" type="tns:PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="ShipTo" type="tns:USAddress" maxOccurs="2"/>
<xsd:element name="BillTo" type="tns:USAddress"/>
</xsd:sequence>
<xsd:attribute name="OrderDate" type="xsd:date"/>
</xsd:complexType>
<xsd:complexType name="USAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="zip" type="xsd:integer"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
</xsd:complexType>
</xsd:schema>
Aqui, as seguintes tags são usadas.
xs:element
- Define um elemento.xs:sequence
- Indica que os elementos filhos aparecem apenas na ordem mencionada.xs:complexType
- Indica que contém outros elementos.xs:simpleType
- Indica que eles não contêm outros elementos.type
- string, decimal, integer, boolean, date, time,