introdução à tecnologia xml

76
Introdução à Introdução à Tecnologia XML Tecnologia XML Ronaldo dos Santos Mello e-mail: [email protected] http://www.inf.ufsc.br/~ronaldo http://www.grupobd.inf.ufsc.br UFSC – CTC - INE

Upload: chana

Post on 06-Jan-2016

86 views

Category:

Documents


9 download

DESCRIPTION

UFSC – CTC - INE. Introdução à Tecnologia XML. Ronaldo dos Santos Mello e-mail: [email protected] http://www.inf.ufsc.br/~ronaldo http://www.grupobd.inf.ufsc.br. Roteiro. Introdução Dados e Documentos XML Componentes da Tecnologia XML DTD e XML Schema XPath e XQuery DOM XSL e XSLT - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introdução à Tecnologia XML

Introdução à Tecnologia Introdução à Tecnologia XMLXML

Ronaldo dos Santos Melloe-mail: [email protected]

http://www.inf.ufsc.br/~ronaldohttp://www.grupobd.inf.ufsc.br

UFSC – CTC - INE

Page 2: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 3: Introdução à Tecnologia XML

RoteiroRoteiro1.1. IntroduçãoIntrodução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 4: Introdução à Tecnologia XML

XML XML ((eXtensible Markup LanguageeXtensible Markup Language))

Tecnologia desenvolvida pela W3C– W3C: World Wide Web Consortium

definição de padrões para a Web– HTML, XML, Web Semântica (RDF, OWL), ...

consórcio formado pela academia e indústria

Por quê conhecer XML é importante?– padrão para representação e transferência de

dados entre pessoas e softwares formato simples e leve dados estão cada vez mais sendo armazenados em

documentos XML ao invés de BDs

Page 5: Introdução à Tecnologia XML

Protocolos XMLProtocolos XML Definidos em diversos domínios e tecnologias

– comércio eletrônico CXML, eBisXML, ...

– domínios bibliográficos DBLP, SIGMOD, ...

– sistemas de informação geográfica SVG, GML, ...

– dispositivos móveis WML, WAP, ...

– web services SOAP, WSDL, ...

– ...

Page 6: Introdução à Tecnologia XML

Uso Extensivo de Protocolos XML...Uso Extensivo de Protocolos XML...

Necessidades– definição da estrutura dos dados XML– métodos de acesso a dados XML

consulta e atualização

– apresentação adequada de dados XML em browsers Web, interfaces de aplicações, ...

– armazenamento de dados XML integridade, segurança, ...

– ...

Precisa-se de tecnologia para suprir estas necessidades!

Page 7: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2.2. Dados e Documentos XMLDados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 8: Introdução à Tecnologia XML

Formato XMLFormato XML

XML é uma meta-linguagem de marcação– meta-linguagem

XML é um padrão aberto– cada aplicação define o protocolo (linguagem) para a

representação dos seus dados

– linguagem de marcação semelhante à linguagem HTML

– padrão fechado para apresentação de dados em browsers Web utiliza tags para descrição os dados

– tag: indica a intenção do dado e delimita o seu conteúdo

Page 9: Introdução à Tecnologia XML

Exemplo de Dado XMLExemplo de Dado XML<livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail>

<endereco> <comercial>rua A, 34 – Fpolis - SC</comercial>

<residencial>rua B, 5 – Fpolis – SC</residencial> </endereco>

</autor> ... <capitulo nome=“Introdução”>Este capítulo apresenta ... <secao>

<nome>Linguagens de Marcação</nome> ...</secao>

</capitulo> ... </livro>

tag (intenção do dado)

conteúdo do dado

estrutura hierárquica, ordenada e complexa

Page 10: Introdução à Tecnologia XML

Sintaxe XMLSintaxe XML

Dados XML são definidos em um documento XML

Um documento XML contém– cabeçalho– dados

elementos simples ou complexos atributos de elementos referências a entidades

– comentários– instruções de processamento

Page 11: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1“><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

Page 12: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

cabeçalho

Page 13: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

comentário

Page 14: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

instrução de processamento

Page 15: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

elemento raiz

Page 16: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

elemento simples (#PCDATA)

Page 17: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

elemento complexo

Page 18: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

elemento misto

Page 19: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

atributo

Page 20: Introdução à Tecnologia XML

Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1"><!–- documento XML sobre livros --><!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ...]><listaLivros><livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

declaração deentidade

referência auma entidade

Page 21: Introdução à Tecnologia XML

Documento XML Bem FormadoDocumento XML Bem Formado

Requisitos– contém um elemento raiz– define elementos com tags inicial e final– define atributos com conteúdo delimitado por

aspas simples (‘) ou aspas duplas (“) Parser XML

– programa que verifica se um documento XML é bem formado alguns browsers Web são capazes de realizar tal

verificação

Page 22: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3.3. Componentes da Tecnologia XMLComponentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 23: Introdução à Tecnologia XML

Tecnologia XML da W3CTecnologia XML da W3C

Principais recursos– definição de esquemas

DTD e XML Schema

– linguagens de consulta XPath e XQuery

– modelo de representação e interface de acesso DOM

– transformação e apresentação de dados XSL

Page 24: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a)a) DTD e XML SchemaDTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 25: Introdução à Tecnologia XML

Definição de EsquemasDefinição de Esquemas

Esquema XML– define restrições para a organização hierárquica e

conteúdo dos dados em um doc XML

– documento válido documento cuja estrutura está de acordo com um esquema validação é feita por um parser

Duas recomendações– DTD (Document Type Definition)

– XSD (XML Schema Definition)

Page 26: Introdução à Tecnologia XML

Document Type Definition (DTD)Document Type Definition (DTD)

Primeira recomendação da W3C Gramática para definição de hierarquia

– baseada em seqüências ordenadas e escolhas

– sintaxe proprietária

Definição de elementos– complexos, textuais (#PCDATA), vazios (EMPTY), mistos

((#PCDATA | ...)*) ou com conteúdo aberto (ANY)

Definição de atributos– obrigatórios (#REQUIRED) opcionais (#IMPLIED), fixos

(#FIXED), valor default, enumeração, referência (ID, IDREF(S))

Page 27: Introdução à Tecnologia XML

DTD - ExemploDTD - Exemplo

<!ELEMENT listaLivros (livro+)><!ELEMENT livro (título, preço, autor+, capítulo+)><!ATTLIST livro ISBN ID #REQUIRED edicaoAnterior IDREF #IMPLIED><!ELEMENT título (#PCDATA)><!ELEMENT autor (nome, eMail?)><!ELEMENT nome (#PCDATA)><!ELEMENT preço (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT capítulo (#PCDATA | seção)*><!ATTLIST capítulo nome CDATA #REQUIRED><!ELEMENT seção (nome, conteúdo)><!ELEMENT conteúdo (#PCDATA)>

Page 28: Introdução à Tecnologia XML

XML Schema (XSD)XML Schema (XSD) Recomendação mais recente Sintaxe XML Extensão da funcionalidade de uma DTD

– definição e especialização de tipos semelhança com esquemas orientados a objetos

– definição de tipos de dados simples (string, integer, boolean, ...) complexos (list, union)

– facilidades adicionais para definição de restrições intervalos de valores permitidos, padrões de conteúdo via

expressões regulares, ...

– ...

Page 29: Introdução à Tecnologia XML

Documento XSD - ExemploDocumento XSD - Exemplo<?xml version=“1.0” encoding=“UTF-8”><xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”> ... <!-– Declaração de Tipos -->

<xsd:simpleType name=“Tisbn”><xsd:restriction base=“xsd:string”> <xsd:pattern value=“[0-9]{2}-[0-9]{3}-[0-9]{4}-[0-9]”/>

</xsd:restriction></xsd:simpleType><xsd:complexType name=“Tlivro”>

<xsd:sequence> <xsd:element name=“titulo” type=“xsd:string”/>

<xsd:element name=“autor” type=“Tautor” minOccurs=“1” maxOccurs=“unbounded”/>

<xsd:element name=“preço” type=“xsd:float“/> ... </xsd:sequence>

<xsd:attribute name=“isbn” type=“Tisbn”/> </xsd:complexType> ...

Page 30: Introdução à Tecnologia XML

Documento XSD – Exemplo (cont.)Documento XSD – Exemplo (cont.)...

<xsd:complexType name=“TlivroTécnico” base=“Tlivro”

derivedBy=“extension”>

<xsd:element name=”area" type=“xsd:string"

minOccurs=“1” maxOccurs=“1”/>

</complexType>

...

<!-– Declaração de Elementos -->

<xsd:element name=“listaLivros”>

<xsd:complexType>

<xsd:element name=“livro” type=“Tlivro”/>

minOccurs=“1” maxOccurs=“unbounded”/>

</xsd:complexType>

</xsd:element>

</xsd:schema>

Page 31: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab)b) XPath e XQueryXPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 32: Introdução à Tecnologia XML

XPathXPath

Primeira recomendação para consulta a dados Linguagem para acessar partes de um doc XML

– sintaxe: expressões de caminho assemelha-se à navegação em diretórios DOS

– exemplo expressão XPath: /livro/título resultado:

<título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título>

...

Page 33: Introdução à Tecnologia XML

XPathXPath - Exemplos - Exemplos/ (elemento raiz – todo o doc

XML)

/livro/*/eMail (‘*’ substitui 1 elem)

/livro//seção (qq elemento descendente seção)

/livro/capítulo[1] (primeiro capítulo de livros)

/livro/capítulo/nome |/livro/capítulo/seção/nome (união)

/livro/@ISBN (acesso a um atributo)

/livro[título = “XML”] (filtro)

/livro[capitulo/@nome = “XML” or //seção/nome = “XML”]/título (filtro)

/livro//seção[last()] (função)

Page 34: Introdução à Tecnologia XML

XQueryXQuery

Recomendação mais recente Recursos adicionais em relação à XPath

– junções, definição de estruturas de resultado, variáveis de consulta, atributos calculados, funções de agregação, ...

Sintaxe básica (expressão “FLWR”)

for variável in expressãoXPath

[let associação de novas variáveis]

[where condição]

return estrutura de resultado

Page 35: Introdução à Tecnologia XML

XQueryXQuery - Exemplos - Exemplos for $liv in /livro where $liv/autor/nome = “João Silva”

return { $liv/@ISBN, $liv/titulo }

for $liv in /livro

let $pDesc := $liv/preço - $liv/preço * 0.1

where $liv/categoria = “ficcao”

return <FiccaoDesc>{$liv/titulo, $pDesc}</FiccaoDesc>

for $liv1 in /livro[@ISBN = “562”]

for $liv2 in /livro

where $liv2/@ISBN != $liv1/@ISBN

and $liv2/autor/nome = $liv1/autor/nome

return $liv2/titulo(junção)

(nova estrutura de resultado)

(consultasimples)

Page 36: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc)c) DOMDOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 37: Introdução à Tecnologia XML

DOM (DOM (Document Object ModelDocument Object Model))

Modelo de dados para XML– estrutura hierárquica (árvore)– métodos de acesso (API DOM)

principais classes de objetos– document, node, nodelist e element

execução de consultas e atualizações de dados

Parsers DOM– validam um doc XML– geram um objeto document

Page 38: Introdução à Tecnologia XML

Objetos do Modelo DOMObjetos do Modelo DOM

listaLivros

livro

título preço

ISBN

“Tecnologia XML” 79.00

“João da Silva”

[email protected]

[email protected]

nome mail

autor

nome

autor

“Maria Souza”

livro

. . .

document

node

element

nodelist

Page 39: Introdução à Tecnologia XML

Exemplos de Métodos da API DOMExemplos de Métodos da API DOM

Método Resultado

documentElement Element

getElementByTagName(String) NodeList

createElement(String) Element

. . .

document

Método Resultado

tagName String

getAttribute(String) String

setAttribute(String nome, String valor) Attr

removeAttribute(String)

getElementsByTagName NodeList

. . .

element

Método Resultado

Length int

item(int) Node

nodeList

Page 40: Introdução à Tecnologia XML

DOM – Exemplo DOM – Exemplo ((JavaScriptJavaScript))

var doc, raiz, livro1, autores, autor2;doc = new ActiveXObject(“Microsoft.XMLDOM”);doc.load(“livros.xml”);if (doc.parseError != 0) ...;else{ /* acessa o elemento raiz do documento XML */ raiz = doc.documentElement; /* busca o primeiro livro (primeiro nodo filho) */ livro1 = raiz.childNodes.item(0); /* busca a lista de autores do primeiro livro */ autores = livro1.getElementsbyTagName(“autor”); /* busca o segundo autor */ autor2 = autores.item(1); /* escreve o nome do autor – primeiro nodo filho */ document.write(“Nome do segundo autor: “ + autor.childNodes.item(0).data);}

Page 41: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd)d) XSL e XSLTXSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Page 42: Introdução à Tecnologia XML

