您好,登錄后才能下訂單哦!
什么是XML Schema?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 可描述 XML 文檔的結構。
XML Schema 語言也可作為 XSD(XML Schema Definition)來引用。
在繼續學習之前,您需要對下面的知識有基本的了解:
HTML / XHTML
XML 以及 XML 命名空間
對 DTD 的基本了解
如果您希望首先學習這些項目,請在 首頁 訪問這些教程。
XML Schema 的作用是定義 XML 文檔的合法構建模塊,類似 DTD。
定義可出現在文檔中的元素
定義可出現在文檔中的屬性
定義哪個元素是子元素
定義子元素的次序
定義子元素的數目
定義元素是否為空,或者是否可包含文本
定義元素和屬性的數據類型
定義元素和屬性的默認值以及固定值
XML Schema 是 DTD 的繼任者
我們認為 XML Schema 很快會在大部分網絡應用程序中取代 DTD。
理由如下:
XML Schema 可針對未來的需求進行擴展
XML Schema 更完善,功能更強大
XML Schema 基于 XML 編寫
XML Schema 支持數據類型
XML Schema 支持命名空間
為什么使用XML Schema?
XML Schema 比 DTD 更強大。
XML Schema 最重要的能力之一就是對數據類型的支持。
可更容易地描述允許的文檔內容
可更容易地驗證數據的正確性
可更容易地與來自數據庫的數據一并工作
可更容易地定義數據約束(data facets)
可更容易地定義數據模型(或稱數據格式)
可更容易地在不同的數據類型間轉換數據
編者注:數據約束,或稱 facets,是 XML Schema 原型中的一個術語,中文可譯為“面”,用來約束數據類型的容許值。
另一個關于 XML Schema 的重要特性是,它們由 XML 編寫。
不必學習新的語言
可使用 XML 編輯器來編輯 Schema 文件
可使用 XML 解析器來解析 Schema 文件
可通過 XML DOM 來處理 Schema
可通過 XSLT 來轉換 Schema
當數據從發送方被發送到接受方時,其要點是雙方應有關于內容的相同的“期望值”。
通過 XML Schema,發送方可以用一種接受方能夠明白的方式來描述數據。
一種數據,比如 "03-11-2004",在某些國家被解釋為11月3日,而在另一些國家為當作3月11日。
但是一個帶有數據類型的 XML 元素,比如:<date type="date">2004-03-11</date>,可確保對內容一致的理解,這是因為 XML 的數據類型 "date" 要求的格式是 "YYYY-MM-DD"。
XML Schema 是可擴展的,因為它們由 XML 編寫。
在其他 Schema 中重復使用您的 Schema
創建由標準類型衍生而來的您自己的數據類型
在相同的文檔中引用多重的 Schema
我們把符合 XML 語法的文檔稱為形式良好的 XML 文檔,比如:
它必須以 XML 聲明開頭
它必須擁有唯一的根元素
開始標簽必須與結束標簽相匹配
元素對大小寫敏感
所有的元素都必須關閉
所有的元素都必須正確地嵌套
必須對特殊字符使用實體
即使文檔的形式良好,仍然不能保證它們不會包含錯誤,并且這些錯誤可能會產生嚴重的后果。
請考慮下面的情況:您訂購的了 5 打激光打印機,而不是 5 臺。通過 XML Schema,大部分這樣的錯誤會被您的驗證軟件捕獲到。
如何使用XML Schema
XML 文檔可對 DTD 或 XML Schema 進行引用。
請看這個名為 "note.xml" 的 XML 文檔:
<?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
下面這個例子是名為 "note.dtd" 的 DTD 文件,它對上面那個 XML 文檔的元素進行了定義:
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
第 1 行定義 note 元素有四個子元素:"to, from, heading, body"。
第 2-5 行定義了 to, from, heading, body 元素的類型是 "#PCDATA"。
下面這個例子是一個名為 "note.xsd" 的 XML Schema 文件,它定義了上面那個 XML 文檔的元素:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
note 元素是一個復合類型,因為它包含其他的子元素。其他元素 (to, from, heading, body) 是簡易類型,因為它們沒有包含其他元素。您將在下面的章節學習更多有關復合類型和簡易類型的知識。
此文件包含對 DTD 的引用:
<?xml version="1.0"?><!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd"><note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
此文件包含對 XML Schema 的引用:
<?xml version="1.0"?> <note xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
看完上述內容,你們掌握什么是XML Schema的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。