1

我需要使用符合一组 XSD 文件的内置 java org.w3c.dom 或 jdom 包来创建 XML 文档。XSD 文件相似但不相同。本质上,我需要根据动态给我的 XSD 创建 XML 文件。

最好的方法是什么。我已经检查了 Validator 包,它没有任何功能,如给定上下文节点处可能元素的前瞻或迭代器。

理想情况下,我正在研究一种 SAX 架构,当我被要求以无上下文的方式提供时,我会在其中实现一个元素。引擎应该组装起来,最后给我 dom 树。

这个轮子是不是已经发明出来了?

谢谢..

4

2 回答 2

1

org.w3c.dom不支持 XML 模式。对于 JDom,您可以使用模式来验证文档,但不支持构建文档。

你有两个选择:

  1. 使用 JDom 读取模式、分析模式并根据该 XML 文档生成文档(模式也始终是有效的 XML 文档)。

  2. 您可以使用像Castor这样的 XML 映射器。Castor 可以读取模式并生成一组 Java 类,这些类允许您生成与所述模式匹配的文档。

后一种方法在您的情况下可能效果不佳,因为 Castor 将为相似的 XSD 结构生成不同的 Java 类,除非它们在同一个文档中定义,因此您不能轻松地重用公共代码。解决方法是让 Castor 生成代码,然后编写脚本或类似的脚本将 XSD 的公共部分复制/合并到同一个 Java 包中。

于 2009-09-29T13:46:42.653 回答
1

我目前正在解析 XSD,并且不是从其中的一部分创建 XML 文档,而是创建其他内容。我发现XSOM非常有用。看看这个简短的小教程,因为它并不明显如何立即使用它。

一旦你掌握了它的窍门,这个库本身并不难使用,你可以获得在 XSD 中找到的任何所有信息,即你​​可以用来生成 XML 文件的属性、限制和元素。

于 2009-11-16T19:09:35.707 回答