Schama —— Xml文檔約束技術 學習筆記


本文查閱方法:
    一、查閱目錄 —— 查閱本文目錄,肯定想要查閱的目錄標題
    二、快捷「查找」 —— 在當前瀏覽器頁面,按鍵 「Ctrl+F」 按鍵組合,開啓瀏覽器的查找功能,
             在查找搜索框中 輸入須要查閱的 目錄標題,即可以直接到達 標題內容 的位置。
    三、學習小結 —— 文中的學習小結內容,是筆者在學習以後總結出的,開發時可直接參考其進行應用開發的內容, 進一步加快了本文的查閱 速度。(水平有限,僅供參考。)

瀏覽器

 

 

 

 


 

 

 

本文目錄網絡

 

  一、XML Schema概述
  二、Schema約束快速入門 
  三、名稱空間的概念 
  四、使用默認名稱空間  
  五、使用名稱空間引入Schema約束文件 
  六、使用名稱空間引入多個XML Schema文檔 
  七、不使用名稱空間引入XML Schema文檔 
  八、在XML Schema文檔中聲明名稱空間
  九、下載附件 學習資料 
 十、Schema練習案例 學習

 

 

 相關文章
    XML文檔語法 學習筆記
        地址:http://even2012.iteye.com/blog/1828064

    DTD約束 —— Xml文檔 約束技術 學習筆記
        地址:http://even2012.iteye.com/blog/1828290

    Schama —— Xml文檔約束技術 學習筆記
        地址:http://even2012.iteye.com/blog/1832073

    Dom4j 解析Xml文檔及 XPath查詢  學習筆記
        地址:http://even2012.iteye.com/blog/1832068

    Jaxp :Dom解析Xml文檔和SAX解析Xml文檔學習筆記
        地址:http://even2012.iteye.com/blog/1829981

spa

 


 

 

 

一、XML Schema概述orm

 

    (1)XML Schema 是一種用於定義和描述 XML 文檔結構與內容的模式語言,其出現是爲了克服 DTD 的侷限性xml

 

    (2)XML Schema 相對於  DTD 的優點:blog

 

        a. XML Schema符合XML語法結構。 ip

 

        b. DOM、SAX等XML API很容易解析出XML Schema文檔中的內容。 element

 

        c. XML Schema對名稱空間支持得很是好,可在一份Xml文檔中使用多份Schema文檔中定義的不一樣標籤。 資源

 

        d. XML Schema比XML DTD支持更多的數據類型,並支持用戶自定義新的數據類型。 

 

        e. XML Schema定義約束的能力很是強大,能夠對XML實例文檔做出細緻的語義限制。

 

        f. XML Schema不能像DTD同樣定義實體,比DTD更復雜,但Xml Schema如今已經是w3c組織的標準,它正逐步取代DTD。  

 

 

 


 

 

 

二、Schema約束快速入門 

 

    (1)XML Schema 文件自身就是一個XML文件,但它的擴展名一般爲.xsd。

 

    (2)一個XML Schema文檔一般稱之爲模式文檔(約束文檔),遵循這個文檔書寫的xml文件稱之爲實例文檔。

 

    (3)和XML文件同樣,一個XML Schema文檔也必須有一個根結點,但這個根結點的名稱爲Schema。

 

    (4)編寫了一個XML Schema約束文檔後,一般須要把這個文件中聲明的元素綁定到一個URI地址上,在XML Schema技術中有一個專業術語來描述這個過程,即把XML Schema文檔聲明的元素綁定到一個名稱空間上,之後XML文件就能夠經過這個URI(即名稱空間)來告訴解析引擎,xml文檔中編寫的元素來自哪裏,被誰約束。

 

 

 


 

 

 

三、名稱空間的概念  

 

    定義:在XML Schema中,每一個約束模式文檔均可以被賦以一個惟一的名稱空間,名稱空間用一個惟一的URI(Uniform Resource Identifier,統一資源標識符)表示。

 

    使用:在Xml文件中書寫標籤時,能夠經過名稱空間聲明(xmlns),來聲明當前編寫的標籤來自哪一個Schema約束文檔。如:

 

      <sina:書架 xmlns:sina =「http://www.sina .cn」>

 

        <sina :書>……</sina :書>

 

      </sina :書架>

 

       此處使用sina 來指向聲明的名稱,以便於後面對名稱空間的引用。

 

    注意:名稱空間的名字語法容易讓人混淆,儘管以 http:// 開始,那個 URL 並不指向一個包含模式定義的文件。事實上,這個 URL:http://www.sina .cn根本沒有指向任何文件,只是一個分配的名字。

 

 

 


 

  

 

四、使用默認名稱空間  

 

    基本格式:

 

      xmlns="URI"  

 

    舉例:

 

      <書架 xmlns="http://www.iteye.org/xmlbook/schema"

 

        xmlns:xsi="http://www.w3.Aorg/2001/XMLSchema-instance"

 

        xsi:schemaLocation=「http://www.sina .cn book.xsd">

 

        <書>

 

        <書名>JavaScript網頁開發</書名>

 

        <做者>張孝祥</做者>

 

        <售價>28.00元</售價>

 

        </書>

 

      <書架>

 

    

 


 

 

 

