XML: eXtensible Markup Language Prof. Tiago Eugenio de...

42
http://www.tiagodemelo.info XML: eXtensible Markup Language Prof. Tiago Eugenio de Melo [email protected] Última atualização: 26.03.2013

Transcript of XML: eXtensible Markup Language Prof. Tiago Eugenio de...

Page 1: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

http://www.tiagodemelo.info

XML: eXtensible Markup LanguageProf. Tiago Eugenio de Melo

[email protected]

Última atualização: 26.03.2013

Page 2: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

2http://www.tiagodemelo.info

Introdução

Crescimento do número de aplicações para Web.

Uso de HTML (HyperText Markup Language). Linguagem não é adequada para dados

estruturados extraídos dos bancos de dados. Útil na geração de páginas estáticas.

Surgimento do XML como padrão para a estruturação e a troca de dados pela Web.

Page 3: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

3http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

A informação armazenada nos bancos de dados é conhecida como dados estruturados porque é representada em um formato escrito.

Em algumas aplicações, os dados são coletados de uma maneira casual antes que se saiba como serão armazenados e gerenciados. Esses dados podem ter uma estrutura, mas nem toda a informação coletada terá a estrutura idêntica. Esse tipo de dados é conhecido como dados semiestruturados.

Page 4: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

4http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Dados semiestruturados

Page 5: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

5http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Uma terceira categoria é conhecida como dados não estruturados, pois, neste caso, existe uma indicação muito limitada sobre o tipo de dados.

Um exemplo típico é um documento de texto que contém informações incorporadas a ele.

As páginas Web em HTML que contêm alguns dados são consideradas dados não estruturados.

As tags especificam a formatação do documento, e não o significado dos diversos elementos de dados do documento.

Page 6: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

6http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Exemplo:

Page 7: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

7http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Tags em HTML <HTML> … </HTML>

Limites do documento. <HEAD … </HEAD>

Informações do cabeçalho do documento. Exemplos: uso de funções de linguagens de

programação e apresentação de certos estilos de formatação.

<BODY> … </BODY> Representa o corpo do documento.

<H1> … </H1> Cabeçalho de nível 1.

Page 8: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

8http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Tags em HTML <TABLE> … </TABLE>

Especificam que o texto seguinte deve estar dentro de uma tabela.

Page 9: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

9http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Dois conceitos de estruturação principais utilizados para construir um documento XML:

Elementos. Atributos.

Page 10: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

10http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Elementos Um elemento XML consiste de uma tag de abertura

e uma tag de fechamento. A informação entre as tags é conhecida como

conteúdo. Elementos em um arquivo XML são descritos por

um DTD ou schema, e tanto um como o outro pode fornecer a descrição da estrutura dos dados.

Page 11: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

11http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Atributos Cada item de elemento de informação pode ter

uma ou mais propriedades, chamadas de atributos. Os atributos formam uma lista não-ordenada de

itens de informação. Cada atributo tem um nome único e cada um

possui uma propriedade-filha consistindo de zero ou mais caracteres.

Page 12: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

12http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Atributos HTML também faz uso de atributos. Em XML, os atributos podem ser usados para

descrever um elemento ou para fornecer informações adicionais sobre um elemento.

Exemplo (HTML):

<IMG SRC=logotipo.gif WIDTH=32 HEIGHT=64 ALT=”Logotipo”>

Exemplo (XML):

<IMG SRC=”logotipo.gif” WIDTH=”32” HEIGHT=”64” ALT=”Logotipo”>

Page 13: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

13http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

Page 14: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

14http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

Page 15: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

15http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

Page 16: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

16http://www.tiagodemelo.info

Document Type Definition - DTD

XML é uma linguagem extensível, ou seja, qualquer pessoa que esteja escrevendo um documento XML pode definir novas tags dependendo da necessidade de descrever a informação.

A extensibilidade pode gerar conflitos quando os arquivos vêm de origens diversas.

Para ajudar a resolver esse problema, foi criado o DTD.

Page 17: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

17http://www.tiagodemelo.info

Documento Type Definition - DTD

Um DTD vai definir quais as tags possíveis para uma classe de documentos.

Tendo-se um DTD, um documento XML pode ser validado, ou seja, podemos confirmar que o documento XML segue certa definição, e a aplicação que vai processar esse documento não precisa se preocupar com erros de estrutura.

Dessa forma, asseguramos que diferentes pessoas e programas podem tratar informações um dos outros.

Page 18: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

18http://www.tiagodemelo.info

Documento Type Definition - DTD

DTDs são usados para definir assim os chamados vocabulários.

Cada vocabulário estabelece quais elementos são aplicáveis em uma determinada circunstância.

Page 19: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

19http://www.tiagodemelo.info

Schema

XML schema é uma linguagem baseada no formato XML para definição de regras de validação em documentos no formato XML.

Essa linguagem é uma alternativa ao DTD, cuja sintaxe não é baseada em formato XML.

Page 20: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

20http://www.tiagodemelo.info

Standard Generalized Markup Language - SGML

É conhecida como a mãe de todas a linguagens de marcação.

A metalinguagem usada para construir outras linguagens de marcação.

XML foi projetada para ser um dialeto extremamente simplificado de SGML para uso na Web, de acordo com a especificação do W3C.

Page 21: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

21http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Existem três tipos principais de documentos XML:

Centrados em dados. Esses documentos possuem muitos itens de

dados pequenos que seguem uma estrutura específica e, portanto, podem ser extraídos de um banco de dados.

Centrados nos documentos. Estes são documentos com grande quantidade

de texto, como artigos científicos. Há poucos ou nenhum elemento de dado

estruturado nesses documentos.

Page 22: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

22http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Existem três tipos principais de documentos XML:

Híbridos. Esses documentos podem ter partes que contêm

dados estruturados e outras partes que são predominantemente textuais ou não estruturadas.

Page 23: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

23http://www.tiagodemelo.info

Armazenando e extraindo documentos XML de bancos de dados

Usar um SGBD para armazenar os documentos como texto.

Um SGBD relacional ou objeto pode ser utilizado para armazenar os documentos XML inteiros como campos de texto nos registros ou objetos do SGBD.

Usar um SGBD para armazenar conteúdos de documento como elementos de dados.

Essa técnica funcionaria para armazenar uma XML DTD específica ou um esquema XML.

Page 24: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

24http://www.tiagodemelo.info

Armazenando e extraindo documentos XML de bancos de dados

Projetar um sistema especializado para armazenar dados XML nativos.

Um novo tipo de SGBD, baseado no modelo hierárquico (de árvore) poderia ser projetado e implementado.

Esses sistemas estão sendo chamados de SGBD XML nativos.

Page 25: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

25http://www.tiagodemelo.info

Armazenando e extraindo documentos XML de bancos de dados

Criar ou publicar documentos XML personalizados de bancos de dados relacionais pré-existentes

Como há grande quantidade de dados já armazenados em bancos de dados relacionais, partes desses dados podem ter de ser formatados como documentos para troca ou exibição pela Web.

Page 26: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

26http://www.tiagodemelo.info

Linguagens XML

Houve várias propostas para as linguagens de consulta XML, e dois padrões de linguagens de consulta se destacaram: XPath e XQuery.

A XPath nos permite escrever expressões que selecionam itens de um documento XML estruturado em árvore.

A XQuery possibilita a especificação de consultas mais gerais sobre um ou mais documentos XML.

Page 27: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

27http://www.tiagodemelo.info

XPath

Uma expressão XPath geralmente retorna uma sequência de itens que satisfazem certo padrão, conforme especificado pela expressão.

Os nomes na expressão XPath são nomes de nó na árvore de documentos XML que são também nome de tag (elemento) ou atributo, possivelmente com condições qualificadoras adicionais, para restringir ainda mais os nós que satisfazem o padrão.

Page 28: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

28http://www.tiagodemelo.info

XPath

