Vous êtes sur la page 1sur 12

c 


   
 


c 
                    
        
î 

André dos Santos Gomes




andretechf@yahoo.com.br


Ônstituto de Ensino Superior Fucapi (CESF)

Curso de Bacharelado em Análise de Sistemas




u A internet está em constante expansão a cada dia que passa, é cada vez maior o número de dispositivos que possibilitam o
acesso a internet. O comércio eletrônico é um dos que mais impulsionam o crescimento. Portanto, o gerenciamento das informaçõ es é
um desafio para o mundo de banco de dados e para auxiliar a estruturação e troca de dados na internet, foi desenvolvido a XML, que
possui o objetivo de fornecer informação sobre a estrutura e o significado dos dados nas páginas web. Porém, faz -se necessário a
utilização de abordagens para definição de estruturas. Este trabalho objetiva descrever uma das abordagens, o XML Schema. 


    
bancos de dados semi-estruturados, XML, XML Schema.


3     Internet has been expanding constantly day by day, and it is becoming even bigger the number of devices that enable people
to access the internet.The eletronic commerce is one that most helps to increase it. However, the information management is a
challenge for the data base world and in order to help to build up the data exchange through the internet, it has been developed the
XML, which aims at providing information about the structure and meaning of tha data in web pages. Therefore,it is necessary to use
the approaches to define the structure. This paper aims at describing one of these approaches: the XML Schema. 

· 
semi-structured databases, XML, XML Schemai


Îi Ôntrodução

Flexibilidade e portabilidade são características que vêm fazendo com que, nos
últimos anos, a eXtensible Markup Language (XML) seja aceita como um padrão para
representação, intercâmbio e manipulação de dados em aplicações para as mais diversas
áreas de negócios [2]. Representação de dados em aplicações de gerenciamento de
conteúdo, aplicações de transações bancárias e de publicação de conteúdo em intranets
são alguns exemplos de uso da XML. O crescimento na utilização da XML levou a um
aumento significativo no volume de dados que são armazenados, transportados e
recuperados nesse formato por aplicações no mundo todo. 

A XML (Extensible Markup Language) tem demonstrado uma linguagem


bastante adequada para representação e troca de dados e se estabelecendo como um
padrão para representação de dados semi-estruturados. O armazenamento e acesso a
estes dados pode ser facilitado quando se tem disponível uma estrutura que descreve
estes dados. Processadores de consulta normalmente definem sua rota de acesso na
recuperação dos dados baseados na estrutura que descreve estes dados.

Documentos XML podem ser legitimados contra estruturas específicas. Estas


estruturas devem prever quais elementos são encontrados nos documentos, a ordem em
que estes elementos podem aparcer, a hierarquização destes elementos, o tipo de dados
do conteúdo destes elementos, entre outros. Determinadas abordaganes para definição
de estruturas para documentos XML são o DTD (Document Type Definition) e o XML
Schema que é uma alternativa do DTD [1].

O objetivo deste artigo é descrever os recursos da aborgadem XML Schema,


mostrandos as vantagens e as definições.

Conceitos básicos sobre banco de dados semi-estruturados são apresentados na


seção 2. Na seção 3 são abordados conceitos sobre XML. Na seção 4 são apresentadas
as características da XML Schema.

2i Bancos Dados semi-estruturados

Dados armazenados em SGBDR¶s (Sistemas Gerenciadores de Banco de Dados


Relacionais) são considerados dados estruturados. O fator de maior relevância para a
afirmação acima está relacionado à sua estrutura, a qual é definida antes do
conhecimento dos dados (definição de esquema a priori). Portanto, espera-se pelo
menos que os dados sigam um mesmo padrão, diferentemente dos dados semi-
estruturados que não seguem. Os dados semi-estruturados, em sua maioria, possuem
como características principais uma estrutura irregular, dinâmica e bastante
heterogênea. Uma preocupação crescente entre pesquisadores na área de web semântica
está relacionada a forma com que os dados da internet estão sendo disponibilizados. A
linguagem XML vem se destacando como um mecanismo de fundamental importância e
tornando-se a cada dia um padrão para manipulação de dados semi-estruturados [6].

Segundo [3], os dados semi-estruturados podem ser representados através de um


