java xmlns_java – Dom4j xmlns属性

好的,新答案.

如果希望元素属于某个命名空间,请确保在该命名空间中创建它们.使用具有Qname作为其参数之一的方法.如果您创建一个没有命名空间的元素,DOM4J将不得不添加命名空间声明以适应您的(不情愿的)规范.

您的示例略有编辑.我没有使用QName,但给每个元素命名空间uri:

public static String toXml() {

Document document = DocumentHelper.createDocument();

Element documentRoot = document.addElement("ResponseMessage",

getXmlNamespace());

documentRoot.addAttribute(QName.get("schemaLocation", "xsi", "xsi-ns"),

"schema.xsd").addAttribute("id", "4711");

Element header = documentRoot.addElement("Header");

Element body = documentRoot.addElement("Body", getXmlNamespace());

// buildProperties(body);

body.addElement("StatusMessage", getXmlNamespace()).addText("status");

return document.asXML();

}

private static String getXmlNamespace() {

return "xyzzy";

}

public static void main(String[] args) throws Exception {

System.out.println(toXml());

}

产生输出:

status

更新2:

另请注意,我更改了schemaLocation属性的声明方式.您真的永远不必手动管理命名空间声明 – 这将由库来处理.

但是,有一种情况是添加名称空间延迟可能很有用:如果您有一个主要包含名称空间X元素的文档,并且在文档中展开了一些带有namspace Y的子元素,则在根目录中声明了一个名称绑定Y element,可以在子元素中保存大量重复的名称空间声明.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值