XSL (XSL (XML Style sheet LanguageXML Style sheet Language))

Style sheet (folha de estilos)

– define regras para a apresentação de dados

XSL– linguagem de definição de folha de estilos para um

doc XML formatação de apresentação transformação do conteúdo do documento XML (XSLT)

– indicação de que dados serão exibidos ou descartados

– inserção de novos conteúdos

– conversão XMLHTML, XMLXML, XMLtexto puro, ...

Page 43: Introdução à Tecnologia XML

Documento XSLDocumento XSL

Define uma folha de estilo Sintaxe XML Referenciado em um doc XML

Processador XSL– programa que valida e executa as regras

definidas em um doc XSL– alguns browsers Web processam docs XSL

<?xml version=“1.0” ?><?xml-stylesheet type=“text/xsl” href=“estilo.xsl” ?>...

Page 44: Introdução à Tecnologia XML

Estrutura de um Doc XSL(T) Estrutura de um Doc XSL(T)

<stylesheet xmlns = "http://www.w3.org/XSL/Transform/1.0">

</template match = “/livro/autor"> ...</template>

...

</stylesheet>

elemento raiznamespace default

(DTD da W3C com instruções XSL)

padrão: indica o elemento ou atributo para o qual a regra se aplica

(expressão XPath)regra de formatação

Page 45: Introdução à Tecnologia XML

Exemplo de Transformação XSLExemplo de Transformação XSL

<listaLivros>

<livro tipo=“tecnico” ISBN=“01”>

<título>XML Companion<\título>

<autor>

<nome>N. Bradley<\nome> ...

<\autor> ...

<\livro>

<livro tipo=“tecnico” ISBN=“02”>

<título>Data on the Web<\título>

<autor>

<nome>S. Abiteboul<\nome>...

<\autor> ...

<\livro> ...

</listaLivros>

Entrada: doc XML<stylesheet xmlns = ...>

<template match = "listaLivros">

<html><head>

<title>Livros Técnicos</title> </head>

<apply-templates/>

</html>

</template>

<template match = “livro">

<P>

<apply-templates select =

“livro[@tipo = "tecnico"]">

<sort = "título">

</apply-templates>

</P>

</template>

...

Transformação: doc XSL

processar elementos

filhos

selecionar livros

técnicos

ordenarpor

títrulo

Page 46: Introdução à Tecnologia XML

Exemplo de Transformação XSLExemplo de Transformação XSL

<listaLivros>

<livro tipo=“tecnico” ISBN=“01”>

<título>XML Companion<\título>

<autor>

<nome>N. Bradley<\nome> ...

<\autor> ...

<\livro>

<livro tipo=“tecnico” ISBN=“02”>

<título>Data on the Web<\título>

<autor>

<nome>S. Abiteboul<\nome>...

<\autor> ...

<\livro> ...

</listaLivros>

Entrada: doc XML Transformação: doc XSL

selecionaro conteúdo

de título

...

<variable name = "separador">,</variable>

<template match = "título">

<value-of select = ".">

<value-of select = "{$separador}">

</template>

<template match = "autor/nome">

<value-of select = ".">

</template>

</stylesheet>

selecionaro conteúdo

do nomedo autor

Page 47: Introdução à Tecnologia XML

Exemplo de Transformação XSLExemplo de Transformação XSL

<listaLivros>

<livro tipo=“tecnico” ISBN=“01”>

<título>XML Companion<\título>

<autor>

<nome>N. Bradley<\nome> ...

<\autor> ...

<\livro>

<livro tipo=“tecnico” ISBN=“02”>

<título>Data on the Web<\título>

<autor>

<nome>S. Abiteboul<\nome>...

<\autor> ...

<\livro> ...

</listaLivros>

Entrada: doc XML<html>

<head>

<title>

Livros Técnicos

</title>

</head>

<P>

XML Companion,N. Bradley

</P>

<P>

Data on the Web,S. Abiteboul

</P>

...

</html>

Saída: doc HTML

Page 48: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4.4. Bancos de Dados XMLBancos de Dados XML5. Considerações Finais

Page 49: Introdução à Tecnologia XML

XML e BDXML e BD

Dados XML– manipulação crescente por usuários e aplicações

Tecnologia de BD– necessária para a manutenção de dados

persistentes XML & BD

– XML é um dado não-convencional dado semi-estruturado

– tecnologia de BD necessita ser estendida para tratar este tipo de dado

Page 50: Introdução à Tecnologia XML

Dado Semi-EstruturadoDado Semi-Estruturado

Principais características– estrutura heterogênea– estrutura auto-descritiva– estrutura parcial

Page 51: Introdução à Tecnologia XML

Estrutura heterogêneaEstrutura heterogênea

Cada ocorrência de dado pode ter um esquema particular

<autor> <nome>Ronaldo Mello</nome> <endereco>rua B,23</endereco> <eMail>[email protected]</eMail></autor>

<autor> <nome>Patrícia Ramos</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>33313333</fone> <fone>33313332</fone></autor>

Page 52: Introdução à Tecnologia XML

Estrutura auto-descritivaEstrutura auto-descritiva

Cada ocorrência de dado carrega o seu esquema

<autor> <nome>Patrícia Ramos</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>33313333</fone> <fone>33313332</fone></autor>

Page 53: Introdução à Tecnologia XML

Estrutura parcialEstrutura parcial

Apenas parte da descrição de um dado pode ser estruturada

<capítulo numero = 2 titulo = “Tecnologia XML”> Este capítulo descreve ... XML<ref>(Mel03)</ref>. XML é um padrão ... <secao numero = 1>

<titulo>DTD</titulo>Esta seção descreve ...

</secao> ...</capítulo>

Page 54: Introdução à Tecnologia XML

XML & BD XML & BD

Dados XML não são naturalmente adequados para armazenamento em BDs

Dado de BD Dado XML

representação homogênea representação heterogênea

esquema independente dos dados

representação auto-descritiva

totalmente estruturado estrutura parcial

esquema enxuto esquema extenso

Page 55: Introdução à Tecnologia XML

BD XML Nativo (ou BD XML)BD XML Nativo (ou BD XML) Suporta um modelo de dados proprietário para

dados XML– definição de elementos, atributos, ordem, ...– não há mapeamento para um esquema de dados

relacional Adequado a

– docs XML fortemente semi-estruturados “documentos orientados a textos” mapeamento para BD relacional seria complexo! necessidade de consultas envolvendo padrões textuais

– aplicações que lidam apenas com dados no formato XML Alguns SGBDRs possuem suporte nativo a XML

– exemplos: Oracle, DB2

Page 56: Introdução à Tecnologia XML

BD XML - Características PrincipaisBD XML - Características Principais

Esquemas lógicos baseados em coleções Consultas Atualização Conectividade Restrições de Integridade Armazenamento e indexação de dados

Alguns exemplos: SGBD XML Tamino

Page 57: Introdução à Tecnologia XML

ColeçõesColeções

Noção lógica de um conjunto de docs XML– a decisão por quais docs XML pertencem a uma

coleção fica em geral a cargo da aplicação– uma coleção pode estar restrita a um ou mais

esquemas XML

Consultas e atualizações podem ser direcionadas a coleções

Page 58: Introdução à Tecnologia XML

Coleções - TaminoColeções - Tamino 1 BD – n coleções – n esquemas – n tipos de documentos

– cada tipo de documento define um elemento raiz permitido

– novo doc XML: inserido em uma coleção e válido para algum tipo doc

Docs sem esquema mantidos em uma coleção específica

tipos de documentos

Page 59: Introdução à Tecnologia XML

