XmlBeans通过XmlBeans.compileXsd()提供对XML模式遍历的访问。返回它们的SchemaTypeSystem,它允许方便地对整个模式进行高级访问。这对于代码生成(例如,对于其他语言或其他非XML表示)等非常方便。
例如,您可以执行类似......
的操作SchemaTypeSystem sts = XmlBeans.compileXsd(new XmlObject[] {
XmlObject.Factor.parse(xsdFile) }, XmlBeans.getBuiltInTypeSystem(), null);
然后,您可以深入了解SchemaTypeSystem以获取有关其架构的所有信息。
JAXB或任何其他标准Java工具中是否有提供等效功能的东西?我不只是想要一个代表架构的DOM树。
大多数情况下,我不想将XMLBeans拖到当前依赖于JAXB的项目中。
答案 0 :(得分:1)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员。
JAXB不提供您描述XmlBeans.compileXsd()
的替代方法。元数据的唯一表达是通过注释。您可以使用JAXB API生成XML模式(请参阅:http://wiki.eclipse.org/EclipseLink/Examples/MOXy/JAXB/GenerateSchema),但您需要使用其他工具以您查找的方式对其进行解释。