问题标签 [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.

0 投票
1 回答
693 浏览

javascript - 是否有 JavaScript 库可以针对 RELAX NG 模式验证 xml

是否有 JavaScript 库可以针对 RELAX NG 模式验证 xml?我尝试了 jsrelaxngvalidator但它很慢并且不适用于大型模式。还有其他 JavaScript RELAX NG 模式验证器吗?

0 投票
2 回答
855 浏览

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 验证后手动检查每种链接类型?)

0 投票
1 回答
104 浏览

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.

0 投票
0 回答
358 浏览

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 模式?

0 投票
1 回答
178 浏览

xml - 有没有办法在 Relax NG Compact 语法中限制 XML 属性的字符串长度?

我有一个属性,我想将其限制为最大 25 个字符。XML 模式是在 Relax NG Compact 语法中定义的。有没有办法指定这个?

0 投票
1 回答
146 浏览

xml - XML 模式中的多重赋值

有没有办法在 Relax NG compact 中编写如下标记(似乎它在 Relax NG XML 中没有对应项)

将来有人可能想为 bar 和 foo 分配不同的值,但在那之前他想使用上面的代码。

0 投票
1 回答
166 浏览

xml - 使用 Relax NG 验证 XML 节点是否为空且没有空格

我想使用 Relax NG 模式来验证 XML 文件。作为验证的一部分,我想确保一组节点中没有空白。例如,我希望前两个<emptyCheck>节点进行验证,但在此示例中第三个和第四个节点失败:

下面的 Relax NG Schema 几乎可以工作。对于 的第四个实例,上述示例 XML 失败<emptyCheck>,但对于第三个实例则没有。

我认识到,在大多数 XML 处理中,只有空格的节点并不重要。我仍然想解决这个问题,以便我可以执行编码风格指南。那么,有没有办法设置一个 Relax NG 模式,这样当一个节点应该完全为空时,文档将不会验证节点中是否只有空白?

0 投票
1 回答
1845 浏览

xml - RELAX NG Compact Syntax 正则表达式支持?

是否可以以定义text正则表达式的方式在 RELAX NG Compact Syntax 中定义模式,或者,甚至可能是仅具有“或”和字符类/排序操作的正则语法的更简单变体?

本质上,我想将一个属性声明为仅允许与此 regexp: 匹配的值0x[0-9A-Fa-f]{6}。我可以将其限制为minLengthand maxLength,但我不确定是否可以为字符定义规则。

0 投票
2 回答
81 浏览

xml - RELAX NG 具有相同结构的元素的多个名称

假设我有两个这样的规则:

(实际上要多得多)

我想做的显然是这样的:

(但以上无效)。我可以以其他方式做到这一点,这会导致更“压缩”的语法规则吗?

0 投票
2 回答
336 浏览

relaxng - 如何在Relax NG 中写出“anything going”?

有没有办法写出对 Relax NG 中元素的内容完全没有限制?

在 XML Schema 中,这样的事情显然是可能的

我可以在 Relax NG 中做同样的事情吗?