Introdução a XML X100



Documentos relacionados
XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

XML: uma introdução prática <xml:introdução />

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Desenvolvimento em Ambiente Web. HTML - Introdução

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Informática I. Aula 6. Aula 6-12/09/2007 1

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

#Aula Nº 1 Introdução webstandards.samus.com.br Vinicius Fiorio Custódio samus@samus.com.br

XML: uma introdução prática X100. Helder da Rocha

Web Design. Prof. Felippe

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

XHTML 1.0 DTDs e Validação

Roteiro 2: Conceitos de Tags HTML

Técnicas e processos de produção. Profº Ritielle Souza

QUEM FEZ O TRABALHO?

Este relatório tem por objetivo, abordar a sintaxe XML.

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

Folhas de estilo. Jomi Fred Hübner (XSL e XPath) FURB / DSC

Organizar a estrutura do site

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

7. Cascading Style Sheets (CSS)

Introdução ao XML. Extensible Markup Language

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc.

Web Design Aula 13: Introdução a CSS

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

uma introdução prática Helder da Rocha

TECNOLOGIAS WEB AULA 5 PROF. RAFAEL DIAS

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Aula 1 Desenvolvimento Web. Curso: Técnico em Informática / 2º módulo Disciplina: Desenvolvimento Web Professora: Luciana Balieiro Cosme

CSS é a abreviatura para Cascading Style Sheets Folhas de Estilo em Cascata

Microsoft Office FrontPage 2003

Design para internet. Resolução. - No Design Gráfico quanto maior o DPI melhor. - Na web não é bem assim.

UFG - Instituto de Informática

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo

J550 Tag Libraries e JSTL

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

XML extensible Markup Language. Prof. Fellipe Aleixo

CONTEÚDO PROGRAMÁTICO

Tutorial. Introdução ao XML e tecnologias associadas. Aplicações e dialectos XML. Sessão Fevereiro XATA 06

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Bem-vindo ao XML. Apostila de XML

Aplicativos para Internet Aula 01

HTML5. André Tavares da Silva.

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Guia de Consulta Rápida XHTML. Juliano Niederauer. Novatec Editora.

BREVE INTRODUÇÃO À LINGUAGEM XML

A Linguagem XML (& Markup Languages)

UNIVERSIDADE. Sistemas Distribuídos

Professor: Paulo Macos Trentin Escola CDI de Videira 4/6/2011 1

Introdução às Folhas de Estilo

WWW - World Wide Web

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto

Processamento de dados XML

XML (extensible Markup Language)

css Cascading Style Sheets CSS CASCADING STYLE SHEETS

Prof.: Clayton Maciel Costa

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo

O que é XML? A Linguagem de Marcação Extensível (Extensible Markup Language - XML) é:

Serviços Web: Arquitetura

Análise da Nova Linguagem HTML5 para o Desenvolvimento Web

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira


JavaScript (Funções, Eventos e Manipulação de Formulários)

Manual do Usuário - VisPublica Melise Paula Fernanda Ribeiro Bárbara Pimenta Clóvis Noronha Luan Costa Mário Macedo

Programação para a Web - I. José Humberto da Silva Soares

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Transcrição:

Introdução a XML X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em setembro de 2001 1

O que é XML? extensible Markup Language: padrão W3C Uma maneira de representar informação não é uma linguagem específica não define vocabulário de comando não define gramática, apenas regras mínimas de estrutura Exemplo: documento XML usuario_33.xml <contato codigo="33"> <nome>severino Severovitch</nome> <email>bill@norte.com.br</email> <telefone tipo="celular"> <area>11</area> <numero>9999 4321</numero> </telefone> </contato> elemento atributo "nó" de texto 2

XML versus HTML HTML mostra como apresentar XML mostra o que significa <h1>severino Severovitch</h1> <h2>bill@norte.com.br</h2> <p> <b>11</b> <i>9999 4321</i> </p> <nome>severino Severovitch</nome> <email>bill@norte.com.br</email> <telefone> <ddd>11</ddd> <numero>9999 4321</numero> </telefone> 3

Anatomia de um documento XML Documentos XML são documentos de texto Unicode É uma hierarquia de elementos a partir de uma raiz Menor documento tem um elemento (vazio ou não): <nome> Северино Северович </nome> Menor documento contendo elemento vazio Elemento raiz <nome></nome> = <nome/> Menor documento contendo elemento e conteúdo texto <nome> Северино Северович </nome> Etiqueta inicial Conteúdo do Elemento Etiqueta final 4

