1. 什麼是schema約束?優勢在哪?
xml的約束有兩種,分別是dtd約束和schema約束。因為dtd約束有很大的侷限性,所以我們通常都使用schema約束。
優勢:
2. xml schema約束開發
xml schema 檔案自身就是xml檔案,但他的副檔名通常為.xsd。和xml檔案一樣,xml schema文件也必須要有乙個根節點,並且這個根節點就是schema。
<1>引入w3c的名稱
在根節點上,使用屬性xmls,這個屬性是xml的命名空間(namespace)。xmlns=""
所謂的namespace(命名空間)就是 在編寫完xml約束文件後,將這個檔案中宣告的元素繫結到乙個uri位址上,而這個uri位址也就是命名空間。以後在xml檔案中可以通過url來引用繫結命名空間來的元素。
在xml schema中,每個約束模式文件都可以被賦以乙個唯一的命名空間,命名空間用uri(uniform resource identifier:統一資源識別符號)來表示。
<?xml version="1.0" encoding="utf-8"?>
xmlns="">
schema>
<2>編寫元素其子元素
* 定義元素
* "書架">
* 判斷是否是複雜還是簡單的元素
* 如果是簡單 在element有屬性 type=
"資料的型別"
* 如果是複雜
* 宣告標籤是複雜的元素 * 子元素之間的關係 * 起名:targetnamespace 目標命名空間(起名)
* 值是任意的:
* elementformdefault :
* qualified(使用) :***的
* unqualified :質量不好的
* 編寫屬性
* "出版社"
type=
"string"
use="required" >
* name 屬性名稱
* type 屬性型別
* user 屬性約束
例如:
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
targetnamespace=""
elementformdefault="qualified">
name="書架">
maxoccurs="unbounded">
name="書">
name="書名"
type="string">
element>
name="作者"
type="string">
element>
name="售價"
type="double">
element>
name="簡介"
type="string">
element>
sequence>
name="出版社"
type="string"
use="required" >
attribute>
complextype>
element>
sequence>
complextype>
element>
schema>
在編寫schema約束文件時的注意事項:
targetnamespace元素:指定schema文件中宣告的元素屬於哪個命名空間的。
elementformdefault元素:指定區域性元素是否受到該schema指定targetnamespace指定的命名空間的限制。
attributeformdefault元素:指定區域性屬性是否收到該schema指定targetnamespace所指定的命名空間限定。
3. 使用對比注意事項
XML 約束DTD 約束Schema
作為框架的使用者 程式設計師 能夠在xml中引入約束文件 能夠簡單的讀懂約束文件 引入dtd文件到xml文件中 student.dtd element students student element student name,age,element name pcdata element age ...
xml檔案引入schema約束
1 首先window preference,輸入xml搜尋xml catalog 2 點選add按鈕 3 location選擇本地檔案,找到需要新增的約束 4 將location輸入框中的scheme約束名複製新增到key輸入框的末尾,key type選擇schema location 5 依次點選...
DTD約束和SCHEMA約束
dtd語法 元素 屬性 格式 schema約束 乙個xml文件中可以新增多個schema約束 xml和schema的關聯.格式 根標籤 xmlns 根標籤 xmlns 別名 命名空間 關聯約束檔案 規定元素是 於那個約束檔案的 例如 乙個約束檔案中規定 table 有屬性 row和col 還有乙個約...