05.26 XML約束-Schema

一、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


分享到:


相關文章: