Установите несколько пространств имен с разными префиксами с помощью jdom

#java #xml #jdom #jdom-2

#java #xml #jdom #jdom-2

Вопрос:

Я хотел бы иметь этот формат в xml

 <?xml version="1.0" encoding="UTF-8"?>
     <Document xmlns="urn:001.003.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tech:xsd:pain.001.001.03">
          <staff id="1">
              <firstname>yong</firstname>
          </staff>
    </Document>
  

Я использую следующий код.

      Namespace namespace = Namespace.getNamespace("urn:001.003.03");
     Namespace namespace1 = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");

     Namespace namespace2 = Namespace.getNamespace("schemaLocation", "urn:tech:xsd:pain.001.001.03");

     Element document = new Element("Document", namespace);
     Document doc = new Document(document);
     doc.setRootElement(document);

     document.addNamespaceDeclaration(namespace1);


     document.addNamespaceDeclaration(namespace2);

     Element staff = new Element("staff", namespace);
     staff.setAttribute(new Attribute("id", "1"));
     staff.addContent(new Element("firstname",namespace).setText("yong"));
     doc.getRootElement().addContent(staff);
  

Я получаю вывод:

 <?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:001.003.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:schemaLocation="urn:tech:xsd:pain.001.001.03">
  <staff id="1">
    <firstname>yong</firstname>
  </staff>
</Document>
  

Мне нужно пространство имен, подобное xsi: schemaLocation, но его генерирующее пространство имен, подобное xmlns: schemaLocation