grafo direcionado, conforme mostrado na Figura 1.



Figura Îi Representando dados semi-estuturados por meio de um grafo. Fonte: [3]

As características principais de dados semi-estruturados são [4]:

½ Definição  posteriori: os esquemas de dados semi-estruturados são frequentemente


definido após a existência dos dados, tomando como base uma análise de suas estruturas
particulares e da análise de similaridades e diferenças. Porém, não significa que exite
um esquema associado a um dado semi-estruturado.
½ Estrutura irregular: conjunto de dados sematicamente similares estão dispostos de
maneiras diferentes, podendo algumas ocorrências terem informações incompletas ou
adicionais em relação a outras. Um exemplo bem comum é o curriculum vitae, que
possui informações particulares para cada pessoa, não seguindo um padrão.
½ Estrutura implícita: na maioria das vezes existe uma estrutura básica pré-definida para
os dados, porém, essa estrutura está implícita na forma como os dados são
apresentados. Se faz necessário realizar uma computação para obter essa estrutura.
½ Estrutura extensa: a ordem de magnitude de uma estrutura para estes dados é grande,
uma vez que os mesmos são muito heterogêneos. Supondo diferentes formatos para
um curriculum vitae, uma união de atributos significativos em cada formato pode
produzir um esquema extenso;
½ Estrutura evolucionária: a estutura de dados está em constate mudança de seus valores.
Dados da Web apresentam este tipo de comportamento, uma vez que existe o interesse
em manter dados sempre atualizados. Um exemplo é um portal de notícias, que possui
informações atualizadas constantemente.
½ Distinção entre estrutura e dados não é clara: como a estrutura está embutida na
descrição dos dados, muitas vezes a distinção lógica entre estrutura e valor não é clara.
Pode-se ter, por exemplo, um endereço representado como um valor atômico em uma
ocorrência de dado (string) ou como um tipo definido pelo usuário (com atributos rua,
número e complemento) em outra ocorrência. Esta característica torna mais complicado
o projeto de um BD para tais dados.

As características de dados semi-estruturados diferem bastante das características de


dados mantidos em BDs tradicionais, como BDs relacionais. A tabela 1 apresenta estas
diferenças.

Dados tradicionais Dados semi-estruturados


Esquema predefinido Nem sempre há um esquema predefinido
Estrutura regular Estrutura irregular
Estrutura independente dos dados Estrutura embutida no dado
Estrutura reduzida Estrutura extensa
Estrutura fracamente evolutiva Estrutura fortemente evolutiva
Estrutura prescritiva Estrutura descritiva
Distinção entre estrutura e dado é clara Distinção entre estrutura e dado não é clara

‰abela Îi Diferenças entre dados tradicionais e dados semi-estruturados. Fonte: [4]

Ëi XML ± eXtensible Markup Language

A XML possui sua origem na SGML (Standard Generalized Markup Language),


um padrão especificado pela ISO 8879 em 1986, mais poderoso para criação de
linguagens que a própria XML [7]. O fator de maior relevância que levaram
desenvolvedores a pesquisarem e criarem novas linguagens mais leves, simples e que
fossem utilizadas na web foi a complexidade que envolve a utilização da SGML.
Entretanto, SGML ainda tem sido bastante utilizada por grandes empresas que buscam
desenvolver alternativas satisfatórias que possam auxiliar na realização de diferentes
funções [6].
XML é uma sigla que representa eXtensible Markup Language - linguagem de
marcação extensível [5]. Diferentemente da maioria das linguagens de marcação,
inclusive a própria HTML (HyperText Markup Language ± linguagem de marcação de
hipertexto), XML não apresenta um conjunto limitado de tags a serem utilizadas. Sua
característica flexível permite a seus usuários a definição de suas próprias tags e a
criação de suas próprias linguagens de marcação. Para a definição de um conjunto de
tags, XML oferece uma estrutura padrão que possibilita ao usuário a criação de sua
própria estrutura ou a utilização de outras estruturas já definidas. Uma considerável
vantagem da utilização da XML para criação de novas linguagens é o fato que todas as
linguagens baseadas na XML compartilham uma sintaxe básica comum (RDF, OWL,
XML Schema, MML)[8]. O código abaixo representa um documento XML:

