Я использую xjc для создания классов JAXB. Я использую следующую команду
xjc -d src -p com.abc.proj the-types.xsd
Я получаю следующую ошибку
parsing a schema...
[ERROR] s4s-att-invalid-value: Invalid attribute value for 'name' in element 'attribute'. Recorded reason: cvc-datatype-valid.1.2.1: 'xmlns:xsi' is not a valid value for 'NCName'.
line 106 of file:/C:/Port/Field/the-types.xsd
[ERROR] src-attribute.3.1: One of 'ref' or 'name' must be present in a local attribute declaration.
line 106 of file:/C:/Port/Field/the-types.xsd
[ERROR] s4s-att-invalid-value: Invalid attribute value for 'name' in element 'attribute'. Recorded reason: cvc-datatype-valid.1.2.1: 'xsi:noNamespaceSchemaLocation' is not a valid value for 'NCName'.
line 107 of file:/C:/Port/Field/the-types.xsd
[ERROR] src-attribute.3.1: One of 'ref' or 'name' must be present in a local attribute declaration.
line 107 of file:/C:/Port/Field/the-types.xsd
Failed to parse a schema.
Строки 106 и 107, начинающиеся с **<xs:attribute name="" ..>
** файла-types.xsd, дают ошибки. Файл .xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="the-types">
<xs:complexType>
<xs:sequence>
<xs:element name="AType" maxOccurs="unbounded">
...............
</xs:element>
</xs:sequence>
**<xs:attribute name="xmlns:xsi" type="xs:string"></xs:attribute>
<xs:attribute name="xsi:noNamespaceSchemaLocation" type="xs:string"></xs:attribute>**
</xs:complexType>
</xs:element>
</xs:schema>
Что я понимаю из ссылки Недопустимое значение атрибута для "имя" в элементе " element', который мы не можем использовать : в имени. Но это не помогает. Как мне изменить свой xsd, чтобы получить классы JAXB.