Annotation introspector that leverages JAXB annotations where applicable to JSON mapping.
The following JAXB annotations are not supported yet (but some may be supported in future)
- {@link XmlAnyAttribute} not yet used (as of 1.5) but may be in future (as an alias for @JsonAnySetter?)
- {@link XmlAnyElement} not yet used, may be as per [JACKSON-253]
- {@link javax.xml.bind.annotation.XmlAttachmentRef}: JSON does not support external attachments
- {@link XmlElementDecl}
- {@link XmlElementRefs} because Jackson doesn't have any support for 'named' collection items -- however,this may become partially supported as per [JACKSON-253].
- {@link XmlID} because Jackson doesn't support referential integrity. NOTE: this too may be supportedin future if/when id references are handled
- {@link XmlIDREF} same as
XmlID
- {@link javax.xml.bind.annotation.XmlInlineBinaryData} since the underlying concepts(like XOP) do not exist in JSON -- Jackson will always use inline base64 encoding as the method
- {@link javax.xml.bind.annotation.XmlList} because JSON does have (or necessarily need)method of serializing list of values as space-separated Strings
- {@link javax.xml.bind.annotation.XmlMimeType}
- {@link javax.xml.bind.annotation.XmlMixed} since JSON has no concept of mixed content
- {@link XmlRegistry}
- {@link XmlRootElement} is recognized and used (as of 1.7) for defining root wrapper name (if used)
- {@link XmlSchema} not used, unlikely to be used
- {@link XmlSchemaType} not used, unlikely to be used
- {@link XmlSchemaTypes} not used, unlikely to be used
- {@link XmlSeeAlso} not needed for anything currently (could theoretically be usefulfor locating subtypes for Polymorphic Type Handling)
Note also the following limitations:
- Any property annotated with {@link XmlValue} will have a property named 'value' on its JSON object.
@author Ryan Heaton
@author Tatu Saloranta