我面临着将 XML 节点转换为 JPA 实体的任务。XML 中的对象与实体表示的对象相似,但并不完全相同。看来我前面会有很多转换代码。
XML 在 Schema .xsd 文件中定义,我使用 JAXB 生成类并创建实例。上面的决定是不要触及生成的类型。我将为他们每个人创建转换器,也许我会使用访问者模式,还不知道。
困扰我的是有人决定更改 .xsd 文件并且不会更新负责的转换器的情况。
我的想法是让这些转换器类维护来自适当的 JAXB 类的字段的静态最终列表,这些字段在代码中处理。如果有人在 .xsd 文件中更改它们,则会记录一些警告,指出某些字段尚未处理,或者某些已处理的字段不再存在。
此外,我想确保转换器的数量与 JAXB 生成的类的数量相匹配。怎么做?
也许我应该以某种方式检查执行时间可以从 .xsd 文件生成哪些类,并将它们与注册的转换器进行比较。我觉得我不能只扫描特定包中的类来检查 JAXB 输出类。
也许访问者模式可以告诉我出了什么问题,但是延长检查直到 XML-JPA 转换中的错误在实践中发生可能是一个坏主意。