jaxb не генерирует перечисления с базовым целым - PullRequest
5 голосов
/ 20 декабря 2011

У меня есть следующие xsd:

<xs:simpleType name="resultcode">
    <xs:restriction base="xs:integer">
        <xs:enumeration value="0" id="Approved_no_error">
            <xs:annotation>
                <xs:appinfo>
                    <jxb:typesafeEnumMember name="Approved_no_error"/>
                </xs:appinfo>
            </xs:annotation>
        </xs:enumeration>

JAX-B просто ничего не делает, без ошибок, без предупреждений, просто не генерирует этот класс. Если изменить базу с xs:integer на xs:string, тогда все в порядке. Но мне нужны именно целочисленные значения.

Я создаю классы с Maven:

<groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
        <execution>
            <id>AuthGateway</id>
            <goals>
                <goal>xjc</goal>
            </goals>

И вопрос 2. JAX-B и IDE (IDEA) не допускают пробелов в атрибуте id. Почему?

<xs:enumeration value="0" id="Approved_no_error"> - нормально
<xs:enumeration value="0" id="Approved no error"> - не в порядке

Это правильное поведение?

1 Ответ

6 голосов
/ 20 декабря 2011

Вы можете использовать внешний файл привязки, чтобы получить поведение, которое вы ищете:

...