使用ANT与多个XSD和单个XJB

时间:2011-06-28 22:13:02

标签: ant binding xsd jaxb xjc

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

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

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

目前,我在整个地方都有相同的xjb文件,并且在build.xml中引用了不同的硬编码模式名称。任何指针都非常感谢。我正在使用JAXB 2.x

2 个答案:

答案 0 :(得分:0)

通过使用某种标记(例如!!!)替换schemaLocation属性的值,从xjb文件创建模板,并使用其他名称/扩展名保存它。使用诸如schema-name之类的属性定义一个宏,该属性将使用ant的替换来更改模板文件中的标记和模式名称,并将其保存为随后由xjc使用的绑定文件。

答案 1 :(得分:0)

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