Проверка XSD завершается неудачно, поскольку нулевое значение является недопустимым десятичным - PullRequest
0 голосов
/ 06 января 2012

У меня проблема с написанием корректного 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>

В основном, сообщение об ошибке составляет

* * 1010

Недопустимый элемент 'RatioDe' - значение '' не является допустимым 'десятичным' - строка '' не является допустимым десятичным значением

В настоящее время я не знаю, что изменить в моем xsd, чтобы сделать XML действительным.

1 Ответ

1 голос
/ 06 января 2012

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

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

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

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