Я определил два 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>