亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是XML Schema

發布時間:2020-07-13 13:52:36 來源:億速云 閱讀:332 作者:Leah 欄目:編程語言

什么是XML Schema?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

 XML Schema 是基于 XML 的 DTD 替代者。

XML Schema 可描述 XML 文檔的結構。

XML Schema 語言也可作為 XSD(XML Schema Definition)來引用。

您應當具備的基礎知識

在繼續學習之前,您需要對下面的知識有基本的了解:

  • HTML / XHTML

  • XML 以及 XML 命名空間

  • 對 DTD 的基本了解

如果您希望首先學習這些項目,請在 首頁 訪問這些教程。

什么是 XML Schema?

XML Schema 的作用是定義 XML 文檔的合法構建模塊,類似 DTD。

XML Schema:

  • 定義可出現在文檔中的元素

  • 定義可出現在文檔中的屬性

  • 定義哪個元素是子元素

  • 定義子元素的次序

  • 定義子元素的數目

  • 定義元素是否為空,或者是否可包含文本

  • 定義元素和屬性的數據類型

  • 定義元素和屬性的默認值以及固定值

XML Schema 是 DTD 的繼任者

我們認為 XML Schema 很快會在大部分網絡應用程序中取代 DTD。

理由如下:

  • XML Schema 可針對未來的需求進行擴展

  • XML Schema 更完善,功能更強大

  • XML Schema 基于 XML 編寫

  • XML Schema 支持數據類型

  • XML Schema 支持命名空間

為什么使用XML Schema?

XML Schema 比 DTD 更強大。

XML Schema 支持數據類型

XML Schema 最重要的能力之一就是對數據類型的支持。

通過對數據類型的支持:

  • 可更容易地描述允許的文檔內容

  • 可更容易地驗證數據的正確性

  • 可更容易地與來自數據庫的數據一并工作

  • 可更容易地定義數據約束(data facets)

  • 可更容易地定義數據模型(或稱數據格式)

  • 可更容易地在不同的數據類型間轉換數據

編者注:數據約束,或稱 facets,是 XML Schema 原型中的一個術語,中文可譯為“面”,用來約束數據類型的容許值。

XML Schema 使用 XML 語法

另一個關于 XML Schema 的重要特性是,它們由 XML 編寫。

由 XML 編寫 XML Schema 有很多好處:

  • 不必學習新的語言

  • 可使用 XML 編輯器來編輯 Schema 文件

  • 可使用 XML 解析器來解析 Schema 文件

  • 可通過 XML DOM 來處理 Schema

  • 可通過 XSLT 來轉換 Schema

XML 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 是可擴展的,因為它們由 XML 編寫。

通過可擴展的 Schema 定義,您可以:

  • 在其他 Schema 中重復使用您的 Schema

  • 創建由標準類型衍生而來的您自己的數據類型

  • 在相同的文檔中引用多重的 Schema

形式良好是不夠的

我們把符合 XML 語法的文檔稱為形式良好的 XML 文檔,比如:

  • 它必須以 XML 聲明開頭

  • 它必須擁有唯一的根元素

  • 開始標簽必須與結束標簽相匹配

  • 元素對大小寫敏感

  • 所有的元素都必須關閉

  • 所有的元素都必須正確地嵌套

  • 必須對特殊字符使用實體

即使文檔的形式良好,仍然不能保證它們不會包含錯誤,并且這些錯誤可能會產生嚴重的后果。

請考慮下面的情況:您訂購的了 5 打激光打印機,而不是 5 臺。通過 XML Schema,大部分這樣的錯誤會被您的驗證軟件捕獲到。

如何使用XML Schema

XML 文檔可對 DTD 或 XML Schema 進行引用。

一個簡單的 XML 文檔:

請看這個名為 "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>

DTD 文件

下面這個例子是名為 "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"。

XML Schema

下面這個例子是一個名為 "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 的引用

此文件包含對 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 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的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐安县| 广南县| 淮阳县| 太和县| 彰化县| 云和县| 淮南市| 法库县| 五常市| 客服| 银川市| 青神县| 衡南县| 乐清市| 红桥区| 宁明县| 灌南县| 古浪县| 平潭县| 瓮安县| 故城县| 綦江县| 河曲县| 鱼台县| 富阳市| 河南省| 宣汉县| 南华县| 通江县| 重庆市| 石柱| 普洱| 元江| 察隅县| 巴马| 自治县| 绥宁县| 龙江县| 怀柔区| 眉山市| 太仓市|