Durch einen Fehler in der JAXB Reference Implementation (RI) wird die Annotation XmlNs für einen Namespace in der package-info.java auf Paketebene nicht korrekt verarbeitet. Abhilfe schafft eine Aktualisierung auf die Version 2.2.5.
Welche Bibliotheken für welchen Zweck eingebunden werden müssen, steht in den Release Notes.
Nach der Aktualisierung funktioniert folgendes Beispiel. In der erzeugten XML-Datei erhalten alle Elemente aus dem Namespace http://www.bmecat.org/bmecat/2005 das Prefix bmecat.
[code lang=“java“]@javax.xml.bind.annotation.XmlSchema(
namespace = „http://www.opentrans.org/XMLSchema/2.1“,
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = „“,
namespaceURI = „http://www.opentrans.org/XMLSchema/2.1“),
@javax.xml.bind.annotation.XmlNs(prefix = „bmecat“,
namespaceURI = „http://www.bmecat.org/bmecat/2005“)
},
location =
„http://www.opentrans.org/XMLSchema/2.1 opentrans_2_1.xsd“,
elementFormDefault =
javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault =
javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
)
package bob.core.opentrans;[/code]