五、使用名稱空間引入Schema約束文件 

 

    爲了在一個XML文檔中聲明它所遵循的Schema文件的具體位置,一般須要在Xml文檔中的根結點中使用schemaLocation屬性來指定,

 

        例如:

 

          <sina :書架 xmlns:sina ="http://www.sina .cn"

 

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

            xsi:schemaLocation=「http://www.sina .cn book.xsd">

 

    schemaLocation此屬性有兩個值:

 

        第一個值是須要使用的命名空間。

 

        第二個值是供命名空間使用的 XML schema 文件的具體位置(可網絡下載),二者之間用空格分隔。

 

    注意,在使用schemaLocation屬性時,也須要指定該屬性來自哪裏。建議在已有的文件中複製上述頭信息。

 


 

 

 

六、使用名稱空間引入多個XML Schema文檔  

 

    參見以下Demo樣例:

 

    <?xml version="1.0" encoding="UTF-8"?> 

 

    <書架 xmlns="http://www.iteye.org/xmlbook/schema" 

 

      xmlns:demo="http://www.iteye .org/demo/schema"

 

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

      xsi:schemaLocation="http://www.iteye.org/xmlbook/schema     http://www.iteye.org/xmlbook.xsd 

 

        http://www.iteye.org​/demo/schema  http://www.iteye.org/demo.xsd">

 

 

 

      <書>

 

        <書名>JavaScript網頁開發</書名>

 

        <做者>張孝祥</做者>

 

        <售價 demo:幣種=」人民幣」>28.00元</售價>

 

      </書>

 

    </書架>

 

  總結:(1)使用命名空間,能夠在一份Xml文檔中使用多份Schema文檔中定義的不一樣標籤。

 

        (2)若使用默認命名空間,則只能使用一份Schema文檔中定義的標籤,DTD約束也只能用一份約束標籤。

 


 

 

 

七、不使用名稱空間引入XML Schema文檔  

 

    參見以下Demo樣例: 

 

        <?xml version="1.0" encoding="UTF-8"?>

 

        <書架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

          xsi:noNamespaceSchemaLocation="xmlbook.xsd">

 

          <書>

 

            <書名>JavaScript網頁開發</書名>

 

            <做者>張孝祥</做者>

 

            <售價>28.00元</售價>

 

          </書>

 

        </書架>

 


 

 

 

八、在XML Schema文檔中聲明名稱空間

 

    參見以下Demo樣例: 

 

        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

 

                   targetNamespace="http://www. sina .cn"

 

                   elementFormDefault="qualified">

 

        <xs:schema> 

 

    (1)targetNamespace元素用於指定schema文檔中聲明的元素屬於哪一個名稱空間,即:完成綁定的動做。

 

    (2)elementFormDefault元素用於指定,該schema文檔中聲明的根元素及其全部子元素都屬於targetNamespace所指定的名稱空間。

 

     

 

 

 


 

九、下載附件 學習資料 

 

    內容介紹:請下載附件中的資料《XmlSchema標準參考手冊》,這是W3C組織官方出的文檔,比較全,也很好參考,本文就再也不 重複摘抄了。

 

    學習建議:爲下降學習難度,請先學習其中的

 

        (1) XSD Simple 元素

 

        (2) XSD 屬性

 

        (3) XSD Restrictions/Facet

 

        (4) XSD Complex 元素

 

        (5) XSD Complex 空元素 

 

        (6) XSD 指示器符合類型

 

    學習完這6個章節後,作一下下面的練習案例,而後再學習其餘的章節的知識。

 

 

 


 

 

 

十、Schema練習案例 

 

 

 

    請參照下面的Schema約束文檔,嘗試書寫出符合文中規範的Xml實例文檔。

 

    Schema約束文檔: 

 

     <?xml version="1.0" encoding="UTF-8" ?> 

 

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

 

                targetNamespace="http://www.sina.cn"

 

                elementFormDefault="qualified">

 

      <xs:element name='書架' >

 

        <xs:complexType>

 

          <xs:sequence maxOccurs='unbounded' >

 

            <xs:element name='書' >

 

              <xs:complexType>

 

                <xs:sequence>

 

                  <xs:element name='書名' type='xs:string' />

 

                  <xs:element name='做者' type='xs:string' />

 

                  <xs:element name='售價' type='xs:string' />

 

                </xs:sequence>

 

              </xs:complexType>

 

            </xs:element>

 

          </xs:sequence>

 

        </xs:complexType>

 

      </xs:element>

 

    </xs:schema> 

 

 

 

    Xml實例文檔 :

 

    <?xml version="1.0" encoding="UTF-8"?> 

 

    <sina:書架 xmlns:sina ="http://www.sina .cn"

 

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

            xsi:schemaLocation=「http://www.sina.cn book.xsd">

 

     

 

      <sina:書>

 

        <sina:書名>JavaScript網頁開發</sina :書名>

 

        <sina:做者>張孝祥</sina :做者>

 

        <sina:售價>28.00元</sina:售價>

 

      </sina :書>

 

    </sina:書架>

相關文章
相關標籤/搜索