У меня есть два файла XSD, я хочу, чтобы элементы двух разных файлов xsd имели одно и то же имя, но с другим типом свойства.
Предположим, что ниже xml1.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/wm"
xmlns="http://www.example.com/wm"
elementFormDefault="qualified">
<xsd:element name="testEame1">
<xsd:annotation>
<xsd:documentation> test </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type='xsd:string' minOccurs="1"/>
<xsd:element name="session" type='xsd:string' minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="pid" type="xsd:integer" use="required"/>
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
ниже: xml2.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/wm"
xmlns="http://www.example.com/wm"
elementFormDefault="qualified">
<xsd:element name="testEame1">
<xsd:annotation>
<xsd:documentation> test </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type='xsd:string' minOccurs="1"/>
<xsd:element name="session" type='xsd:integer' minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="pid" type="xsd:integer" use="required"/>
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Разница между xml1 и xml2 составляет
<xsd:element name="session" type='xsd:string' minOccurs="1"/>
и
<xsd:element name="session" type='xsd:integer' minOccurs="1"/>
при запуске xjc с файлами xsd, я столкнулся с проблемой ниже.
C:\Temp\tt>xjc *.xsd
parsing a schema...
[ERROR] 'testEame1' is already defined
line 17 of file:/C:/Temp/tt/xml2.xsd
[ERROR] (related to above error) the first definition appears here
line 5 of file:/C:/Temp/tt/xml1.xsd
Failed to parse a schema.
ЧтоЯ посетил versioning и link2
Но я не уверен, как реализовать управление версиями и компилировать без ошибок.Любая помощь будет высоко оценена!
ОБНОВЛЕНИЕ 1: Или Я хочу, чтобы элемент сеанса имел тип integer или string
<xsd:element name="session" type='xsd:integer | xsd:string' minOccurs="1"/>