我有一个非常复杂的XML树,它在架构中有几个命名空间。我设法生成了相应的Jaxb(使用eclipse IDE),marshaller/unmarshaller工作正常。
现在,我需要将XML转换为特定格式,因为我需要将其提供给某个系统,并且我没有其他选择。
生成的XML是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ns2:data xmlns:ns2="ns:example-main" xmlns:ns10="ns:example-main/mynamespace10" xmlns:ns11="http://www.w3.org/1999/XSL/Transform" xmlns:ns4="ns:example-main/mynamespace5" xmlns:ns5="ns:example-main/mynamespace6" xmlns:ns6="ns:example-main/mynamespace111" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:example-main resource:example-main">
<ns6:ruleList>
<ns6:rule>
<ns6:name>DFAC</ns6:name>
<ns6:className>com.example.Rule</ns6:className>
<ns6:label>DFAC class</ns6:label>
</ns6:rule>
</ns6:ruleList>
</ns2:data>
我需要生成的XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data xmlns="ns:example-main" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:example-main resource:example-main">
<ruleList xmlns="ns:example-main/Rule" xsi:schemaLocation="ns:example-main/Rule resource:Rule">
<rule>
<name>DFAC</name>
<className>com.example.Rule</className>
<label>DFAC class</label>
</rule>
</ruleList>
</data>
我正在使用Jaxb RI 2.2.6 到目前为止我所做的工作:1。
myjaxbMarshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", new MyNamespaceMapper());
并从方法返回“”
>
@使用xmlns的XmlSchema注释
@XmlSchema(namespace="example-main",xmlns={@javax.xml.bind.annotation.XmlNs(namespaceURI="ns: example e-main", prefix="")
写入DOM树并使用DOM的命名空间配置,然后Marsahling DOM:
doc.getDomConfig()。setParameter(“名称空间”,true);doc.getDomConfig()。setParameter(“命名空间声明”,true);doc.normalizeDocument();
或者在上面的行中将名称空间设置为false,以完全消除名称空间,但这也没有帮助
您可以尝试使用NamespacePrefix Mapper
。您必须扩展它并将其设置为属性。
以下是最短方法的示例:
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
new NamespacePrefixMapper() {
@Override
public String[] getPreDeclaredNamespaceUris() {
return new String[] { MyNamespaces.EXAMPLE_MAIN };
}
@Override
public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) {
if (namespaceUri.equals(MyNamespaces.EXAMPLE_MAIN) ||
namespaceUri.equals(MyNamespaces.EXAMPLE_MAIN_RULE))
return "";
}
});
通过使用JavaScript,是否有一种方法可以知道特定属性来自哪个名称空间? 我似乎找不到任何与这个问题相关的东西... 示例: 具有class属性的DIV元素。类来自哪个命名空间? 具有viewBox属性的SVG元素。viewBox来自哪个命名空间? 编辑: 如果希望在USE元素上设置“xlink:href”属性,则必须指定名称空间“http://www.w3.org/1999/xlink”。
问题内容: 我正在用lxml生成一些XML,并像这样生成节点: 和: 这些自定义属性正在杀死Quickbooks的解析器。我可以不使用自定义内容来渲染LXML吗? 问题答案: 看起来像下面这样照顾它: 或者,如果使用lxml> = 2.3.2(感谢@Pedru):
本文向大家介绍xpath 示例XML(无名称空间),包括了xpath 示例XML(无名称空间)的使用技巧和注意事项,需要的朋友参考一下 示例 这是一些示例XML,可以针对这些XML编写示例XPath:
我是XML新手。这是一个家庭作业。我已经尽了最大努力,但我无法让实例文档进行验证。我总是犯错误 “找不到元素'站点'的声明。 我想我可能错误地声明了一些名称空间或者schemaLocations。有人能给我指一下正确的方向吗? 作业步骤: > <块引用> 在sites.xml文件中,向根站点元素添加命名空间声明,将xs前缀与XML Schema命名空间的URI相关联。为文件指定默认命名空间http
问题内容: 我得到了以下XML: 跟随XPath不起作用意味着没有任何打印内容,例如“ data”元素不存在: /root/items/item/details/data 但是,当我删除“数据”元素的“ xmlns”名称空间属性时,将打印其内容。在不删除“数据”元素的“ xmlns”命名空间属性的情况下,xpath表达式应该如何工作? 我正在使用SAXON和XSL 1.0。 问题答案: 这是XPa
问题内容: 什么是PHP命名空间? 一般而言,命名空间是什么? 一个有例子的Layman答案会很棒。 问题答案: Namespacing对函数和类起作用,而作用域对变量起作用。它允许您在同一程序的不同部分中使用相同的函数或类名称,而不会引起名称冲突。 简单来说, 将名称空间视为一个人的姓氏 。如果有两个人名为“ John”,则可以使用他们的姓氏来区分他们。 场景 假设您编写了一个使用名为的函数的应