gpt4 book ai didi

java - 如何通过包含 namespace 信息来创建 XML 元素?

转载 作者:行者123 更新时间:2023-11-30 08:21:59 26 4
gpt4 key购买 nike

我正在尝试通过将命名空间信息作为其属性来创建 XML 元素。我的代码如下,

Element root = new Element("APC_DDF");
root.setAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
root.setAttribute("xsi:noNamespaceSchemaLocation","http://localhost/ddf_schema/apc_ddf_1_6.xsd");
root.setAttribute("ddfid", this.dataHolder.getDDFId());
root.setAttribute("ddfname", this.dataHolder.getDDFName());
root.setAttribute("ddfversion", "1");
root.setAttribute("canremove", "yes");

出于某种原因,我收到以下错误,

"Exception in thread "AWT-EventQueue-0" org.jdom2.IllegalNameException: The name "xmlns:xsi" is not legal for JDOM/XML attributes: XML name 'xmlns:xsi' cannot contain the character ":"."

请帮我解决问题。

最佳答案

将 namespace 声明添加到根元素并使用 Namespace对象而不是在属性名称中包含 namespace 前缀:

Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
root.addNamespaceDeclaration(xsi);
root.setAttribute("noNamespaceSchemaLocation","http://localhost/ddf_schema/apc_ddf_1_6.xsd", xsi);
// ...

关于java - 如何通过包含 namespace 信息来创建 XML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719346/

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