问题标签 [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 枚举元素名称
如果我的元素名称必须如下所示:
其中'n' = 0;
我将如何强制执行这是 RelaxNG?
棘手的部分是动态生成的元素名称。
xml - 使用 RelaxNG 如何允许任何元素具有属性“myattribute” - 即定义全局属性
有没有办法在我的语法中声明全局可用的属性?
也就是说,我希望任何元素都能够具有某个属性。
或者,我想定义一个可以具有“id”属性的元素列表。
java - 在java中查询一个RelaxNG模式(xml语法),最好使用Jing
我试图找到一种方法来查询 RNG 模式,同时避免重新发明轮子,以回答基本问题,例如:哪些元素是 XML 实例元素的有效子元素,它的属性可以/必须是什么等等。
这里的一篇文章提高了我对 Jing/Trang 执行此操作的希望,因为我已经在使用 Jing 进行 RNG 验证,但是在搜索后我发现没有源代码示例可以确认声明和浏览 API 文档也没有帮助我很多(这似乎也是与 Jing 捆绑的唯一文档)。
我真的很想避免将模式解析为我自己的对象模型来执行这些查询,而且这似乎也有点多余,因为我知道 Jing 也必须在某个地方这样做。问题是如何从中获取我需要的信息。
是否有另一个库可以用来从 java 代码中查询 RNG 模式?请注意,我不是在尝试使用架构来验证实例文件,而是在尝试查询架构本身。
xml - Is it possible to read Relax NG xml in XSLT?
I want to know whether it is possible to transform Relax NG XML with XSLT. Please give me some tutorial.
I don't seem to be able to match the grammar-tag in the RelaxNG schema below with <xsl:template match="grammar">
xslt - 如何从 Relax NG Schema 生成基本文档
我正在尝试从 Relax NG XML 模式中的注释生成非常简单的文档。例如,给定以下松弛 NG:
这将用于验证 XML 文件,例如:
我希望能够生成列出每个元素/属性的基本 XPath 的文档,然后显示任何相应的文档注释。例如:
最终,我将添加更多关于“zeroOrMore”、可能的数据类型等的文档……但我需要先解决这第一步。
我找到了Techquila RELAX-NG 文档工具。我玩过 rng to docbook 样式表,但它没有做我想要的。据我所知,它只是单独列出了元素,没有关于 XPath 的详细信息。我不知道如何将其用作获得我所追求的输出的起点。
给定提供的 RelaxNG 示例,是否可以(如果可以,如何?)使用 XSLT 生成这种类型的文档输出?
虽然 XSLT 是理想的,但它不是必需的。我愿意接受任何可以完成工作的事情。
validation - 在 RelaxNG 模式中允许任意顺序的元素
我有一个看起来很像这样的 RelaxNG 模式:
我想允许 0-Nmulti
标签,但 0-1 optional
。只要 multis 在可选之前就可以正常工作,但是由于RNG 中的相对顺序很重要,如果它们在之后出现,它将失败:
有效的:
无效的:
那么我怎样才能允许任意顺序但保留约束呢?我尝试将整个东西包装在一个<zeroOrMore><choice>
块中,这允许任意顺序,但也允许任意数量的可选标签通过。
java - 来自 java 代码的 Jing RelaxNG 验证器和自定义数据类型库
读完这篇文章后,我一直在尝试实现一个自定义数据类型,供 RelaxNG XML 验证器 (Jing) 使用。我已经成功地通过命令行运行了由 Jing (他们称之为datatype-sample
)提供的示例实现,但我一直无法从 java 代码中做到这一点。
从命令行(Windows):
验证执行没有任何问题。但现在我正在尝试使用以下 java 代码中的相同数据类型库:
第一个参数是具有以下内容的文件的路径:
第二个参数是具有以下内容的文件的路径:
这给了我以下输出:
这清楚地表明无法解析数据类型。据我所知,这个工作的唯一要求(在jing.jar
类路径上都有)已经得到满足。datatype-sample.jar
那么我做错了什么?
PS:要使上述代码正常工作,您必须将jing.jar
anddatatype-sample.jar
放在类路径上并为其提供参数,其中第一个是路径,datatype-sample.rng
第二个是路径valid.xml
或invalid.xml
。所有这些都与靖一起分发。
Edit1:java -jar
当作为具有适当MANIFEST.MF
文件的 JAR ( ) 运行时,上述程序在我的 IDE 之外也不起作用。手动设置类路径 ( ) 时也不起作用java -classpath
。所以我怀疑实际代码有问题。
xml - 我可以在 RELAX NG 紧凑模式中指定模式位置吗?
我想使用 Relax NG 紧凑模式。我是否以我对 XSD 的方式指定 .rnc 文件xsi:schemaLocation
?我不想将 Relax NG 转换为 XSD,因为 XSD 的限制对我来说是个问题。
xml - 向文本元素添加正则表达式
有没有办法获取一个“anyURI”元素并添加额外的约束,例如require“://”?或者我是否必须定义一个新的数据类型,我将如何在该新数据类型中实际保留“xsd:anyURI”的规则?
python - lxml RelaxNG 验证给出不准确的结果
我正在使用 python 2.7 和 lxml 来验证带有 RelaxNG 的大型 xml 文件。当 xml 无法正确验证时,我会得到关于问题位置和性质的不准确结果。通常它只是说:“元素元素名称无法验证内容” - 其中元素名称只是最顶层元素的名称。
当我在 Java 中使用相同的 xml 和相同的relaxng 文件时,我得到了错误所在的确切行号。这是我正在使用的代码:
有没有办法从 lxml 和 RelaxNG 获得更准确的结果?