Установить несколько пространств имен с другим префиксом, используя jdom - PullRequest
1 голос
/ 18 марта 2019

Я хотел бы иметь этот формат в 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

...