我正在开发XML作为我正在开发的RMI程序的节点,但我遇到了一个问题。我可以使用DOM创建XML,但我很难将命名空间和版本添加到我的XML顶部。我尝试过使用setAttribute和setAttributeNS,但此刻我还能做些什么。
创建元素的java代码是:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Node root = doc.createElement("Request");
doc.appendChild(root);
//code ommited
我目前得到的结果是:
<Request>
<Identification>
<UserID>user</UserID>
<Password>pass</Password>
</Identification>
</Request>
在请求部分,我需要它看起来像:
<Request xsi:noNamespaceSchemaLocation="URL" Version="1.0">
任何帮助都将受到赞赏,以帮助解决这个问题!
由于
答案 0 :(得分:1)
我想你想要的东西是:
...
Element root = doc.createElement("Request");
root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", "URL");
root.setAttribute("Version", "1.0");
doc.appendChild(root);
...
将root
定义为Element
会为您提供.setAttribute *方法。
这会给你
<Request Version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="URL"/>
我知道包含更多内容,但需要xmlns:xsi属性,以便定义xsi名称空间。