• Nenhum resultado encontrado

Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

N/A
N/A
Protected

Academic year: 2021

Share "Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML"

Copied!
21
0
0

Texto

(1)

Uma Ferramenta para Gera¸

ao de

Esquemas XML a partir de Documentos

XML

Florian´opolis - SC 2006

(2)

Susane Schmidt

Uma Ferramenta para Gera¸

ao de

Esquemas XML a partir de Documentos

XML

Trabalho apresentado como requisito para gradua¸c˜ao em Bacharelado em Ciˆencias da Computa¸c˜ao

Orientador:

Ronaldo S. Mello

Universidade Federal de Santa Catarina - UFSC Departamento de Inform´atica e Estat´ıstica - INE

Florian´opolis - SC 2006

(3)

Lista de Figuras

1 Introdu¸c˜ao p. 4

2 XML - eXtensible Markup Language p. 6

3 Esquemas p. 9

3.1 DTD - Document Type Description . . . p. 9 3.2 XML Schema . . . p. 11

4 Trabalhos Relacionados p. 13 4.1 XTRACT: Um sistema para extra¸c˜ao de DTDs a partir de documentos

XML . . . p. 13 4.2 DataGuides: Enabling Query Formulation and Optimization in

Semis-tructed Databases . . . p. 14 4.3 Extra¸c˜ao de esquemas de dados XML: Uma Abordagem de Gram´atica

de Inferˆencia . . . p. 15

5 Conclus˜ao p. 19

Anexo A -- Codigos p. 20

(4)

1 Estrutura XML . . . p. 8 2 Exemplo do documento XML com DTD . . . p. 8 3 Estrutura XML . . . p. 8 4 Sintaxe e exemplo de uma declara¸c˜ao de atributo . . . p. 10 5 Sintaxe e exemplo de uma declara¸c˜ao de entidade . . . p. 11 6 Elemento Simples de XML Schema . . . p. 11 7 Exemplo Elemento Complexo de XML Schema . . . p. 12 8 Exemplo Elemento Complexo de XML Schema . . . p. 12 9 Exemplo documento XML Campeonato Europel de Futebol . . . p. 16 10 Exemplo XML Schema Campeonato Europel de Futebol . . . p. 17

(5)

1

Introdu¸

ao

XML (Extensible Markup Language) emergiu como um novo padr˜ao para troca e ma-nipula¸c˜ao de documentos estruturados. (1) Este fato ocorreu devido a grande quantidade de vantagens que este padr˜ao de linguagem representa. O formato XML ´e alto-descritivo; documentos XML formam cole¸c˜oes de elementos aninhados hierarquicamente; a estrutura interna destes documentos pode ser padronizada em esquemas que auxiliam na orga-niza¸c˜ao, clareza e utiliza¸c˜ao destes. Por estes e demais motivos a sociedade de bancos de dados tem investido cada vez mais no estudo de XML e novas t´ecnicas e ferramentas vem sendo desenvolvidas.

A especifica¸c˜ao de um esquema torna-se importante pois permite a integra¸c˜ao e va-lida¸c˜ao de dados XML baseados no seu esquema. A partir desta especifica¸c˜ao ´e poss´ıvel verificar a equivalˆencia dos dados, e ent˜ao unir documentos com o mesmo conte´udo ge-rando arquivos mais completos e corretos. Outra vantagem ´e que a existˆencia de um esquema facilitar´a o mapeamento de dados XML para um esquema relacional e tamb´em tornar´a eficiente a formula¸c˜ao, otimiza¸c˜ao e o planejamento de queries.

Apesar de ser muito importante, a maioria dos documentos XML ainda n˜ao possui um esquema acompanhando, e mesmo que o possu´ırem, ´e prov´avel que os esquemas n˜ao sejam idˆenticos.Este fator levou-nos a pensar numa ferramenta que pudesse solucionar, mesmo que parcialmente, este problema, j´a que a integra¸c˜ao de dados tornou-se fundamental devido a grande quantidade de dados que circulam na Web atualmente.

