XML約束 schema約束

2021-08-06 03:16:35 字數 2243 閱讀 9475

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 還有乙個約...