Java DOM,命名空间/版本问题

时间:2011-06-16 12:31:04

标签: java xml dom namespaces

我正在开发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">

任何帮助都将受到赞赏,以帮助解决这个问题!

由于

1 个答案:

答案 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名称空间。