xsd не видит xs: десятичный тип - PullRequest
0 голосов
/ 14 сентября 2018

Привет! Я изменил тип элемента с xs: integer на xs: decimal, но когда я пытаюсь проверить xml, произошла ошибка: " '0.2' не является допустимым значением для 'integer'. » Я не понимаю, почему тип результата целочисленный. Это мой xsd:

<?xml version="1.0" encoding="UTF-8"?>
   <xs:schema xmlns="https://www.w3schools.com" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="https://www.w3schools.com">

 <xs:element name="distribution">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="type" minOccurs="1" maxOccurs="1"/>
            <xs:element ref="value" minOccurs="1" maxOccurs="2"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>   

<xs:element name = "type">
    <xs:simpleType>
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
</xs:element>

<xs:element name="value">
    <xs:simpleType>
        <xs:restriction base="xs:decimal"/>
    </xs:simpleType>
</xs:element>

И xml, который я хочу проверить:

<?xml version="1.0" encoding="UTF-8"?>
<working xmlns="https://www.w3schools.com" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  xsi:noNamespaceSchemaLocation="processoproduttivo.xsd">

<resources> <!-- resources map-->
    <resource resourcename="A1">
        <resourcenumber>4</resourcenumber><!-- number of machines-->
        <capacity>50</capacity><!-- machine's capacity-->
        <distribution><!-- type of distribution-->
            <type>Uniform</type>
            <value>0.2</value>
            <value>4</value>
        </distribution>
    </resource>
</resources>
</working>

1 Ответ

0 голосов
/ 14 сентября 2018

Я не думаю, что вы проверяете этот документ по этой схеме.

Для начала пространства имен не совпадают. Ваша схема предназначена для пространства имен "https://www.w3schools.com" (что является плохой практикой, потому что я не думаю, что вы владеете этим доменом), но ваш экземпляр, похоже, не находится в пространстве имен.

== ОБНОВЛЕНИЕ ==

Вы отредактировали вопрос, чтобы показать полный XML. Это показывает, что экземпляр XML действительно находится в целевом пространстве имен схемы. Однако он содержит атрибут xsi:noNamespaceSchemaLocation, который полезен только для проверки элементов без пространства имен и не поможет найти объявления схемы для элемента в пространстве имен "https://www.w3schools.com".

...