Algumas ferramentas j´a foram desenvolvidas no sentido de tentar sanar o problema anteriormente mencionado. Por´em, elas geram o esquema a partir de um ´unico documento XML. O nosso objetivo ´e implementar um software que possibilite ao usu´ario entrar com v´arios documentos de mesma autoria e a partir disto gerar um esquema ´unico e completo. No entanto, um dos maiores problemas na forma¸c˜ao de um esquema est´a relacionado a alcan¸car um esquema que consiga ser completo e compacto, j´a que estas s˜ao caracter´ısticas indiretamente proporcionais: tendem a ser ou muito volumosas ou n˜ao s˜ao intuitivas. (2)

(6)

Encontrar um esquema que consiga balancear estas duas caracter´ısticas ´e mais um dos problemas que tentaremos solucionar.

(7)

2

XML - eXtensible Markup

Language

XML, padr˜ao popular do cons´orcio W3C, surgiu como o novo padr˜ao para troca, re-presenta¸c˜ao e manipula¸c˜ao de documentos estruturados (1). Como o pr´oprio nome diz, ´e uma linguagem de marca¸c˜ao, com formato aberto, isto ´e, o pr´oprio desenvolvedor cria os elementos que ser˜ao utilizados para construir o documento (3). Pela sua versatilidade e capacidade de extens˜ao, XML ´e, na verdade, uma meta-linguagem que serve de defini¸c˜ao de novas linguagens de marca¸c˜ao. (4) Um documento XML ´e onde s˜ao definidos os dados XML (5). Estes documentos XML formam uma cole¸c˜ao de elementos aninhados hierar-quicamente (1) com instru¸c˜oes especiais, chamadas tags que servem de delimitadores de informa¸c˜ao. (5). O conceito de tags ´e tamb´em utilizado na linguagem HTML.Apesar das semelhan¸cas apresentadas nessas duas linguagens, existem diferen¸cas fundamentais. Uma delas ´e em rela¸c˜ao ao uso das tags, que apresentam-se pr´e-definidas em um documento HTML, enquanto possui valor semˆantico na linguagem XML. Outra diferen¸ca importante est´a relacionada com a fun¸c˜ao espec´ıfica de cada linguagem. Enquanto a fun¸c˜ao da lingua-gem HTML est´a dividida entre estruturar o documento e disponibiliz´a-lo no navegador, XML preocupa-se com a estrutura¸c˜ao da informa¸c˜ao.(3)

Cada documento XML possui uma estrutura l´ogica e f´ısica. A estrutura f´ısica per-mite componentes de documentos chamados entidades, que podem ser nomeadas ou ar-mazenadas separadamente. (4) A estrutura l´ogica ´e composta de declara¸c˜oes, elementos, coment´arios, enfim, tudo o que estiver indicado no documento atrav´es de marca¸c˜ao.(6)

