O que circunda a XML

Author Photo
9:51 am - 14 de agosto de 2013

            Primeiramente, eu gostaria de agradecer a todos que vêm acompanhando os artigos – pelo segundo mês consecutivo, nosso Blog está entre os 10 mais ligos do Portal ITWeb.            Dando continuidade aos artigos técnicos sobre XML e com o desejo de finalizá-los o mais breve possível, para entrar na parte mais estratégica da XML e em alguns assuntos da Web Semântica,a falaremos agora do que está em torno da XML.             Na verdade, a XML é muito simples, e existe ao seu redor um mundo de outras tecnologias que a completam e a fazem ampliar as possibilidades, facilitando a maneira que trabalha com os dados, e  avance no tratamento as informações, bem como na busca e na recuperação. A XML não é apenas uma linguagem, mas várias que a fazem flexível, extensível e poderosa. Conforme nos mostra Daum e Merten[1] acerca do que há em torno da XML, são várias especificações recomendadas pelo W3C, como XPath, XPointer, XInclude, XQuery, XSL e DOM, que regulamentam o acesso a documentos XML, sua composição e transformação.  

a.    XPath

 XPath define como os nós dentro dos documentos XML podem ser acessados. As expressões usadas no XPath têm um papel fundamental, e podem ser utilizadas em outros padrões, como na XSL e na XQuery, que veremos a seguir. Vimos que a XML é um conjunto de informações numa estrutura de árvore, com isso, ficará facilitada a localização de um elemento ou um atributo especificando os nós pai. Utilizam-se expressões de caminho que especificam um arquivo dentro de um diretório de arquivos. Por exemplo, se desejarmos recuperar o último nome do autor 5, numa árvore de hierarquia do pai para os filhos: livro ? autores ? autor ? último_nome, tem-se :     /livro/autores/autor[5]/último_nome. Como tudo em XML é case sensitive, aqui também precisa-se levar em consideração as maiúsculas e minúsculas. Pode-se fazer o uso de funções na XPath, por exemplo: last() (número do último nó no contexto em questão); count() (número de nós de um conjunto de nós); true() false() (valores booleanos verdadeiro ou falso); sum() (soma valores numéricos de um conjunto de nós); dentre outras.  

b.    XPointer

XPointer é baseado em XPath. É a linguagem de ponteiro XML. Identifica a parte desejada ou o elemento dentro documento. Sua finalidade é aumentar o endereço URI, de modo que seja possível endereçar para dentro de um arquivo XML. Fazendo uma similaridade com o HTML, seria uma âncora específica dentro de uma página que pode ser endereçada complementando-se uma URI com o nome da âncora. Outra característica do uso do XPointer é permitir que atinja um dado elemento pelo número, pelo nome, pelo tipo ou pela relação a outros elementos no documento  

c.    XInclude

 XInclude especifica como incluir documentos XML externos, em um documento XML alvo. XInclude introduz um mecanismo para fundir documentos XML. A sintaxe utiliza as mesmas características da XML – elementos, atributos, e referências de URI. Com o Xinclude, podem-se compor documentos de diferentes namespaces. A figura abaixo temos um documento XML mostrando a flexibilidade do XInclude.   Filmes de ficcao   Arquivo : filmes_ficcao.xml   Matrix Resultado após a mesclagem   Filmes de ficcao       Matix   Figura: Exemplo de um documento XML utilizando XInclude Fonte: Arquivo pessoal  

d.    XQuery

  A necessidade de se ter consultas em XML, fez o W3C desenvolver o XQuery, que é a linguagem funcional de consulta a documentos XML. Ela tem características do XPath e do SQL (Structure Query Languange)[2], e outras linguagens. Como é uma linguagem recente, alguns problemas foram detectados no início, mas, novas versões com correções foram lançadas. As consultas são feitas através de uma expressão. Em um banco de dados relacional, onde os dados estão estruturados, usa-se a SQL para o acesso e manutenção nos dados. Num documento XML, precisa-se de um recurso viável para resgatar os dados e obter as informações: XQuery é este recurso. As expressões XQuery são bastante parecidas com expressões SQL. XQuery, portanto, focaliza assuntos que não são cobertos pela XPath.