A XML vem se tornando o principal padrão para respresentação de dados que


não possuem uma estrutura bem definida. Essa linguagem também pode ser utilizada
para representação e troca de documentos e informações entre sistemas e aplicações
diferentes, como exemplo, podemos citar uma aplicação de uma faculdade que obtem de
uma instituição financeira, um documento XML contendo quais os alunos realizaram o
pagamento em um determinado período, dando segurança ao banco na sua transação e
flexibilidade para o uso da informação na faculdade, portanto, é um elo comum de
entendimento entre ambos.

âi XML Schema

Uma vez que o XML permite o compartilhamento da informação independente


do tipo de aplicação usada para visualizar, é necessário identificar a estrutura do
documento XML em questão.

Portanto, a XML Schema Definition foi lançada em 1999 publicamente como


³working draft´ no site da W3C e definitivamente recomendada em novembro de 2000,
como linguagem oficial de definição de esquemas para documentos XML [9].

O objetivo de um XML Schema é definir os blocos de construção permitidos em


um documento XML. Um XML Schema [10]:
½ define elementos que podem aparecer em um documento
½ define atributos que podem aparecer em um documento
½ define que elementos são elementos filhos 
½ define a ordem dos elementos filhos 
½ define o número de elementos filhos
½ define se um elemento é vazio ou pode incluir texto
½ define tipos de dados para elementos e atributos
½ define valores padrão e fixos para elementos e atributos

Ou seja, A XML Schema permiti definir através de regras, a estrutura, o


conteúdo e a semântica de um documento.
A especificação de XML Schema assume que pelo menos dois documentos são
utilizados: um documento instância e pelo menos um documento esquema [11]. O
documento instância contém a informação propriamente dita e o documento esquema
descreve a estrutura e o tipo do documento instância. Fazendo uma analogia com
orientação a objetos, a distinção entre instância e esquema é semelhante a distinção
entre objeto e classe em ortientação a objetos, onde uma classe descreve um objeto
assim como um esquema descre um documento instância. Vejamos na figura abaixo:

Figura 2i Representação da Classe relacionado com objetos.

âiÎ Vantagens do XML Schema

A linguagem XML Schema foi desenvolvida com o objetivo de tornar uma


linguagem apropriada para sua utilização na definição de esquemas para documentos
XML. As vantagens da utilização da linguagemXML Schema para definição de
esquemas para documentos XML são percebida durante o desenvolvimento, onde se
detecta que XML schema possui uma rica hierarquia de tipo de dados, possui um maior
controle sobre o número de ocorrências de um determinado elemento, possibilita a
reutilização de código e possui uma maior compatibilidade com banco de dados
relacionais.

As principais vantagens do XML Schema são [10]:

½ XML Schemas são extensíveis para adições futuras:


½ XML Schemas são mais ricos e úteis que DTDs.
½ XML Schemas são escritos em XML
½ XML Schemas suportam tipos de dados.
½ XML Schemas suportam namespaces.

âi2 Sintaxe Básica

Uma especificação em XML Schema sempre inicia com a tag <schema> e


termina com a tag</schema>. Todas as declarações de elementos, atributos e tipos
devem ser inseridas entre estas duas tags[10]. Em XML Schema, o modelo de conteúdo
de um elemento pode ser especificado a partir da declaração de um tipo. Um tipo pode
ser Simples ou Complexo. Um tipo simples pode ser atribuído a um atributo ou a um
elemento simples, que possui somente texto e não possui elementos filhos. Já um tipo
complexo é utilizado para dizer quais são os subelementos permitidos para um
determinado elemento. Tipos simples são declarados com simpleType, e tipos
complexos com complexType. A declaração element liga um tipo a um nome de
elemento. Elementos podem ser declarados dentro de um tipo complexo ou abaixo de
schema. Neste último caso, são considerados elementos globais.

Um simpleType pode ser um dos tipos básicos definidos em XML Schema, tais
como string,integer, date, entre outros. Uma relação completa dos tipos simples
definidos por XML Schema pode ser encontrada em [12].

Um complexType define restrições para o modelo de conteúdo de um