A figura 1 mostra um pouco da estrutura de um documento XML. A caracter´ıstica que determina o esqueleto de documento XML est´a ligada `a no¸c˜ao de esquema, que pode opcionalmente acompanhar um documento XML. (2) Um esquema tem como fun¸c˜ao descrever a estrutura interna de um documento XML.Existem dois tipos de esquemas: DTD (representado na figura 2) e XML Schema(figura 3.

(8)

<note>

<date>2006-08-01</date> <to>Professor</to>

<from>Keli e Susane</from> <heading>Note</heading>

<body>N~ao esque¸ca de dar uma boa nota!</body> </note>

Figura 1: Estrutura XML

<?xml version-’’1.0’’?> <!DOCTYPE note [

<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>

<note>

<to>Professor</to>

<from>Keli e Susane</from> <heading>Lembrete</heading>

<body>N~ao esque¸ca de dar uma boa nota!</body> </note>

Figura 2: Exemplo do documento XML com DTD

COLOCAR EXEMPLO DE XML SCHEMA <to>Professor</to>

<from>Keli e Susane</from> <heading>Lembrete</heading>

<body>N~ao esque¸ca de dar uma boa nota!</body> </note>

(9)

3

Esquemas

Esquemas s˜ao a forma como um documento XML pode ser estruturado. Atrav´es do uso destas estruturas diferentes desenvolvedores podem interagir integrando duas ou mais cole¸c˜oes heterogenias de dados no formato XML, isso devido ao fato de diferentes documentos poderem possuir o mesmo esquema. Ferramentas que unam dois ou mais arquivos XML vem sendo estudadas por pesquisadores e desenvolvedores a declara¸c˜ao de esquemas torna-se uma maneira organizada e eficiente para que possa haver a fus˜ao de tais documentos.

Atualmente existem alguns tipos diferentes de esquemas para XML: DSD, Schema-tron, DTD e XML Schema. Os dois ´ultimos s˜ao os esquemas mais utilizados pela comu-nidade, por isso esses possu´ıram prioridade em nossos estudos.

3.1

DTD - Document Type Description

A ferramenta DTD ´e um conjunto de regras que define as instru¸c˜oes que ser˜ao enviadas ao analisador sint´atico para o documento que est´a para ser analisado.(3)Essas regras definem o tipo dos elementos que podem ser usados e definem a hierarquia e granularidade do texto. (4)

Um DTD possui a capacidade de definir o conte´udo de um elemento no formato de express˜oes regulares (1). Projetado inicialmente para gerenciamento de aplica¸c˜oes (2), DTD permite a valida¸c˜ao de documentos XML, torna eficiente o armazenamento de dados XML, j´a que facilita a integra¸c˜ao de dados atrav´es do esquema, a formula¸c˜ao, otimiza¸c˜ao e processamento de consultas sobre documentos XML. (2)

Um DTD ´e composto por declara¸c˜oes. Cada declara¸c˜ao est´a de acordo com o formato de marca¸c˜ao0 <! . . . >0 e ´e classificado pelos tipos: ELEMENT (defini¸c˜ao de elementos), ATTLIST (defini¸c˜ao de atributos), ENTITY (defini¸c˜ao de entidades) e NOTATION (defini¸c˜ao de tipos de dados). Essas declara¸c˜oes s˜ao agrupadas juntas dentro de um

(10)

DTD.(4)

Os elementos constroem os blocos principais. Eles podem conter texto, outros ele-mentos, ou estarem vazios.(7) Na declara¸c˜ao do elemento ´e poss´ıvel tamb´em declarar a quantidade de ocorrˆencias do mesmo elemento:

Uma ´unica ocorrˆencia: <!ELEMENT element-name (child-name)>

M´ınimo de uma ocorrˆencia: : <!ELEMENT element-name (child-name+)> Zero ou mais ocorrˆencias: <!ELEMENT element-name (child-name*)> Zero ou nenhuma ocorrˆencia: <!ELEMENT element-name (child-name?)>

Um ou outro contexto: <! ELEMENT element-name(child−name1|child−name2) >

J´a os atributos contˆem informa¸c˜oes extras sobre os elementos. Est˜ao sempre locali-zados dentro de uma tag de um elemento e vem sempre aos pares (nome/valor), como pode ser observado na figura 4. (7) O primeiro parˆametro na declara¸c˜ao ser´a o nome seguido do tipo do atributo que pode variar dentro das seguintes possibilidades: CDATA, NMTOKEN, NMTOKENS, ENTITY, ENTITIES, ID, IDREF, IDREFS, notatione name group. (4) O parˆametro final ´e o valor que especifica o valor que ser´a atribu´ıdo ao texto quando o autor do documento n˜ao entra com o valor. (4) Os valores que podem ser usados s˜ao: #REQUIRED(o valor do atributo deve estar incluso no elemento), #IMPLIED (O atributo n˜ao precisa estar incluso) e #FIXED (O valor do atributo ´e fixo).(7) <!ATTLIST element-name attribute-name attribute-type defaul-value> Exemplo:

DTD: <!ATTLIST pagamento type (cheque|dinheiro)’’dinheiro’’> XML: <pagamento type=’’cheque’’> ou

<pagamento type=’’dinheiro’’>

Figura 4: Sintaxe e exemplo de uma declara¸c˜ao de atributo

As entidades, 5 s˜ao vari´aveis usadas para definir textos comuns. Uma entidade ´e utilizada para evitar a repeti¸c˜ao de textos similares. Isto reduzir´a a carga de trabalho, far´a com que apare¸cam menos erros e facilitar´a o entendimento da estrutura DTD. (4) A nota¸c˜ao identifica tipos bin´arios externos espec´ıficos e passa a informa¸c˜ao para a aplica¸c˜ao.

(11)

XML: <livro>&livro-name;&autor;</livro>

Figura 5: Sintaxe e exemplo de uma declara¸c˜ao de entidade

3.2

XML Schema

O esquema XML SCHEMA foi aprovado pela W3C em 16 de mar¸co de 2001. Surgiu para ser o sucessor de esquemas DTDs por isso possu´ı todas as funcionalidades deste e ainda caracter´ısticas espec´ıficas que o fazem superior. A inten¸c˜ao (proposta) de um XML SCHEMA ´e definir a constru¸c˜ao de blocos de um documento XML(6). Diferente de DTDs, este tipo de esquema ´e estruturado seguindo o mesmo formato sint´atico de XML esse fato possibilita a utiliza¸c˜ao de processadores XML para fazer a valida¸c˜ao dos esquemas escritos em XML SCHEMA (3), bem como a manipula¸c˜ao de um SCHEMA com XML DOM (6).

Duas outras importantes caracter´ısticas ausentes nos DTDs e presentes neste esquema s˜ao a possibilidade de estender documentos para futuras adi¸c˜oes e a capacidade de suportar namespaces. Para que tais caracter´ısticas fossem poss´ıveis os componentes sint´aticos de SCHEMA apresentam algumas peculiaridades que o fazem mais complexo e ao mesmo tempo mais poderoso do que os demais esquemas existentes.

Os elementos declarados em XML SCHEMA podem ser do tipo simples ou complexo. Os primeiros s˜ao os elementos formados somente por texto como podemos observar na figura 6. O segundo tipo s˜ao aqueles que possuem outros elementos aninhados dentro de sua estrutura e/ou atributos que determinam o comportamento dos dados inseridos no documento, exemplo na figura 7.

<xs:element name=´firstname´ type=´xs:string´>

Figura 6: Elemento Simples de XML Schema

Algumas das principais vantagens de XML SCHEMA ocorrem por causa da declara¸c˜ao de atributos. Devido `a existˆencia destes ´e poss´ıvel defini¸c˜ao de diferentes classes de dados (String, Decimal, Integer, Boolean, Date e Time). Outra contribui¸c˜ao importante ´e a possibilidade de criar restri¸c˜oes semelhantes as utilizadas em modelos relacionais tais como: conte´udo, tamanho, valor, etc.