XML Namespaces Estabelecem um contexto para elementos e atributos É formalmente declarado através de um identificador (um string, geralmente uma URI) através de atributo reservado do XML: xmlns Podem ser associados a um prefixo para qualificar elementos e atributos Quando o prefixo não é usado, estabelece um namespace default adotado pelo elemento onde é declarado e seus elementos filho <simulacao> <tempo unidade="segundos">130</tempo> <clima xmlns="uri://app clima"> <tempo>chuvoso</tempo> </clima> </simulacao> Escopo do namespace vale para descendentes de <simulacao> qualificados com o prefixo 'w' Escopo do namespace vale para elemento <clima> e herdado por todos os seus descendentes <simulacao xmlns:w="uri://app clima"> <tempo unidade="segundos">130</tempo> <w:clima> <w:tempo>chuvoso</w:tempo> <tempo unidade="horas">2.5</tempo> </w:clima> </simulacao> Nos dois casos, elementos <tempo> significam coisas diferentes, mas não há conflito porque pertencem a namespaces diferentes (um deles não tem namespace) 5

Documentos XML bem formados Para que possa ser manipulado como uma árvore, um documento XML precisa ser bem formado Documentos que não são bem formados não são documentos XML use um editor XML para descobrir Documentos bem-formados obedecem as regras de construção de documentos XML genéricos Regras incluem Ter um, e apenas um, elemento raiz Valores dos atributos estarem entre aspas ou apóstrofes Atributos não se repetirem Todos os elementos terem etiqueta de fechamento Elementos estarem corretamente aninhados 6

Exemplos de algumas regras (1) Elementos não devem se sobrepor Não pode <a><b></a></b> (2) Atributos têm que ter valores entre aspas Não pode Deve ser <hr width=10> <hr width="10"> (3) Nomes de elementos são case-sensitive Não pode <a>...</a> (4) Todos os elementos têm marcadores de abertura e de fechamento Não pode <br>x<br> Deve ser <br/>x<br/> ou <br></br>x<br></br> 7

XML válido Um XML bem construído pode não ser válido em determinada aplicação Aplicação típica pode esperar que elementos façam parte de um vocabulário limitado, certos atributos tenham valores e tipos definidos, elementos sejam organizados de acordo com uma determinada estrutura hierárquica, etc. É preciso especificar a linguagem! Esquema: modelo que descreve todos os elementos, atributos, entidades, suas relações e tipos de dados Um documento é considerado válido em relação a um esquema se obedecer todas as suas regras 8

Esquema Documentos que aderem à especificação (válidos) O esquema representa uma classe Os documentos são instâncias Documento fora da especificação Esquema (universo de documentos válidos) Como definir esquemas: DTD - Document Type Definition W3C XML Schema 9

DTD vs. XML Schema Um esquema é essencial para que haja comunicação usando XML Pode ser estabelecido "informalmente" (via software) Uso formal permite validação usando ferramentas genéricas de manipulação de XML Soluções padrão do W3C DTD <!ELEMENT contato (nome, email, telefone)> <!ATTLIST contato codigo NMTOKEN #REQUIRED> XML Schema <xsd:schema xmlns:xsd=".../xmlschema"> <xsd:element name="contato"> <xsd:complextype> <xsd:attribute name="codigo" use="required"> Simples mas não é XML Não suporta namespaces Limitado quando a tipos de dados É XML, porém mais complexo Suporta namespaces Permite definição de tipos 10

Por que usar XML para compartilhar dados? Porque é um padrão aberto Facilidade para converter para formatos proprietários Porque é texto Fácil de ler, fácil de processar, menos incompatibilidades Porque promove a separação entre estrutura, conteúdo e apresentação Facilita geração de dados para visualização dinâmica Evita repetição de informação / simplifica manutenção Porque permite semântica na Web Elementos HTML não carregam significado, apenas dicas de formatação: mecanismos de busca ficam prejudicados 11

Como produzir XML Criando um documento de texto Unicode a partir de qualquer editor de textos <contato codigo="33"> <nome>severino Severovitch</nome> <email>bill@norte.com.br</email> <telefone tipo="celular"> <area>11</area> <numero>9999 4321</numero> </telefone> </contato> Gerando um documento a partir de uma árvore montada dinamicamente 33 Severino Severovitch bill@norte.com.br celular 11 9999 4321 <contato codigo="33"> <nome>severino Severovitch</nome> <email>bill@norte.com.br</email> <telefone tipo="celular"> <area>11</area> <numero>9999 4321</numero> </telefone> </contato> 12

Visualização em um browser Folha de estilo: conjunto de regras para formatar ou transformar as informações de um documento XML CSS - Cascading Style Sheets Transformação visando apresentação visual Aplicação do estilo em tempo de execução no cliente XSLT - extensible Stylesheet Language Transformação em texto, HTML ou outro formato Aplicação em tempo real ou prévia (no servidor) Se não estiver associado a uma folha de estilo, o documento XML não tem uma "aparência" definida Vários browsers por default mostram a árvore-fonte XML Outros mostram apenas os nós de texto sem formatação 13