ConsultasConsultas Suporte a pelo menos uma linguagem de

consulta para XML– uso mais extensivo de XPath – uso de alguns dialetos da XQuery (tendência!)

Características desejadas para uma linguagem de consulta para XML– buscas textuais (por palavras-chaves, por padrões, ...)

– consultas declarativas– resultados de consultas

doc XML, fragmentos de docs XML ou novas estruturas XML

Page 60: Introdução à Tecnologia XML

ConsultasConsultas Tamino

– consultas em XPath e XQuery estendidas– suporta busca por padrão

/livro[título ~= “*XML*”]/título

– geração de docs XML como resultado

eXist– consultas em XPath estendida– suporta busca por padrão, por palavra-chave (em

textos) e por proximidade /livro[título &=‘banco XML’]/título /livro/capitulo[near(.,’banco XML’,50)]/@nome

Page 61: Introdução à Tecnologia XML

AtualizaçõesAtualizações

Capacidades de atualização são variadas– possibilidade apenas de substituição de um doc

XML completo– API DOM para atualização de nodos– linguagens de atualização declarativas

tendência1: XUpdate (consórcio XML:DB)– XML:DB

consórcio de empresas responsável pelo desenvolvimento de tecnologias para BDs XML

tendência2: XQuery com capacidades de atualização

Page 62: Introdução à Tecnologia XML

XUpdateXUpdate Sintaxe XML

– I / E de elementos, atributos e texto– A do conteúdo de elementos e atributos

Exemplo 1:

(inclusão de um novo eMail para Maria)

Exemplo 2:

(remoção do primeiro livro)

<xupdate:append select=”//autor[nome=´Maria´]/eMail” child=”last()”>

<xupdate:element name="eMail">[email protected]</xupdate:element>

</xupdate:append>

<xupdate:remove select="/listalivros/livro[1]"/>

Page 63: Introdução à Tecnologia XML

Atualizações - TaminoAtualizações - Tamino

XQuery possui capacidades de atualização– insert, delete, rename e replace

Exemplos– update (inserção de autor)

for $liv in input()/livro where $liv/titulo = “XML”

do(insert (<autor><nome>João Silva</nome></autor>)

following $liv/autor[last()])

– update (alteração de eMail de autor)

for $aut in input()/livro/autor where $aut/nome = “Maria Souza”

do (replace $aut/eMail with (<eMail>[email protected]</eMail>))

Page 64: Introdução à Tecnologia XML

Conectividade – APIs Conectividade – APIs Interfaces ODBC tradicionais

– conexão com o BD, execução de consultas e atualizações e exploração de resultados

APIs XQuery e DOM para Java (JQX e JDOM)– JDBC como base

Protocolos HTTP– acesso via browsers Web

Consórcio XML:DB– proposta de uma API para BDs XML

manipulação de BDs e coleções; execução de consultas Xpath e XUpdate; acesso a resultados de consultas; controle de transações

Page 65: Introdução à Tecnologia XML

APIs - TaminoAPIs - Tamino Interface principal de acesso são browsers Web

– um servidor Tamino deve estar sempre associado a um Web server (domínio Internet)

– define uma API que encapsula chamadas HTTP criação e manipulação de BDs, coleções e docs

– acesso: http://<nome_domínio>/tamino/<nome_BD>/ [<nome_coleção>]<comando_API_HTTP>

Outras formas de acesso– API DOM para aplicações Java, Jscript e Active X– API XML:DB

Page 66: Introdução à Tecnologia XML

Tamino – Conectividade HTTPTamino – Conectividade HTTP

Page 67: Introdução à Tecnologia XML

Restrições de IntegridadeRestrições de Integridade

RIs a nível de esquemas XML são limitadas– ordem hierárquica e restrições de cardinalidade– tipo de dado de elementos e atributos– enumeração de valores permitidos– integridade referencial intra-documento

Carência de um mecanismo de integridade mais robusto– similar a SQL em BDRs (DCL)

Page 68: Introdução à Tecnologia XML

Integridade Semântica - Tamino Integridade Semântica - Tamino Definição de valores possíveis (fixos, defaults, enumerações, ...)