(12)

<xs: element name = ´employee´> <xs:complexType>

<xs:sequence>

<xs:element name=´firstname´ type=´xs:string´/> < xs:element name=´lastname´ type=´xs:string´> </xs:sequence >

</xs:complexType> </xs:element>

Figura 7: Exemplo Elemento Complexo de XML Schema

A figura 8 ´e um exemplo de um XML Schema com todas as caracter´ısticas presentes nestes esquemas: elementos complexos, restri¸c˜oes, atributos, namespace, dentre outras. <?xml version=’1.0’ encoding=’ISO-8859-1’>

<xs:schema xmlns:xs=’http://www.w3.org/2001/XMLSchema elementFormDefault=’qualified’’> <xs: element name = ’persons’>

<xs:complexType> <xs:sequence>

<xs:element name=´person´ maxOccurs=’unbounded’> <xs:complextype>

<xs:sequence>

< xs:element name=’full_name’ type=´xs:string´/> < xs:element name=’child_name’ type=´xs:string´ minOccurs=’0’ maxOccurs=’5’/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence > </xs:complexType> </xs:element> </xs:schema>

(13)

4

Trabalhos Relacionados

A partir dos estudos realizados com base nos trabalhos relacionados a seguir, ser´a escolhido as melhores e mais eficientes t´ecnicas, e estas poder˜ao ser adaptadas para o desenvolvimento da ferramenta desejada.

