gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:47:09 25 4
gpt4 key购买 nike

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

一个帖子 here提高了我对 Jing/Trang 这样做的希望,因为我已经在用 Jing 进行 RNG 验证,但是在四处搜索之后我发现没有源代码示例可以证实声明并且浏览 API 文档也对我没有太大帮助(这反过来似乎也是与 Jing 捆绑在一起的唯一文档)。

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

我可以使用另一个库从 Java 代码查询 RNG 架构吗?请注意,我并没有尝试使用架构来验证实例文件,我正在尝试查询架构本身。

最佳答案

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

学习如何利用 RNGOM 并非易事,可见 here ,但项目的代码存储库应该使事情变得更容易(包含使用示例)。

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

编辑 1

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

关于java - 在 java 中查询 RelaxNG 模式(xml 语法),最好使用 Jing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com