Я использую XMLBeans для создания кода Java из файла XSD. Теперь в этот XSD-файл добавлен новый элемент с тем же именем, что и у атрибута того же суперэлемента. Смотрите сокращенный пример. Поле элемента теперь имеет массив значений, кроме существующего атрибута значения.
<xs:element name="Field">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">...
<xs:element ref="Value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:sequence>
<xs:attribute name="value" type="xs:string"/>...
После этого обновления при генерации кода создаются атрибуты setter и getter с разными именами для атрибута setValue2 / getValue2. До этого было установлено значение / getValue. Setter и getter элемента Value называются setValueArray / getValueArray, поэтому реального столкновения нет, но я предполагаю, что генерация по-прежнему соответствует принципу, описанному на странице apache XMLBeans: «При наличии конфликтов имен сгенерированные типы будут иметь имена с цифрами добавлен, например, "TestType2". "
Я бы хотел изменить имя получателя атрибута Value и имя установщика обратно на имя, которое они имели раньше, чтобы мне не пришлось менять свой код Java. Как я могу добиться этого с помощью xsdconfig или любым другим способом? Проблема в том, что элемент Value также существует для других элементов в XSD, поэтому я не могу сделать простое изменение имени, как это предлагается на вики-странице xmlBeans / xmlconfig. Я ищу способ включить путь в элемент name, см. Пример ниже.
<xb:qname name="na:Field/Value" javaname="Values"/>
Я хочу изменить имя элемента Value только тогда, когда он является элементом поля.