我正在尝试用Java创建一个包含以下元素的XML文档:
<project xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
xmlns:acme="http://www.acme.com/schemas"
color="blue">
我知道如何创建项目Node。我也知道如何使用
设置颜色属性 element.setAttribute("color",
"blue")
我是否使用setAttribute()以相同的方式设置xmlns和xmlns:acme属性,或者我是否以特殊方式执行它,因为它们是命名空间属性?
答案 0 :(得分:11)
我相信你必须使用:
element.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:acme", "http://www.acme.com/schemas");
答案 1 :(得分:1)
我不认为下面的代码会提供这个问题!
myDocument.createElementNS("http://www.imsglobal.org/xsd/ims_qtiasiv1p2","project");
这将创建如下元素(使用DOM)
<http://www.imsglobal.org/xsd/ims_qtiasiv1p2:project>
因此,这不会向元素添加名称空间属性。所以使用DOM我们可以做类似
的事情Element request = doc.createElement("project");
Attr attr = doc.createAttribute("xmlns");
attr.setValue("http://www.imsglobal.org/xsd/ims_qtiasiv1p2");
request.setAttributeNode(attr);
因此它将设置如下的第一个属性,您可以以相同的方式设置多个属性
<project xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2>
答案 2 :(得分:1)
最简单的答案是:您不会自己创建xmlns属性。 Java XML类库会自动创建这些库。默认情况下,它将自动创建名称空间映射,并将基于某些内部算法选择前缀。 如果您不喜欢Java XML序列化程序分配的默认前缀,则可以通过创建自己的名称空间解析器来控制它们,如本文所述:
答案 3 :(得分:0)
您可以在创建元素时简单地指定命名空间。例如:
myDocument.createElementNS("http://www.imsglobal.org/xsd/ims_qtiasiv1p2","project");
然后java DOM库将为您处理命名空间声明。
答案 4 :(得分:0)
对我来说唯一有效的方法是在2019年使用attr()方法:
Element element = doc.createElement("project");
element.attr("xmlns","http://www.imsglobal.org/xsd/ims_qtiasiv1p2");