4.1

XTRACT: Um sistema para extra¸

ao de DTDs

a partir de documentos XML

Este trabalho busca encontrar o DTD perfeito, combinando precis˜ao e intui¸c˜ao, atrav´es de uma seq¨uˆencia de passos que envolvem a procura de padr˜oes nas seq¨uˆencias de entrada (2), seguindo de uma fatora¸c˜ao dos poss´ıveis candidatos gerados no passo anterior e con-cluindo com a aplica¸c˜ao do princ´ıpio da Descri¸c˜ao do Tamanho M´ınimo.

No primeiro passo, chamado de generaliza¸c˜ao, ser´a empregado algoritmos heur´ısticos para encontrar padr˜oes em cada seq¨uˆencia de entrada e ent˜ao substitu´ı-las por express˜oes regulares apropriadas para produzir candidatos mais gerais. O principal objetivo deste passo ´e introduzir metacaracteres (∗, +, ?, ...) para produzir sub-express˜oes que gerem os padr˜oes observados nas seq¨uˆencias de entrada.(2) Isto ´e realizado atrav´es da descoberta de freq¨uˆencias e de ocorrˆencias pr´oximas de subseq¨uˆencias e s´ımbolos em cada seq¨uˆencia de entrada.(2) Por exemplo, se tivermos como entrada a seq¨uˆencia abababcababc, este passo vai verificar que o a seq¨uˆencia ab utilizado dois campos e substituir´a por express˜ao A1. Como resultado teremos A1cA1c, e finalmente ser´a substitu´ıdo pelo termo ((ab) ∗ c)

O segundo passo, conhecido como Fatora¸c˜ao, herda os candidatos a DTD obtidos no passo anterior e tenta torn´a-los mais concisos atrav´es da aplica¸c˜ao de t´ecnicas adap-tadas apropriadamente da literatura de otimiza¸c˜ao l´ogica.(2) A fatora¸c˜ao ´e usada para tentar obter DTD de menor tamanho e conseq¨uentemente, melhor qualidade. Supondo que temos como entrada a seq¨uˆencia I = ab, abab, ac, ad, bc, bd.bbd, bbbbe e o m´odulo da generaliza¸c˜ao gerou o seguinte resultado: G = I ∪ (ab)∗, (a|b)∗, b ∗ d, b ∗ e. Atrav´es da

(14)

fatora¸c˜ao teremos F = G ∪ (a|b)(c|d), b ∗ (d|e) e ent˜ao, isto ser´a passado para o pr´oximo passo que ´e respons´avel por definir qual, entre todas as op¸c˜oes geradas, ser´a o DTD ´otimo. No terceiro e mais importante passo ser´a aplicado o princ´ıpio da Descri¸c˜ao do tama-nho M´ınimo. Este mecanismo ir´a classificar cada candidato a DTD com base no custo atribu´ıdo a cada DTD. Este custo depender´a do tamanho da teoria, em bits, que ser´a o respons´avel para encontrar um DTD conciso, e do tamanho dos dados, em bits, que defi-nir´a a precis˜ao do candidato.(2) Por exemplo, considerando a entrada I = ab, abab, ababab e considerando que entre os resultados encontrados estejam (1) ab|abab|ababab e (2) (ab)∗. No c´alculo do custo do resultado (1) teremos 17, sendo 14 para codificar o DTD (quanti-dade de caracteres) +3 para codificar a seq¨uˆencia de entrada (1 caracter para cada posi¸c˜ao de entrada). J´a no c´alculo do resultado (2) foi obtido 8, sendo 5 para a codifica¸c˜ao do DTD e 3 para codifica¸c˜ao da seq¨uˆencia de entrada (necess´ario para especificar o n´umero de repeti¸c˜oes do termo ab para cada seq¨uˆencia). (2) Neste caso, o DTD escolhido seria o n´umero 2, pois ele conseguiu captar um DTD que consegue abranger toda a seq¨uˆencia de entrada e, ao mesmo tempo, ´e compacto.

