Если две версии API находятся в одном пространстве имен, это ужасно! У вас будет фабрика объектов из одного раунда поколения, перезаписывающая фабрику объектов, созданную другой (или запрещающую; я забыл, что на самом деле делает xjc
). Это также ужасно для клиентов API, так как они не будут знать, с какой версией API они имеют дело (если вы не делаете другие неприятные трюки, которые не следует поощрять; если они находятся в одном и том же пространстве имен, они должны быть тем же API).
Исправление заключается в том, чтобы поместить два API в разные пространства имен, чтобы они генерировались в разных пакетах с разными фабриками объектов. (Также остерегайтесь любого использования опции -p
для xjc
; это может привести к тому, что вещи попадут в то же пространство имен и приведут вас к таким головным болям при перезаписи.)