Páginas filhas
  • 2. XML Schema

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Em meados de 99, o consórcio W3C (responsável por vários padrões da WEB) publicou pela primeira vez o XML Schema. Sendo a primeira iniciativa de apresentar uma alternativa ao padrão DTD. Após diversas revisões, em 2001, foi lançada a recomendação final do XML Schema e em 2004 houve algumas adaptações. Dessa data até hoje, diversos fabricantes tem incluído esse padrão em seus produtos. Existem diversas APIs para validação, bancos de dados que dão suporte a tipos de dados XML, além de bancos de dados nativos que trabalham apenas com XML e tem o XML Schema como seu mecanismo básico de controle de consistência.

 

Padrões de Validação

...

A validação de arquivos. XML pode ser através de uma aplicação própria ou ainda algum outro padrão adotado. Os principais padrões atualmente são:

...

Em sua essência é um documento XML. Isso é, deve obedecer as mesmas regras que um documento XML. Um documento XSD também possui outras necessidades que um documento XML não necessita. Para que essas necessidades sejam atendidas é preciso definir as partes de um documento XSD. 

Declaração de elementos

...

Os elementos são declarados utilizando-se a tag “element”. Os principais atributos da tag são:

...

A declaração use por default é optional. 

Tipos de Dados

...

O XML Schema possui diversos tipos de dados, além da possibilidade de criar tipos próprios, os mais comuns são: 

  • xsd:string – string de caracteres de comprimento ilimitado
  • xsd:boolean – valor booleano (true, false - 1 ou 0)
  • xsd:decimal – número decimal
  • xsd:float – ponto flutuante
  • xsd:date – Uma data no calendário gregoriano
  • xsd:dateTime – Um instante específico no calendário gregoriano
  • xsd:integer – Um número inteiro

...

Obs.: esses dados podem ser utilizados tanto com os elementos quanto com os atributos.

...

Ex. 3: a utilização do conector choice; nesse caso é obrigado apenas que e somente um dos elementos especificados conste no documento. Se os dois elementos aparecerem, ocorrerá um erro. 

Bloco de código
languagexml
linenumberstrue
<xsd:choice>
 <xsd:element name="CPF" type="xsd:string"/>
 <xsd:element name="RG" type="xsd:string"/>
</xsd:choice>

A utilização de conectores é necessária para a construção de elementos compostos. Esses tipos de elementos são combinações de tags aninhadas chamados de elementos complexos. Para que esses elementos sejam declarados é necessário utilizar tag “complexType”. 

Bloco de código
languagexml
linenumberstrue
<xsd:element name="cliente">
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element name="nome" type="xsd:string"/>
   <xsd:element name="endereco" type="xsd:string"/>
   <xsd:element name="cep" type="xsd:integer"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>

Existem cinco conjuntos de tipos de dados pré-definidos em XSD. Esses conjuntos de tipos de dados são:

 

Numéricos

xsd:float

xsd:double

xsd:decimal

xsd:integer

xsd:nonPositiveInteger

xsd:nonNegativeInteger

xsd:negativeInteger

xsd:positiveInteger

xsd:long

xsd:int

xsd:short

xsd:byte

xsd:unsignedLong

xsd:unsignedInt

xsd:unsignedShort

xsd:unsignedByte

Números reais (32bits)

Números reais (64bits)

Número decimal

Número inteiro

Número inteiro negativo (incluindo 0)

Número inteiro positivo (incluindo 0)

Número inteiro negativo

Número inteiro positivo

Números inteiros (64bits)

Números inteiros (32bits)

Números inteiros (16bits)

Números inteiros (8bits)

Números long positivos (incluindo 0)

Números int positivos (incluindo 0)

Números short positivos (incluindo 0)

Números byte positivos (incluindo 0)

Data/Hora

xsd:dateTime

xsd:date

xsd:time

xsd:gDay

xsd:gMonth

xsd:gYear

xsd:gYearMonth

xsd:gMonthDay

xsd:duration

YYYY-MM-DDtHH:MM:SS.000

YYYY-MM-DD

HH:MM:SS.000

Número do dia (1-31)

Número do mês (1-12)

Número do ano

Números do ano e do mês

Números do mês e do dia

Período de tempo

String

xsd:string

xsd:normalizedString

xsd:token

Caracteres Unicode

Caracteres sem CRLF nem Tabs

Sem espaços

Binários

xsd:hexBinary

xsd:base64Binary

Dígitos em HEX (hexadecimal)

Binários em base64

Booleanos

xsd:boolean

1 | 0 | true | false

...