Если вы хотите, чтобы пространство имен по умолчанию для вашего документа было http://www.namespace.com
, вы можете сделать следующее:
Демо
XMLStreamWriter.setDefaultNamespace(String)
и XMLStreamWriter.writeNamespace(String, String)
методы будут использоваться для установки и записи пространства имен по умолчанию для документа XML.
package forum9297872;
import javax.xml.bind.*;
import javax.xml.stream.*;
public class Demo {
public static void main(String[] args) throws Exception {
XMLStreamWriter writer = XMLOutputFactory.newFactory().createXMLStreamWriter(System.out);
writer.setDefaultNamespace("http://www.namespace.com");
JAXBContext jc = JAXBContext.newInstance(WorkSet.class);
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
writer.writeStartDocument();
writer.writeStartElement("http://www.namespace.com", "Import");
writer.writeNamespace("", "http://www.namespace.com");
writer.writeStartElement("WorkSets");
m.marshal(new WorkSet(), writer);
m.marshal(new WorkSet(), writer);
writer.writeEndDocument();
writer.close();
}
}
WorkSet
Я предполагаю, что вы указали информацию о пространстве имен в своемМодель JAXB.
package forum9297872;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="WorkSet", namespace="http://www.namespace.com")
public class WorkSet {
}
Выход
Ниже приведен результат запуска демонстрационного кода:
<?xml version="1.0" ?><Import xmlns="http://www.namespace.com"><WorkSets><WorkSet></WorkSet><WorkSet></WorkSet></WorkSets></Import>