Jakarta XML Binding - Jakarta XML Binding
Úložiště | ![]() |
---|---|
Napsáno | Jáva |
webová stránka | projekty![]() |
Jakarta XML Binding (JAXB; dříve Java Architecture for XML Binding) je a softwarový rámec to umožňuje Jakarta EE vývojáři mapovat Javu třídy na XML reprezentace. JAXB poskytuje dvě hlavní funkce: schopnost maršál Jáva předměty do XML a inverzní, tj. do maršál XML zpět do objektů Java. Jinými slovy, JAXB umožňuje ukládání a načítání dat v paměti v jakémkoli formátu XML, aniž by bylo nutné implementovat konkrétní sadu procedur načítání a ukládání XML pro strukturu tříd programu. Je to podobné jako xsd.exe
a XmlSerializer
v .NET Framework.
JAXB je zvláště užitečný, když je specifikace složitá a mění se. V takovém případě pravidelně měňte Schéma XML definice pro jejich synchronizaci s definicemi prostředí Java mohou být časově náročné a náchylné k chybám.
JAXB je jedním z API na platformě Jakarta EE (dříve Java EE), která je součástí Vývojová sada webových služeb Java (JWSDP) a jeden ze základů pro WSIT. Byla také součástí Java SE platforma (ve verzi Java SE 6-10). Jak Java SE 11, JAXB byl odstraněn. Podrobnosti viz JEP 320.
JAXB 1.0 byl vyvinut pod Proces komunity Java jako JSR 31.[1] V roce 2006 byl JAXB 2.0 vydán pod JSR 222 a Maintenance Release 2 vydán v prosinci 2009.[2] Referenční implementace pro tyto specifikace byly k dispozici pod Licence CDDL open source na java.net.
Používání
Nástroj "xjc"lze použít k převodu Schéma XML a další typy souborů schématu (od Java 1.6, RELAX NG, XML DTD, a WSDL jsou experimentálně podporovány) do reprezentací tříd.[3] Třídy jsou označeny pomocí anotace z javax.xml.bind.annotation. * jmenný prostor, například @XmlRootElement a @XmlElement. Sekvence seznamu XML jsou reprezentovány atributy typu java.util.List. Marshallers a Unmarshallers jsou vytvořeni pomocí instance JAXBContext.
Kromě toho JAXB obsahuje „schemagen„nástroj, který může v zásadě provádět inverzi“xjc", vytvoření schématu XML ze sady anotovaných tříd.
Výchozí vazby datových typů
V následující tabulce je uveden seznam mapování Schéma XML (XSD) datové typy na datové typy Java v JAXB.[4]
Typ schématu XML | Datový typ Java |
---|---|
xsd: řetězec | řetězec java.lang |
xsd: integer | java.math.BigInteger |
xsd: positiveInteger | java.math.BigInteger |
xsd: int | int |
xsd: dlouhý | dlouho |
xsd: krátké | krátký |
xsd: desítkové | java.math.BigDecimal |
xsd: float | plovák |
xsd: double | dvojnásobek |
xsd: boolean | booleovský |
xsd: byte | byte |
xsd: QName | javax.xml.namespace.QName |
xsd: dateTime | javax.xml.datatype.XMLGregorianCalendar |
xsd: base64Binary | byte[] |
xsd: hexBinary | byte[] |
xsd: unsignedInt | dlouho |
xsd: unsignedShort | int |
xsd: unsignedByte | krátký |
xsd: unsignedLong | java.math.BigDecimal |
xsd: čas | javax.xml.datatype.XMLGregorianCalendar |
xsd: datum | javax.xml.datatype.XMLGregorianCalendar |
xsd: g | javax.xml.datatype.XMLGregorianCalendar |
xsd: anySimpleType [5] | java.lang.Object |
xsd: anySimpleType [6] | řetězec java.lang |
xsd: trvání | javax.xml.datatype.Duration |
xsd: OZNÁMENÍ | javax.xml.namespace.QName |
Verze
- Java SE 9: JAXB 2.3.0 [7] (v modulu
java.xml.bind
; tento modul je označen jako zastaralý [8]) - Java SE 8: JAXB 2.2.8 [9]
- Java SE 7: JAXB 2.2.3 (JSR 222, maintenance release 2) [10]
- Java SE 6: JAXB 2.0 (JSR 222) [11]
Viz také
- Datová vazba XML
- JiBX - jeden z nejrychlejších datových pořadačů XML [12][13]
- XMLBeans - podobná a doplňková technologie jako JAXB z Softwarová nadace Apache
- TopLink - objekt na relační a objekt na XML mapovač z Věštec který podporuje JAXB 1.0
- EclipseLink MOXy - otevřený zdroj implementace JAXB a objektových mapovacích služeb XML pod Eclipse Foundation
- Liquid XML Studio - Komerční nástroj pro generování kódu vazby dat XML
- Jednoduchá XML serializace - Alternativa k JAXB, umožňující rychlý vývoj konfiguračních a komunikačních systémů XML
Reference
- ^ „JSRs: Java Specification Requests. JSR 31: XML Data Binding Specification“. Citováno 2011-02-15.
- ^ „JSRs: Java Specification Requests. JSR 222: Java Architecture for XML Binding (JAXB) 2.0“. Citováno 2011-02-15.
- ^ „xjc - Java Architecture for XML Binding“. Citováno 2011-02-15.
- ^ „Používání datové vazby JAXB: Standardní mapování datových typů“.
- ^ pro
xsd: element
tohoto typu - ^ pro
xsd: atribut
tohoto typu - ^ „Který JAXB RI je zahrnut ve kterém JDK?“.
- ^ "Zastaralý modul java.xml.bind".
- ^ „Jaxb 2.2.8 (JDK 8)“. Citováno 2015-03-01.
- ^ „Java SE 7: Java XML Technology Enhancements“. Citováno 2012-03-21.
- ^ „Java SE 6: Funkce a vylepšení“. Citováno 2012-03-21.
- ^ Dennis Sosnoski. „Technologie XML a Java: Vazba dat, Část 2: Výkon“. Citováno 2011-02-15.
- ^ „XML Binding Frameworks in the Context of Service-Oriented Architecture“. Citováno 2011-02-15.
externí odkazy
- Oficiální webové stránky
Referenční implementace v projektu GlassFish
- předchozí domovská stránka JAXB
- původní domovská stránka JAXB
- Výukový program JAXB Wolfgang Laun
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- Výukový program Java EE 5 - Vazba mezi schématem XML a třídami Java Kapitola JAXB výukového programu Java EE 5
- Průvodce JAXB
- Výukové programy JAXB