使用Apache XMLBeans向XML添加命名空间定义

3

当使用Apache xmlbean生成XML时,由于没有添加命名空间定义到元素中,因此我需要将其添加。如何使用xmlbeans API实现这一点?

2个回答

4
我已经找到了解决问题的答案。 以下是具体步骤。
XmlCursor cursor= targetObject.newCursor();
cursor.toNextToken();
cursor.insertNamespace("A", "namespace1");
//For example
cursor.insertNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
cursor.dispose();

我必须调用cursor.toNextToken()两次,否则这不是我所需要的。 - Michael Paesold

0

使用:

XmlOptions.setSaveSuggestedPrefixes()

XmlOptions xmlOptions = new XmlOptions();

xmlOptions.setSavePrettyPrint();

xmlOptions.setSavePrettyPrintIndent(4);

xmlOptions.setSaveAggressiveNamespaces();

HashMap<String, String> nsMap = new HashMap<String, String>();

nsMap.put("namespace1","A");

nsMap.put("http://www.w3.org/2001/XMLSchema-instance", "xsi");

xmlOptions.setSaveSuggestedPrefixes(nsMap);

// Create your XmlObject

<Your XmlObject>.save(new File("test.xml"),xmlOptions);

对我没用 - 这只是设置了建议的前缀。据我所知,原问题是关于向实际上不使用该命名空间的文档添加命名空间定义。 - Michael Paesold

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接