Проверка XSD не удалась, поскольку нулевое значение является недопустимым десятичным числом

у меня проблема с написанием действительного XSD, который описывает потенциальное нулевое значение для десятичного числа.

Я пытаюсь проверить следующий XML

<RatioDe fieldId="011" nil="true"></RatioDe>

и соответствующее описание XSD для этого элемента

  <xs:element minOccurs="0" maxOccurs="1" name="RatioDe" nillable="true">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:decimal">
          <xs:attribute name="fieldId" type="xs:string" />
          <xs:attribute name="nil" type="xs:boolean" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

В основном сообщение об ошибке

Элемент 'RatioDe' недействителен. Значение '' не является допустимым десятичным числом. Строка '' не является допустимым десятичным значением.

На данный момент я понятия не имею, что изменить в моем xsd, чтобы сделать xml действительным.


person Viper    schedule 06.01.2012    source источник


Ответы (1)


Вам нужно использовать xsi:nil в вашем экземпляре документа, а не только nil, т.е.

<RatioDe fieldId="011" xsi:nil="true"/>

И убедитесь, что префикс xsi определен где-то в документе (с xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance")

person skaffman    schedule 06.01.2012