天天看點

XSD中的targetNameSpace解釋

[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]