The following package-level JAXB annotations are relevant from an interoperability standpoint:
@XmlSchema – customizes the mapping of package to XML namespace.
@XmlSchemaType – customizes the mapping of XML schema built-in type. The @XmlSchemaType annotation can also be used at the property/field level, as was seen in the example XMLGregorianCalendar Type.
A package is mapped to an XML namespace. The following attributes of the XML namespace can be customized using the @XmlSchema annotation parameters:
elementFormDefault using @XmlSchema.elementFormDefault()
attributeFormDefault using @XmlSchema.attributeFormDefault()
targetNamespace using @XmlSchema.namespace()
Associate namespace prefixes with the XML namespaces using the @XmlSchema.ns() annotation
These XML namespace attributes are bound to .NET serialization attributes (for example, XmlSerializer attributes).
Any JAXB 2.0 annotation can be used, but the following are not recommended:
The javax.xml.bind.annotation.XmlElementDecl annotation is used to provide complete XML schema support.
The @XmlID and @XmlIDREF annotations are used for XML object graph serialization, which is not well supported.