2

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

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

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

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

4

1 回答 1

1

这个问题的答案是使用RNOM。它是一个基于Jing 的对象模型构建API。由于 Jing 没有公开其内部模型,因此似乎是避免针对此用例完全重新发明轮子的唯一方法。您仍然需要编写自己的代码,通过浏览此模型进行实际查询(就像我现在尝试做的那样)。

学习如何使用 RNGOM 并不是一件容易的事,正如这里所见,但项目的代码存储库应该让事情变得更容易(包含使用示例)。

不幸的是,我没有找到其他库可以让我查询 RNG 模式(或至少减轻这样做的痛苦)。

编辑 1

我最终创建了自己的 rng 对象模型和一个解析器来生成它。它旨在处理我的特定用例,并允许我像我在问题中发布的那样进行查询。由于没有提供其他答案,我将接受我自己的答案,直到(如果有的话)发布更好的答案。

于 2012-03-09T11:15:58.287 回答