determinado elemento, o que é feito através dos atributos para especificação de
cardinalidade minOccurs e maxOccurs, e dos delimitadores de grupos de elementos
sequence, all e choice. O atributo minOccurs especifica o número mínimo de vezes que
um subelemento pode aparecer, e maxOccurs, o número máximo. Os valores destes
atributos devem ser inteiros positivos, porém o atributo maxOccurs também permite o
valor unbounded [10]. No código XML Schema citado acima, a declaração

jxs:element name="arvore" maxOccurs="unbounded">




especifica que o elemento ARVORE não possui um limite máximo. A declaração dos
atributos minOccurs e maxOccurs não é obrigatória. Quando suprimido, são admitidos
os valores 1 (um) para minOccurs e 1 (um) para maxOccurs, respectivamente. Isso faz
com que o elemento em questão seja obrigatório.

O grupo sequence indica que os subelementos devem aparecer na instância


XML na mesma ordem em que foram declarados no esquema. O grupo choice diz que
somente um dos elementos declarados no grupo pode aparecer na instância, e o grupo
all estabelece que todos os elementos do grupo podem aparecer uma ou nenhuma vez, e
que eles podem aparecer em qualquer ordem.

Além desses tipos de conteúdo para um elemento, existem ainda mais dois. Um
elemento pode ser vazio, ou seja, não ter conteúdo algum. Para isso, basta declarar um
complexType sem nenhum elemento, e declarar um element daquele tipo. Um elemento
pode também ter um conteúdo misto, que mistura texto e subelementos. Isso pode ser
expresso através do atributo mixed.
Em XML Schema, atributos são declarados com attribute. Do mesmo modo que
uma declaração element liga um tipo simples ou complexo a um nome de elemento em
um contexto, uma declaração de atributo liga um tipo simples a um nome de atributo em
um contexto.


âiË População, Unicidade, Chaves e Referências

XML Schema permite indicar que o valor de um elemento ou atributo deve ser
único em um certo escopo [13]. Para indicar que o valor de um elemento ou atributo
particular deve ser único, utiliza-se o elemento unique, selecionando um conjunto de
elementos com selector, e depois indica-se que um elemento ou atributo deve ser único
dentro do escopo selecionado, através de field. Os elementos selector e Field contêm
expressões XPath [14]. Supondo-se que o tipo complexo tAutor tivesse um atributo
COD_AUTOR e que ele devesse ser único, sua declaração seria como segue.


<unique name="UnicidadeCodigoAutor">

<selector>PUBLICACOES/PUBLICACAO/AUTOR</selector>

<field>@COD_AUTOR</field> 

</unique> 

O conceito de chave em XML Schema também assegura que um determinado


valor deve ser único. A única diferença é que esse valor pode ser referenciado em um
outro lugar, permitindo desse modo que o esquema expresse restrições de integridade.
Esses dois conceitos são declarados através dos elementos key e keyref,
respectivamente, e sua sintaxe é semelhante à declaração de unicidade, embora se
utilizem os elementos key e keyref ao invés de unique.


âiâ Namespaces

Um esquema especificado em XML Schema pode ser visto como um conjunto de


declarações de tipos e elementos cujos nomes pertencem a um namespace [15]. Todo
esquema em XML Schema deve definir um único namespace, sendo usual o formato de
URL (Uniform Resource Locator) para a sua identificação.

O uso de namespaces aumenta a flexibilidade de XML Schema, permitindo a


reutilização de definições feitas em outros esquemas. A utilização de um tipo definido
em outro esquema é possível através da sua declaração e da associação de um prefixo a
ele. Segue abaixo um exemplo de Namespaces:


<schema xmlns:xsd="http://www.w3.org/1999/XMLSchema"

xmlns:grp="http://meunamespace.com/Arvore"

targetNamespace="http://meunamespace.com/Arvore">

§i Conclusões e tendências futuras

Dados semi-estruturados em conjunto com XML é um tema atual de pesquisa na


área de BDs, impulsionado pela grande disponibilidade e expansão de dados na Web. A
necessidade de representar a estrutura dos dados em XML de forma flexível surgiu a
XML Schema.

Este artigo apresentou o XML Schema como uma alternativa bem flexível e bem
estruturada para a definição de estrutura, conteúdo e semântica de um documento XML.

Ao analisar as características, nota-se a grande semelhança da definição do XML


Schema com a linguagem XML, facilitando para o desenvolvedor e para o leitor, um
fácil entendimento. Outra vantagem XML Schema, é que ele permite ser utilizado para
a validação de arquivos, possibilitando ao usuário verificar se o seu documento XML
está de acordo com as definições descritas no XML Schema. Com essas vantagens, a
utilização do XML Schema vem crescendo bastante, dando maior flexibilidade e
qualidade nos documentos XML.

Uma melhoria para a utilização do XML Schema, seria o desenvolvimento de


uma ferramenta que apartir de um documento XML, gerasse um documento XML
Schema, facilitando o desenvolvimento do mesmo.


§i Referências Bibliográficas 


[1] Introduction to XML Schema

Disponível em: <http://www.w3schools.com/schema/schema_intro.asp>

Acesso em: 27 de abril de 2007 

[2] XML, 200§ Extensible Markup Language (XML).

Disponivel em: < http://www.w3.org/XML>.


Acesso em: 27 de abril de 2007 


[3] ELMASRI, Ramez; NAVATHE, Shamkant B; Sistemas de Banco de Dados -


fundamentos e aplicacoes. Traducao Tereza Cristina Padilha de Souza. Rio de Janeiro:
LTC, 2002.

[4] MELLO,Ronaldo, DORNELES, Carina, KADE, Adrovane, BRAGANHOLO,


Vanessa, HEUSER, Carlos, Dados Semi-Estruturados.

Disponível em: <http://www.dcc.ufrj.br/~braganholo/artigos/tutorial.pdf>

Acesso em: 29 de abril de 2007. 




[5] World Wide Web Consortiumi Extensible Markup Language (XML).

Disponível em <http://www.w3.org/XML/>. 

Acesso em: 29 de abril de 2007. 

X  PINTO Marcus, SACCOL Deise, Um estudo sobre esquemas para documentos


XML.


Disponível em:

<www.ulbra to.br/ensino/43020/artigos/anais2003/anais/estudoesquemas-
encoinfo200Ë.pdf>

Acesso em: 28 de abril de 2007. 

[7] WIKIPEDIA, SGML

Disponível em: <http://pt.wikipedia.org/wiki/SGML>

Acesso em: 29 de abril de 2007. 

[8]PINTO Marcus, Uma proposta para integração de esqumeas para documentos


XML
Disponível em :

<www.ulbra-to.br/ensino/43020/artigos/relatorios20032/TCC/Esquemas_XML.pdf>

Acesso em: 29 de abril de 2007. 

[9]Understanding XML Schemas

Disponível em: <http://www.xml.com/pub/a/1999/07/schemas/index.html?page=1> 

Acesso em: 01 de maio de 2007.

[10] Tutorial XML Schema 

Disponível em: <http://www.dicas-l.com.br/dicas-l/20050326.php> 

Acesso em: 01 de maio de 2007.

X Esquema XML, Parte 0: Princípios Básicos, 2ª. Edição 

Disponível em: <http://desenaviegas.com/XML_Primer(1).htm>

Acesso em: 01 de maio de 2007 

[12] W3C Consortium. Xml schema part 2: Datatypes. W3C Candidate Recomendation,
2000. 

Disponível em: <http://www.w3.org/TR/2000/CR-xmlschema-2-20001024/> 

Acesso em: 01 de maio de 2007.




[13] W3C Consortium. Xml path language. W3C Recomendation, November 1999. 

Disponível em: <http://www.w3.org/TR/xpath.html.>

Acesso em: 01 de maio de 2007.


[14] W3C Consortium. Xml schema part 0: Primer. W3C Candidate Recomendation,
2000. 

Disponível em: <http://www.w3.org/TR/xmlschema-0/.> 

Acesso em: 01 de maio de 2007.

[15] W3C Consortium. Namespaces in xml. W3C Recomendation, 1999. 

Disponível em: <http://www.w3c.org/TR/1999/REC-xml-names-19990114/.> 

Acesso em: 01 de maio de 2007.

Vous aimerez peut-être aussi