Я использовал следующую заглушку jdom для удаления всех ссылок на пространство имен:
Element rootElement = new SAXBuilder().build(contents).getRootElement();
for (Iterator i = rootElement.getDescendants(new ElementFilter()); i.hasNext();) {
Element el = (Element) i.next();
if (el.getNamespace() != null) el.setNamespace(null);
}
return rootElement;
Чтение и запись xml выполняется как обычно. Если вы только после того, как вы читаете человека, это должно сделать работу. Однако, если вам нужно конвертировать обратно, у вас могут быть проблемы.
Следующее может помочь заменить пространства имен более удобной версией на основе вашего примера (не проверено):
rootElement.setNamespace(Namespace.getNamespace("MY_Main", "urn:my:main"));
rootElement.addNamespaceDeclaration(Namespace.getNamespace("MY_a", "urn:my:a"))
rootElement.addNamespaceDeclaration(Namespace.getNamespace("MY_b", "urn:my:b"))