Ich habe eine Situation, wo ich meine Namespaces dynamisch für meine Jaxb-Klassen einrichten müssen. meine Namespace in Jaxb-Klassen haben eine Version, die dynamisch geändert werden muss.
@XmlRootElement(name = "myobject",namespace="http://myhost.com/version-2")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType
public class myObject{
}
mein Marshalling funktioniert perfekt, wenn ich diesen statischen Namespacing-Mechanismus verwende, aber in meiner realen Situation muss diese Version dynamisch geändert werden.
Ich habe diesen Ansatz ausprobiert, um dieses Problem beim Rangieren zu lösen
XMLStreamWriter xmlStreamWriter =
XMLOutputFactory.newInstance().createXMLStreamWriter(stringWriter);
String uri = "http://myhost.com/ver-"+version;
//xmlStreamWriter.setDefaultNamespace(uri);
xmlStreamWriter.writeStartDocument("1.0");
xmlStreamWriter.writeNamespace("ns1", uri);
mein Versuch, setDefaultNamespace zu verwenden, war nicht erfolgreich, und writeNamespace hat mir einen Fehler angezeigt Ungültiger Zustand: Start-Tag ist bei writeNamespace nicht geöffnet
Wir sind für jeden Beitrag zur Lösung dieses Problems dankbar.