XML模式引用和未声明的类型

时间:2013-03-27 09:09:35

标签: xml xsd envelope

我是架构构建的新手,并且在理解命名空间引用应该如何工作方面遇到了问题。我使用类似于BizTalk的应用程序,并对以下架构执行解包操作。我不确定这是否是一般错误,但这是我得到的错误:

错误

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>

1 个答案:

答案 0 :(得分:0)

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

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