XML Schema
Olá pessoal,
este é o primeiro do post no meu blog, espero que gostem.
XML Schema foi aprovado em 2001, e tornou-se a recomendação oficial do W3C para a validação de documentos XML. XML Schema é uma metalinguagem em XML, que é utilizado para descrever a estrutura de documentos XML. Surgiu para suprir as limitações impostas pelos DTD’s.
Dentre as principais vantagens de utilizá-lo nós temos: uma grande quantidade de tipos básicos de dados, capacidade de extensão dos tipos básicos, relacionamento entre os elementos internos e é expresso em XML.
Para criarmos nossos esquemas XM, usaremos basicamente dois tipos principais de elementos:
Simple Types: que são elementos simples, que não possuem atributos, nem outros elementos aninhados. Basicamente estes tipos são definidos utilizando os tipos pré-existentes como: string, date, etc;
Complex Types: são elementos que dão suporte a atributos e podem possuir elementos aninhados no seu interior, ou seja, podem ser formados pelo agrupamento de outros elementos.
Todo arquivo que é um XML Schema deve ser salvo com a extensão .xsd e deve ter como tags mais externas: xsd:schema e /xsd:schema.
Vamos agora fazer nosso primeiro XML Schema, para representar a estrutura do seguinte documento XML:
Um possível XML Schema que represente a estrutura do XML mostrado pode ser assim:
Vamos explicar cada parte:
Nesta parte nós temos a definição da tag mais externa xsd:schema, ao fazermos isso devemos associar essa tag a namespace associada aos elementos do XML Schema n0 caso: http://www.w3.org/2001/XMLSchema. Há também a utilização de um atributo chamado targetNamespace, que no qual indicamos a qual namespace determinado documento XML deve está associado para que possa ser validado conforme o esquema.
Há a definição de um elemento global do XML Schema, utilizando a tag xsd:element, este será o elemento existente no nosso XML, seu nome é aluno, que é definido no atributo _**name _e o seu tipo é definido no atributo _type_, cujo valor é _tns:AlunoType**_, que é um tipo definido por nós logo abaixo.
Aqui nós temos a definição de um _**complexType **_cujo nome é AlunoType, esse tipo é formado por uma sequência de outros elementos, essa sequência é definida pela tag xsd:sequence e dentro dessa tag é definido os elementos que formarão essa tag. No nosso caso são quatro elementos.
Aqui há a definição de um simpleType, aqui nós estamos aplicando uma restrição a um tipo de dado básico, no nosso caso xsd:string. Com a tag xsd:restriction nós definimos qual o tipo será tomado como base através do atributo **base, e dentro dela nós definimos a restrição. No exemplo é definido que os valores possíveis para esse elemento, são definidos usando a tag enumeration. **
Pronto, criamos o nosso XML Schema, agora precisamos associá-lo a um documento XML. Isso fica para a próxima.
[]’s