[XML]學習筆記(三)——DTD屬性的宣告及型別
一、屬性的宣告:
a) 任何標記的屬性都必須在DTD文件中進行宣告,都要通過關鍵字
<!ATTLIST elem_nameattr_name attr_type default_value>
定義。
b) 所有標記的屬性,即便是同名屬性,都要在各個標記中宣告。
如publisher中有address屬性,person中也有address屬性,則需要分別在兩個標記中進行宣告。
c) 可以多次為一個標記宣告不同的屬性。
如book有language和publisher兩個屬性,可以宣告為
<!ATTLIST book language CDATA “english”> <!ATTLIST book publisher CDATA “tsinghua”>
也可以同時依次為一個標記宣告多個屬性。
如:
<!ATTLIST book language CDATA “english” publisher CDATA “tsinghua“>
(不提倡使用)
d) attr_type的四種類型:
i. 預設屬性值,不指定;
ii. #REQUIRED——屬性值必須指定;
iii. #IMPLIED——屬性值可選用或不用;
iv. #FIXED——屬性值可以沒有,但如果有則必須和指定值保持一致。
e) e.g.
test328.dtd
<?xmlversion="1.0" encoding="UTF-8"?> <!ELEMENT books (book*)> <!ELEMENT book(name|author|price)*> <!ATTLIST book languageCDATA #FIXED "english"> <!ATTLIST book publisherCDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT author(#PCDATA)> <!ELEMENT price(#PCDATA)>
test328.xml
<?xmlversion="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM"test328.dtd"> <books> <book language="english" publisher="ecnu"> <name>xml programming</name> <author>Jason</author> <price>$100</price> </book> </books>
二、 屬性的內容型別
a) CDATA型:該型別的屬性值不能含有“<”和“””,但實體可以出現在該字串中;
b) Enumerated型:必須從列舉過的資料型別中選取,如(true|false);
c) ID型:要求文件中所有標記ID型別的屬性值一定不能相同;
d) ENTITY型:用於標識外部不可解析的實體,如二進位制檔案;
e.g.(會報錯?)
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT books (book)*>
<!ELEMENT book (#PCDATA)>
<!ATTLIST book pic ENTITY#REQUIRED>
<!ENTITY pic1 SYSTEM"haha.jpg">
<!ENTITY pic2 SYSTEM"monkey.jpg">
]>
<books>
<book pic="&pic1;">haha</book>
<book pic="&pic2;">monkey</book>
</books>
e) ENTITIES型:與ENTITY類似,但其指定的是一個實體序列,如多張圖片,多個音訊等。
e.g.(會報錯?)
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT books (book)*>
<!ELEMENT book (#PCDATA)>
<!ATTLIST book pic ENTITIES #REQUIRED>
<!ENTITY pic1 SYSTEM "haha.jpg">
<!ENTITY pic2 SYSTEM "monkey.png">
]>
<books>
<book pic="&pic1; &pic2;">haha</book>
</books>
f) NOTATION型:對於不可解析的實體,為了將其展現出來或進行應用,通過該關鍵字告訴用什麼樣的軟體進行支援。
如:dtd中宣告
<!NOTATION JPG SYSYEM “c:/mspaint.exe”>
<books>
<book pic="&pic1; &pic2;" display=”JPG”>haha</book>
</books>
g) IDREF型:用於表示XML文件中標記之間關係的一種型別,其值必須是文件中被定義好的某一標記的ID型別的屬性值。
如:
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT books (book)*>
<!ELEMENT book (#PCDATA)>
<!ATTLIST book isbn ID#REQUIRED>
<!ATTLIST book lastversionIDREF #IMPLIED>
]>
<books>
<book isbn="P301">haha</book>
<book isbn="P103" lastversion="P301">HA</book>
</books>
h) IDREFS型:類似於IDREF,但可以引用多個ID,多個ID之間用空格隔開。
i) NMTOKEN型:限制作為其值的屬性型別,規定了一種合法的命名機制,必須由英文字母、數字、“.”、“_”和“-”組成,不能包括空格。
e.g.
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT books (book)*>
<!ELEMENT book (#PCDATA)>
<!ATTLIST book isbn ID#REQUIRED>
<!ATTLIST book referencesIDREFS #IMPLIED>
<!ATTLIST book publisherNMTOKEN #IMPLIED>
]>
<books>
<book isbn="P301">haha</book>
<book isbn="P302">HA</book>
<book isbn="P103" references="P301 P302" publisher="Tsinghua_University">A</book>
</books>
j) NMTOKENS型:能夠給一個標記賦予幾個滿足NMTOKEN型的字串,不同的字串都在一個引號中,彼此用空格隔開。
相關推薦
[XML]學習筆記(三)——DTD屬性的宣告及型別
一、屬性的宣告: a) 任何標記的屬性都必須在DTD文件中進行宣告,都要通過關鍵字 <!ATTLIST elem_nameattr_name attr_type default_value> 定義。 b) 所有標記的屬性,即便是同名屬
[XML]學習筆記(二)——DTD的宣告與實體
一、文件型別宣告: a)內部DTD的宣告: DTD定義語句與XML文件在同一文件,通常放在頭部。格式如下: <!DOCTYPE root_tag[ <!ELEMENT xxx (…)> … ]> 注意在DOCTYPE後面跟的是根標記的名字。 b)外部
cocos creator 學習筆記 (三)——節點屬性操作篇
我們在上面學瞭如何訪問內部節點屬性和外部節點屬性 ——我們將在這裡學習可以對這些節點和屬性做哪些常用操作 1、啟用,關閉節點——active this.node.active = true; //false。 啟用——在父節點同樣啟用的情況下,所有啟用的
Javascript高階程式設計學習筆記(三)—— JS中的資料型別(1)
前一段時間由於事情比較多,所以筆記耽擱了一段時間,從這一篇開始我會盡快寫完這個系列。 文章中有什麼不足之處,還望各位大佬指出。 JS中的資料型別 上一篇中我寫了有關JS引入的Script標籤相關的東西。 那麼這一篇,我們可以正式進入JS的世界了,emmm 前面的東西應該比較基礎,大佬們不
Numpy學習筆記(三):建立矩陣及運算
矩陣的變換 #矩陣的形狀變換 改變矩陣的形狀 print(np.arange(15)) a=np.arange(15).reshape(3,5) a a.shape a.ndim#矩陣的維度 a.dtype.name a.size 運算結果: [ 0 1
RT-Thread 學習筆記(三)——讀取MCU ID及FLASH大小
突然想讀一讀MCU的識別ID號和FLASH大小,那就寫一寫唄! 型號:stm32f103zet6 根據datasheet知道相應的內容儲存地址: 然後就貼程式碼: void rt_show_
Spring 學習筆記(三)IOC之XML方式配置 第二回Bean節點屬性的配置
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X
C#可擴展編程之MEF學習筆記(三):導出類的方法和屬性(轉)
學習 說了 如何 mod ati dem ont num imp 前面說完了導入和導出的幾種方法,如果大家細心的話會註意到前面我們導出的都是類,那麽方法和屬性能不能導出呢???答案是肯定的,下面就來說下MEF是如何導出方法和屬性的。 還是前面的代碼,第二篇中已經提供了下
Spring 學習筆記(三)IOC之XML方式配置 第一回 javaBean的配置與獲取
IOC的兩種方式: XML方式 註解方式 XML方式 需要的jar包 spring-beans-4.3.3.RELEASE.jar spring-context-4.3.3.RELEASE.jar spring-context-support
MyBatis學習筆記(三)mybatis-config.xml都有哪些配置之typeAliases與plugins
類型別名(typeAlicases) 在mybatis-config.xml配置檔案中加入類描述 <typeAliases> <typeAlias type="org.mybatis.example.User" alias="User" />
Andorid中使用Jsoup解析庫解析XML、HTML、Dom節點---第三方庫學習筆記(三)
XML介紹: XML簡介: XML,可擴充套件標記語言,標準通用標記語言的子集。 一種用於標記電子檔案使其具有結構性的標記語言。 它可以用來標記資料、定義資料型別 是一種允許使用者對自己的標記語言進行定義的源語言。 非常適合全球資訊網傳輸 提供統一方法描述
three.js學習筆記(三)-camera.up屬性探索
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <
JAVA學習筆記(三)
byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect
thinkphp5.0學習筆記(三)獲取信息,變量,綁定參數
名稱 自動識別 參數順序 query images 報錯 oca nds arc 1.構造函數: 控制器類必須繼承了\think\Controller類,才能使用: 方法_initialize 代碼: <?php namespace app\lian\control
最優化學習筆記(三)最速下降法
tex track enter water pos 最優 content 分享 clas 最優化學習筆記(三)最速下降法
python學習筆記(三)
list 內存 寫入 odin move 列表 付出 open ada 文件的操作一般分三步: 1、打開文件,獲取文件的指針(句柄) 2、通過指針(句柄)操作文件 3、關閉文件 現在有以下文件: 我們為愛還在學 學溝通的語言
Redis學習筆記(三)常用命令整理
mes ember nbsp end 插入 學習筆記 頻道 hash value Redis 常用命令 1.DEL key 刪除key2.EXISTS key 檢查key是否存在3.KEYS * 查看所有的key4.EXPIRE key seconds 設置key的過期時
Django 學習筆記(三)模板導入
文件 文件中 訪問 from lang sts class rom 網頁 本章內容是將一個html網頁放進模板中,並運行服務器將其展現出來。 平臺:windows平臺下Liunx子系統 目前的目錄: hello ├── manage.py ├── hello │ ├─
Git學習筆記(三)遠程庫(GitHub)協同開發,fork和忽略特殊文件
tex 情況 learn 多人 版本管理 獲得 logs 秘鑰 多個 遠程庫 遠程庫,通俗的講就是不再本地的git倉庫!他的工作方式和我們本地的一樣,但是要使用他就需要先建立連接! 遠程庫有兩種,一個是自己搭建的git服務器;另一種就是使用GitHub,這個網站就是
jQuery學習筆記(三)
對象 idt 命名空間 goto div hid 右鍵 func 切換 jQuery中的事件和動畫 jquery中的事件 加載DOM 兩者等價但有細微區別 $(document).ready(function(){//編寫代碼}) 在DOM完全就緒時就可以被調用。