【发布时间】:2014-02-22 05:17:09
【问题描述】:
给定一个架构文档(XSD 格式),例如 MODS 3.5 schema(美国国会图书馆,LoC),以及一个已知根据该架构有效的文档 (XML),例如 metadata for the Antitrust & Competition Policy Blog archives 2007 (@987654323 @) 来自 LoC Law Blawgs Web Archive,是否有 Java API 允许 Java 程序在 XML 文档中查询 XML 模式数据类型,文档元素是其实例?
似乎我可能混淆了 XML 模式和 UML 模型。我正在考虑一个 XML 模式,因为它表示类似 UML 模型 (M1) 的东西,然后是一个 XML 文档,例如表示 UML 模型元素实例的 user data (M0)。如果有可能,类似地,查询一个 XML 元素,确定该元素 派生自或 符合的 XML 模式数据类型或元素定义解析树,我认为它可以为ModeShape 的定序器提供一个很好的功能。
我认为,这个想法本质上是:可能可以在 ModeShape JCR 存储库中引用表示已排序 XML 文档的 XML 元素的 JCR 节点,以将每个元素引用到 JCR表示 XML 模式数据类型的节点,这种类型的代表 JCR 节点将在文档使用的模式的排序中定义,例如已由 ModeShape XSD 排序器排序。
我只是不确定在 Java 中是否存在用于确定 XML 模式元素而不是有效 XML 文档元素的 API(当根据 XML 模式验证 XML 文档时),这样元素符合解析树中的。我的印象是可以执行这样的计算。简单地说,我想知道,是否已经有 一个 API 用于此?
另外,还有UML...
【问题讨论】:
-
也许它可以通过验证 SAX 解析器来解决?例如Implementing SAX Validation 来自 Java 教程
-
另一个教程,介绍
SchemaFactory类:Java & XML Tutorial: SAX Schema Validation -
第三 - 没有更接近于将架构元素与解析树中的文档元素相关联,但它显示了 SAX 上架构验证的更多机制:Schema Validation using SAX and DOM Parser with Oracle JDeveloper - XDK11g]跨度>
-
还有 JAXB,或者 - 可以扩展 `ValidationEventHandler~?参看。 Java XML and JSON Binding: JAXB and Marshal/Unmarshal Schema Validation - 类似于 EclipseLink 文档中的 Validating Against an XML Schema
-
另外,还有 JDOM:stackoverflow.com/questions/20142695/…