1 / 76

Introdução à Tecnologia XML

UFSC – CTC - INE. Introdução à Tecnologia XML. Ronaldo dos Santos Mello e-mail: ronaldo@inf.ufsc.br 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

chana
Télécharger la présentation

Introdução à Tecnologia XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  3. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  4. XML (eXtensible 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

  5. Protocolos 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, ... • ...

  6. 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!

  7. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  8. Formato XML • XML é uma meta-linguagemde 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

  9. Exemplo de Dado XML tag (intenção do dado) <livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</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> conteúdo do dado estrutura hierárquica, ordenada e complexa

  10. Sintaxe 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

  11. Exemplo 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>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros>

  12. Exemplo 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>js@hotmail.com</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

  13. Exemplo 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>js@hotmail.com</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

  14. Exemplo 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>js@hotmail.com</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

  15. Exemplo 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>js@hotmail.com</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

  16. Exemplo 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>js@hotmail.com</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)

  17. Exemplo 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>js@hotmail.com</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

  18. Exemplo 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>js@hotmail.com</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

  19. Exemplo 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>js@hotmail.com</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

  20. Exemplo 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>js@hotmail.com</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 de entidade referência a uma entidade

  21. Documento 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

  22. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  23. Tecnologia 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

  24. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  25. Definiçã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)

  26. 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))

  27. DTD - 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)>

  28. 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, ... • ...

  29. Documento 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> ...

  30. 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>

  31. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  32. XPath • 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> ...

  33. XPath - 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)

  34. XQuery • 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”) forvariável in expressãoXPath [letassociação de novas variáveis] [wherecondição] returnestrutura de resultado

  35. XQuery - Exemplos (consulta simples) 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 (nova estrutura de resultado) (junção)

  36. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  37. DOM (Document 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

  38. título mail Objetos do Modelo DOM document node listaLivros . . . livro ISBN livro preço autor autor “Tecnologia XML” 79.00 element nome nome “Maria Souza” “js@hotmail.com” “João da Silva” “jsilva@xxx.com” nodelist

  39. Exemplos de Métodos da API DOM document nodeList element

  40. DOM – Exemplo (JavaScript) 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); }

  41. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  42. XSL (XML 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 XMLHTML, XMLXML, XMLtexto puro, ...

  43. Documento 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” ?> ...

  44. Estrutura de um Doc XSL(T) <stylesheetxmlns = "http://www.w3.org/XSL/Transform/1.0"> </templatematch = “/livro/autor"> ... </template> ... </stylesheet> namespace default (DTD da W3C com instruções XSL) elemento raiz padrão: indica o elemento ou atributo para o qual a regra se aplica (expressão XPath) regra de formatação

  45. Exemplo de Transformação XSL Transformação: doc XSL 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-templatesselect = “livro[@tipo = "tecnico"]"> <sort = "título"> </apply-templates> </P> </template> ... <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> processar elementos filhos selecionar livros técnicos ordenar por títrulo

  46. Exemplo de Transformação XSL Transformação: doc XSL Entrada: doc XML ... <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> <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> selecionar o conteúdo de título selecionar o conteúdo do nome do autor

  47. Exemplo de Transformação XSL Entrada: doc XML Saída: doc HTML <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> <html> <head> <title> Livros Técnicos </title> </head> <P> XML Companion,N. Bradley </P> <P> Data on the Web,S. Abiteboul </P> ... </html>

  48. Roteiro • Introdução • Dados e Documentos XML • Componentes da Tecnologia XML • DTD e XML Schema • XPath e XQuery • DOM • XSL e XSLT • Bancos de Dados XML • Considerações Finais

  49. XML 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

  50. Dado Semi-Estruturado • Principais características • estrutura heterogênea • estrutura auto-descritiva • estrutura parcial

More Related