首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XOM默认命名空间问题

XOM默认命名空间问题
EN

Stack Overflow用户
提问于 2012-07-27 22:27:29
回答 1查看 317关注 0票数 0

我正在尝试将一个默认名称空间添加到另一个名称空间中的根元素中,但XOM不喜欢这样!

e.g

代码语言:javascript
复制
<env:contentEnvelope 
xmlns:env="http://data.com/Envelope/2008-05-01/" 
xmlns:inv="http://Patents.data.com/2012-01-01/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

我希望inv名称空间也是默认名称空间,方法是添加例如

代码语言:javascript
复制
xmlns="http://Patents.data.com/2012-01-01/"

但是XOM不会拥有它!

你有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-03 18:18:21

这是一系列因素的组合,阻止了我添加默认名称空间。与IT中的大多数事情一样,解决方案很简单,但实现起来并不容易:

这里的关键是使用.addNamespaceDeclaration(“”,命名空间),并将第一个参数设置为“”这不直观我使用的.setNamespace()不起作用。

此外,我没有意识到使用以下命令创建元素:

代码语言:javascript
复制
new Element("env:CEnvelope", IConstants.ENV_NAMESPACE);

在根元素中自动创建一个名称空间xmlns:env;我再次显式地这样做了;这不会造成问题,但是如果您在此之后使用.addNamespaceDeclaration(“”,namespace),它将不起作用。

带**的行就是您需要的全部内容:

代码语言:javascript
复制
private void setRoot(){

  Element root = new Element("env:CEnvelope", IConstants.ENV_NAMESPACE);    

  //Add root Element to the Document
  this.doc = new Document(root);

  root.addNamespaceDeclaration("xsi", IConstants.XSI_NAMESPACE);
  **root.addNamespaceDeclaration("", IConstants.PAT_NAMESPACE);
  //root.setNamespaceURI(IConstants.PAT_NAMESPACE);
  //root.addNamespaceDeclaration("env", IConstants.ENV_NAMESPACE);

哦,是的,我不需要inv名称空间,因为它与默认名称空间相同!

干杯:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11689863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档