1

任何人都可以建议一些工具来生成代码文件以访问 XML 模式中定义的模型吗?

理想情况下,它应该生成一个流式 XML 解析器,该解析器读取输入 XML 并在找到 MyModelElement 后调用诸如 visitMyModelElement() 之类的方法。然后我只需填写空白方法并获得我的“映射器”代码。

这是一个简短的版本,我将尝试描述背景。我在想我们应该如何处理另一个树到树映射问题: https ://gis.stackexchange.com/questions/1879/how-to-convert-gml-to-features-in-arcobjects

——我看了一下“最佳实践者的最佳实践”,只是想回忆一下,如果我们追随他们,某个 BigCustomer 的某个晚上会发生 OutOfMemoryException。周围有比更好的做法更好的做法吗?

(如果我的问题不够清楚,我会写更多信息)

4

1 回答 1

2

不完全是您问题的答案,但它绝对可以在 Java 上使用 JAXB 和 JAXB 插件解决。JAXB 有一个模式编译器 (XJC),它将 XML 模式编译成带有注释的 Java 类。来自 JAXB 参考实现的 XJC 可以使用插件进行扩展,这些插件可以生成一些额外的代码。我为 XJC 编写了许多插件,所以我声明生成访问者模式代码并不是什么大问题。

但是我不认为经典的访问者模式在这里是正确的方法。使用 OGC 模式,您可以轻松地使用数百个而不是数千个“访问”方法,因此它实际上可能没有帮助。

接下来,我真的不确定这是否是您完成核心任务的正确方法。我认为访客不会真正让事情变得轻松,而是让事情变得更麻烦。我会去手动处理未编组的对象。在 .Net 上,我会使用其中一种 XSD 工具来创建 XML/对象映射,然后手动将未编组对象的处理写入 ArcObjects。

顺便说一下,这是我基于 JAXB 生成的代码实现的GML 解析器/序列化器。它在 GML 和 JTS 几何之间转换。(JTS 代表 Java 拓扑套件,它是一种流行的几何 API。)这与您想要的几乎相同,但用于 Java/JTS 而不是 .Net/ArcObjects。

于 2012-02-26T23:42:01.743 回答