XML 學習筆記(三) DTD屬性的宣告及型別

2021-07-10 19:32:21 字數 2002 閱讀 4225

一、屬性的宣告:

a)        任何標記的屬性都必須在dtd文件中進行宣告,都要通過關鍵字

定義。b)        所有標記的屬性,即便是同名屬性,都要在各個標記中宣告。

如publisher中有address屬性,person中也有address屬性,則需要分別在兩個標記中進行宣告。

c)        可以多次為乙個標記宣告不同的屬性。

如book有language和publisher兩個屬性,可以宣告為

也可以同時依次為乙個標記宣告多個屬性。

如:

(不提倡使用)

d)        attr_type的四種型別:

i.             預設屬性值,不指定;

ii.             #required——屬性值必須指定;

iii.             #implied——屬性值可選用或不用;

iv.             #fixed——屬性值可以沒有,但如果有則必須和指定值保持一致。

e)        e.g.

test328.dtd

<?xmlversion="1.0" encoding="utf-8"?>

test328.xml

<?xmlversion="1.0" encoding="utf-8"?>

xml programming

jason

$100

二、 屬性的內容型別

a)        cdata型:該型別的屬性值不能含有「<」和「」」,但實體可以出現在該字串中;

b)        enumerated型:必須從列舉過的資料型別中選取,如(true|false);

c)        id型:要求文件中所有標記id型別的屬性值一定不能相同;

d)        entity型:用於標識外部不可解析的實體,如二進位制檔案;

e.g.(會報錯?)

<?xmlversion="1.0" encoding="utf-8"?>

]>

haha

monkey

e.g.(會報錯?)

<?xmlversion="1.0" encoding="utf-8"?>

]>

haha

f)         notation型:對於不可解析的實體,為了將其展現出來或進行應用,通過該關鍵字告訴用什麼樣的軟體進行支援。

如:dtd中宣告

haha

g)        idref型:用於表示xml文件中標記之間關係的一種型別,其值必須是文件中被定義好的某一標記的id型別的屬性值。

如:

<?xmlversion="1.0" encoding="utf-8"?>

]>

haha

ha

h)        idrefs型:類似於idref,但可以引用多個id,多個id之間用空格隔開。

i)          nmtoken型:限制作為其值的屬性型別,規定了一種合法的命名機制,必須由英文本母、數字、「.」、「_」和「-」組成,不能包括空格。

e.g.

<?xmlversion="1.0" encoding="utf-8"?>

]>

hahahaa

j)          nmtokens型:能夠給乙個標記賦予幾個滿足nmtoken型的字串,不同的字串都在乙個引號中,彼此用空格隔開。

XMl學習之 DTD學習筆記

1.建立乙個檔案,字尾名為.dtd 2.判斷元素是簡單元素還是複雜元素 簡單元素 有子元素的元素複雜元素。複雜元素 有子元素的元素。3.需要在xml檔案中引入dtd檔案 1.引入外部的dtd檔案 2.使用內部的dtd約束 3.使用外部的dtd檔案 網路上的 語法 簡單元素 如 約束 1.pcdata...

xml中DTD屬性的約束

xml中dtd屬性的約束 attribute list 屬性名1 屬性型別 設定說明 屬性名2 屬性型別 設定說明 表示student元素的number為屬性名,cdata文字型別,這個屬性是必須的。最常見的屬性型別 cdata,表示文字型別 最常見的設定說明1 required,表示屬性是必須的。...

XML學習筆記(二) DTD格式規範

標籤 空格分隔 學習筆記 xml的乙個主要目的是允許應用程式之間自由交換結構化的資料,因此要求xml文件具有一致的結構 業務邏輯和規則。可以定義一種模式來定義xml文件的結構,並藉此驗證xml文件的有效性。定義xml文件結構有兩種解決方案 一種是採用文件型別定義dtd 另一種是採用xml schem...