Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2014, 02:37
Daniello23
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 10 años, 10 meses
Puntos: 0
Problema al generar un XML con JDOM (NameSpaces)

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??