Похоже, что метод валидации, указанный в "проверенном, минималистичном, самодостаточном джобике" не работает в случае, если в XSD-схеме используется импорт из другой схемы, содержащей другое пространство имен, пример:
X++:
<!-- Common.xsd >> -->
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" targetNamespace="urn:Common" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:Common">
<xs:complexType name="Document">
<xs:sequence>
<xs:element minOccurs="1" name="Number" nillable="false" type="xs:string" />
<xs:element maxOccurs="1" name="Date" nillable="false" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:schema>
<!-- << Common.xsd -->
<!-- Test1.xsd >> -->
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" targetNamespace="urn:Test1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:Test1">
<xs:import schemaLocation="Common.xsd" namespace="urn:Common" />
<xs:complexType name="OrderType" >
<xs:complexContent mixed="false">
<xs:extension base="i1:Document" xmlns:i1="urn:Common" >
<xs:sequence>
<xs:element minOccurs="1" name="Qtv" nillable="false" type="xs:int" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Order" nillable="true" type="tns:OrderType" />
</xs:schema>
<!-- << Test1.xsd -->
<!-- Test1.xml >> -->
<?xml version="1.0" encoding="utf-8" ?>
<ex:Order xmlns:ex="urn:Test1" xmlns:vt="urn:Common">
<vt:Number>134</vt:Number>
<vt:Date>2007-05-22T11:33:33</vt:Date>
<ex:Qtv>44</ex:Qtv>
</ex:Order>
<!-- << Test1.xml -->
Есть ли мысли, как можно корректно провести валидацию в данном случае?
Upd: при попытке валидации ругается так:
X++:
"В качестве базы для расширения составного типа используется неопределенный complexType 'urn:Common:Document'."