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:

xml

Um possível XML Schema que represente a estrutura do XML mostrado pode ser assim:

schema.jpg

Vamos explicar cada parte:

  1. 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.
  2. 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.
  3. 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.
  4. 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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s