问题标签 [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 - 是否可以通过 RelaxNG 强制使用 CDATA?
我正在寻找一种使用 RelaxNG 来要求 XML 文档中的元素填充 CDATA 的方法。
我没有在使用 W3C XML Schema Datatypes with RELAX NG或datatype library的指南中看到它。
是否可以?
xml - 用于验证 NMTOKENS 属性列表中的每个值的 XML 模式
鉴于此 XML 文件:
...是否可以创建一个 XSD key
/keyref
样式验证来确保blessed
列表中的每个值都与现有的匹配user/@name
?
如果 XSD 无法做到这一点,RelaxNG 可以吗?
xml - 允许使用 Relax NG 附加属性
我正在编写一个放松 NG 模式来验证一些 XML 文件。对于大多数元素,都有一些必需的属性,并且此 XML 模式的实例还可以添加任何额外的属性。
例如,这是一个有效的文档:
在我的 Relax NG 模式中,我是这样表达的:
但是,当我尝试使用jing验证我的文档时,它抱怨我的架构无效:
我猜这是因为requiredAttribute1也符合“任何属性”规则。这样做的正确方法是什么?
在此先感谢,拉斐尔
python - Python - RelaxNG 对象模型生成器/解析器
假设我有这个 XML:
此 XML 通过 RelaxNG 模式进行验证,该模式位于:http://libvirt.org/git/?p=libvirt.git;a=tree;f=docs/schemas;hb=
HEAD
现在我想从这个模式中生成类(持久源文件),让我能够以面向对象的方式使用这个模型
所以我
- 不必费心使用 XML 解析器
- 可以使用这些对象,但它们始终符合 RelaxNG 模式
- 获取 IDE 自动完成
- 通过 Python 解释器获得验证
最后我希望能够做这样的事情:
我正在考虑自己编写类似的东西(一个通用的 RelaxNG 对象模型生成器),但我想知道是否有人可以帮助我如何开始以及是否有一些 python 库可以帮助我这样做(lxml?)
方法一:将RelaxNG转换为XSD,然后用generateDS生成对象模型
正如铁托在他的回答中建议的那样,我从这里下载了最新的 trang 。然后我像这样执行 trang: java -jar trang.jar domain.rng domain.xsd
. 这已经给了我一些警告:
不幸的是,尝试从生成的 XSD 中生成对象模型失败了:
这些是 trang 生成的 XSD(并产生了该错误):
http://mackaz.de/so/basictypes.xsd
http://mackaz.de/so/domain.xsd
http://mackaz.de/so/domaincommon.xsd
http://mackaz.de/so/networkcommon .xsd
http://mackaz.de/so/qemu.xsd
http://mackaz.de/so/storageencryption.xsd
通过一些调试,我发现了 generateDS 错误的来源。在文件 basictypes.xsd 中,似乎有一些错误的表达式(每个元素中有三个双引号):
我用不同的值替换了这些表达式(现在不反映模式,但让 generateDS 高兴):
Et voila - 它有效,generateDS 不再抱怨并生成此输出文件:
现在我必须调查该文件,看看它是否可以帮助我(正如预期的那样,它非常大:28157 LOC ...)。
perl - 选择元素的 RelaxNG 调试消息
如何使我的 RNG 文件更详细,以便如果我未能指定所需的选择元素,错误消息将得到更好的描述,而不仅仅是:
有没有办法命名选择标签?
javascript - 使用 JavaScript 进行 RelaxNG 或 XSD 模式验证
我想在客户端 JavaScript 中进行 RelaxNG(首选)或 XSD(如果必须)模式验证。有什么好的图书馆吗?谷歌找到了jsrelaxngvalidator,但我无法让它运行,而且它似乎没有维护。目标浏览器仅限 Firefox 和 Chrome。
validation - 验证 RelaxNG 中的 URI 不为空
我正在尝试验证一个元素在 RelaxNG 中始终具有 href 属性,并假设您可以这样做:
唯一要注意的是,显然anyURI 认为空字符串是有效的,因此以出色的成绩href=""
通过。有什么简单的方法可以解决这个问题吗?
xml - 在 RELAX NG 外部引用中需要一点递归
我们一直在使用 RELAX NG 为我们的基于 Web 的 API 指定和验证 XML 消息,我正在做一些清理工作并开始使用该<external>
元素。
在我们的模式中,我们有一个<subscription>
元素,它有诸如 id 和句点之类的东西,还有一个<account>
. 这在 RELAX NG 中很容易指定:
然后,此模式将包含在特定请求的实际消息模式中。
问题是<account>
元素还可以<subscription>
根据请求有多个元素(例如,有时我们根据帐户信息搜索订阅数据,有时我们会根据订阅数据搜索帐户信息)。
我试过:
但是在加载架构时出现(并非意外)错误:Detected an externalRef recursion
有没有办法指定某种递归限制 - 某种方式知道我的当前<subscription>
是一个孩子,<account>
所以不应该有<account>
孩子本身?
validation - 使用 externalRef 引用 RelaxNG 模式中的特定元素
所以我有一个引用另一个的 RelaxNG 模式:
其他.rng:
有什么方法可以只导入<good>
但不允许<bad>
吗?目标是:
xml - 如何验证 RelaxNG 语法?
这对谷歌来说很难,因为 RelaxNG 被用来验证其他东西,而且我得到了太多错误的结果。我正在寻找的是一种验证我的 RelaxNG 文件本身没有语法错误的好方法。