我正在试图找到一种方法来查询RNG模式,同时避免重复发明轮子,以便回答一些基本问题,例如:哪些元素是XML实例元素的有效子元素,哪些元素可以/必须是它的属性等等。
here的一个帖子提高了我对Jing/Trang的希望,因为我已经在用Jing做RNG验证了,但是在搜索之后,我没有发现可以证实这一说法的源代码示例,而且浏览API文档也没有太多帮助(反过来,这些文档似乎也是Jing捆绑的唯一文档)。
我真的希望避免将模式解析到我自己的对象模型中来执行这些查询,而且这似乎也有些多余,因为我知道Jing一定也在某个地方做这件事。问题是如何从其中获得我需要的信息。
有没有其他库可以用来从java代码中查询RNG模式?请注意,我并不是试图通过使用模式来验证实例文件,而是试图查询模式本身。
发布于 2012-03-09 19:15:58
这个问题的答案是使用RNGOM。它是一个基于Jing的对象模型构建API。由于Jing没有公开其内部模型,因此似乎是避免在此用例中完全重新设计轮子的唯一方法。您仍然需要编写自己的代码,这些代码将通过浏览此模型进行实际查询(就像我现在正在尝试做的那样)。
学习如何利用RNGOM并非易事,正如here所见,但项目的代码库应该会让事情变得更容易(包含用法示例)。
不幸的是,我还没有找到其他能够让我查询RNG模式的库(或者至少可以减轻这样做的痛苦)。
编辑1个
我最终创建了自己的rng对象模型和一个解析器来生成它。它的目的是处理我的特定用例,并允许我提出类似于我在问题中发布的问题。由于没有提供其他答案,我将接受我自己的答案,直到(如果有的话)有更好的答案发布。
https://stackoverflow.com/questions/9465968
复制相似问题