我们可以使用saxon解析Schema或XSD文件吗,我需要显示给定XSD的所有可能的XPath。
我在org.apache.xerces中找到了一种方法,但由于它支持XSLT 3.0,所以希望在Saxon中实现逻辑(我们也希望对XSLT相关功能使用相同的库)
预先感谢
Saxon-EE当然包括一个解析模式文档的XSD处理器。我认为您的问题不是解析文档的低级流程,而是解析架构后查询架构的较高级流程。
[Saxon-EE提供了几种以编程方式访问已编译模式的组件的方法。
您可以将已编译的架构导出为XML格式的SCM文件。该格式的文档尚不完善,但是其结构与W3C规范中定义的架构组件模型非常接近。
您可以使用扩展功能(例如saxon:schema()和saxon:schema从XPath访问已编译的模式-请参见http://www.saxonica.com/documentation/index.html#!functions/saxon/schema
您还可以在Java级别访问模式:方法已在Javadoc中进行了文档说明,但是它们实际上是为内部使用而设计的,而不是为了此类应用程序的方便。
当然,访问编译模式本身并不能解决您显示所有有效路径的问题。首先,所有有效路径的集合通常是无限的(因为类型可以是递归的,并且由于通配符)。其次,即使结果是有限的,诸如替换组和通过扩展得出的类型之类的特征也会带来挑战。但从原则上讲,信息就在那里:从带有全局声明的元素名称中,您可以找到其类型,从其类型中,您可以找到有效的子元素集,依此类推。