Formas de processamento XML Via APIs de programação SAX Simple API for XML: leitura seqüencial, ideal para extração de dados DOM Document Object Model: leitura completa, ideal para manipulação (inserção, reordenação, alteração, remoção de nós) Via linguagens de processamento (suportadas por parsers e processadores padronizados pela W3C) XSLT, XPath, XLink, XPointer e XQuery: extração, transformação e localização de dados XSL-FO, XHTML, SVG: apresentação de dados 14

Processamento XML texto XML para SGBD e vice-versa <xml> <xml> <xml> "custom" XML <xml> WML VoiceXML VRML Web HTML CSS JavaScript DOM SAX PDF PDF PDF RTF TeX SGML SGBD Gráficos SVG Imagens JPG e PNG 2000 2001 PDF e PostScript 15

XPath Linguagem usada para navegar na árvore XML Uma expressão XPath é um caminho na árvore que resulta em um valor (número, texto, booleano), objeto (elemento, atributo, nó de texto) ou conjunto de objetos 33 Severino Severovitch bill@norte.com.br celular 11 9999 4321 Caminhos absolutos /contato/@codigo /contato/telefone/@tipo /contato/telefone/numero/text() Relativos ao contexto /contato : @codigo (ou./@codigo) telefone/@tipo (ou./telefone/@tipo) telefone/numero/text() Expressões XPath são usadas dentro de atributos XML Usadas em XSLT, XLink, XQuery e XPointer 16

XLink, XPointer e XQuery XLink: especificação W3C que define vínculos (de diversos tipos) entre documentos XML Funcionalidade mínima é igual ao <a href> do HTML É uma coleção de atributos, com namespace próprio, que podem ser usados em elementos de qualquer linguagem XML. XPointer: aponta para partes de documentos XML Identificador no destino, acessível por XLink: xlink:href="#ident" Caminho resultante de expressão XPath: xpointer(/livro/id) XQuery: linguagem para pesquisar documentos XML através de queries com sintaxe inspirada em SQL Exemplo: FOR $b IN document("usuario_33.xml")/contato WHERE nome="severino Severovitch" RETURN $b 17

XSL extensible Stylesheet Language Aplicação de XML para transformação e apresentação de dados disponíveis em XML Não existe mais como uma especificação. Foi dividida em duas XSLT foca em transformação de dados. XSLT é uma linguagem funcional para processamento de templates XSL-FO linguagem de descrição de página (como PDF, HTML+CSS) Cada especificação define um namespace próprio XSLT usa o identificador http://www.w3.org/1999/xsl/transform XSL-FO usa http://www.w3.org/1999/xsl/format Importante: as URLs acima são usadas como identificadores de namespace, e não representam nenhum endereço Web É muito comum usar URLs como identificadores de namespace Todas as aplicações XML do W3C usam URLs da forma: http://www.w3.org/<ano de criacao>/<tecnologia> 18

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="livro/titulo"> <td><xsl:value-of select="." /></td> XSLT XSL Transformations (XSLT) Linguagem (XML) para criação de documentos que contêm regras de transformação para documentos XML Documentos escritos em XSLT são chamados de folhas de estilo (mas são na verdade templates) e contêm Elementos XSLT: <template>, <if>, <for each>,... Expressões XPath para localizar nós da árvore-fonte Texto ou XML a ser gerado no documento-resultado Usa-se um processador XSLT fontetohtml.xslt Folha de estilos fonte.xml Documento Fonte Processador XSLT Xalan, TrAX, Saxon Firefox, I. Explorer, etc. Documento Resultado 19

XSLT: documento-fonte (1) Considere o seguinte documento-fonte: <aeronave id="ptgwz"> <origem partida="08:15">rio de Janeiro</origem> <destino>são Paulo</destino> </aeronave> E sua representação como uma árvore-fonte / <aeronave> @id PTGWZ <origem> Rio de Janeiro @partida 08:15 <destino> São Paulo 20

XSLT: folha de estilos (2) documento resultado (em preto) O seguinte template (parte de uma folha de estilos XSLT) pode extrair os dados do documento-fonte documento-fonte (em azul - XPath) <xsl:template match="aeronave"> <p>a aeronave de prefixo <xsl:value of select="@id" /> decolou de <xsl:value of select="origem" /> às <xsl:value of select="origem/@partida" /> tendo como destino o aeroporto de <xsl:value of select="destino" />.</p> </xsl:template> elementos XSLT (em vermelho, com prefixo xsl) Elementos XSLT são qualificados com prefixo (da forma <xsl:elemento>) para evitar conflitos com o documento-resultado O prefixo xsl e namespace precisam ser declarados com xmlns:xsl 21

