问题标签 [xinclude]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lxml - 使用 lxml 编写带有 xinclude(xi:include) 块的 XML 文件
我希望使用 lxml 自动编写一个集体 XML 文件,因此我需要编写“xi:include”,例如:
似乎 XInclude() 仅用于解析和尝试附加名称的子元素:'xi:include' 发出错误。因此,我将不胜感激。我使用的代码:
错误:
ValueError: Invalid tag name u'xi:include'
提前感谢希沙姆
编辑:(如果我等 8 小时,我可能不会写答案)
感谢newtover,您的指针帮助我找到了解决方案:
xml - 如何使用带有 Xinclude 的 xpointer 来引用元素
我想将 2 个具有相同结构的 XML 文件合并为一个。例如;
测试1.xml
和Test2.xml
去创造
测试输出.xml
即一个包含每个元素的所有元素的 XML 文件。
我在 StackOverflow 上发现了一个有用的问题,并提出了这个问题;
合并.xml
我通过这样做来运行(我需要使用 xmllint 出于参与的原因)
xmllint -xinclude Merge.xml
但这不起作用,它抱怨各种似乎与xpointer有关的东西。
如果我在Merge.xml中省略 xpointer 属性,那么我会得到一些合理的输出,但它所做的不仅仅是包含我当然想要的元素。
有人可以就我在 xpointer 上做错了什么提供一些建议吗?
感谢期待。
java - 使用 jaxb 解组时 xinclude 的行号
我在SO上发现了这个问题。我展示了如何在使用 JAXB 解组时获取单个 xml 元素的行号。我扩展了这个例子,可以使用xinclude
. 不幸的是,我无法获得xinclude
.
那么,如何获取实际xinclude
语句的行号?这是扩展示例:
EntityResolver
听者告诉我有一个语句xinclude
,但我不知道在哪个行号。
人.xml
地址.xml
我没有提到Person
andAddress
类,所以这个问题保持简短和紧凑:) 我还Locator
用 . 标记了每个字段@XmlTransient
。谢谢!
xml-parsing - 使用 XInclude 解析时出现“尝试解析 XML 文件时出错”
我正在尝试使用 XInclude 创建一个组合的 xml 文档,以便通过 JAXB 解组。
这是我的解组代码:
这是我的主要 xml 文件:
并包含.xml:
为了真正解组它,我FileReader
用我的 xml 文件的路径创建了一个新文件(path-to-xml-files/main.xml - 路径是正确的,因为它可以清楚地找到主文件)。但是,当我运行它时,包含的文件有问题。我收到带有链接 SAXParseException 的 UnmarshalException 并带有以下错误消息:尝试解析 XML 文件时出错 (href='path-to-xml-files/included.xml')。
当我手动将included.xml 的内容合并到main.xml 中时,它运行没有问题。
我不知道这是 JAXB 问题还是 XInclude 问题,但我强烈怀疑是后者。
我错过了什么?
xml - 使用包含 XSLT 引用的 document() 解析 XML
有我的问题。
我有一个使用引用并包含其他 XML 文件的 XML 文件
XML 文件(由 XSL 解析):
文件2.XML:
myref.ref :
XSL:
然后我有一个使用 document() 函数打开包含引用(在 myref.ref 中引用)的 file2.XML 的 XSL。
因此,当我使用 document('file2.XML') 时,我收到一条错误消息,指出实体“reventity”已被引用,但未声明。
当我使用 document() 打开其他 XML 时,如何使用 myref.ref ?
谢谢。
xml - 如何摆脱使用 xinclude 后添加到我的 xml 文档中的 xml:base 属性?
我正在尝试使用 xinclude 将 xml 文件解组为 java 对象。我有一个基于我的 jaxb 注释代码文件的模式。这是我的解组代码:
由于我正在调用 xr.parse(),因此实际的解组不成功(因为解析关闭了流)。但是,我收到解析错误[Error] file-name.xml:2:66: cvc-complex-type.3.2.2: Attribute 'xml:base' is not allowed to appear in element 'element name'。
我发现这是因为 xinclude 总是将xml:base属性添加到包含的元素以帮助保留基本 uri。问题是我的架构不允许这个属性。有什么办法让我摆脱这个吗?我在网上环顾四周,并没有真正看到任何可以轻松实现的东西。
python - 在python中使用lxml添加xml前缀声明
简短版:如何使用 lxml 将 xmlns:xi="http://www.w3.org/2001/XInclude" 前缀声明添加到我在 python 中的根元素中?
上下文:
我有一些 XML 文件,其中包含其他文件的 ID。
这些 ID 代表引用的文件名。
使用 lxml 我设法用适当的 XInclude 语句替换了这些,但如果我没有前缀声明,我的 XML 解析器将不会添加包含,这是正常的。
编辑:我不会包含我的代码,因为它无助于理解问题。我可以很好地处理文档,我的问题是序列化。
所以从这
<root>
<somechild/>
</root>
我想 <root xmlns:xi="http://www.w3.org/2001/XInclude">
<somechild/>
</root>
在我的输出文件中得到这个。
为此,我尝试使用
`
`
xml - 如何在 webstorm 中为 XSLT 启用 XInclude?
我有这样的xml:
但是 webstorm XSLTRunner 实际上并没有执行包含。如何启用它?我在 Windows 8 上运行它,最新的 java 版本。
xml - 将大型 XML 文件拆分为小文件,但像一个文件一样继续验证它
我有一个 7K 行、500kb 的 XML 文件。虽然将这样的文件称为大文件听起来很荒谬,但它是一个手动编辑的配置文件,在这种情况下,大小是一个问题:
- 语法高亮非常慢(至少在 IntelliJ 中是这样)
- 在这么大的文件中搜索内容很痛苦
因此,我想将文件拆分为多个小文件。XInclude实际上听起来很棒,但是存在一个复杂的 XSD,它极大地有助于防止错误,包括对整个文件中必须唯一的外键和索引的引用。如果我将 XML 文件拆分为多个小文件,则验证需要跨越多个文件并检查交叉引用。
--> 我需要验证器先执行XInclude,然后再执行验证。虽然谷歌建议这是可能的,但我无法做到这一点:我试图让它与xmllint --xinclude --schema mySchema.xsd myXMLWithPlentyOfXIncludes.xml
.如果我将 xmlns 属性添加到它抱怨的包含文件的根标记The attribute '{http://www.w3.org/XML/1998/namespace}base' is not allowed
。
那么我应该如何设置才能跨文件获取命名空间呢?如何完成验证?还有什么我应该注意的警告吗?
奖励:如何让验证在 IntelliJ 中工作?
xslt-2.0 - 通过 xincludes 而不解析
我已经看到很多关于解决 xinclude 的问题,但我还没有看到相反的问题。
我有一个带有 xincludes 的源 XML 文件。我不想解决它们,而只是将它们通过 XSLT 而不做任何更改。但是,我的解析器正在尝试解决它们。我怎样才能解决这个问题?
我在 Oxygen 中使用 Saxon。