在XML跟HTML的世界中,文檔範例定義(DTD)扮演著至關重要的角色。DTD不只定義了XML或HTML文檔的構造,還容許開辟者經由過程實體跟屬性來加強文檔的機動性跟可保護性。本文將深刻探究DTD實體與屬性的感化、用法以及怎樣利用它們構建清楚、標準的網頁構造。
DTD實體:定義可重用內容的變數
DTD實體是一種特別範例的變數,用於定義跟引用在文檔中重複呈現的文本或數據。實體分為兩種:外部實體跟外部實體。
外部實體
外部實體是在DTD外部定義的,平日用於包含罕見的文本片段,如版權申明或公司稱號。以下是一個外部實體的例子:
<!DOCTYPE html [
<!ENTITY copyright "© 2025 Your Company">
]>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<p>This is an example page.</p>
<p>Copyright ©right;.</p>
</body>
</html>
鄙人面的例子中,©right;
實體引用了定義在 DTD 中的 © 2025 Your Company
文本。
外部實體
外部實體則引用外部文件中的內容。這種實體的定義平日位於一個獨破的 .dtd
文件中,如下所示:
<!DOCTYPE html [
<!ENTITY copyright SYSTEM "http://www.example.com/copyright.dtd">
]>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<p>This is an example page.</p>
<p>Copyright ©right;.</p>
</body>
</html>
在這個例子中,©right;
實體引用了一個名為 copyright.dtd
的外部文件。
DTD屬性:定義元素的額定信息
屬性是元素的一部分,用於供給有關元素內容的額定信息。在DTD中,可能經由過程 ATTLIST
申明來定義屬性。
屬性申明
屬性申明包含屬性稱號、數據範例、默許值跟能否必須等。以下是一個屬性申明的例子:
<!DOCTYPE html [
<!ATTLIST person
name CDATA #IMPLIED
age CDATA #IMPLIED
email CDATA #IMPLIED>
]>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<p>Welcome, <person name="John Doe" age="30" email="john.doe@example.com"></person>!</p>
</body>
</html>
鄙人面的例子中,person
元素可能包含 name
、age
跟 email
屬性,但它們都是可選的。
屬性默許值
屬性默許值可能在申明中指定,如許在未供給屬性值的情況下,剖析器會利用默許值。以下是一個包含默許值的屬性申明的例子:
<!DOCTYPE html [
<!ATTLIST person
name CDATA "Unknown" #IMPLIED
age CDATA "0" #IMPLIED
email CDATA "#IMPLIED">
]>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<p>Welcome, <person name="John Doe"></person>!</p>
</body>
</html>
在這個例子中,假如 person
元素不供給 name
屬性,剖析器會利用默許值 "Unknown"
。
總結
DTD實體與屬性是構建清楚網頁構造的關鍵技能。經由過程利用實體,可能簡化文檔內容的重複,進步可保護性;而屬性則容許為元素供給額定的信息,加強文檔的機動性。控制這些技能,可能幫助開辟者創建愈加標準、易於保護的XML跟HTML文檔。