У меня есть следующий xsd (здесь я публикую только соответствующую часть, но команда также выполнялась для этого отрывка)
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:complexType name="OptionType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="value" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ControllableType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:float" name="value" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
Я запускаю следующую команду против него:
xjc src/main/resources/session.xsd -p org.myorg.mypackage -d src/main/java/org/myorg/mypackage
Я получаю следующую ошибку:
[ERROR] Property "Value" is already defined. Use <jaxb:property> to resolve this conflict.
line 39 of jar:file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar!/com/sun/xml/internal/xsom/impl/parser/datatypes.xsd
[ERROR] The following location is relevant to the above error
line 14 of file:/home/user/project/src/main/resources/session.xsd
[ERROR] Property "Value" is already defined. Use <jaxb:property> to resolve this conflict.
line 39 of jar:file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar!/com/sun/xml/internal/xsom/impl/parser/datatypes.xsd
[ERROR] The following location is relevant to the above error
line 7 of file:/home/user/project/src/main/resources/session.xsd
Failed to parse a schema.
Я читал кое-что о привязках здесь:
Символ уже определен. Используйте свойство JAXB для разрешения конфликта
Проблема компиляции JAXB - [ОШИБКА] Свойство Any уже определено а>
Но зачем это вообще нужно? Разве атрибут не является полностью квалифицированным и уникальным по имени элемента XML в сочетании с именем атрибута?
Как "OptionType.value" или "ControllableType.value"