Professional Documents
Culture Documents
X100
Helder da Rocha
(helder@argonavis.com.br)
O que XML?
eXtensible Markup Language: padro W3C Uma maneira de representar informao
no uma linguagem especfica no define vocabulrio de comando no define gramtica, apenas regras mnimas de estrutura
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 raiz
<nome/>
XML Namespaces
Estabelecem um contexto para elementos e atributos Podem ser associados a um prefixo para qualificar elementos e atributos
Quando o prefixo no usado, estabelece um namespace default adotado pelo elemento onde declarado e seus elementos filho formalmente declarado atravs de um identificador (um string, geralmente uma URI) atravs de atributo reservado do XML: xmlns
<simulacao> Escopo do namespace vale <tempounidade="segundos">130</tempo> para elemento <clima> e <climaxmlns="uri://appclima"> herdado por todos os seus <tempo>chuvoso</tempo> descendentes </clima> </simulacao> <simulacaoxmlns:w="uri://appclima"> <tempounidade="segundos">130</tempo> Escopo do namespace vale <w:clima> para descendentes de <w:tempo>chuvoso</w:tempo> <simulacao> qualificados <tempounidade="horas">2.5</tempo> com o prefixo 'w' </w:clima> </simulacao> Nos dois casos, elementos <tempo> significam coisas diferentes, mas no h conflito porque pertencem a namespaces diferentes (um deles no tem namespace)
Documentos bem-formados obedecem as regras de construo de documentos XML genricos Regras incluem
Ter um, e apenas um, elemento raiz Valores dos atributos estarem entre aspas ou apstrofes Atributos no se repetirem Todos os elementos terem etiqueta de fechamento Elementos estarem corretamente aninhados
6
(2) Atributos tm que ter valores entre aspas (3) Nomes de elementos so case-sensitive (4) Todos os elementos tm marcadores de abertura e de fechamento
No pode Deve ser <br>x<br> <br/>x<br/> ou <br></br>x<br></br>
7
XML vlido
Um XML bem construdo pode no ser vlido em determinada aplicao Aplicao tpica pode esperar que
elementos faam parte de um vocabulrio limitado, certos atributos tenham valores e tipos definidos, elementos sejam organizados de acordo com uma determinada estrutura hierrquica, etc.
Esquema
Documentos que aderem especificao (vlidos)
Como definir esquemas: DTD - Document Type Definition W3C XML Schema
XML Schema
<xsd:schema xmlns:xsd=".../XMLSchema"> <xsd:elementname="contato"> <xsd:complexType> <xsd:attributename="codigo" use="required">
10
Porque texto
Fcil de ler, fcil de processar, menos incompatibilidades
12
Visualizao em um browser
Folha de estilo: conjunto de regras para formatar ou transformar as informaes de um documento XML CSS - Cascading Style Sheets
Transformao visando apresentao visual Aplicao do estilo em tempo de execuo no cliente Transformao em texto, HTML ou outro formato Aplicao em tempo real ou prvia (no servidor)
XSLT - eXtensible Stylesheet Language Se no estiver associado a uma folha de estilo, o documento XML no tem uma "aparncia" definida
Vrios browsers por default mostram a rvore-fonte XML Outros mostram apenas os ns de texto sem formatao
13
Via linguagens de processamento (suportadas por parsers e processadores padronizados pela W3C)
XSLT, XPath, XLink, XPointer e XQuery: extrao, transformao e localizao de dados XSL-FO, XHTML, SVG: apresentao de dados
14
Processamento XML
texto "custom" XML Web HTML CSS JavaScript
<xml> <xml>
WML VoiceXML
VRML
DOM SAX
Grficos SVG Imagens JPG e PNG
2000 2001
SGBD
15
XPath
Linguagem usada para navegar na rvore XML
Uma expresso XPath um caminho na rvore que resulta em um valor (nmero, texto, booleano), objeto (elemento, atributo, n de texto) ou conjunto de objetos
Caminhos absolutos
33 /contato/telefone/@tipo Severino Severovitch /contato/telefone/numero/text() bill@norte.com.br celular 11 9999 4321
/contato/@codigo
XQuery: linguagem para pesquisar documentos XML atravs de queries com sintaxe inspirada em SQL
Exemplo:
FOR$bINdocument("usuario_33.xml")/contato WHEREnome="SeverinoSeverovitch" RETURN$b
17
XSL
eXtensible Stylesheet Language
Aplicao de XML para transformao e apresentao de dados disponveis em XML
Importante: as URLs acima so usadas como identificadores de namespace, e no representam nenhum endereo Web
muito comum usar URLs como identificadores de namespace Todas as aplicaes XML do W3C usam URLs da forma: http://www.w3.org/<anodecriacao>/<tecnologia>
18
XSLT
fonte.xml
Documento Fonte
Documento Resultado
19
20
Elementos XSLT so 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
Para obter outros resultados e gerar outros formatos com os mesmos dados, pode-se criar folhas de estilo adicionais
22
XSL-FO
XSLT
XML
XML
Processador XSLT
Fonte
Documento XSLFO
FOP
Documento PDF
23
24
XHTML
eXtensible HTML
Linguagem XML de descrio de pgina Web Mesmos elementos do HTML 4.0 Strict Elementos descrevem somente a estrutura dos componentes da pgina. A forma precisa ser especificada
XSLT
XML
XML
Processador XSLT
Documento Fonte
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
Zoom +
26
Exemplo de SVG
JavaScript
<svgwidth="10cm"height="10cm"> <gonclick="alert('Clicounogrupo1!')"> CSS <circlestyle="fill:red" cx="3cm"cy="3cm"r="2.5cm"/> <rectstyle="fill:blue"x="6cm"y="6cm" height="2.5cm"width="1.5cm"/></g> <gonclick="alert('Clicounogrupo2!')"> <circlestyle="fill:green;opacity:0.5" cx="5cm"cy="5cm"r="2cm"/></g> <axmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/Graphics/SVG"> <textstyle="color:black;fontfamily:tahoma; fontsize:12pt"x="3cm"y="8cm"> SVGXML</text></a> </svg>
XLink
27
DocBook
Web Services
XML-RPC
CML
ebXML
28
Demonstrao
Exemplo de transformao XML
<xslt> FO
FOP
<xml> Saxon
<xslt> Texto
(1) (3)
<xsl:fo>
(1.a) (1.b)
<xslt> SVG
JFOR
(4) (2)
<xslt> HTML HTML
2000 2001
SVG
29
Concluses
XML uma tima soluo para compartilhar dados Para implementar solues em gesto de informaes usando XML, pode-se usar
DTD ou XSchema para especificar o modelo de dados e validar as informaes 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 vnculos lgicos entre os documentos e localizar seus componentes XSL-FO ou XHTML para formatar os dados para impresso ou visualizao na tela (PDF, Word ou Web) SVG para gerar informaes em forma de grfico vetorial
30