Segundo o artigo, os resultados obtidos na utiliza¸c˜ao deste sistema s˜ao satisfat´orios, j´a que sempre consegue encontrar um DTD ´otimo ou muito pr´oximo disto. Por´em, ainda n˜ao foram feitos estudos para ampliar o sistema para capta¸c˜ao de um XML Schema, que ´e, atualmente, o esquema recomendado pela W3C.

4.2

DataGuides: Enabling Query Formulation and

Optimization in Semistructed Databases

O DataGuide foi introduzido para aproveitar os benef´ıcios de um esquema. Os Data-Guides s˜ao um sum´ario estrutural de banco de dados semi-estruturados concisos e exatos, que agem como esquemas dinˆamicos. Gerados a partir de um banco de dados, s˜ao utili-zados para formula¸c˜ao de queries, armazenamento de informa¸c˜ao e tamb´em possilitam a otimiza¸c˜ao das queries.(8)

Este artigo baseia-se no Object Exchange Model (OEM). Em OEM, cada objeto cont´em um objeto identificador e um valor, que pode ser atˆomico ou complexo. Tamb´em baseia-se na Linguagem de Lore, criada na Universidade de Stanford, e na convers˜ao de autˆomatos finitos n˜ao-determin´ısticos (AFND) para autˆomatos finitos determin´ısticos(AFD).

DataGuides descrevem um caminho ´unico rotulado com exatamente uma fonte, sem levar em conta o n´umero de vezes que o DataGuides aparecesse na fonte. Para garantir

(15)

OEM. (8)

4.3

Extra¸

ao de esquemas de dados XML: Uma

Abor-dagem de Gram´

atica de Inferˆ

encia

O artigo de Boris Chidlovskii enfatiza a importˆancia de se possuir uma defini¸c˜ao de esquema para documentos XML e prop˜oe uma alternativa para a extra¸c˜ao deste esquema atrav´es do relacionamento sint´atico de documentos XML com linguagens Livre de Con-texto, ou melhor, uma extens˜ao dessas linguagens.

Atrav´es de m´etodos desenvolvidos para este tipo de gram´atica e tamb´em para as regulares foi poss´ıvel criar um algoritmo baseado em Gram´aticas Livre de Contexto de Inferˆencia para realizar a extra¸c˜ao do XML SCHEMA de documentos XML. O autor defende seu ponto de vista alegando que dados XML s˜ao equivalentes a um exemplo estruturado na teoria da Inferˆencia Gramatical.

No algoritmo sugerido por este trabalho primeiramente o documento XML ´e mapeado para um formato de uma linguagem livre de contexto. Posteriormente m´etodos de com-para¸c˜ao seguidos de m´etodos de fatora¸c˜ao e consecutivos merges de elementos mapeados possibilitam a obten¸c˜ao de uma estrutura ainda no formato de gram´atica que finalmente ser´a uma aproxima¸c˜ao do esquema do documento XML. O algoritmo pode ser descrito atrav´es dos seguintes passos:

1) Representar documentos XML como um conjunto estruturado de dados;

2) Induzir uma gram´atica livre de contexto estendida (G) para o documento XML em quest˜ao (I);

2.1) Criar o conjunto inicial de n˜ao terminais N;

2.2) Fundir os elementos n˜ao-terminais de N que possuem conte´udo e contexto simi-lares;

2.3) Determinar tipos de dados para os terminais em G;

3) Transformar o resultado da Gram´atica Livre de Contexto Estendida G em uma defini¸c˜ao XML SCHEMA S.

(16)

Para melhor entendimento do algoritmo ser´a demonstrado, atrav´es de um exemplo, os resultados obtidos a cada passo, possibilitando assim uma melhor visualiza¸c˜ao da id´eia do autor do artigo. A figura 9 possu´ı um documento XML que contem informa¸c˜oes sobre clubes do futebol europeu e sua situa¸c˜ao dentro dos campeonatos que j´a disputaram. <teams>

<team><name>Juventus</name> <ChLeague>

<year>1999</year><result>semi-final</result>

<year>1997</year><result>final</result> ...//5 success in total </ChLeague>

<UEFA>

<year>1995</year><result>final</result> ... // 7 success in total </UEFA>

</team>

<team><name>Manchester United</name> <ChLeague>

<year>1999</year><result>winner</result> ... // 4 success in total </ChLeague>

</team>

... // 46 teams in total </teams>

Figura 9: Exemplo documento XML Campeonato Europel de Futebol

A figura 10 mostra como seria o correto XML Schema correspondente ao arquivo dos clubes de futebol europeus.

A figura 9 representa o primeiro passo do algoritmo. A seguir ´e necess´ario que se fa¸ca o mapeamento dos elementos presentes no documento XML para a GLCE G. A correspondente GLCE ´e dada por G = (T,N,D,&,Start) onde T={teams, team, name, ...}, N = {Start, TeamType, ListType}, D = {String, PositiveInteger}, and & contem a seguinte regra de produ¸c˜ao:

Start -> teams:TeamsType

TeamsType -> (team:TeamType) [0:500]

TeamType -> name:String (ChLeague:ListType) [0:1] (UEPA: ListType) [0:1] ListType -> (year:PositiveInteger result:String) [1:100]

O pr´oximo passo do algoritmo ´e a gera¸c˜ao do conjunto inicial de n˜ao terminais. Para melhor visualiza¸c˜ao o autor associou o tipo gen´erico Any para os elementos simples e um r´otulo para cada elemento complexo do documento XML. Logo o resultado do passo 2.1 do algoritmo ´e:

(17)

<complextype name = ´TeamType´>

<element name = ´name´ type = ´String´ />

<element name = ´ChLeague´ type = ´ListType´ minOccurs = ´0´ maxOccurs = ´1´/> <element name = ´UEFA´ type = ´ListType´ minOccurs = ´0´ maxOccurs = ´1´/> </complextype>

<complextype name=´ListType´>

<group minOccurs = ´1´ maxOccurs=´100´>

<element name = ´year´ type = ´PositiveInteger´/> <element name = ´result´ type = ´String´/></group> </complextype>

</element>

Figura 10: Exemplo XML Schema Campeonato Europel de Futebol

Start -> team:A1 team: A2 team: A3 ... (46 teams in total) A1 -> name: Any ChLeague: A47 UEFA: A48

A2 -> name: Any ChLeague: A49 A3 -> name: Any

...

A47 -> year: Any result: Any ... // (7 year-result pairs in total) A48 -> year: Any result: Any ... // (5 pairs)

A49 -> year: Any result: Any ... // (4 pairs) ...

Ap´os obtidos os n˜ao terminais ´e necess´ario fazer a fus˜ao entre os elementos similares. O primeiro n˜ao terminal a receber a sofrer a fus˜ao ´e o Start, pois suas produ¸c˜oes possuem ambig¨uidade com o terminal team. O resultado da fus˜ao continha termos amb´ıguos com terminais ChLeague, portanto foram fundidos os n˜ao-terminais A47 e A49. Estas fus˜oes geraram o seguinte conjunto de produ¸c˜oes:

