Логика ИЛИ в файле XSD - PullRequest
0 голосов
/ 02 апреля 2012

Фрагмент моего 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>

1 Ответ

1 голос
/ 02 апреля 2012

Его <xs:choice> .. используйте его вместо <xs:or>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...