我需要使用符合一组 XSD 文件的内置 java org.w3c.dom 或 jdom 包来创建 XML 文档。XSD 文件相似但不相同。本质上,我需要根据动态给我的 XSD 创建 XML 文件。
最好的方法是什么。我已经检查了 Validator 包,它没有任何功能,如给定上下文节点处可能元素的前瞻或迭代器。
理想情况下,我正在研究一种 SAX 架构,当我被要求以无上下文的方式提供时,我会在其中实现一个元素。引擎应该组装起来,最后给我 dom 树。
这个轮子是不是已经发明出来了?
谢谢..
org.w3c.dom不支持 XML 模式。对于 JDom,您可以使用模式来验证文档,但不支持构建文档。
你有两个选择:
使用 JDom 读取模式、分析模式并根据该 XML 文档生成文档(模式也始终是有效的 XML 文档)。
您可以使用像Castor这样的 XML 映射器。Castor 可以读取模式并生成一组 Java 类,这些类允许您生成与所述模式匹配的文档。
后一种方法在您的情况下可能效果不佳,因为 Castor 将为相似的 XSD 结构生成不同的 Java 类,除非它们在同一个文档中定义,因此您不能轻松地重用公共代码。解决方法是让 Castor 生成代码,然后编写脚本或类似的脚本将 XSD 的公共部分复制/合并到同一个 Java 包中。