Я пытаюсь сгенерировать java-файлы из XML-схемы с помощью JAXB. Одним из типов данных в схеме является строка с примерно 300 возможными значениями. Так как это больше, чем 256, xjc по умолчанию не генерирует перечисление для этого типа, но вместо этого использует строку. Так как я хочу иметь перечисление генерироваться, я создаю bindings.xml со следующим содержанием:JAXB: globalBindings в bindings.xml игнорируется
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb">
<globalBindings typesafeEnumMaxMembers="1000" />
</bindings>
Это не работает по неизвестной причине. xjc не дает мне подсказки. Сначала я подумал, что у меня нет файла, поэтому я проверил. Я также попытался умышленно неправильно использовать имя элемента, например globalBindings
, до globalBinding
и обнаружил, что xjc жаловался на недопустимый элемент, что, очевидно, означает, что xjc считывает файл привязки.
Однако, когда я помещаю globalBindings внутри xsd, он отлично работает - генерируется enum.
<xs:schema ....>
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings typesafeEnumMaxMembers="1000" />
</xs:appinfo>
</xs:annotation>
...
...
</xs:schema >
Так что мой вопрос как же опция установлена в bingings.xml (который читается XJC) не используется для настройки компиляции? Что мне здесь не хватает?
Большое спасибо за любую помощь.
Ваш ответ может быть усилен путем добавления некоторых ссылок и/или примеров. – mathielo