XSLT: documento-resultado (3) Após a transformação, o resultado será <p>a aeronave de prefixo PTGWZ decolou de Rio de Janeiro às 8:15 tendo como destino o aeroporto de São Paulo.</p> Para obter outros resultados e gerar outros formatos com os mesmos dados, pode-se criar folhas de estilo adicionais 22

<fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:layout-master-set> <fo:simple-page-master master-name="p1"> <fo:region-body/> XSL-FO XSL Formatting Objects Linguagem XML de descrição de página com os mesmos recursos que PostScript ou PDF Descreve o layout preciso de texto e imagens Possui centenas de elementos, atributos e propriedades (que são semelhantes às propriedades do CSS) Páginas são facilmente convertidas para PDF e PostScript Ideal para gerar documentos para impressão (livros, etc.) Normalmente gerada via XSLT XML XML XSLT Fonte Processador XSLT XML Documento XSLFO FOP Documento PDF 23

XSL-FO: menor documento <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:layout master set> <fo:simple page master master name="p1"> <fo:region body/> </fo:simple page master> </fo:layout master set> <fo:page sequence master name="p1"> <fo:flow flow name="xsl region body"> <fo:block color="blue" font size="20pt"> Hello PDF! </fo:block> </fo:flow> </fo:page sequence> </fo:root> Ligação entre as regras de layout e o conteúdo afetado Este é o "<body>" do XSL-FO Este é o "<head>" do XSL-FO 24

<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>página XHTML</title></head> <body> <h1>página XHTML</h1> XHTML extensible HTML Linguagem XML de descrição de página Web Mesmos elementos do HTML 4.0 Strict Elementos descrevem somente a estrutura dos componentes da página. A forma precisa ser especificada usando CSS: não há elementos/atributos para mudar cor, alinhamento, etc. Pode ser misturada (estendida) com outras linguagens XML (MathML, SVG, linguagens proprietárias) Normalmente gerada via XSLT XML XML XSLT Documento Fonte Processador XSLT XML Documento XHTML 25

<svg xmlns="http://www.w3.org/2000/svg"> <circle style="fill: red" cx="3cm" cy="3cm" r="2.5cm" /> <rect style="fill: blue" x="6cm" y="6cm" height="2.5cm" width="1.5cm" /> SVG Scalable Vector Graphics (padrão W3C) Gráficos vetoriais em XML Plug-ins para principais browsers: concorre com Flash Suporta animações, links, JavaScript, CSS Produzido por ferramentas como Adobe Ilustrator Pode ser embutido no código XHTML e XSL-FO Zoom + Zoom + 26

Exemplo de SVG JavaScript <svg width="10cm" height="10cm"> <g onclick="alert('clicou no grupo 1!')"> <circle style="fill: red" CSS cx="3cm" cy="3cm" r="2.5cm" /> <rect style="fill: blue" x="6cm" y="6cm" height="2.5cm" width="1.5cm" /></g> <g onclick="alert('clicou no grupo 2!')"> <circle style="fill: green; opacity: 0.5" cx="5cm" cy="5cm" r="2cm" /></g> <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/graphics/svg"> <text style="color: black; font family: tahoma; font size: 12pt" x="3cm" y="8cm"> SVG é XML</text></a> </svg> XLink 27

Outras aplicações populares do XML MathML DocBook TEI WML VoiceXML Classe oper(): void oper2(): int 1 * XMI Classe2 oper(): void oper2(): int Classe3 oper(): void oper2(): int Web Services SOAP WSDL UDDI ebxml XML-RPC CML 28

Demonstração Exemplo de transformação XML PDF <xml> <xslt> FO (1) <xsl:fo> FOP (1.a) (1.b) Saxon (3) <xslt> SVG JFOR <xslt> Texto (4) (2) Texto texto texto texto texto texto texto texto texto <xslt> HTML HTML 2000 2001 SVG 29

Conclusões XML é uma ótima solução para compartilhar dados Para implementar soluções em gestão de informações usando XML, pode-se usar DTD ou XSchema para especificar o modelo de dados e validar as informações As APIs DOM ou SAX para extrair dados dos documentos, gerar documentos, ler e gravar em bancos de dados XSLT e XPath para transformar os dados em outros formatos XLink, XPointer e XQuery para criar vínculos lógicos entre os documentos e localizar seus componentes XSL-FO ou XHTML para formatar os dados para impressão ou visualização na tela (PDF, Word ou Web) SVG para gerar informações em forma de gráfico vetorial 30