2010-08-11 4 views
1

Я пытаюсь создать Java исходные файлы из пакета *.xsd файлов с помощью XJC инструмент генерации кода.XJC генерироваться пространств имен

Пространство имен, используемые в тех * .xsd файлы следующим образом:

http://www.domain.com/foo/bar.x 
http://www.domain.com/foo/bar.x.y 
http://www.domain.com/foo/bar.x.y.z 

XJC производит пакеты следующим образом:

com.domain.foo.bar.x и место генерируются Java-файлы от «... х» и «... х» XSD пространств имен там

com.domain.foo.bar.x_y и места генерируются Java-файлы из «... а» XSD пространств имен там

Что я хотел бы достичь здесь является правильным:

com.domain.foo.bar.x 
com.domain.foo.bar.x.y 
com.domain.foo.bar.x.y.z package names 

ли это как-то можно? Возможно, используя пользовательские JAXB крепления? Я изучил jaxb пользовательские документы привязки, но я не уверен, что это возможно.

В основном я хотел бы xjc для обработки как «/», так и «.». как разделители пакетов.

Любая помощь приветствуется.

Адальберт

+0

Мне удалось решить эту проблему частично, предоставив пользовательские привязки для определенных файлов XSD –

ответ

6

Использование jaxb:package настройки:

<jaxb:bindings 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    jaxb:version="2.1"> 

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema"> 
     <jaxb:schemaBindings> 
      <jaxb:package name="com.domain.foo.bar.x.y.z"/> 
     </jaxb:schemaBindings> 
    </jaxb:bindings> 
</jaxb:bindings> 

В качестве альтернативы вы можете переименовать вас пространство имен в http://www.domain.com/foo/bar/x/y/z.

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