问题标签 [relaxng]
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.
javascript - 是否有 JavaScript 库可以针对 RELAX NG 模式验证 xml
是否有 JavaScript 库可以针对 RELAX NG 模式验证 xml?我尝试了 jsrelaxngvalidator但它很慢并且不适用于大型模式。还有其他 JavaScript RELAX NG 模式验证器吗?
xml - Relaxng 可以指定一组具有相同名称但不同属性的无序元素吗?
我正在努力自动化测试一个接受和返回 XML 的 API,所以我想尽可能地将 API 的记录返回数据转换为模式。基于易用性和学习性,我选择了 RelaxNG 来完成这项任务。
在我输入所有信息之前,这是一个问题:
是否可以描述“无序的元素集,具有相同的名称但不同的属性”?
这是我无法描述的示例对象:
链接对象是我要挂断的部分。这是问题所在:
- 不能保证 item 内元素的顺序,所以我试图将所有元素放在
<interleave>
结构中。 - 里面会有多个
<link>
元素<item>
,具有不同的属性集(即,<item>
必须有一个“self”链接、一个“download”链接和一个“relatedData”链接才有效)。 - 每种链接类型中的一种是必需的,但不能保证再次顺序。
我试图这样描述架构:
“链接”引用在其他地方定义,如下所示:
解析器对此不满意 - 从 jing 我得到error: the element "link" can occur in more than one operand of "interleave"
。我可以看到它的意思,但我希望它可以将“具有相同名称但不同属性的元素”的想法作为独特的项目来处理。
将链接引用移出交错可以解析它,但是只要返回数据中的顺序发生变化,我就会等待验证器崩溃。
任何想法,或者这是不可能的?我正在处理的 XML 是否存在固有问题,需要我在测试应用程序中将其中的一些提升到更高的处理逻辑(在运行更通用的 XML 验证后手动检查每种链接类型?)
validation - How to validate against schema for namespace, not complete document?
I have a document like this:
Schema for this document looks like:
"Anything" literally means anything but D-namespaced.
And I want to create another schema for B namespace to use it against any arbitrary XML containing B:namespace.
How to create Schema for the namespace, not for the complete document?
Can't get this.
python - lxml 的 objectify.makeparser 可以使用 RELAX NG 模式吗?
我创建了一个 RELAX NG 模式文档和一个符合该模式的 XML 实例文档。我正在使用 python lxml 库来解析和验证文件。
我正在研究使用 lxml.objectify API 并遵循这里的示例或多或少没有问题,直到我到达“断言架构”部分。
我在示例中看到它使用了 etree.XMLSchema 类型,但我认为/认为/希望我也可以通过某种方式传递 etree.RelaxNG 类型,但是唉:
给我:
我对这些东西还是很陌生,所以在我开始接受 lxml.objectify 的 makeparser 只能使用 W3C XML Schema 1.0 xsd 解析器之前,我想我会在这里问:我是否正确 lxml.objectify API 只能验证使用 W3C XML 模式,而不是 RELAX NG 模式?
xml - 有没有办法在 Relax NG Compact 语法中限制 XML 属性的字符串长度?
我有一个属性,我想将其限制为最大 25 个字符。XML 模式是在 Relax NG Compact 语法中定义的。有没有办法指定这个?
xml - XML 模式中的多重赋值
有没有办法在 Relax NG compact 中编写如下标记(似乎它在 Relax NG XML 中没有对应项)
将来有人可能想为 bar 和 foo 分配不同的值,但在那之前他想使用上面的代码。
xml - 使用 Relax NG 验证 XML 节点是否为空且没有空格
我想使用 Relax NG 模式来验证 XML 文件。作为验证的一部分,我想确保一组节点中没有空白。例如,我希望前两个<emptyCheck>
节点进行验证,但在此示例中第三个和第四个节点失败:
下面的 Relax NG Schema 几乎可以工作。对于 的第四个实例,上述示例 XML 失败<emptyCheck>
,但对于第三个实例则没有。
我认识到,在大多数 XML 处理中,只有空格的节点并不重要。我仍然想解决这个问题,以便我可以执行编码风格指南。那么,有没有办法设置一个 Relax NG 模式,这样当一个节点应该完全为空时,文档将不会验证节点中是否只有空白?
xml - RELAX NG Compact Syntax 正则表达式支持?
是否可以以定义text
正则表达式的方式在 RELAX NG Compact Syntax 中定义模式,或者,甚至可能是仅具有“或”和字符类/排序操作的正则语法的更简单变体?
本质上,我想将一个属性声明为仅允许与此 regexp: 匹配的值0x[0-9A-Fa-f]{6}
。我可以将其限制为minLength
and maxLength
,但我不确定是否可以为字符定义规则。
xml - RELAX NG 具有相同结构的元素的多个名称
假设我有两个这样的规则:
(实际上要多得多)
我想做的显然是这样的:
(但以上无效)。我可以以其他方式做到这一点,这会导致更“压缩”的语法规则吗?
relaxng - 如何在Relax NG 中写出“anything going”?
有没有办法写出对 Relax NG 中元素的内容完全没有限制?
在 XML Schema 中,这样的事情显然是可能的
我可以在 Relax NG 中做同样的事情吗?