Buenos días,
tengo un pequeño problemilla al generar un fichero XML con JDOM que no consigo solucionar.
Necesito general el siguiente documento:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<accessModeObject xmlns="http://......" xmlns:xsi="http://www....." xsi:schemaLocation="http://www.....xsd">
<accessMode>
<tipo1>colour</tipo1>
<tipo2>size</tipo2>
</accessMode>
<accessMode>
<tipo1>weight</tipo1>
<tipo2>forme</tipo2>
</accessMode>
</accessModeObject>
En JAVA hago lo siguiente:
Código:
Document document = new Document();
Namespace namespace = Namespace.getNamespace("http://......");
Element accessModeObject= new Element("accessModeObject", namespace);
Namespace XSI = Namespace.getNamespace("xsi", "http://www.....");
accessForAllUser.addNamespaceDeclaration(XSI);
accessForAllUser.setAttribute("schemaLocation", "http://www.....xsd", XSI);
document.addContent(accessModeObject);
// Relleno el AccessMode con los tipos
Element accessMode = new Element("accessMode");
accessMode.addContent("size");
//etc
accessModeObject.addContent(accessMode);
El problema es que me propaga el NAMESPACE a todos los hijos y el resultado es:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<accessModeObject xmlns="http://......" xmlns:xsi="http://www....." xsi:schemaLocation="http://www.....xsd">
<accessMode xmlns="">
<tipo1>colour</tipo1>
<tipo2>size</tipo2>
</accessMode>
<accessMode xmlns="">
<tipo1>weight</tipo1>
<tipo2>forme</tipo2>
</accessMode>
</accessModeObject>
he probado con
Código:
accessMode.removeNamespaceDeclaration(namespace);
o con
Código:
Element accessMode = new Element("accessMode", "");
pero nada, no funciona.
¿¿Cómo puedo quitar el nameSpace de los hijos del rootElement??