Java classes generation from xsd
От: Denis_Orlov  
Дата: 30.06.11 06:57
Оценка:
Добрый день.
В проекте есть набор xsd файлов из которых в процессе компиляции генерируются java файлы (код достался в наследство).
Сейчас понадобилось сделать так, чтобы некоторые генерируемые классы наследовали Serializable interface.

Проект собирается с помощью maven maven-jaxb2-plugin. Добавил в pom.xml
<bindingIncludes>
      <value>binding.xjb</value>
</bindingIncludes>


Файл binding.xjb содержит:
<?xml version="1.0" encoding="UTF-8"?>

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

    <bindings schemaLocation="xsd/definition.xsd">
        <bindings node="//xsd:element[@name='summaries']">
            <globalBindings>
                <xjc:serializable uid="-1"/>
            </globalBindings>
        </bindings>
    </bindings>
</bindings>


Файл definition.xsd
...
<xsd:element name="tradeSummaries">
   <xsd:complexType>
    <xsd:sequence>
       ....
    </xsd:sequence>
   </xsd:complexType>
</xsd:element>
...


Проблема в том, что игнорируются schemaLocation и node и Serializable получают все объекты всех схем.
Если же убрать globalBindings
    <bindings schemaLocation="xsd/definition.xsd">
        <bindings node="//xsd:element[@name='summaries']">
                <xjc:serializable uid="-1"/>
        </bindings>
    </bindings>
</bindings>


То Serializable не получает никто.
Вопрос в том, можно ли повесить intarface на один элемент или это невозможно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.