XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
XMLStreamWriter writer = outputFactory.createXMLStreamWriter(System.out);
NamespaceContext namespaceContext = new NamespaceContext() {
@Override
public String getNamespaceURI(String prefix) {
if ("prefix1".equals(prefix)) {
return "http://www.example.com/namespace1";
} else if ("prefix2".equals(prefix)) {
return "http://www.example.com/namespace2";
}
return null;
}
@Override
public String getPrefix(String namespaceURI) {
if ("http://www.example.com/namespace1".equals(namespaceURI)) {
return "prefix1";
} else if ("http://www.example.com/namespace2".equals(namespaceURI)) {
return "prefix2";
}
return null;
}
@Override
public Iterator<String> getPrefixes(String namespaceURI) {
List<String> prefixes = new ArrayList<>();
if ("http://www.example.com/namespace1".equals(namespaceURI)) {
prefixes.add("prefix1");
} else if ("http://www.example.com/namespace2".equals(namespaceURI)) {
prefixes.add("prefix2");
}
return prefixes.iterator();
}
};
writer.setNamespaceContext(namespaceContext);
writer.writeStartDocument();
writer.writeStartElement("prefix1", "rootElement", "http://www.example.com/namespace1");
writer.writeNamespace("prefix1", "http://www.example.com/namespace1");
writer.writeStartElement("prefix2", "childElement", "http://www.example.com/namespace2");
writer.writeNamespace("prefix2", "http://www.example.com/namespace2");
writer.writeEndElement();
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();