问题标签 [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 投票
3 回答
771 浏览

xml - 使用 RELAX NG 紧凑语法对 XML 元素的子元素进行有序/无序定义

我想使用 RELAX NG 紧凑语法来验证一个 XML 元素,其子元素是一组 n 个特定元素中的一个、两个、三个或 n 个。例如,如果元素是“布局”并且有一组三个特定元素:“顶部”、“中心”和“底部”,则以下 XML 元素定义将是有效的:

我想知道如何写两种模式:1)让孩子们按任意顺序排列。2) 将孩子限制在特定的顺序(例如:顶部、中心、底部)。

到目前为止,我对 XML 示例和有序模式的解决方案是:

对于超过 3 个元素和/或无序模式,我没有好的解决方案。

0 投票
1 回答
423 浏览

xml - 如何在 RELAX NG 中指定出现的数字范围?

我正在使用 RELAX NG 开发模式。我对此很陌生,所以很可能我忽略了一些明显的东西,但似乎没有一种方便的方法来指定一个元素的出现次数,就像在 XML Schema 语言中那样。

例如,假设我想指定一个A元素可能包含 2 - 5 个B元素。我不想使用zeroOrMoreoroneOrMore标记,因为我实际上确实有元素数量的上限。在 XML Schema 中,我可以使用minOccursmaxOccurs属性来紧凑地指定它。我已经阅读了官方的 RELAX NG 教程,浏览了规范,并进行了一些基本的谷歌搜索,但我无法找到任何使用 RELAX NG 的便捷方法。我能想到的最好的,你需要做这样的事情:

这是可行的,但是当您需要更多的出现次数时会开始看起来很丑。在我的实际模式中,我有一种元素类型,它可能出现多达 256 次,因此手动指定的可选元素会很笨重。如果需要,我会这样做,但我想知道是否有更优雅的方式来表达我的出现限制。

0 投票
1 回答
178 浏览

null - 使用 Relax NG 设置 nillable 元素

有没有办法使用 Relax NG 声明一个元素可以为空,例如使用 XSD 的 xsi:nillable="true" ?

0 投票
1 回答
96 浏览

annotations - RelaxNG中的嵌套注释?

尝试从 RelaxNG 获取以下 XSD 输出,使用 Trang 进行转换:

..但是除了RNC'##'之外,声明注释的方法似乎都不起作用,它生成一组注释/文档标签。Trang 似乎忽略了使用方括号的方法。有什么线索吗?

0 投票
1 回答
926 浏览

jaxb - 控制 JAXB 为 xsd:attributeGroup 生成的类名?

我正在使用 JAXB 为我正在编写的应用程序将 XML 绑定到 Java。我有一个名为measure的元素,它包含两个名为amountmaxAmount的数量元素,我想用它来模拟一个下限值和一个上限值。amountmaxAmount在其他方面是相同的,我希望它们在解组为 Java 时使用相同的类来实现。

以下是我提供给 JAXB 的 XML 模式的摘录:

JAXB 从中创建了以下更详细的版本:

Measure.AmountMeasure.MaxAmount除了名称之外是相同的,但是——当然——就 Java 而言,它们彼此之间几乎没有关系。

有没有办法让 JAXB 对amountmaxAmount使用相同的类?

只是为了完全干净;-) 我应该提到我使用 Trang 从 RNC 生成 XML 模式。如果问题的答案是“更改 XML 模式”,我有补充问题“如何更改 RNC 以生成该 XML 模式?”。我的 RNC 看起来像这样:

我使用 RNC 是因为我发现它更易于理解,但如果我的问题的解决方案仅意味着使用 XML Schema,那就这样吧。

史蒂夫

0 投票
1 回答
134 浏览

java - 具有相互依赖性检查的验证层

现有的后端服务将开放给更多的客户端(为 Web-Frontend 客户端添加一个 Web 服务层)。
目前,XML Schema 用于验证 DTO,但由于前端超出了我们的控制范围,我们必须将扩展测试(例如相互依赖测试)从前端层移动到新的“验证层”。
现在我们的问题是,是否存在一个共同的模式,例如。类似于使用 RELAX NG 或规则引擎的东西?要求是能够检查数据类型(我们将在此处保留 XML 模式)和相互依赖关系,但这些相互依赖关系可能会变得相当复杂,即。它们可能涉及检查输入数据中不可用的数据(但在某些外部系统中)。
因此,我们正在寻找一种模式以及一个可以轻松实现这些模式的框架。

0 投票
1 回答
149 浏览

xml - 将 Solaris 程序移植到 Linux [RelaxNg 有效性错误:元素票证无法验证属性]

我正在将一个代码模块从 Solaris 移植到 Linux。我收到这个错误

元素票:Relax-NG 有效性错误:元素票无法验证属性

我完全震惊了,不知道这个错误可能是什么..但我相信这不会涉及任何代码更改..请指导我

0 投票
3 回答
770 浏览

xml - 将 Jing 与 Google App Engine 一起使用。无法加载给定 Relax NG 架构的 SchemaFactory

好的,这就是我想要实现的目标。我正在开发一个小型 Google App Engine 应用程序,它可以在给定特定对象的情况下生成 XML。

现在,我遇到了问题,因为我需要使用 Relax NG 模式并针对我的 Document 对象进行验证。这在我的本地机器(Eclipse Helios Java EE、Mac OS X Snow Leopard、Google Web Toolkit 2.2.0、App Engine 1.4.2)上运行良好,但是一旦我部署到 App Engine,我的代码就会失败并抛出 IllegalArgumentException .

具体的例外是:

它抱怨的特定代码行如下:

最后一行是引发异常的行。

我曾尝试在网上查找,并在几个 Google 群组中发帖,但没有人提出任何想法。

注意:我从这个例子中使用了上面的一些代码:How to validate an XML document using a RELAX NG schema and JAXP?

我怀疑 App Engine 出于某种原因没有加载 Jing.jar。我不知道如何检查它是/不是。

任何帮助,将不胜感激!谢谢!

0 投票
5 回答
9458 浏览

xml - RelaxNG 与 XML 模式

我有一个项目,我正在使用 RelaxNG ( jing ) 来验证 xml。我喜欢 RelaxNG 的语法,但我拥有的大多数工具都使用 XML 模式(实际上,我认为除了 jing 之外我没有其他工具)。当大多数支持似乎都围绕 XML 模式时,我是否使用 RelaxNG 犯了设计和未来支持错误?我是否应该坚持使用 RelaxNG 并让其他人学习它(必要时踢和尖叫,j/k)?由于工具支持,我应该切换到 xml 模式吗?

谢谢。

0 投票
1 回答
622 浏览

xml - 放松:无效的模式定义?

我正在尝试使用 RELAX-NG 为一些 XML 文档编写模式,当我将它与 jing 一起使用时,我收到一条我不明白的错误消息:

谁能解释为什么并帮助我解决问题?

这是一个示例文档(为简单起见而设计):

列表-test.xml:

这是一个可以正常工作的架构:

列表-test.rnc:

但是当我尝试text用特定的文本模式替换通用节点时,我得到了错误。

列表-test2.rnc: