изменение ограничения на простой тип в расширенном сложном типе - PullRequest
0 голосов
/ 02 мая 2010

Я пытаюсь создать схему с двумя типами адресов. Первый AdressType требует, чтобы элемент Line 1 имел значение не менее 10 символов. Второй тип OtherAdressType происходит от этого с теми же элементами, но не требует значения для Line 1.

Я пробовал разные способы, но всегда получаю ошибки схемы, эта ошибка:

Invalid particle derivation by restriction - 'Derived element '{namespace}:Line1' is not a valid restriction of base element '{namespace}:Line1' according to Elt:Elt -- NameAndTypeOK.'.

Если я добавлю тип xs:string к OtherAdressType:Line1, я получу другие ошибки.

   <xs:complexType name="AdressType">
    <xs:sequence>
      <xs:element name="Line1" minOccurs="1" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="10" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Line2" type="xs:string" minOccurs="1" maxOccurs="1"  />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="OtherAdressType">
    <xs:complexContent>
      <xs:restriction base="AdressType">
        <xs:sequence>
          <xs:element name="Line1" nillable="true">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:minLength value="0" />
              </xs:restriction>
            </xs:simpleType>
          </xs:element>
          <xs:element name="Line2" type="xs:string" minOccurs="1" maxOccurs="1"  />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

1 Ответ

1 голос
/ 05 мая 2010

Боюсь, у меня нет полного ответа для вас, потому что у меня нет времени подробно разбираться с этим, , но , ваш производный тип не выглядит допустимое ограничение: строка с minLength 0 равна not ограничение строки с minLength 10: строк с minLength 0 больше, чем с 10.

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