问题标签 [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 回答
121 浏览

xml - RelaxNG 枚举元素名称

如果我的元素名称必须如下所示:

其中'n' = 0;

我将如何强制执行这是 RelaxNG?

棘手的部分是动态生成的元素名称。

0 投票
1 回答
261 浏览

xml - 使用 RelaxNG 如何允许任何元素具有属性“myattribute” - 即定义全局属性

有没有办法在我的语法中声明全局可用的属性?

也就是说,我希望任何元素都能够具有某个属性。

或者,我想定义一个可以具有“id”属性的元素列表。

0 投票
1 回答
249 浏览

java - 在java中查询一个RelaxNG模式(xml语法),最好使用Jing

我试图找到一种方法来查询 RNG 模式,同时避免重新发明轮子,以回答基本问题,例如:哪些元素是 XML 实例元素的有效子元素,它的属性可以/必须是什么等等。

这里的一篇文章提高了我对 Jing/Trang 执行此操作的希望,因为我已经在使用 Jing 进行 RNG 验证,但是在搜索后我发现没有源代码示例可以确认声明和浏览 API 文档也没有帮助我很多(这似乎也是与 Jing 捆绑的唯一文档)。

我真的很想避免将模式解析为我自己的对象模型来执行这些查询,而且这似乎也有点多余,因为我知道 Jing 也必须在某个地方这样做。问题是如何从中获取我需要的信息。

是否有另一个库可以用来从 java 代码中查询 RNG 模式?请注意,我不是在尝试使用架构来验证实例文件,而是在尝试查询架构本身。

0 投票
2 回答
467 浏览

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">

0 投票
1 回答
725 浏览

xslt - 如何从 Relax NG Schema 生成基本文档

我正在尝试从 Relax NG XML 模式中的注释生成非常简单的文档。例如,给定以下松弛 NG:

这将用于验证 XML 文件,例如:

我希望能够生成列出每个元素/属性的基本 XPath 的文档,然后显示任何相应的文档注释。例如:

最终,我将添加更多关于“zeroOrMore”、可能的数据类型等的文档……但我需要先解决这第一步。

我找到了Techquila RELAX-NG 文档工具。我玩过 rng to docbook 样式表,但它没有做我想要的。据我所知,它只是单独列出了元素,没有关于 XPath 的详细信息。我不知道如何将其用作获得我所追求的输出的起点。

给定提供的 RelaxNG 示例,是否可以(如果可以,如何?)使用 XSLT 生成这种类型的文档输出?

虽然 XSLT 是理想的,但它不是必需的。我愿意接受任何可以完成工作的事情。

0 投票
1 回答
678 浏览

validation - 在 RelaxNG 模式中允许任意顺序的元素

我有一个看起来很像这样的 RelaxNG 模式:

我想允许 0-Nmulti标签,但 0-1 optional。只要 multis 在可选之前就可以正常工作,但是由于RNG 中的相对顺序很重要,如果它们在之后出现,它将失败:

有效的:

无效的:

那么我怎样才能允许任意顺序但保留约束呢?我尝试将整个东西包装在一个<zeroOrMore><choice>块中,这允许任意顺序,但也允许任意数量的可选标签通过。

0 投票
2 回答
2078 浏览

java - 来自 java 代码的 Jing RelaxNG 验证器和自定义数据类型库

读完这篇文章后,我一直在尝试实现一个自定义数据类型,供 RelaxNG XML 验证器 (Jing) 使用。我已经成功地通过命令行运行了由 Jing (他们称之为datatype-sample)提供的示例实现,但我一直无法从 java 代码中做到这一点。

从命令行(Windows):

验证执行没有任何问题。但现在我正在尝试使用以下 java 代码中的相同数据类型库:

第一个参数是具有以下内容的文件的路径:

第二个参数是具有以下内容的文件的路径:

这给了我以下输出:

这清楚地表明无法解析数据类型。据我所知,这个工作的唯一要求(在jing.jar类路径上都有)已经得到满足。datatype-sample.jar那么我做错了什么?

PS:要使上述代码正常工作,您必须将jing.jaranddatatype-sample.jar放在类路径上并为其提供参数,其中第一个是路径,datatype-sample.rng第二个是路径valid.xmlinvalid.xml。所有这些都与一起分发。

Edit1:java -jar当作为具有适当MANIFEST.MF文件的 JAR ( ) 运行时,上述程序在我的 IDE 之外也不起作用。手动设置类路径 ( ) 时也不起作用java -classpath。所以我怀疑实际代码有问题。

0 投票
1 回答
554 浏览

xml - 我可以在 RELAX NG 紧凑模式中指定模式位置吗?

我想使用 Relax NG 紧凑模式。我是否以我对 XSD 的方式指定 .rnc 文件xsi:schemaLocation?我不想将 Relax NG 转换为 XSD,因为 XSD 的限制对我来说是个问题。

0 投票
1 回答
81 浏览

xml - 向文本元素添加正则表达式

有没有办法获取一个“anyURI”元素并添加额外的约束,例如require“://”?或者我是否必须定义一个新的数据类型,我将如何在该新数据类型中实际保留“xsd:anyURI”的规则?

0 投票
0 回答
458 浏览

python - lxml RelaxNG 验证给出不准确的结果

我正在使用 python 2.7 和 lxml 来验证带有 RelaxNG 的大型 xml 文件。当 xml 无法正确验证时,我会得到关于问题位置和性质的不准确结果。通常它只是说:“元素元素名称无法验证内容” - 其中元素名称只是最顶层元素的名称。

当我在 Java 中使用相同的 xml 和相同的relaxng 文件时,我得到了错误所在的确切行号。这是我正在使用的代码:

有没有办法从 lxml 和 RelaxNG 获得更准确的结果?