XML: eXtensible Markup Language Prof. Tiago Eugenio de...
Transcript of XML: eXtensible Markup Language Prof. Tiago Eugenio de...
http://www.tiagodemelo.info
XML: eXtensible Markup LanguageProf. Tiago Eugenio de Melo
Ú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.
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.
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: