DTD約束語法細節

2021-06-10 08:30:28 字數 1883 閱讀 4741

一、dtd約束語法細節

(一)   、元素定義

在dtd文件中使用element宣告乙個xml元素,語法格式如下所示:

元素型別可以是元素內容、或型別

如為元素內容:則需要使用()括起來,如

如為元素型別,則直接書寫,dtd規範定義了如下幾種型別:

empty:用於定義空元素,例如

any:表示元素內容為任意型別。

元素內容中可以使用如下方式,描述內容的組成關係

用逗號分隔,表示內容的出現順序必須與宣告時一致。

用|分隔,表示任選其一,即多個只能出現乙個

在元素內容中也可以使用+、*、?等符號表示元素出現的次數:

+: 一次或多次 (書+)

?: 0次或一次 (書?)

*: 0次或多次  (書*)

也可使用圓括號()批量設定,例

(二)   、屬性定義

xml文件中的標籤屬性需通過attlist為其設定屬性

語法格式:

屬性名1 屬性值型別 設定說明

屬性名2 屬性值型別 設定說明

屬性宣告舉例:

類別 cdata #required

顏色 cdata #implied

對應xml檔案:

《商品 類別="服裝" 顏色="黃色">…《商品 類別="服裝">…設定說明:

#required:必須設定該屬性

#implied:可以設定也可以不設定

#fixed:說明該屬性的取值固定為乙個值,在 xml 檔案中不能為

屬性設定其它值。但需要為該屬性提供這個值

直接使用預設值:在 xml 中可以設定該值也可以不設定該屬性值。若沒設定則使用預設值。 

舉例:姓名 cdata #implied

年齡 cdata #implied

聯絡資訊 cdata #required

**職務 cdata #fixed "頁面作者"

個人愛好 cdata "上網"

常用屬性型別及舉例

cdata表示屬性值為普通文字字串

enumerated

屬性的型別可以是一組取值的列表,在 xml 檔案中設定的屬性值只能是這個列表中的某個值(列舉)

<?xml version = "1.0" encoding="gb2312"standalone="yes"?>

《購物籃》

《肉 品種="魚肉"/>

《肉 品種="牛肉"/>

《肉/>

id

表示屬性的設定值為乙個唯一值。

id 屬性的值只能由字母,下劃線開始,不能出現空白符

舉例 略

entity(實體)

實體用於為一段內容建立乙個別名,以後在xml文件中就可以使用別名引用這段內容了。

在dtd定義中,一條語句用於定義乙個實體。

實體可分為兩種型別:引用實體和引數實體。

引用實體主要在 xml 文件中被應用

語法格式:

:直接轉變成實內容

引用方式:

&實體名稱;

舉例:           

引數實體被 dtd 檔案自身使用

語法格式:

引用方式:

%實體名稱;

舉例1:

舉例2:

" id id #implied

account cdata #required "

schema 參照w3c  即可   語法略

XML約束 DTD約束

xml語法 規範的 xml檔案的基本編寫規則。有 w3c組織制定的 xml約束 規範 xml檔案資料內容格式的編寫規則。由開發者自定義 dtd約束 語法相對簡單,功能相對簡單,學習成本相對低 schema約束 語法相對複雜,功能相對複雜,學習成本相對高 命名空間 1 匯入dtd方式 a 內部匯入 x...

DTD約束和SCHEMA約束

dtd語法 元素 屬性 格式 schema約束 乙個xml文件中可以新增多個schema約束 xml和schema的關聯.格式 根標籤 xmlns 根標籤 xmlns 別名 命名空間 關聯約束檔案 規定元素是 於那個約束檔案的 例如 乙個約束檔案中規定 table 有屬性 row和col 還有乙個約...

XML 約束DTD 約束Schema

作為框架的使用者 程式設計師 能夠在xml中引入約束文件 能夠簡單的讀懂約束文件 引入dtd文件到xml文件中 student.dtd element students student element student name,age,element name pcdata element age ...