gpt4 book ai didi

java - 如何使用 Java 在根元素中获取多个命名空间定义?

转载 作者:行者123 更新时间:2023-11-30 10:51:38 25 4
gpt4 key购买 nike

我正在尝试使用 JAVA 创建一个 XML DOM 文件,在根元素中有多个命名空间定义。

<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1"
xmlns:uml="http://schema.omg.org/spec/UML/2.1"
xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
xmlns:cns="http://www.w3c.org/2016/XML/cns">
<!--- lots of data -->
</xmi:XMI>

我尝试了几种方法,但没有找到正确的方法。

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
Document doc = dbf.newDocumentBuilder().newDocument();
Element root = doc.createElementNS("http://schema.omg.org/spec/UML/2.1", "xmi:XMI");
doc.appendChild(root);

创建我的第一个命名空间定义。

 <?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1">
<!--- some data -->
</xmi:XMI>

但是如何创建其他的呢?我体验过 root.setAttributeNS("http://schema.omg.org/spec/UML/2.1", "uml:Model", null);,但后来我只得到

<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI
xmlns:uml="http://schema.omg.org/spec/UML/2.1"
uml:Model=""
xmlns:xmi="http://schema.omg.org/spec/XML/2.1"/>
<!--- some data -->
</xmi:XMI>

uml:Model 属性不应该存在。任何想法?

最佳答案

这似乎可行:

root.setAttribute("xmlns:uml", "http://schema.omg.org/spec/UML/2.1");
root.setAttribute("xmlns:cns", "http://www.w3c.org/2016/XML/cns");

即只需将它们设置为普通属性即可。

关于java - 如何使用 Java 在根元素中获取多个命名空间定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com