Определение моего sympleTypes дает «Тип не объявлен или не является простым типом» - PullRequest
0 голосов
/ 24 марта 2020

Я определил два sympleTypes (CommonTypes.xsd), которые я хотел бы использовать в нескольких других файлах XSD (например, MotorList.xsd).

Я использую Visual Studio для разработки. Visual Studio не жалуется на какие-либо проблемы. Для обоих файлов «Build Action» установлено значение «Embedded Resource». Но когда я запускаю свое приложение, которое проверяет файлы XSD, я получаю «Тип http://Ford/Mustang/PowerPlugin/CommonTypes: powerType » не объявлен или не является простым типом ».

Что не так?

Спасибо за любую помощь.

Файл CommonTypes.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://Ford/Mustang/PowerPlugin/CommonTypes">

  <xs:simpleType name="powerType" >
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="unitType" final="restriction" >
    <xs:restriction base="xs:string">
      <xs:enumeration value="kW" />
      <xs:enumeration value="PS" />
      <xs:enumeration value="Nm" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

Файл MotorList.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://MyNamespace/MyTypes" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:commonTypes="http://Ford/Mustang/PowerPlugin/CommonTypes">

  <xs:import namespace="http://Ford/Mustang/PowerPlugin/CommonTypes"
             schemaLocation="CommonTypes.xsd"/>

  <xs:element name="MotorList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Prime">
          <xs:complexType>
            <xs:attribute name="cylinder" type="xs:positiveInteger" use="required" />
            <xs:attribute name="power" type="commonTypes:powerType" use="required" />
            <xs:attribute name="unit" type="commonTypes:unitType" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

1 Ответ

0 голосов
/ 24 марта 2020

С вашими документами схемы все в порядке (я проверил их с помощью Saxon). Поэтому проблема заключается в том, как вы их используете (о чем вы нам очень мало рассказали). Одна из возможностей состоит в том, что обработчик схемы фактически не нашел документ CommonTypes.xsd - хороший способ проверить, что это может быть сделано для преднамеренной ошибки, и посмотреть, будет ли о ней сообщено. Затем сообщите нам, как вы вызываете неудачную проверку (и какой процессор схемы вы используете).

...