起源之路 理解和看懂XML

2021-10-01 11:43:00 字數 1540 閱讀 6202

什麼是dtd

dtd就是使用一系列的合法元素來定義文件的結構,dtd告訴驗證解析器和非驗證解析器希望文字出現在什麼地方,解析器根據什麼原則判斷空白是否可以忽略,同時告訴驗證解析器哪些標籤有效,以及在什麼布局下有效。

dtd語法

dtd標籤以限定符

名字意義?問號

可選(零個或乙個)*星號

零個或多個+加好

乙個或多個

例:

dtd的引用

大多數情況下,dtd定義與xml文件不在同一文件中,因此,我們必須在xml中引用dtd;

例如:;與dtd宣告相似,以dtd屬性定義

attlist 使用者定義屬性,slideshow後面指定了要定義的屬性。每行乙個屬性,(這種格式化寫法可以很好的增強可讀性)每個屬性有三個空格隔開的值定義,不允許使用逗號或其他分隔符,行中第乙個元素是屬性名稱,第二個元素是屬性型別:cdata——不可解析的資料(文字,所有特殊或不特殊字元都被視為文字),詳見屬性型別表;第三個屬性是屬性的預設值,並說明是否需要屬性,詳見屬性規範引數。

屬性型別表:

屬性型別

意義(value1|value2|…)

or條件組合的屬性可選列表

cdata

「未解析的字元資料」(文字字串)

id乙個沒有與其他id屬性共享的名字

idref

對文件其他定義的id的引用

idrefs

包含乙個或多個id引用的列表

entity

dtd定義中實體的名字

entitys

空格間隔的實體的列表

nmtoken

由字母、數字、連字元、下劃線和冒號構成的有效xml名稱

nmtokens

用空格間隔的名稱列表

nmtation

dtd指定符號表示法的名稱

屬性規範參數列:

規範意義

#required

必須指定的屬性

#implied

不需要指定的屬性,如果沒有指定應用程式將使用提供的預設值

「defaultvalue」

如果文件中沒有指定值,就使用該值

#fixed 「fixed value」

必定要使用的值,如果文件屬性中指定了值。則必須與該值相同

實體的定義

]>

wake up to &products;!

在dtd中含有title標籤和xml同時也需要使用title時,必須用某種方法來解決兩個同名元素之間的衝突,因此我們使用命名空間(命名空間,以下統稱命名空間)。命名空間規範是為讓作者告訴解析器在解析給定元素時使用哪個dtd或架構。

命名空間的定義

在dtd中,通過新增xmlns(「xml name space」)屬性來定義該元素的命名空間。

例如:

overview

Linux起源和發展

一 linux的起源 什麼是linux?linux是一套免費使用和自由傳播的類unix作業系統,是乙個基於posix和unix的多使用者 多工 支援多執行緒和多cpu的作業系統。伴隨著網際網路的發展,linux得到了來自全世界軟體愛好者 組織 公司的支援。它除了在伺服器作業系統方面保持著強勁的發展勢...

Orz的起源和擴充套件

失意體前屈 orz 是一種源自於日本的網路象形文本 或心情圖示 失意體前屈,原本指的是網路上流行的表情符號 它看起來像是乙個人跪倒在地上,低著頭,一副 天啊,你為何這樣對我 的動作,雖然簡單卻很傳神。在初期,並沒有人對這個符號起個名字,失意體前屈 這 個名字也是後來才出現的。據說是某個餐廳的座墊上繡...

馬的種類和起源

因為最近新出了乙個馬的種類 欺實馬,所以今天突然心血來潮,研究了下馬的種類和起源。馬科 equidae 是現存奇蹄目中種類數量最多,分布最廣,人們最熟悉的一科,全部成員均可歸入馬屬 equus 分布限於歐亞大陸和非洲。家馬 equus caballus 是現存數量最多的奇蹄目成員,與人類的關係密切。...