Добрый день.
В проекте есть набор 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 на один элемент или это невозможно?