Клиент получает ошибки XML-схемы, используя схему, которая отлично работает для меня - PullRequest
1 голос
/ 22 ноября 2011

Я не эксперт по XML ни в каком воображении, но я немного знаю об этом.

Я создал документ схемы и образец XML-документа, который проверен им. Я использовал Altova XML Spy 2004 rel 4 для создания и проверки как схемы XML, так и документа XML.

Я отправил XML smaple doc и XML Schema клиенту, который его протестировал, и он отлично работает.

Я отправил его на секунду, и они сообщают об ошибках. В частности:

enter image description here

Если вы не можете прочитать текст изображения, оно говорит:

Code Description                                                   File
-1   The length constraining facet is prohibited for 'Date'.       sample_xml201108.xml
-1   The length constraining facet is prohibited for 'Date'.       xml201108.xsd
-1   The MaxLength constraining facet is prohibited for 'Integer'. xml201108.xsd
-1   The MaxLength constraining facet is prohibited for 'Integer'. xml201108.xsd
-1   The MaxLength constraining facet is prohibited for 'Integer'. xml201108.xsd

Связанный код XML-схемы:

Для типа даты:

Код, вызывающий ошибку:

<xs:simpleType name="dateType">
   <xs:restriction base="xs:date">
      <xs:length value="10"/>
   </xs:restriction>
</xs:simpleType>

Для первого целочисленного элемента:

<xs:element name="x_no" nillable="true">
   <xs:simpleType>
      <xs:restriction base="xs:integer">
         <xs:maxLength value="10"/>
      </xs:restriction>
   </xs:simpleType>
</xs:element>

Для второго целочисленного элемента

<xs:element name="y_no" nillable="true">
   <xs:simpleType>
      <xs:restriction base="xs:integer">
         <xs:maxLength value="16"/>
      </xs:restriction>
   </xs:simpleType>
</xs:element>

Для третьего целочисленного элемента:

<xs:element name="z_no" nillable="true">
   <xs:simpleType>
      <xs:restriction base="xs:integer">
         <xs:maxLength value="10"/>
      </xs:restriction>
   </xs:simpleType>
</xs:element>

Любая помощь в понимании того, почему один клиент получает эти ошибки, когда ни у меня, ни у другого клиента нет этой проблемы, будет с благодарностью получена.

Клиент с ошибкой использует Liquid XML Studio 2009 и пробовал его с Altova XML Spy 2009.

Заранее спасибо ...

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

Часть 2 спецификации XML-схемы, относящаяся к типизации данных (см., Например, здесь тип данных date http://www.w3.org/TR/xmlschema-2/#date), в котором сообщаются разрешенные фасеты для каждого простого типа XML-схемы. MaxLength недопустимо для целого числа.использование totalDigits (ограничивает только значащие числа, не ведущие нули) или pattern, например:

<xs:element name="z_no" nillable="true">
   <xs:simpleType>
      <xs:restriction base="xs:integer">
         <xs:totalDigits value="10"/>
      </xs:restriction>
   </xs:simpleType>
</xs:element>

То же примечание для даты: рассмотрите возможность использования фасетов pattern вместо длины.

1 голос
/ 23 ноября 2011

Чтобы убедиться, что схема действительна, вам нужно сделать больше, чем просто запустить ее через XML Spy, особенно такую ​​старую версию, как XML Spy 2004. Ваш пример показывает, что XML Spy не может обнаружить неправильное использование длины. 'фасет с xs: date, является прекрасной иллюстрацией того, почему.

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