Java API til XML-behandling
Den Java API til XML Processing , eller JAXP , er en af Java - XML - API'er . Det er en let standardiseret API til validering , parsing , generering og transformation af XML-dokumenter. Den respektive (ikke-standardiserede) implementering af API'et kan udskiftes (tilsluttes). De fire grundlæggende grænseflader er:
- den Document Object Model parser interface eller DOM grænseflade
- den simple API til XML- parser-interface eller SAX -interface
- den Streaming API til XML eller StAX- interface (tilsat i JDK 6; leveres separat som Jar for JDK 5)
- den XSLT interface til at gøre det muligt for transformationer på data og strukturer i et XML-dokument.
J2SE 1.4 JDK var den første JDK- version, der blev offentliggjort med en implementering af JAXP 1.1; den nuværende JSE leveres med Apache Xerces og en tilpasset variant af Xalan (til XSLT).
Versionering
| Java SE- version | inkluderet JAXP-version |
|---|---|
| 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 |
DOM-interface
DOM-grænsefladen har en meget enkel struktur. Det analyserer et helt XML-dokument og skaber en komplet "i hukommelse" -repræsentation af dokumentet. Det bruger klasser og koncepter i specifikationen, der kan ses under Document Object Model (DOM) niveau 2 kernespecifikation.
DOM-parseren kaldes DocumentBuilder, fordi den giver en dokumentrepræsentation i hukommelsen. En instans af klassen javax.xml.parsers.DocumentBuilder er skabt af Factory klasse javax.xml.parsers.DocumentBuilderFactory . DocumentBuilder opretter først en org.w3c.dom.Document- forekomst i form af en træstruktur, der indeholder noderne i XML-dokumentet. Hvert trænode i denne struktur implementerer grænsefladen org.w3c.dom.Node . Der er mange forskellige typer træknudepunkter, der repræsenterer de respektive datatyper fra XML-dokumentet.
De vigtigste noder er:
- Elementknudepunkter, muligvis med attributter
- Tekstnoder, der afspejler den tekst, der findes mellem start- og slutkoder for et dokumentelement
For en komplet liste over nodetyper henvises til javadoc- dokumentationen til org.w3c.dom- pakken .
Med DOM-API kan du arbejde 'i begge retninger', dvs. fra XML til "i hukommelse" DOM såvel som fra DOM til XML. Det er derfor ikke kun velegnet til "parsing" af XML, men også til generering af XML (streams eller filer).
SAX interface
SAX-parseren, også kaldet SAXParser, er oprettet af javax.xml.parsers.SAXParserFactory . I modsætning til DOM-parseren opretter SAXParser ikke en "in-memory" -repræsentation af et XML-dokument, hvilket følgelig gør det hurtigere og mindre krævende med hensyn til hukommelsesforbrug. I modsætning hertil informerer SAXParser klienten om XML-dokumentstrukturen gennem tilbagekaldsfunktioner , dvs. Med andre ord, metoder til DefaultHandler-forekomsten, der er tilgængelige for parseren, udføres.
StandardHandler-klassen er i pakken org.xml.sax.helpers . Dette implementerer ContentHandler, ErrorHandler, DTDHandler og EntityResolver-grænsefladen. De fleste klienter er interesserede i metoderne fra ContentHandler-grænsefladen.
ContentHandler-metoderne, implementeret af DefaultHandler, kaldes, så snart SAX-parseren støder på de tilsvarende elementer i XML-dokumentet. De vigtigste metoder i denne grænseflade er:
- de startDocument () og endDocument () metoder, som kaldes på start og slut tags af et XML-dokument.
- De startElement () og endElement () metoder, som kaldes på start- og slut-tags i et dokument element .
- de tegn () metode. Dette kaldes med indholdet mellem start- og slutkoder for det respektive XML-dokumentelement.
Klienten tilbyder en underklasse af DefaultHandler , der overskriver disse metoder og behandler dataene. Dette kan også omfatte lagring af data i en database eller skrivning til en stream .
Med SAX-API kan du arbejde 'kun i en retning', nemlig fra XML 'til' Java. Det er derfor kun egnet til "parsing" af XML. Med SAX kan du ikke oprette XML (streams eller filer).
XMLPULL interface
Streaming API til XML (StAX) har været en del af JAXP siden JAXP 1.2 og dermed JSE 6 og J2EE 1.4 . Dette bruges til at læse XML-data ved hjælp af en såkaldt XMLPULL-parser. XMLPULL svarer til SAX, bortset fra at parseren ikke sender information til applikationen via en begivenhedsmekanisme ( "PUSH" ), som det er tilfældet med SAX , men applikationen får selv den næste information, når den har brug for den (" PULL " ). XMLPULL-parsere er normalt mere effektive end SAX-parsers.
XSLT-interface
Den x strækbare S- typografiark L- anguage til T- ransformationer, forkortet XSLT , muliggør konverteringen et XML-dokument til andre former for data.
XSD-validering
Validering af XSD- filer understøttes fra JAXP 1.2. JAXP 1.2 er en del af Java-platformen fra JSE 6.0 og J2EE 1.4.
Individuelle beviser
- ↑ https://www.jcp.org/da/jsr/detail?id=206
- ↑ http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113
Weblinks
- Oracle's JAXP produktbeskrivelse
- Eksempel på program ved hjælp af DOM parser og SAX parser Tutorial: XML med Xerces til Java