java中的Saxon XSD或Schema解析器



有什么方法可以使用saxon解析Schema或XSD文件吗?,我需要为给定的XSD显示所有可能的XPath。

我在org.apache.xerces中找到了一种方法,但希望在Saxon中实现逻辑,因为它支持XSLT3.0(我们也希望对XSLT相关功能使用相同的库(

提前感谢

Saxon EE当然包括一个解析模式文档的XSD处理器。我认为您的问题不是解析文档的低级过程,而是解析后查询模式的高级过程。

Saxon EE提供了几种以编程方式访问已编译模式的组件的方法。

  • 您可以将编译后的架构导出为XML格式的SCM文件。这种格式没有很好的文档记录,但其结构与W3C规范中定义的模式组件模型非常一致。

  • 您可以使用诸如saxon:schema((和saxon:shema之类的扩展函数从XPath访问编译后的模式-请参阅http://www.saxonica.com/documentation/index.html#!函数/saxon/schema

  • 您也可以访问Java级别的模式:这些方法在Javadoc中有文档记录,但它们实际上是为内部使用而设计的,而不是为了方便此类应用程序。

当然,访问编译后的模式本身并不能解决显示所有有效路径的问题。首先,所有有效路径的集合通常是无限的(因为类型可以是递归的,也因为通配符(。其次,即使在结果是有限的情况下,通过可拓导出的替换群和类型等特征也具有挑战性。但原则上,信息是存在的:从具有全局声明的元素名称中,可以找到它的类型,从它的类型中,可以查找有效的子元素集,以此类推。

最新更新