我是架构构建的新手,并且在理解命名空间引用应该如何工作方面遇到了问题。我使用类似于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>
答案 0 :(得分:0)
它不工作的原因与schemaLocation属性中的URI方案(blueintegrator)有关。您用来使用XSD的工具很可能无法理解该URI,因此无法加载包含http://Wheelhouse/Property:PropertyType
类型定义的XSD。
对于“普通”工具,如果将该属性的值更改为其他值(例如,如果将两个文件放在同一文件夹中,则将整个schemaLocation值替换为文件名),您将看到模式完全有效。