一、xsd文件
用於xml文件約束,用於約束其中的element定義以及element的attrubuties。xsd提供了名稱空間的概念。文件自身就是一個XML文件,但它的擴展名通常為.xsd。
XML 解析器可以根據 一個 XSD 文件的內容來解析另一個 XML 文件, 判斷該文件的結構是否和 XSD 文件中定義的一致。
作用
1.定義一個Xml文檔中都有什麼元素
2.定義一個Xml文檔中都會有什麼屬性
3.定義某個節點的都有什麼樣的子節點,可以有多少個子節點,子節點出現的順序
4.定義元素或者屬性的數據類型
5.定義元素或者屬性的默認值或者固定值
說明:
1、以下指出的URL含義:對於命名空間的標識符, URI 的作用僅僅是保證唯一性, 它並不需要對應一個可以訪問的資源或文件。但是, 有很多公司都會讓 namespace 的 URI 指向一個包含該命名空間信息的網頁。
1、xmlns
用於引入命名空間,此命名空間是已存在的,其中指定了當前xsd或者xml文件可應以的element元素名稱等信息。來聲明當前編寫的標籤來自哪個Schema約束文檔
存在兩種形式的xmlns
xmlns="URI":默認的名稱空間
xmlns:prefix="URI":使用時需要指定prefix前綴
xsd文件通過xmlns標籤會指定xsd文件中用到element的URL,是一個公認的標準URI指向,表示數據類型等定義來自w3
xmlns:xs="http://www.w3.org/2001/XMLSchema"
2、targetNamespace
在XML Schema中,每個約束模式文檔都可以被賦以一個唯一的名稱空間,名稱空間用一個唯一的URI,這個唯一的名稱空間就是由targetNamespace指定。
定義命名空間的地址,即被其他xsd或者xml文件使用xmlns的方式引進,targetNamesapce類似於java中的package。
有此標籤的xsd文件中定義了其他xsd或者xml可定義的標籤。
3、xmlns:xsi
xsi 已經成為了一個業界默認的用於 XSD((XML Schema Definition) 文件的命名空間,用於指定Schema-instance的URI,這個URI是一個公認的標準名稱空間:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
通過其中的兩個屬性可以為使用的文件制定具體xsd文件的路徑:
A、xsi:schemaLocation="key path [key path……]"
key和value以及下一對key-value之間使用空格或者換行
可以指定多個xmlns的路徑,此處的key是用xmln或者xmlns:prefix(初xsi之外)指定的URI,key是具體xsd的路徑。
xsi:schemaLocation屬性其實是Namespace為http://www.w3.org/2001/XMLSchema-instance裡的schemaLocation屬性。
引入多個xmlns
<root>
xmlns:n="abc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="123 xxxx.xsd
abc yyyy.xsd">
/<root>B、xsi:noNamesapceSchemaLocation
此方式不需要使用者顯示使用 xlmns 指定需要使用的xsd文件URI,直接在此標籤指定xsd文件的路徑即可,此時被使用的xsd文件必須與使用者在同一目錄。
<root>
xsi:noNamesapceSchemaLocation="local.xsd">
/<root>二、xml文件
引入已定義的xsd文件,通過兩種方式:見(xmlns:xsi)
1、使用名稱空間引入xsd
2、不使用名稱空間引入xsd
閱讀更多 寒江雪orz 的文章