In this example we will map a String value to an element name. Instead of <foo>bar</foo> we want <bar/>. We will accomplish this by using @XmlAdapter and @XmlElementRef.
December 21, 2010
December 20, 2010
JAXB and Marshal/Unmarshal Schema Validation
In a previous post I described how to validate an object model (mapped with JAXB annotations) against an XML schema using the javax.xml.validation APIs. In this post I'll describe how to leverage those APIs during unmarshal and marshal operations.
Labels:
JAXB,
Marshaller,
Unmarshaller,
Validation,
XML Schema
December 10, 2010
Extending JAXB - Representing Metadata as XML
In JAXB (JSR-222) metadata is applied to Java classes via standard annotations. There are times when using annotatations is not practical, and an alternate mechanism is required. In this post I'll demonstrate how EclipseLink JAXB (MOXy) can leverage XML to represent the JAXB metadata.
An XML metadata representation is useful when:
- You cannot modify the domain model (it may come from a 3rd party).
- You do not want to introduce compile dependencies on JAXB APIs (if you are using a version of Java prior to Java SE 6).
- You want to apply multiple JAXB mappings to a domain model (you are limited to one representation with annotations).
- Your object model already contains so many annotations from other technologies that adding more would make the class unreadable.
Labels:
EclipseLink,
Extension,
JAXB,
Mapping File,
MOXy
December 7, 2010
Case Insensitive Unmarshalling with JAXB
Recently I've been asked in a couple different forums how to handle case insensitive unmarshalling in JAXB. In this post I'll discuss an approach using a StAX StreamReaderDelegate.
I am considering adding this as an official feature, and would be interested in your feed back. I am using the following bug to track this issue:
I am considering adding this as an official feature, and would be interested in your feed back. I am using the following bug to track this issue:
December 3, 2010
JAXB and Immutable Objects
I was recently sent a blog post: JAXB and immutable objects, by Aniket Shaligram. In this post the author addresses the issue by adding a default constructor and using field access, to avoid adding set methods. This approach is perfectly valid, but leaves the class being more mutable than some people like (including the person who sent me the link). In this post I'll discuss an alternative approach using XmlAdapter.
November 24, 2010
Validate a JAXB Object Model With an XML Schema
In this post I will demonstrate how to validate a JAXB object model against an XML schema. This will be done using the javax.xml.validation APIs.
November 5, 2010
JAXB and Inheritance - MOXy Extension @XmlDescriminatorNode/@XmlDescrimintatorValue
In previous blog posts I described how to leverage the xsi:type attribute and substitution groups to represent inheritance. In this post I'll demonstrate how an upcoming EclipseLink 2.2 JAXB (MOXy) extension can be used to represent inheritance. It leverages an attribute of your own choosing to represent the subtype. If you are using a version of EclipseLink prior to 2.2 you can use the technique described here.
November 4, 2010
JAXB and Inheritance - Using Substitution Groups
In a previous blog post I described how to leverage the xsi:type attribute to represent inheritance. In this post I'll demonstrate how to use the element name instead by leveraging the XML Schema concept of substitution groups.
Labels:
Inheritance,
JAXB,
XmlElementRef,
XmlRootElement
JAXB and Inheritance - Using the xsi:type Attribute
In a previous blog post I was challenged by an Xstream user to describe how JAXB handles inheritance. In this post I'll describe one strategy that can be used, and how easily this can be done with JAXB. I'll discuss alternate strategies in future posts.
October 25, 2010
How Does JAXB Compare to Simple?
In a previous post I compared JAXB to XStream. In this post I'll run that comparison with the Simple XML Serialization framework.
Subscribe to:
Posts (Atom)