DTD和Schema

來源:互聯網
上載者:User

經過這幾天的學習,對XML有了一定的瞭解,加上之前也用到過一點XML的東西,所以說,到現在為止,可以說會簡單使用XML進行資料的存取。

這部分XML視頻,第一講主要講了XML的一些基本知識。

包括:XML基本格式要求、實體引用、屬性、處理指示PI以及基本文法規則

實體引用:這裡的實體引用主要解決特殊字元的問題。有的字元是我們會用到但同時又是XML本身賦予它特定含義的,這時候我們就要用到實體引用了。

例如:我們知道XML中標記都是以“<>”這樣一種形式出現的,那麼當我們需要用到這樣的字元的時候用&lt、&gt代替。這就是引用。

這裡的實體引用和我們程式設計語言中的實體引用還是有一點差別的,感覺像是常量的意思。

 

處理指示PI:PI(processing
instruction)用來指揮解析引擎如何解析XML文檔內容。必須以“<?”作為開頭,以“?>”作為結尾,XML聲明語句就是最常見的一種處理指示。簡單來說,處理指示就是告訴程式以什麼樣的樣式或者標準去讀取資料,或者說這個XML文檔是按照那種樣式或標準去儲存的!

 

而接下來的內容主要是講了DTD和schema。

DTD:Document Type Definition

它是關於標記符的文法規則。是XML檔案的驗證機制,屬於XML檔案組成的一部分,但不是必須的。DTD是一種保證XML文檔格式正確的有效方法,可通過比較XML文檔和DTD檔案來看文檔是否符合規範,元素和標籤使用是否正確。XML檔案提供應用程式一個資料交換的格式,DTD正是讓XML檔案能成為資料交換標準。

DTD可分為內部DTD和外部DTD。

內部DTD,即DTD的被包含在源XML文檔中。有驗證機制的環境將根據文檔中的DTD規則判斷XML是否相符。

例如

<?xmlversion="1.0"?>

<!DOCTYPEnote [

<!ELEMENTnote (to,from,heading,body)>

<!ELEMENTto (#PCDATA)>

<!ELEMENTfrom (#PCDATA)>

<!ELEMENTheading (#PCDATA)>

<!ELEMENTbody (#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don'tforget me this weekend</body>

</note>

外部DTD,即DTD位於XML源檔案的外部,通過特定的文法被封裝在一個
DOCTYPE 定義中。

例如

這是包含 DTD 的 "note.dtd" 檔案:

<!ELEMENTnote (to,from,heading,body)>

<!ELEMENTto (#PCDATA)>

<!ELEMENTfrom (#PCDATA)>

<!ELEMENTheading (#PCDATA)>

<!ELEMENTbody (#PCDATA)>

使用的時候:

<?xmlversion="1.0"?>

<!DOCTYPEnote SYSTEM "note.dtd">

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don'tforget me this weekend!</body>

</note>

外部DTD包括SYSTEM和PUBLIC兩個關鍵字指出DTD檔案的位置。

SYSTEM 關鍵字表示文檔使用的是私人的DTD檔案,就好像是公司的規章制度,只是公司內部人員遵守。

PUBLIC 關鍵字用於公用的DTD,"DTD的名稱"稱為公用標識符,就好像是多家公司聯合出台的規章制度,每個公司都要遵守。

通過DTD我們可以驗證自身的資料是否合乎自己的意願;從外部程式接收到的資料是否符合我們的要求;兩個機構可一致地使用某個標準的DTD交換資料。

 

而SCHEMA與DTD功能差不多,但是Schema在當前的WEB開發環境下優越很多。因為它本身就是一個有效XML文檔,因而可以更直觀地瞭解XML的結構。除此之外,Schema支援命名空間,內建多種簡單和複雜的資料類型,並支援自訂資料類型。由於存在這麼多的優點,所以Schema漸漸成為XML應用的統一規範。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.