Integridade referencial controlada por stored procedures (para cada caso indicado no campo trigger)

controles de integridade

Page 69: Introdução à Tecnologia XML

ArmazenamentoArmazenamento Docs XML “in-natura” (campo longo)

– texto do doc preservado na íntegra (cabeçalho, comentários, ...)

– armazenamento clusterizado de fragmentos do doc

Esquema de objetos (DOM ou esquema similar a BDOO)

DOM BDOO

preserva ordem de elementos não preserva ordem de elementos

qualquer esquema tem a mesma estrutura (document, element, ...)

– intenção dos dados não fica clara

esquema de classes gerado de acordo com os tipos de elementos complexos

– intenção dos dados mais clara

clusterização por profundidade

– bom p/ buscas na ordem da hierarquia

clusterização por largura

– bom p/ buscas por propriedades de um elemento

clusterização geralmente por instâncias da mesma classe

– bom para buscas por dados de determinados tipos de elementos

Page 70: Introdução à Tecnologia XML

IndexaçãoIndexação Indexação por valor

– indexa valores de elementos simples e atributos ex: buscar elementos com valor “XML”

Indexação por estrutura– indexa a localização de elementos e atributos

ex: buscar elementos com nome “XML”

Indexação full-text– indexa tokens em textos e valores de atributos

ex: buscar elementos que contenham a palavra “XML”

Page 71: Introdução à Tecnologia XML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5.5. Considerações FinaisConsiderações Finais

Page 72: Introdução à Tecnologia XML

Considerações FinaisConsiderações Finais

Uso de XML hoje é uma realidade!– formato simples e leve– representação e transferência de dados entre pessoas

e sistemas– manipulação de dados XML requer soluções para

gerenciamento de dados XML tema de pesquisa atual na comunidade de BD duas frentes de pesquisa/desenvolvimento

– extensão de SGBDs relacionais– desenvolvimento de SGBDs XML nativos

Page 73: Introdução à Tecnologia XML

BDs XML – CríticaBDs XML – Crítica Pontos a favor

– dados XML são semi-estruturados overhead de gerenciamento para BDs não-XML

– aplicações com dados complexos ou com regras de negócio pouco claras ou muito dinâmicas flexibilidade estrutural de docs XML modela melhor as transações e

dados (complexos) personalizados do negócio

– aplicações que lidam apenas com dados XML por quê adquirir um BD não-XML?

– modelo de dados diferente; recursos para o gerenciamento de dados XML é complicado

Tecnologia relativamente recente– algumas funcionalidades de SGBDs não são ainda tratadas ou

não estão consolidadas restrições de integridade, visões, segurança, concorrência, ...

Page 74: Introdução à Tecnologia XML

BDRs – CríticaBDRs – Crítica

SGBDs robustos– gerenciamento “completo” e eficiente de dados

Modelo de dados não é XML– necessidade de um suporte de mapeamento para

importação/exportação de dados XML overhead de processamento

– apesar de alguns SGBDRs já possuírem recursos de armazenamento nativo de XML

definição de novos padrões de acesso– como SQL/XML

– alguns SGBDRs caminham em direção a um BD híbrido (relacional e XML)

Page 75: Introdução à Tecnologia XML

Referências RelevantesReferências Relevantes Tecnologia XML

– http://www.w3c.org/xml– http://www.w3.org/XML/Schema#Tools– http://www.w3schools.com

XML & BD– http://www.rpbourret.com/xml/XMLAndDatabases.htm

XML:DB– http://www.xmldb.org

SGBDRs com suporte a XML (Oracle e DB2)– http://www.oracle.com/technology/tech/xml/xmldb– http://www-306.ibm.com/software/data/db2/extenders/xmlext/

SQL/XML– http://sqlx.org

SGBDs XML Nativos (Tamino e eXist)– http://www.softwareag.com/tamino – http://exist-db.org/

Page 76: Introdução à Tecnologia XML

Introdução à Tecnologia Introdução à Tecnologia XMLXML

Ronaldo dos Santos Melloe-mail: [email protected]

http://www.inf.ufsc.br/~ronaldohttp://www.grupobd.inf.ufsc.br

UFSC – CTC - INE