如果單獨提出這些問題會更好。
第一個問題 - 只需使用多個jaxb:schemaBindings
。
<jaxb:bindings schemaLocation="a.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<jaxb:package name="com.a"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="b.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<jaxb:package name="com.b"/>
</jaxb:schemaBindings>
</jaxb:bindings>
第二個問題 - 多次執行或自己做一些文件移動後處理。爲什麼多次執行不適合你?
更新:你說你對每個命名空間感興趣,而不是每個文件的解決方案。
首先,它並不重要,最終它是一個每命名空間的解決方案。如果通過schemaLocation
綁定,則XJC將schemaBindings
與該架構的目標名稱空間關聯。您不必定製該架構的每個文件,也無法爲一個名稱空間定義兩個包。
其次,你可以使用SCD綁定改爲:
<jaxb:bindings scd="x-schema::tns" xmlns:tns="http://a.com">
<jaxb:schemaBindings>
<jaxb:package name="com.a"/>
</jaxb:schemaBindings>
</jaxb:bindings>
你的解決方案是每個文件,我很感興趣,每次命名空間的解決方案。 – trzeci
@trzeci查看更新。 – lexicore