Upload
armenio-cardoso
View
1.220
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Palestra apresentada no seminário One Day Java.
Citation preview
Java e XMLwrite once, publish
anywhereArmênio Cardoso
Consultor, Arquiteto de Sistemas e Professor
[email protected] e XML
O que é XML?
• Extensible Markup Language ou XML é uma nova tecnologia para aplicações Web.
• XML é um padrão definido pelo World Wide Web Consortium que permite que você crie as suas próprias tags.
• XML simplifica as transações B2b.
[email protected] e XML
Porque precisamos de XML?
• Porque precisamos de XML se os browsers suportam HTML?
• Vamos ver um trecho de código HTML:<p><b>Universidade Católica de Petrópolis</b><br>Rua Benjamim Constant<br>Petrópolis – Rio de Janeiro</p>
[email protected] e XML
Qual é o propósito do HTML?
• A linguagem HTML foi definida para interação homem-máquina.
• A sua função principal é a de diagramação e publicação de documentos.
• Quando renderizado, o html do exemplo anterior se transforma em “apresentação”.
[email protected] e XML
HTML vs. XML
• HTML é uma linguagem para a construção de IHM – Interface Homem-Máquina.
• O HTML não dispõe de nenhum recurso que descreva os dados contidos no documento.
• O papel do HTML é definir como dados devem se parecer.
[email protected] e XML
Exemplo de XML
• Vamos então ver como o XML se parece:<endereco><nome>
<titulo>Sr.</titulo><primeiro-nome>Armênio</primeiro-nome><ultimo-nome>Cardoso</ultimo-nome>
</nome><rua>Benjamim Constant</rua></endereco>
[email protected] e XML
Semântica
• Com XML você pode entender o significado das tags e estruturar informações.
• Mais do que isso, é possível escrever aplicações em Java, por exemplo, que “entendam” o significado dessas tags.
[email protected] e XML
Renderizando XML
• O XML do exemplo anterior poderia ser renderizado em uma tela exatamente como o exemplo em HTML.
• Mesmo que as tags sejam diferentes do HTML, é possível gerar saídas idênticas no browser.
[email protected] e XML
Write Once...
• XML é uma tecnologia que define o conceito de “folhas de estilo” (stylesheets).
• Esse recurso permite que um mesmo XML de origem possa ser renderizado em diversos formatos:
HTML – PDF – RTF - ...
[email protected] e XML
...Publish Anywhere
• A chave está na separação entre o arquivo que contém as informações do arquivo que contém as instruções de publicação (renderização).
• Em outras palavras, conteúdo e apresentação estão separados.
[email protected] e XML
Conteúdo e ApresentaçãoConteúdo
XML
DTD
XSL
Renderização Browser
HTML
PDFXSLT
DTD – document type definitionXSL/XSLT - stylesheet
[email protected] e XML
Como XML Muda a Web
• O ponto forte da linguagem XML é o intercâmbio de dados.
• Sistemas computacionais têm peculiaridades e muitas diferenças entre si.
• As diferenças aparecem em função das “idades” dos sistemas, equipes e ferramentas diferentes etc.
[email protected] e XML
Como XML Muda a Web
• Essas diferenças impõem barreiras na integração de sistemas.
• XML simplifica a troca de dados estruturados entre aplicações e entre organizações.
• Nada se perde nem precisa ser “compatibilizado” nas transações.
[email protected] e XML
Como XML Muda a Web
• Sistemas escritos por empresas diferentes, em linguagens diferentes e plataformas diferentes têm a chance de integração com XML.
• As únicas regras a serem seguidas são as da linguagem XML.
[email protected] e XML
Como XML Muda a Web
• O maior desafio enfrentado pelos mecanismos de pesquisa é conseguir interpretar o HTML de forma inteligente.
• Se você pesquisar pela palavra “chip”, provavelmente encontrará milhares de sites que falam sobre chips de computador ou sobre o Tico e Teco (Chip and Dale).
• Nesse caso o XML poderia diferenciar nomes próprios de coisas.
[email protected] e XML
Acessando XML no Browser
• Vimos que XML muda a forma com que os dados trafegam pela rede.
• XML encapsula dados dentro de tags customizadas, que carregam informações semânticas sobre os dados.
• Surge então uma questão: uma vez que eu tenho um arquivo XML como visualizá-lo?
[email protected] e XML
Acessando XML no Browser
• Um exemplo de solução para essa questão é o XML Enabler da IBM.
• Esse recurso permite converter XML em HTML usando “folhas de estilo” diferentes para diferentes browsers.
• Esse recurso é baseado em um servlet Java.
[email protected] e XML
Acessando XML no Browser
• Existem outras soluções de código aberto baseados em Java, que permitem transformar XML em diversos formatos, inclusive HTML.
• Um exemplo é o projeto Cocoon originado do grupo www.apache.org.
[email protected] e XML
Como as Coisas se Encaixam?
• Para construir um aplicativo XML é necessário:• Selecionar ou escrever um DTD –
document type definition• Gerar os documentos XML• Interpretar os documentos XML• Exibir os documentos XML
[email protected] e XML
Selecionar ou Escrever um DTD
• O que é o DTD (document type definition)? • Que tags fazem parte do seu documento.• Que tags contém outras tags.• O número e a sequência das tags.• Os atributos das tags e, opcionalmente, os
valores de domínio que esses atributos podem ter.
[email protected] e XML
Gerar um Documento XML
• Pense no DTD como um gabarito a ser preenchido.
• Para cada elemento, você deve obter os dados a partir da sua origem, tal como se fizesse uma query em um banco de dados.
• Quando o gabarito estiver preenchido, este pode ser enviado para quem pediu o documento.
[email protected] e XML
Regras de Validação
• Existem algumas regras para que um documento seja aceito como válido.• Por exemplo, as tags não podem se
sobrepor:<a><b></a></b>
• Uma tag não pode ser deixada sem a tag de fechamento.
• E outras regras...
[email protected] e XML
Documentos: Situações Possíveis
• Inválido:• Esse documento tem um DTD, mas não
segue as regras anteriores.
• “Well-formed”:• Seguem as regras, mas não têm um DTD.
• Válidos:• Seguem as regras e têm um DTD.
[email protected] e XML
Interpretando Documentos XML
• Quando você precisa interpretar um documento XML, existem duas APIs que podem ser usadas:• DOM – Document Object Model.• SAX – Simple API for XML.
[email protected] e XML
Interpretando Documentos XML
• DOM é um padrão do World Wide Web Consortium, que cria uma estrutura em árvore do seu documento XML.
• DOM define funções padronizadas para a manipulação dos elementos do seu documento.
[email protected] e XML
Interpretando Documentos XML
• SAX o notifica quando determinados eventos ocorrem, a medida em que o processo de “parsing” é executado sobre o seu documento.
• Quando você responde a um evento, quaisquer dados que não são armazenados, serão descartados.
[email protected] e XML
Interpretando Documentos XML
• SAX ou DOM?• Porque você deve usar SAX ou DOM? Se
os seus documentos são muito longos, o emprego da API SAX pode ser mais eficiente em termos do uso de memória.
• Por outro lado, DOM é uma API mais rica em funções do que SAX.
[email protected] e XML
Exibindo Documentos XML
• Existem diversas formas de exibir um documento XML:• Se o seu browser contiver lógica para
renderizar páginas XML.• Empregar XSL para transformar o
documento XML para algo que o seu browser entenda.
[email protected] e XML
Exibindo Documentos XML
• Caso o documento XML seja complexo em termos de estrutura de dados, é possível utilizar DOM.
• Dessa forma, você executa o “parsing” do documento e escreve código Java para manipular a árvore DOM, gerando o “output” que você quiser.
[email protected] e XML
Exemplo em Java
try
{
DOMParser parser = new DOMParser();
parser.parse(uri);
doc = parser.getDocument();
}
if (doc != null)
printDOMTree(doc);
[email protected] e XML
Exemplo em Java
public void printDOMTree(Node node){
int nodeType = Node.getNodeType();switch (nodeType){
case DOCUMENT_NODE:printDOMTree(((Document)node);GetDocumentElement());...
case ELEMENT_NODE:...
[email protected] e XML
Exemplo em Java
• Document Statistics for xpto.xml:• ====================================• Document Nodes: 1• Element Nodes: 23• Entity Reference Nodes: 0• CDATA Sections: 0• Text Nodes: 45• Processing Instructions: 0• ----------• Total: 69 Nodes
[email protected] e XML
Recursos
• Java Parsers• IBM - XML4J
http://www.alphaWorks.ibm.com
• James Clark –XPhttp://www.jclark.com/xml/xp
• Sun XML Parserhttp://developer.java.sun.com/developer/products/xml/
• DataChannel – XJParserhttp://xdev.datachannel.com/downloads/xjparser/
[email protected] e XML
Recursos
• Projeto Cocoon:http://www.apache.org
• Livro:• Java and XML – Brett McLaughlin – Editora
O’Reillyhttp://www.ora.com