2016-02-23 1 views
2

Je dois définir un espace de noms, j'espère que quelqu'un peut m'aider.Comment définir plusieurs espaces de noms, l'un d'eux sans préfixe (JDom)

C'est ce que je dois:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

J'essaie de le faire de cette façon:

  Namespace ns1 = Namespace.getNamespace("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"); 
     Namespace ns2 = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
     Element root = new Element("Document"); 
     root.addNamespaceDeclaration(ns2); 
     root.addNamespaceDeclaration(ns1); 

Mais je reçois cette exception:

L'espace de noms xmlns = "urn : iso: std: iso: 20022: tech: xsd: pain.001.001.03 " n'a pas pu être ajouté en tant qu'espace de noms à" Document ": le préfixe d'espace de noms « » entre en collision avec le préfixe d'espace de nom de l'élément

Merci

Répondre

2

Utilisez

Namespace ns1 = Namespace.getNamespace("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"); 
Namespace ns2 = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
Element root = new Element("Document", ns1); 
root.addNamespaceDeclaration(ns2); 

Puisque vous avez défini un espace de noms par défaut, vous devez l'utiliser lorsque vous créez le Element. Else JDOM se plaint que l'élément ne se trouve dans aucun espace de noms et possède en même temps une déclaration d'espace de nom par défaut.

+0

Merci beaucoup ......... – user2960190