[size=small]參考連結:[url]http://blog.csdn.net/colin1014/article/details/357694[/url]
xsd檔案中定義了一個targetNameSpace後,其内部定義的元素,屬性,類型等都屬于該targetNameSpace,其自身或外部xsd檔案使用這些元素,屬性等都必須從定義的targetNameSpace中找:
例如:以下xsd檔案,就出現了該錯誤,即便是在一個xsd中,也必須從定義的名字空間中找重用組建:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="AAA" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Student" type="stu"/>
<xs:complexType name="stu">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Class" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
以上代碼中,複雜類型stu是找不到的,因為你定義了一個名字空間AAA,該複雜類型存在于AAA中,是以應該修改代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="AAA" xmlns:student="AAA" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Student" type="student:stu"/>
<xs:complexType name="stu">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Class" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
若自身并不是用重用組建,僅供外部使用的話,則隻定義targetNameSpace就可以,不用指定别名。[/size]