e.    XSL

 As especificações da XSL (extensible stylesheet language ? linguagem de estilo extendida) definem como os documentos XML podem ser transformados em outro formato, principalmente em um formato para apresentação. Esta especificação possui três partes: XPath, XSLT (XSL transformations ? transformações XSL) e XSLFO (objetos de formatação XSL). o   XPath: como vimos acima ? a, XPath é uma linguagem para navegarmos arquivos XML. Ela foi criada originalmente no contexto da XSL. Posteriormente ela se tornou uma recomendação separada. o   XSLT: é uma linguagem baseada em XML. Especifica como os documentos XML podem ser transformados em outro formato (XML ou não). O documento de entrada precisa ser um XML bem formado. o   XSLFO: é a linguagem para formatar arquivos XML. XSLFO pode ser comparada com a CSS (cascading style sheets – folhas de estilo em cascata), que faz a formatação de estilo em páginas HTML.  

f.     APIS XML

  São interfaces de programas de aplicações para XML. Definem como as aplicações podem utilizar os analisadores existentes e outras ferramentas XML. As aplicações são livres para tratar um documento XML e realizar a análise com lógica personalizada, porém, é recomendado que isto seja evitado, e utilizem analisadores padrões, como o SAX ou DOM.    

g.    SAX

  SAX (Simple API for XML) não é um padrão do W3C. Existem diversos analisadores SAX, para diferentes linguagens de programação, dentre elas, Java, C++ e Delphi. As especificações SAX estão disponíveis publicamente. SAX é um analisador baseado em eventos ? ele lê um fluxo de entrada XML. SAX é bastante simples, não exige muita memória e suporta namespace. Não é possível modificar um documento XML, pois SAX é somente de leitura.  

h.    DOM

 

DOM (document object model) é uma interface de programação de aplicação completa para documentos XML. Esta interface permite que clientes possam navegar, acrescentar, modificar ou excluir documentos XML. DOM é relativamente pesado nos recursos, porém, ao contrário do SAX, armazena a estrutura completa do documento na memória. Como exemplo de uma implementação DOM muito popular nas plataformas Windows é o MSXML da Microsoft. A figura  nos mostra um exemplo de DOM:   Set xmlDoc = CreateObject(“Msxml2.DOMDocument.4.0”) Set stylePI = xmlDoc.createProcessingInstruction(“xml”, “version=””1.0″””) xmlDoc.appendChild(stylePI) Set root = xmlDoc.createElement(“ALUNOS”) xmlDoc.appendChild root AdicionaAluno “1”, “Renato”, root AdicionaAluno “2”, “Paulo”, root AdicionaAluno “3”, “Marcos”, root AdicionaAluno “4”, “Sérgio”, root xmlDoc.save “c:alunos.xml” sub AdicionaAluno(id, nome, raiz)    set eleAluno = xmlDoc.createElement(“ALUNO”)    eleAluno.setAttribute “id”, id    set eleNome = xmlDoc.createElement(“NOME”)            Set eleNomeConteudo = xmlDoc.createTextNode(nome)    eleNome.appendChild eleNomeConteudo    eleAluno.appendChild eleNome    raiz.appendChild eleAluno end sub   Figura: Exemplo de um documento DOM Fonte: Arquivo pessoal [1] As especificações a seguir serão baseadas no livro: DAUM, Bethold; MERTEN, Udo. Arquitetura de sistemas com XML. Rio de Janeiro: Campus, 2002, cap. 2.   [2] Linguagem funcional padrão de todos os banco de dados para definição e manipulação dos dados.    

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.