Tecnologias XML e Aplicações DOM Document Objetc Model Construção de documentos XML. Manipulação do conteúdo de documentos. Documentos são representados como uma estrutura de árvore hierárquica. Adicionar dados, remover dados ou consultar dados. W3C provê uma recomendação padrão para construir uma estrutura de árvore em memória para documentos XML, chamada DOM. <? xml version = “1.0” ?> <message from=“Paul” to=“Tom”> <body>Hi, Tom!</body> </message> Resulta numa árvore DOM. Árvore DOM message body from Hi! Tom to Parsers Parsers baseados em DOM. Biblioteca programática chamada DOM API. Permite dados em um documento XML serem acessados e modificados manipulando os nodos na árvore DOM. DOM API está disponível em linguagens como C, Java, VBScript, ... JDOM Trabalhar documentos XML em Java. Parsers baseados em DOM são escritos em uma variedade de linguagens e são disponíveis para download. Internet Explorer 5 tem um parser embutido. Parsers DOM JAXP – Sun Microsystems, Java API for XML Parsing, www.java.sun.com/xml XML4J – IBM’s XML Parser for Java, www.alphaworks.ibm.com/tech/xml4j Xerces – Apache’s Xerces Java Parser www.xml.apache.org/xerces. msxml – Microsoft’s XML Parser 2.0, embutido no Internet Explorer 5.5. Versão 3.0 em msdn.microsoft.com/xml. 4DOM – Python programming language, em fourthought.com/4Suite/4DOM. XML:DOM é um módulo Perl para manipular documentos XML usando Perl. www4.ibm.com/software/developer/library/ xml-perl2. Componentes DOM Para uma lista completa de interfaces e classes DOM, veja a documentação HTML: ( index.html na api folder ) incluído com p JAXP. Componentes DOM DOM classes e interfaces Métodos Document XMLDocument methods Node methods Node Types Element methods Partes para um exemplo demonstrativo DOM Uma aplicação Java que valida um documento XML. Exemplo em Java para substituir um nodotexto existente no documento XML. Um manipulador de erros. O documento XML de entrada. Saída do documento substituto. Construindo o documento XML com DOM. Usar DOM para percorrer a árvore do documento XML. SAX Simple API for XML SAX DOM – programaticamente para manipular um documento XML. SAX – outro método para acessar um conteúdo de documento XML. Desenvolvido por membros do XML-DEV mailing list, desde Maio de 1998. Método alternativo para parsear documentos XML, que usa um modelo baseado em eventos. DOM x SAX DOM e SAX são APIs diferentes para acessar informação em documentos XML. DOM é um modelo baseado em árvore que armazena os dados de documentos em uma hierarquia de nodos. Em DOM, todos os dados do documento XML ficam na memória. DOM x SAX Assim, em DOM, dados podem ser rapidamente processados. DOM provê facilidades para adicionar ou remover nodos, modificando o documento. SAX invoca métodos quando marcações do documento ( start tag e end tag, ... ) são encontradas. DOM x SAX Eventos são marcações. Em SAX, nenhuma estrutura de árvore é criada para armazenar os dados do documento XML. Dados são passados à aplicação, a partir do documento XML, como ele é encontrado. Maior desempenho e menos overhead memória do que DOM. DOM x SAX Parsers DOM usam um parser SAX para recuperar dados de um documento, para depois se construir a árvore DOM. Muitos programadores acham mais fácil percorrer e manipular documentos XML usando a árvore DOM. DOM x SAX Parsers SAX são tipicamente usados para lerem documentos XML que não serão modificados. Parsers baseados em SAX Disponíveis em uma variedade de linguagens: Java, Python, ... Diversos parsers baseados em SAX são disponíveis para download. JAXP é um deles. JAXP suporta SAX e DOM. Xerces suporta SAX e DOM. MSXML 3.0 suporta SAX e DOM. XML Path XPATH XPath XML provê um modo de descrever dados. Entretanto, XML não provê um modo para localizar dados estruturados em um dado documento. Um documento XML contendo dados sobre livros necessitaria ser parseado elemento a elemento no sentido de se encontrar um livro específico. Para um documento grande este processo poderia ser ineficiente. XPath XML Path Language provê uma sintaxe para localizar partes específicas (por exemplo, valores de atributos) de um documento XML, de uma maneira mais eficiente. XPath Xpath não é uma linguagem estrutural, como XML. É uma linguagem de expressões baseada em string, usada por outras tecnologias XML. Tal como XSLT (Extensible Stylesheet Language Transformations), que converte documentos XML para outros formatos (por exemplo, para HTML). XPath XPointer (XML Pointer Language) que provê um meio de apontar para informação dentro de um documento XML. Em Xpath um documento XML é visto conceitualmente como uma árvore, na qual cada parte do documento é representada como um nodo. XPath Em XPath, o resultado é uma hierarquia de nodos que representam os elementos de um documento XML em uma estrutura propícia à busca. XPath tem 7 tipos de nodos: root, element, attribute, text, comment, processing instruction, namespace. Um documento XML XPath Os nodos na árvore são similares aqueles de DOM. XML Query XQuery XML Query Tecnologia relacionada a XML para busca e recuperação de dados XML. Resource Definition Framework RDF RDF Tecnologia relacionada a XML que habilita autores de documentos a descreverem os dados em documentos XML. RDF A disponibilidade da Web e a facilidade de se criar documentos tem conduzido a uma riqueza de informação sobre a Web. Infelizmente encontrar a informação sobre um tópico específico pode ser difícil e consumir tempo. RDF É uma linguagem baseada em XML, para descrever informação contida em um recurso. Um recurso pode ser uma página Web, um site inteiro ou qualquer item sobre a Web que contenha informação em alguma forma. RDF “Informação sobre informação” (metadados) em RDF, pode ser usada por máquinas de busca ou agentes de software inteligentes para listar ou catalogar informação na Web. RDF RDF pode também ser usado para avaliar um site Web para “rating purposes” ou para criar assinaturas digitais ( o equivalente de uma assinatura escrita ). RDF O modelo e a sintaxe RDF é uma recomendação W3C. A RDF Schema Specification é ainda uma candidata à recomendação W3C. RDF Exemplo simples em RDF. Ferramenta de Visualização para RDF: www.w3.org/RDF/Implementations/SiR PAC - para parsear documentos RDF dentro do modelo de dados RDF. RDF Um mais substancial documento RDF para descrever um site Web por inteiro. RDF Tema de trabalho (A): 1. Descobrir informação na Web, sobre um tópico específico. 2. Construir agente de software inteligente para trabalhar como uma máquina de busca de informação, através do padrão RDF. RDF Tema de trabalho (B) - Usar RDF para criar assinaturas digitais. Tema de trabalho (C) - Usar RDF para avaliar um site Web para propósitos de “rating purposes”. XML Digital Signatures XML Digital Signatures Uma recomendação W3C para implementação XML de segurança e tecnologias de autenticação. DSML – Directory Services Markup Language Tecnologia relacionada a XML para descrever dados relacionais e metadados (informação sobre informação; elementos são exemplos de metadados) de modo eles possam ser gerenciados por serviços de diretórios (por exemplo, software para gerenciar recursos humanos em uma empresa). DSML Serviços de Diretório provêem um método para gerenciar recursos relacionais e metadados. Além do uso para armazenar registros de bens organizacionais, serviços de diretório podem ser usados com XML, para dinamicamente combinar com dados através de redes. DSML É a ponte entre serviços de diretório e XML. Um vocabulário padrão e esquema apropriado ( XML Schema ) provêem os meios para informação de serviços de diretório ser descrita em um documento XML. DSML Com DSML, diretórios podem manipular aplicações distribuídas baseadas na Web, tais como aquelas usadas em ebusiness, redes e gerenciamento da cadeia de fornecedores. DSML É independente de plataforma, requerendo somente que os dados sejam estruturados, de modo que eles possam manipulados DSML Referências DSML na Web: www.dsml.org é o site oficial do padrão DSML. www.oasis-open.org/cover/dsml.html Introdução à DSML, links relevantes e artigos. XML Topic Maps XTM XTM Tecnologia relacionada a XML para mapeamento de informação. Padrão International Standards Organization (ISO). Novo modelo para navegar (navigating) e ligar (linking) recursos. XTM Esse modelo pode ser pensado como a essência de um índice, glossário, dicionário de sinônimos ou um mapa de conceitos ( concept map ) (por exemplo, a representação gráfica de dados). XTM XML separa conteúdo da apresentação. Topic Maps (XTM) separa conteúdo de links. Topic Maps (XTM) existe como níveis de hipertexto (hypertext layers) acima de um conjunto de informação, ao contrário do que dentro desse conjunto. O mesmo como XLink faz. XTM Capacidade de ligação (linking). Habilidade para independentemente referenciar recursos. O conceito de topic: unidade básica de um mapa de tópicos. XTM Um topic é usado para representar um tema, um assunto ou uma matéria sobre alguma coisa e referenciar dados pertinentes a aquele assunto. Cada topic é descrito por outros topics que detalham: seus nomes, ocorrências e associações. XTM As ocorrências de um topic são os vários recursos de informação que se relacionam a ele. Cada ocorrência tem um certo role (papel) tal como um “chart” ou “article” e um “type” que provê informação adicional sobre o papel exercido. Ocorrência = (papel, tipo) XTM Os vários relacionamentos entre topics (tópicos) são descritos usando-se associações de diferentes tipos, bem como o papel que cada tópico exerce dentro da associação. XTM Topic Maps incorporam mecanismos que definem a identidade e escopo de um tópico, bem como as facetas ou propriedades da informação que ele referencia. Quase todo componente de um mapa de tópico é um tópico, habilitando o mapa de tópico ser auto-documentável (selfdocumenting) e auto-descrito (selfdescribing). XTM Instruções de processamento, consultas (queries) e esquemas (schemas) para mapas de tópicos podem eles próprios serem expressas como mapas de tópicos. XTM Dependendo de sua aplicação, uma mapa de tópico pode considerar diferentes assuntos serem tópicos e tratá-los em diferentes modos. Múltiplos mapas de tópicos podem ser aplicados a um conjunto de informações e um mapa de tópico pode ser aplicado a múltiplos conjuntos de informações. XTM Exemplo de mapa de tópico com: - abordando vários tópicos - suas associações - suas ocorrências - uma aplicação implementada em uma linguagem de programação (por exemplo, Python, Java, ...) usada para consultar o mapa de tópico, conforme comandos do padrão Topic Map. Virtual HyperGlossary VHG VHG Especificação independente de plataforma, para terminologia. Provê um método de gerenciamento de conhecimento que liga (attaches) informação semântica extensiva para dados estruturados, habilitando-os, por exemplo, a definições humanas entendíveis para serem ligadas (attached) a tags. VHG VHG especifica um framework de glossários “hiperlinkados”, dicionários e tesauros que provêem documentos com um ambiente terminológico. Documentos podem ser “linkados” a um glossário que tem uma extensiva rede de “hiperlinks” internos VHG Usa XML DOM para dar a seus glossários uma estrutura hieráquica que pode ser facilmente buscada e indexada. VHG tem ferramentas de software que proporcionam capacidades avançadas, incluindo marcação léxica automática de documentos, ... ... VHG ... ... indexação avançada, geração de mapa de conceitos (concept-map), manipulação taxonômica de glossários e suporte para glossários multilinguísticos usando algoritmos de tradução. VHG Recursos Web: www.vhg.org.uk site oficial VHG que contém informação extensiva sobre VHG. www.oasis-open.org/cover/vhg.html que contém breve informação e links para recursos relevantes e artigos. RSS – Rich Site Summary Também, uma tecnologia relacionada a XML que provê conteúdo dinâmico para assinantes de um serviço na Web. ICE – Information and Content Exchange Tecnologia relacionada a XML que gerencia o “content syndication” sobre redes. P3P – Platform for Privacy Preferences Tecnologia relacionada a XML em conformidade com uma especificação de políticas de privacidade de sites Web. BXXP – Bloks Extensible Exchange Protocol Uma tecnologia relacionada a XML para transferência de dados sobre a Internet. XrML – Extensible Rights Markup Language Tecnologia relacionada a XML para licenciamento de conteúdo digital proprietário (licensing property digital content). XMI – XML Metadata Interchange Tecnologia XML para o intercâmbio de dados sobre a modelagem de programas (exchanging programmodeling data). CDF – Channel Definition Format Tecnologia relacionada a XML que provê conteúdo (informação) dinâmico para assinantes de um serviço na Web.