API Java para processamento XML

A API Java para processamento de XML , ou JAXP , é um dos Java - XML - APIs . É uma API padronizada leve para validar , analisar , gerar e transformar documentos XML. A respectiva implementação (não padronizada) da API é intercambiável (conectável). As quatro interfaces básicas são:

O J2SE 1.4 JDK foi a primeira versão do JDK publicada com uma implementação do JAXP 1.1; o JSE atual é fornecido com o Apache Xerces e uma variante adaptada do Xalan (para XSLT).

Controle de versão

Versão Java SE versão JAXP incluída
1,4 1,1
1,5 1,3
1,6 1,4
1.7.0 1.4.5
1.7.40 1,5
1.8 1,6

Interface DOM

A interface DOM possui uma estrutura muito simples. Ele analisa um documento XML inteiro e cria uma representação completa "na memória" do documento. Ele usa as classes e os conceitos da especificação que podem ser visualizados em Document Object Model (DOM) Nível 2 Core Specification.

O analisador DOM é denominado DocumentBuilder porque fornece uma representação de documento na memória. Uma instância da classe javax.xml.parsers.DocumentBuilder é criada pela classe Factory javax.xml.parsers.DocumentBuilderFactory . O DocumentBuilder primeiro cria uma instância org.w3c.dom.Document na forma de uma estrutura de árvore que contém os nós no documento XML. Cada nó da árvore nesta estrutura implementa a interface org.w3c.dom.Node . Existem muitos tipos diferentes de nós de árvore que representam os respectivos tipos de dados do documento XML.

Os nós mais importantes são:

  • Nós de elemento, possivelmente com atributos
  • Nós de texto que refletem o texto encontrado entre as marcas de início e fim de um elemento de documento

Para uma lista completa de tipos de nós, consulte a documentação javadoc do pacote org.w3c.dom .

Com a API DOM, você pode trabalhar 'em ambas as direções', ou seja, de XML para DOM "na memória", bem como de DOM para XML. Portanto, não é apenas adequado para "analisar" XML, mas também para gerar XML (fluxos ou arquivos).

Interface SAX

O analisador SAX, também chamado de SAXParser, é criado por javax.xml.parsers.SAXParserFactory . Em contraste com o analisador DOM, o SAXParser não cria uma representação "na memória" de um documento XML, o que consequentemente o torna mais rápido e menos exigente em termos de consumo de memória. Em contraste, o SAXParser informa o cliente da estrutura do documento XML por meio de funções de retorno de chamada , i. Em outras palavras, os métodos da instância DefaultHandler disponíveis para o analisador são executados.

A classe DefaultHandler está no pacote org.xml.sax.helpers . Isso implementa o ContentHandler, o ErrorHandler, o DTDHandler e a interface EntityResolver. A maioria dos clientes está interessada nos métodos da interface ContentHandler.

Os métodos ContentHandler, implementados pelo DefaultHandler, são chamados assim que o analisador SAX encontra os elementos correspondentes do documento XML. Os principais métodos desta interface são:

  • os métodos startDocument () e endDocument () , que são chamados nas tags de início e fim de um documento XML.
  • os métodos startElement () e endElement () , que são chamados nas marcas de início e fim de um elemento de documento.
  • o método de caracteres () . Isso é chamado com o conteúdo entre as marcas de início e fim do respectivo elemento de documento XML.

O cliente oferece uma subclasse do DefaultHandler , que sobrescreve esses métodos e processa os dados. Isso também pode incluir o armazenamento de dados em um banco de dados ou a gravação em um fluxo .

Com a SAX-API você pode trabalhar 'apenas em uma direção', ou seja, do XML 'para' Java. Portanto, é adequado apenas para "analisar" XML. Com SAX você não pode criar XML (fluxos ou arquivos).

Interface XMLPULL

A API Streaming para XML (StAX) faz parte do JAXP desde JAXP 1.2 e, portanto, JSE 6 e J2EE 1.4 . Isso é usado para ler dados XML usando um conhecido analisador XMLPULL. XMLPULL é semelhante ao SAX, exceto que o analisador não envia informações ao aplicativo por meio de um mecanismo de evento ( "PUSH" ), como é o caso do SAX , mas o aplicativo obtém as próximas informações quando precisa (" PULL " ) Os analisadores XMLPULL são geralmente mais eficientes do que os analisadores SAX.

Interface XSLT

O e x tensible S tylesheet L anguage para T ransformations, abreviado XSLT , a conversão de um documento XML permite a outras formas de dados.

Validação XSD

A validação de arquivos XSD é compatível com JAXP 1.2. JAXP 1.2 é parte da plataforma Java do JSE 6.0 e J2EE 1.4.

Evidência individual

  1. https://www.jcp.org/en/jsr/detail?id=206
  2. http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113

Links da web