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

Post on 11-Jul-2020

11 views 0 download

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

http://www.tiagodemelo.info

XML: eXtensible Markup LanguageProf. Tiago Eugenio de Melo

tiagodemelo@gmail.com

Última atualização: 26.03.2013

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.

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.

4http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Dados semiestruturados

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.

6http://www.tiagodemelo.info

Dados estruturados, semiestruturados e não estruturados

Exemplo:

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.

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.

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.

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.

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.

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”>

13http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

14http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

15http://www.tiagodemelo.info

Modelo de dados hierárquico da XML

Exemplo de XML

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

29http://www.tiagodemelo.info

XPath

Exemplo:

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.

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.

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:

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.

34http://www.tiagodemelo.info

XQuery

Exemplo:

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.

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.

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.

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.

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.

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.

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?

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: