Фрагмент моего XSD-файла:
<!--ru-RU: Группа настроек-->
<!--en-US: Settings group-->
<xs:complexType name="settingsGroup" >
<xs:sequence>
<xs:element name="string" type="stringValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="bool" type="boolValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="date" type="dateValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="dateTime" type="dateTimeValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="int" type="intValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="double" type="doubleValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="day" type="dayValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="month" type="monthValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="year" type="yearValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="localization" type="languageValue" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="nameId" type="xs:ID" use="required"/>
</xs:complexType>
Мне нужно изменить тип 'settingsGroup', чтобы он мог получать или набор типов 'settingsGroup', или то, что указано мной вСхема выше ... Как я могу написать это ИЛИ логику в XSD-файле?
Примерно так:
<!--ru-RU: Группа настроек-->
<!--en-US: Settings group-->
<xs:complexType name="settingsGroup" >
<!--en-US: Something like it:-->
<xs:or>
<xs:sequence>
<xs:element name="group" type="settingsGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:sequence>
<xs:element name="string" type="stringValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="bool" type="boolValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="date" type="dateValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="dateTime" type="dateTimeValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="int" type="intValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="double" type="doubleValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="day" type="dayValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="month" type="monthValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="year" type="yearValue" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="localization" type="languageValue" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:or>
<xs:attribute name="nameId" type="xs:ID" use="required"/>
</xs:complexType>