2

我有一个自定义的外部 XJB 文件,其中包含以下模式名称:

jxb:bindings schemaLocation="completeCheck.xsd" node="/xs:schema"

只是想知道,有没有办法在运行时使用 ANT(使用 ANT XJC)在 XJB 文件中替换模式名称,或者编写一个 xjb 绑定文件,这样我就不必在其中硬编码模式名称。基本上,我正在尝试查看是否可以将单个 xjb 文件用于多个 XSD。

目前,我到处都有相同的 xjb 文件,并且在 build.xml 中到处都引用了不同的硬编码模式名称。任何指针都受到高度赞赏。我正在使用 JAXB 2.x

4

2 回答 2

0

通过将您的 schemaLocation 属性的值替换为某种标记(例如 !!!)并使用其他名称/扩展名保存它,从您的 xjb 文件制作模板。定义一个具有诸如 schema-name 的属性的宏,它将使用 ant 的 replace 将模板文件中的标记更改为您的模式名称,并将其保存为绑定文件以供 xjc 随后使用。

于 2011-08-19T22:35:06.530 回答
0

通常,在最新版本的 XJC 中,您可以使用模式组件指示符。更多信息: https ://jaxb.java.net/nonav/2.2.1/docs/vendorCustomizations.html#scd和https://jaxb.java.net/guide/Using_SCD_for_customizations.html

于 2014-03-12T08:26:03.737 回答