常见的XML绑定技术:
CASTOR
Xml for the view( +XSLT )
JAXB
XStream
XMLBeans
XGen
JAXB(Java Architecture for XML Binding):JAXB被包含在 JAVA SE 1.6中,它是一个业界的标准,是一项可以根据 XML Schema产生Java类的技术。它允许Java开发者把Java类映射到xml。
JAXB提供2个主要的特性: marshal、即把java对象打包成xml内容以及unmarshal、即把xml内容解包成java对象。这和DotNet Framework中的xsd.exe和XmlSerializer很象。
使用:
“xjc”工具可以用来将XML模式或其他类型模式文件(Java 1.6试验性地支持RELAX NG,DTD以及WSDL) 转换为Java类。Java类使用javax.xml.bind.annotation包下的Java 标注,例如@XmlRootElement和@XmlElement。XML列表序列表示为java.util.List类型的属性, 通过JAXBContext可以创建Marshallers(将Java对象转换成XML)和Unmarshallers(将XML解析为Java对 象)。
此外,JAXB包括了一个“ schemagen”工具,能够执行“xjc”的反向操作,通过一组标注的Java类创建一个XML模式。
缺省的数据类型绑定:
下面的表格列出了JAXB中 XML Schema (XSD)数据类型和Java数据类型的映射。
- XML Schema类型 Java数据类型
- xsd:string java.lang.String
- xsd:positiveInteger java.math.BigInteger
- xsd:int int
- xsd:long long
- xsd:short short
- xsd:decimal java.math.BigDecimal
- xsd:float float
- xsd:double double
- xsd:boolean boolean
- xsd:byte byte
- xsd:QName javax.xml.namespace.QName
- xsd:dateTime javax.xml.datatype.XMLGregorianCalendar
- xsd:base64Binary byte[]
- xsd:hexBinary byte[]
- xsd:unsignedInt long
- xsd:unsignedShort int
- xsd:unsignedByte short
- xsd:time javax.xml.datatype.XMLGregorianCalendar
- xsd:date javax.xml.datatype.XMLGregorianCalendar
- xsd:g javax.xml.datatype.XMLGregorianCalendar
- xsd:anySimpleType java.lang.Object
- xsd:anySimpleType java.lang.String
- xsd:duration javax.xml.datatype.Duration
- xsd:NOTATION javax.xml.namespace.QName