API Java pentru procesare XML

Java API pentru XML Processing , sau JAXP , este unul dintre Java - XML - API - uri . Este un API standardizat ușor pentru validarea , analizarea , generarea și transformarea documentelor XML. Implementarea respectivă (nestandardizată) a API-ului este interschimbabilă (conectabilă). Cele patru interfețe de bază sunt:

J2SE 1.4 JDK a fost prima versiune JDK care a fost publicată cu o implementare a JAXP 1.1; actualul JSE este furnizat cu Apache Xerces și o variantă adaptată de Xalan (pentru XSLT).

Versionarea

Versiunea Java SE a inclus versiunea JAXP
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

Interfață DOM

Interfața DOM are o structură foarte simplă. Analizează un întreg document XML și creează o reprezentare completă "în memorie" a documentului. Acesta folosește clasele și conceptele specificației care pot fi vizualizate în Documentul Model de obiect document (DOM) Level 2 Core Specification.

Analizatorul DOM se numește DocumentBuilder deoarece oferă o reprezentare a documentului în memorie. O instanță a clasei javax.xml.parsers.DocumentBuilder este creată de clasa Factory javax.xml.parsers.DocumentBuilderFactory . DocumentBuilder creează mai întâi o instanță org.w3c.dom.Document sub forma unei structuri de copac care conține nodurile din documentul XML. Fiecare nod arbore din această structură implementează interfața org.w3c.dom.Node . Există multe tipuri diferite de noduri de arbore care reprezintă tipurile de date respective din documentul XML.

Cele mai importante noduri sunt:

  • Noduri de element, eventual cu atribute
  • Noduri de text care reflectă textul găsit între etichetele de început și de sfârșit ale unui element de document

Pentru o listă completă a tipurilor de noduri, consultați documentația javadoc a pachetului org.w3c.dom .

Cu DOM-API puteți lucra „în ambele direcții”, adică de la XML la „în memorie” DOM, precum și de la DOM la XML. Prin urmare, este potrivit nu numai pentru „analizarea” XML, ci și pentru generarea XML (fluxuri sau fișiere).

Interfață SAX

Analizorul SAX, numit și SAXParser, este creat de javax.xml.parsers.SAXParserFactory . Spre deosebire de parserul DOM, SAXParser nu creează o reprezentare „în memorie” a unui document XML, ceea ce îl face, prin urmare, mai rapid și mai puțin solicitant în ceea ce privește consumul de memorie. În schimb, SAXParser informează clientul cu privire la structura documentului XML prin funcții de apel invers , i. Cu alte cuvinte, sunt executate metodele instanței DefaultHandler disponibile pentru parser.

Clasa DefaultHandler se află în pachetul org.xml.sax.helpers . Aceasta implementează ContentHandler, ErrorHandler, DTDHandler și interfața EntityResolver. Majoritatea clienților sunt interesați de metodele din interfața ContentHandler.

Metodele ContentHandler, implementate de DefaultHandler, sunt apelate de îndată ce parserul SAX întâlnește elementele corespunzătoare ale documentului XML. Principalele metode din această interfață sunt:

  • a startDocument () și endDocument () metode, care sunt numite pe etichetele de început și sfârșit ale unui document XML.
  • a startElement () și endElement () metode, care sunt numite pe început și de sfârșit Tag - un document elementului .
  • metoda personajelor () . Aceasta se numește cu conținutul dintre etichetele de început și de sfârșit ale respectivului element de document XML.

Clientul oferă o subclasă a DefaultHandler , care suprascrie aceste metode și procesează datele. Aceasta poate include, de asemenea, stocarea datelor într-o bază de date sau scrierea într-un flux .

Cu SAX-API puteți lucra „numai într-o singură direcție”, și anume din XML „în„ Java. Prin urmare, este potrivit doar pentru „analizarea” XML. Cu SAX nu puteți crea XML (fluxuri sau fișiere).

Interfață XMLPULL

API-ul Streaming pentru XML (StAX) face parte din JAXP de la JAXP 1.2 și, prin urmare, JSE 6 și J2EE 1.4 . Aceasta este utilizată pentru a citi date XML utilizând așa-numitul parser XMLPULL. XMLPULL este similar cu SAX, cu excepția faptului că analizorul nu trimite informații către aplicație printr-un mecanism de eveniment ( „PUSH” ), așa cum este cazul cu SAX , dar aplicația primește singură următoarea informație atunci când are nevoie de ea („ PULL ”) ). Analizatorii XMLPULL sunt de obicei mai eficienți decât analizatorii SAX.

Interfață XSLT

E x tensible S tylesheet L anguage pentru T ransformations, prescurtat XSLT , conversia permite unui document XML la alte forme de date.

Validare XSD

Validarea fișierelor XSD este acceptată din JAXP 1.2. JAXP 1.2 face parte din platforma Java de la JSE 6.0 și J2EE 1.4.

Dovezi individuale

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

Link-uri web