пользовательская привязка для принудительного создания класса Inner или получения / установки для элемента xs: - PullRequest
1 голос
/ 04 июля 2011

У меня есть объявление схемы от стороннего поставщика.

<xs:complexType name="GroupParameterType">
        <xs:sequence minOccurs="0" maxOccurs="4">
            <xs:element name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The name of the parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="value" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The value of the parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

Выше приведена схема, которую я НЕ МОГУ изменить. Я пытаюсь написать пользовательскую привязку для jaxb 2.0, чтобы я мог ссылаться на имя как GroupParameterType.Name или GroupParameterType.Value в коде Java.

Текущая привязка по умолчанию создает список для меня, то есть getNameandValueList, но я хочу раздельные методы получения и установки для имени и значения соответственно.

Я попытался вставить пользовательскую привязку, как показано ниже:

<jxb:bindings schemaLocation="GroupParameter.xsd" node="xs:element[@name='name']">
    <jxb:globalBindings localScoping="toplevel" generateIsSetMethod="true"/>
</jxb:bindings>
<jxb:bindings schemaLocation="GroupParameter.xsd" node="xs:element[@name='value']">
    <jxb:globalBindings localScoping="toplevel" generateIsSetMethod="true"/>
</jxb:bindings>

и ничего не изменило генерацию класса по умолчанию. Кто-нибудь может дать мне несколько советов, так что еще я могу попробовать дальше? Я ищу, чтобы генерация Списка по умолчанию ДОЛЖНА С геттерами / сеттерами для имени и значения ИЛИ имеют имя и значение как Внутренние Классы. Если я удаляю опцию maxOccurs = 4, я могу генерировать геттеры / сеттеры, но поскольку я не могу изменить схему, я пытаюсь получить такое поведение, используя внешний файл привязки.

Спасибо Shon

1 Ответ

0 голосов
/ 15 сентября 2011

Вы не можете получить это поведение, если вы не измените свою схему.У вас есть модель схемы, которая отображается на неоднородное свойство элемента, и вы не можете изменить ее с помощью настройки.

Вы можете попробовать плагин для внедрения кода *1004* в качестве последнего отступления.1005 *

...