Dois separadores principais são usados ao se especificar um caminho: barra simples (/) e barra dupla (//).

Uma barra simples antes de uma tag especifica que esta precisa aparecer como um filho direto da tag anterior (pai).

Já uma barra dupla especifica que a tag pode aparecer como um descendente da tag anterior, em qualquer nível.

Page 29: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

29http://www.tiagodemelo.info

XPath

Exemplo:

Page 30: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

30http://www.tiagodemelo.info

XPath

/empresa Retorna o nó raiz empresa e todos os nós

descendentes (retorna o documento inteiro).

/empresa/departamento Retorna todos os nós de departamento e suas

subárvores descendentes.

Page 31: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

31http://www.tiagodemelo.info

XPath

//empresa/funcionario [salarioFuncionario gt 70.000]/nomeFuncionario

O uso do // é quando não soubermos o nome do caminho completo que estamos procurando, mas sabemos de algumas tags de interesse no documento XML.

A expressão retorna todos os nós nomeFuncionario que são filhos diretos de um nó funcionario, de modo que o nó funcionario tem outro elemento filho salarioFuncionario cujo valor é maior que 70000.

Page 32: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

32http://www.tiagodemelo.info

XQuery

O formulário típico de uma consulta em XQuery é conhecido como expressão FLWR, que indica as quatro cláusulas principais da XQuery e tem a seguinte forma:

Page 33: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

33http://www.tiagodemelo.info

XQuery

Comandos: For → pode haver zero ou mais instâncias dentro

dessa cláusula. Let → pode haver zero ou mais instâncias dentro

dessa cláusula. Where → opcional, mas pode aparecer no máximo

uma vez. Return → deve aparecer exatamente uma vez.

Page 34: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

34http://www.tiagodemelo.info

XQuery

Exemplo:

Page 35: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

35http://www.tiagodemelo.info

XQuery

As variáveis são iniciadas com $. A consulta do exemplo anterior irá retornar uma

sequência de elementos, cada um contendo <primeiroNome, ultimoNome, horas> para funcionários que trabalham mais de 20 horas por semana no projeto número 5.

Page 36: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

36http://www.tiagodemelo.info

XQuery

A XQuery possui construções muito poderosas para especificar consultas complexas.

Em particular, ela pode especificar quantificadores universais e existenciais nas condições de uma consulta, funções de agregação, ordenação dos resultados da consulta, seleção baseada no posição em uma sequência, e até mesmo desvio condicional.

Portanto, de algumas maneiras, ela se qualifica como uma linguagem de programação completa.

Page 37: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

37http://www.tiagodemelo.info

Outras linguagens e protocolos relacionados a XML

Existem várias outras linguagens e protocolos relacionados à tecnologia XML.

O objetivo a longo prazo é oferecer tecnologia para a realização da Web semântica, na qual toda informação na Web possa ser inteligentemente localizada e processada.

Page 38: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

38http://www.tiagodemelo.info

Outras linguagens e protocolos relacionados a XML

A Extensible Stylesheet Language (XSL) pode ser usada para definir como um documento pode ser renderizado para exibição por um navegador Web.

A Extensible Stylesheet Language for Transformations (XSLT) pode ser usada para transformar uma estrutura em outra. Logo, ela pode converter documentos de uma forma para outra.

Page 39: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

39http://www.tiagodemelo.info

Outras linguagens e protocolos relacionados a XML

A Web Services Description Language (WSDL) permite a descrição de Web Services em XML. Isso torna o Web Service disponível para usuários e programas pela Web.

O Simple Object Access Protocol (SOAP) é um protocolo independente de plataforma e de linguagem de programação para transmissão de mensagens e chamadas de procedimento remoto.

Page 40: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

40http://www.tiagodemelo.info

Outras linguagens e protocolos relacionados a XML

O Resource Description Framework (RDF) oferece linguagens e ferramentas para trocar e processar descrições de metadados (esquema) e especificações pela Web.

Page 41: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

41http://www.tiagodemelo.info

Exercícios

O que são dados estruturados? Comente uma vantagem no uso de XML. Qual é a diferença entre elemento e atributo

em XML? Dê um exemplo de cada. Qual é a diferença entre as tags do XML e

HTML? Qual é a finalidade do uso de um DTD?

Page 42: XML: eXtensible Markup Language Prof. Tiago Eugenio de ...tiagodemelo.info/aulas/uea/2013/bd2/aula-xml-2013.pdfUso de HTML (HyperText Markup Language). Linguagem não é adequada para

42http://www.tiagodemelo.info

Referências

Dévio, Otávio C. Guia de Consulta Rápida XML. São Paulo, Novatec: 2000.

http://www.w3.org Capítulo 12 do livro: