2013-03-27 36 views
0

我是模式构建的新手,并且在理解命名空间引用应该如何工作时遇到问题。我使用类似于BizTalk的应用程序,并对以下模式执行解封操作。我不知道如果这是一个一般错误,但是这是我得到的错误:XML架构参考和类型未声明

错误

XmlSchemaValidationException, Type 'http://Wheelhouse/Property:PropertyType' is not declared. : 

属性定义

<?xml version="1.0" encoding="utf-16"?> 
<xs:schema xmlns="http://Wheelhouse/Property" elementFormDefault="qualified" targetNamespace="http://Wheelhouse/Property" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Property" type="PropertyType" /> 
    <xs:complexType name="PropertyType"> 
    <xs:sequence> 
     <xs:element minOccurs="0" maxOccurs="1" name="ID" /> 
     <xs:element minOccurs="0" maxOccurs="1" name="Listing_Number" /> 
     <xs:element minOccurs="0" maxOccurs="1" name="Status" /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

属性列表定义

<?xml version="1.0" encoding="utf-16"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:import schemaLocation="blueintegrator://Wheelhouse/PropertyDefinition__4f3f265569d54e9fa898eba835502c6a_" namespace="http://Wheelhouse/Property" /> 
    <xs:element xmlns="http://Wheelhouse/Property" name="Root"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element minOccurs="0" maxOccurs="unbounded" name="Property" type="PropertyType" /> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

回答

0

它不工作的原因与schemaLocation属性中的URI方案(blueintegrator)有关。您使用的用于使用XSD的工具很可能不理解该URI,因此无法加载包含http://Wheelhouse/Property:PropertyType类型定义的XSD。

对于“正常”工具,如果您将该属性的值更改为其他值(例如,如果将两个文件都放在同一文件夹中,则将整个schemaLocation值替换为文件名)看到模式是完全有效的。