我有几个模式从一组“通用”模式中继承一个或多个元素。在这个特定的实例中,我正在导入其中一个模式以使用其中定义的单个复杂类型。
当我从模式生成 java 对象时,我得到了我的模式类型,以及我按预期引用的元素,但是我也得到了从通用模式中为 30多种其他类型生成的对象。
我想使用通用模式,因为我想在通用模式更改时依靠自动构建来更新我的模式,但我不希望生成额外的 java 类。
建议?
我有几个模式从一组“通用”模式中继承一个或多个元素。在这个特定的实例中,我正在导入其中一个模式以使用其中定义的单个复杂类型。
当我从模式生成 java 对象时,我得到了我的模式类型,以及我按预期引用的元素,但是我也得到了从通用模式中为 30多种其他类型生成的对象。
我想使用通用模式,因为我想在通用模式更改时依靠自动构建来更新我的模式,但我不希望生成额外的 java 类。
建议?
没有开箱即用的方法来实现您想要的。我在这里提供意见的原因是为了指出(也许对其他人而言)一些无论走哪条路线都需要考虑的问题。
“额外”标签并不总是直截了当的。替代组成员很有趣。在 Java 中,考虑使用接口 (I) 的类 (A) 和实现 (I) 的类 (B:I)。有人可能会说 A 和 B 之间没有依赖关系,而其他人可能会在分发中需要 B。如果将 (I) 替换为具体的类,事情就变得更不清楚了——考虑到替换组头不需要是抽象的;或者如果替换组头的类型是 anyType(Java 中的对象)。
更重要的是,如果 XML 处理被设计为适应xsi:type则更难判断(通过查看模式)预期在哪里工作。
QTAssistant(我与之关联)等工具有一个默认设置,它将引入所有严格的依赖项(上面的 A 和 I);以及可能工作的所有(上面的B),或者没有别的。介于两者之间的任何内容,用户都需要手动定义发布中的内容。这称为自动 XSD 重构,可以在您的场景中轻松使用。