2016-10-14 2 views
0

Предположим, у меня есть файл a.xsd в ресурсах/каталог и файл b.xsd в каталоге ресурсов/b. a.xsd и b.xsd имеют собственные пространства имен: http://a.com и http://b.com. И, наконец, a.xsd импортирует b.xsd.JAXB: сопоставление пространства имен для пакета с плагином maven

Я хотел бы настроить Maven-jaxb2-плагин для создания A.java в пакете com.a и B.java в пакете com.b

  1. Как связать все XSD файлы из одного пространства имен к одному пакету и всем файлам xsd из другого пространства имен в другой пакет.
  2. Как передать два разных каталога в maven-jaxb2-plugin. Множество казней не работают для меня.

ответ

1

Было бы лучше, если вы зададите эти вопросы отдельно.

Первый вопрос - просто используйте несколько 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> 
+0

Ваше решение для каждого файла, и я заинтересован в решении в пространстве имен. – trzeci

+0

@trzeci См. Обновление. – lexicore

Смежные вопросы