Start -> team:A1 team:A1 team:A1 ... (46 teams in total) A1 -> name: Any ChLeague: A47 UEFA: A48

A1 -> name: Any ChLeague: A47 A1 -> name: Any

A47 -> year: Any result: Any ... // (7 pairs) A48 -> year: Any result: Any ... // (5 pairs)

(18)

A47 -> year: Any result: Any ... // (4 pairs) ...

Observa-se neste resultado que os n˜ao-terminais A47 e A48 est˜ao repetindo os pares de elementos year e result, por isso ser˜ao fundidos. O resultado obtido ap´os as fus˜oes ´e uma Gram´atica Livre de Contexto com os n˜ao-terminais que geram diferentes produ¸c˜oes.

Start -> (team:A1) [46]

A1 -> name: Any ChLeague: A47 UEFA: A47 | name: Any ChLeague: A47 | ... A47 -> (year: Any result: Any) [7] | year: Any result: Any)[5] |...

Como ´ultimo passo do algoritmo referente a produ¸c˜ao da gram´atica que servir´a de base para a obten¸c˜ao do XML Schema s˜ao analisadas as produ¸c˜oes e atrav´es de m´etodos ( ainda n˜ao estudados a fundo) ´e obtido a seguinte gram´atica:

Start -> (team: A1) [46]

A1 -> name: String (ChLeague: A4) [0:1] (UEFA:A4) [0:1] A4 -> (year: UnsignedShort result: String) [0:8]

(19)
(20)
(21)

Referˆ

encias

1 CHILDLOVSKII, B. Schema extraction from xml data: A grammatical inference approach.

2 GAROFALAKIS, M. et al. Xtract: A system for extracting document type descriptors from xml documents.

3 JR., J. R. T. XML Schema. [S.l.]: Visual Books Ltda, 2002. 4 BRADLEY, N. The xml schema companion. 2003.

5 FRANTZ, A. P. Um processo de convers˜ao de xml schemas para um conceito conceitual.

6 W3C. World Wide Web Consortium. Acesso em 10/2006. Dispon´ıvel em: <www.w3c.org>.

7 W3SCHOOL. w3cschool.com. Acesso em 10/2006. Dispon´ıvel em: <www.w3cschool-.com>.

8 GOLDMAN, R.; WIDOM, J. Dataguides: Enabling query formulation and optimization in semistructed databases.

Referências

Documentos relacionados

 Projeto: Nanoemulsões à base de óleo de copaíba (Copaifera multijuga Hayne): Desenvolvimento tecnológico, estudo de permeação cutânea, avaliação da atividade

3 — Por despacho do Secretário -Geral, nos departa- mentos das estruturas comuns podem ser criadas áreas, unidades orgânicas de nível de divisão, até um limite má- ximo definido

O baiano Renato Pereira dos Santos, 26 anos, é brasileiro desses que se encontra em qualquer ponto de ônibus. Há quatro anos, viajou a São Paulo com uma mala de couro para tentar

Tendo em vista o debate de longa data sobre currículos adequados para a educação na primeira infância – ou seja, entre aqueles que defendem uma abordagem construtivista centrada

artigo 10.º da Lei 12-A/2008, mantêm os regimes de cessação da relação jurídica de emprego público e de reorganização de serviços e colocação de pessoal em situação

A pesquisa bibliográfica elaborada segundo “[...] um conjunto ordenado de procedimentos de busca por soluções, atento ao objeto de estudo e que, por isso, não pode ser

Animador e funcionários e voluntários Material de desgaste --- “cantinho das habilidades” Sala de convívio Diariamente, durante todo o ano “O cantinho da leitura”

Considera como risco biológico a probabilidade da exposição ocupacional a agentes biológicos (microrganismos, geneticamente modificados ou não; as culturas de células; os