问题标签 [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.
xml - 使用 RELAX NG 紧凑语法对 XML 元素的子元素进行有序/无序定义
我想使用 RELAX NG 紧凑语法来验证一个 XML 元素,其子元素是一组 n 个特定元素中的一个、两个、三个或 n 个。例如,如果元素是“布局”并且有一组三个特定元素:“顶部”、“中心”和“底部”,则以下 XML 元素定义将是有效的:
我想知道如何写两种模式:1)让孩子们按任意顺序排列。2) 将孩子限制在特定的顺序(例如:顶部、中心、底部)。
到目前为止,我对 XML 示例和有序模式的解决方案是:
对于超过 3 个元素和/或无序模式,我没有好的解决方案。
xml - 如何在 RELAX NG 中指定出现的数字范围?
我正在使用 RELAX NG 开发模式。我对此很陌生,所以很可能我忽略了一些明显的东西,但似乎没有一种方便的方法来指定一个元素的出现次数,就像在 XML Schema 语言中那样。
例如,假设我想指定一个A
元素可能包含 2 - 5 个B
元素。我不想使用zeroOrMore
oroneOrMore
标记,因为我实际上确实有元素数量的上限。在 XML Schema 中,我可以使用minOccurs
和maxOccurs
属性来紧凑地指定它。我已经阅读了官方的 RELAX NG 教程,浏览了规范,并进行了一些基本的谷歌搜索,但我无法找到任何使用 RELAX NG 的便捷方法。我能想到的最好的,你需要做这样的事情:
这是可行的,但是当您需要更多的出现次数时会开始看起来很丑。在我的实际模式中,我有一种元素类型,它可能出现多达 256 次,因此手动指定的可选元素会很笨重。如果需要,我会这样做,但我想知道是否有更优雅的方式来表达我的出现限制。
null - 使用 Relax NG 设置 nillable 元素
有没有办法使用 Relax NG 声明一个元素可以为空,例如使用 XSD 的 xsi:nillable="true" ?
annotations - RelaxNG中的嵌套注释?
尝试从 RelaxNG 获取以下 XSD 输出,使用 Trang 进行转换:
..但是除了RNC'##'之外,声明注释的方法似乎都不起作用,它生成一组注释/文档标签。Trang 似乎忽略了使用方括号的方法。有什么线索吗?
jaxb - 控制 JAXB 为 xsd:attributeGroup 生成的类名?
我正在使用 JAXB 为我正在编写的应用程序将 XML 绑定到 Java。我有一个名为measure的元素,它包含两个名为amount和maxAmount的数量元素,我想用它来模拟一个下限值和一个上限值。amount和maxAmount在其他方面是相同的,我希望它们在解组为 Java 时使用相同的类来实现。
以下是我提供给 JAXB 的 XML 模式的摘录:
JAXB 从中创建了以下更详细的版本:
Measure.Amount和Measure.MaxAmount除了名称之外是相同的,但是——当然——就 Java 而言,它们彼此之间几乎没有关系。
有没有办法让 JAXB 对amount和maxAmount使用相同的类?
只是为了完全干净;-) 我应该提到我使用 Trang 从 RNC 生成 XML 模式。如果问题的答案是“更改 XML 模式”,我有补充问题“如何更改 RNC 以生成该 XML 模式?”。我的 RNC 看起来像这样:
我使用 RNC 是因为我发现它更易于理解,但如果我的问题的解决方案仅意味着使用 XML Schema,那就这样吧。
史蒂夫
java - 具有相互依赖性检查的验证层
现有的后端服务将开放给更多的客户端(为 Web-Frontend 客户端添加一个 Web 服务层)。
目前,XML Schema 用于验证 DTO,但由于前端超出了我们的控制范围,我们必须将扩展测试(例如相互依赖测试)从前端层移动到新的“验证层”。
现在我们的问题是,是否存在一个共同的模式,例如。类似于使用 RELAX NG 或规则引擎的东西?要求是能够检查数据类型(我们将在此处保留 XML 模式)和相互依赖关系,但这些相互依赖关系可能会变得相当复杂,即。它们可能涉及检查输入数据中不可用的数据(但在某些外部系统中)。
因此,我们正在寻找一种模式以及一个可以轻松实现这些模式的框架。
xml - 将 Solaris 程序移植到 Linux [RelaxNg 有效性错误:元素票证无法验证属性]
我正在将一个代码模块从 Solaris 移植到 Linux。我收到这个错误
元素票:Relax-NG 有效性错误:元素票无法验证属性
我完全震惊了,不知道这个错误可能是什么..但我相信这不会涉及任何代码更改..请指导我
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。我不知道如何检查它是/不是。
任何帮助,将不胜感激!谢谢!
xml - RelaxNG 与 XML 模式
我有一个项目,我正在使用 RelaxNG ( jing ) 来验证 xml。我喜欢 RelaxNG 的语法,但我拥有的大多数工具都使用 XML 模式(实际上,我认为除了 jing 之外我没有其他工具)。当大多数支持似乎都围绕 XML 模式时,我是否使用 RelaxNG 犯了设计和未来支持错误?我是否应该坚持使用 RelaxNG 并让其他人学习它(必要时踢和尖叫,j/k)?由于工具支持,我应该切换到 xml 模式吗?
谢谢。
xml - 放松:无效的模式定义?
我正在尝试使用 RELAX-NG 为一些 XML 文档编写模式,当我将它与 jing 一起使用时,我收到一条我不明白的错误消息:
谁能解释为什么并帮助我解决问题?
这是一个示例文档(为简单起见而设计):
列表-test.xml:
这是一个可以正常工作的架构:
列表-test.rnc:
但是当我尝试text
用特定的文本模式替换通用节点时,我得到了错误。
列表-test2.rnc: