XML中的DTD文件類型定義詳細介紹
這篇文章主要介紹了XML中的DTD文檔類型定義,是XML入門學習中的基礎知識,需要的朋友可以參考下
XML 文檔類型定義,俗稱DTD,它是一種準確描述XML 語言的方式。 DTDs 根據適當 XML 語言的語法規則檢查 XML 文件的詞彙和結構的有效性。
XML DTD 可以指定在文件內部,也可以儲存在獨立的文件中然後單獨連結。
語法
DTD 的基本語法如下:
<!DOCTYPE element DTD identifier [ declaration1 declaration2 ........ ]>
上述語法:
DTD 以< ;!DOCTYPE 定界符開始。 <br/>element 用來告訴解析器從指定的根元素開始解析文件。 <br/>DTD identifier 是一個用於文件類型定義的標示符,它可以是一個指向系統中某個文件的路徑或連接到互聯網上某個文件的 URL。如果 DTD 指向外部路徑,則稱為外部子集。 _ [] 內是一個可選的實體聲明列表,稱為內部子集。 <br/>內部 DTD<br/>如果一個元素宣告在 XML 文件的內部則 DTD 稱為內部 DTD。為了把它當作內部 DTD,XML 聲明中的 standalone 屬性必須設定為 yes。這意味著,聲明的工作獨立於外部來源。
語法
內部DTD 語法如下所示:
<!DOCTYPE root-element [element-declarations]>
這裡root-element 是根元素的名稱,element -declarations 表示我們聲明的元素。
範例
下面是一個內部DTD 的簡單範例:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address>
我們來看看上面的程式碼:
開始宣告- 使用下列語句開始XML 宣告:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
#DTD - 緊接在XML 頭後面,_文件類型宣告_如下,通常稱為DOCTYPE:
DTD Body - DOCTYPE 宣告後面緊跟著DTD 體,這裡我們宣告元素,屬性,實體和符號:
<!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone_no (#PCDATA)>
許多元素都在這裡透過
結束聲明 - 最後,DTD 的聲明部分使用方括號和尖括號(]>)閉合。這是一個有效的結束定義,後面跟上的就是 XML 文件內容。
規則
文件類型宣告必須出現在文件的開頭部分(只先與 XML 頭),不允許出現在文件的任何其他位置。 <br/>類似於 DOCTYPE 聲明,元素聲明必須以感嘆號開始。 <br/>文檔類型宣告中的 Name 必須與根元素的類型相符。 <br/>外部 DTD<br/>在外部 DTD 中元素宣告在 XML 文件的外部。透過指定 system 屬性來訪問,這個屬性值可以是合法的 .dtd 檔案或有效的 URL。為了指示它是外部 DTD,XML 聲明的 standalone 屬性必須設為 no。這就意味著,聲明包含來自外部來源的資訊。
語法
下面是外部 DTD 的語法:
<!DOCTYPE root-element SYSTEM "file-name">
這裡 file-name 就是 .dtd 擴充的檔案。 <br/>
範例
下面的範例展示了外部DTD 的用法:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address> DTD 文件 address.dtd 的内容如下所示: <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)>
類型
##我們可以透過使用系統標示符或公共標示符來引用一個外部DTD。系統標示符
系統標示符允許我們指定包含 DTD 宣告的外部檔案的位置。語法如下:<!DOCTYPE name SYSTEM "address.dtd" [...]>
公有標示符
公有標示符提供了定位DTD 資源的機制,寫法如下:<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
宣告元素<br/>在dtd中宣告元素(在一個xml如果一個元素想要讓它是合法的,則需要在dtd中宣告) 語法:< ;!ELEMENT 元素名稱類別>和這兩種方式<br/><br/>
#例如:<!ELEMENT br EMPTY>
<br/>
#
注意点
在dtd中
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素
属性
实体
PCDATA
CDATA
下面是一些注意点:
(1)实体是用来定义普通文本的变量。实体引用是对实体的引用。
大多数同学都了解这个 HTML 实体引用:" "。这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。
当文档被 XML 解析器解析时,实体就会被展开。
(2) PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PCDATA 是会被解析器解析的文本。这些文本将被解析器解析成实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
(3)CDATA
CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
以上是XML中的DTD文件類型定義詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

使用Python實現XML資料的合併和去重XML(eXtensibleMarkupLanguage)是一種用於儲存和傳輸資料的標記語言。在處理XML資料時,有時候我們需要將多個XML檔案合併成一個,或移除重複的資料。本文將介紹如何使用Python實現XML資料的合併和去重的方法,並給出對應的程式碼範例。一、XML資料合併當我們有多個XML文件,需要將其合

Python中的XML資料轉換為CSV格式XML(ExtensibleMarkupLanguage)是一種可擴充標記語言,常用於資料的儲存與傳輸。而CSV(CommaSeparatedValues)則是一種以逗號分隔的文字檔案格式,常用於資料的匯入和匯出。在處理資料時,有時需要將XML資料轉換為CSV格式以便於分析和處理。 Python作為一種功能強大

使用Python實現XML資料的篩選和排序引言:XML是一種常用的資料交換格式,它以標籤和屬性的形式儲存資料。在處理XML資料時,我們經常需要對資料進行篩選和排序。 Python提供了許多有用的工具和函式庫來處理XML數據,本文將介紹如何使用Python實現XML資料的篩選和排序。讀取XML檔案在開始之前,我們需要先讀取XML檔案。 Python有許多XML處理函式庫,

Python實作XML與JSON之間的轉換導語:在日常的開發過程中,我們常常需要將資料在不同的格式之間轉換。 XML和JSON是常見的資料交換格式,在Python中,我們可以使用各種函式庫來實作XML和JSON之間的相互轉換。本文將介紹幾種常用的方法,並附帶程式碼範例。一、XML轉JSON在Python中,我們可以使用xml.etree.ElementTree模

使用Python處理XML中的錯誤和異常XML是一種常用的資料格式,用於儲存和表示結構化的資料。當我們使用Python處理XML時,有時可能會遇到一些錯誤和異常。在本篇文章中,我將介紹如何使用Python來處理XML中的錯誤和異常,並提供一些範例程式碼供參考。使用try-except語句捕捉XML解析錯誤當我們使用Python解析XML時,有時候可能會遇到一些

Python解析XML中的特殊字元和轉義序列XML(eXtensibleMarkupLanguage)是一種常用的資料交換格式,用於在不同系統之間傳輸和儲存資料。在處理XML檔案時,經常會遇到包含特殊字元和轉義序列的情況,這可能會導致解析錯誤或誤解資料。因此,在使用Python解析XML檔案時,我們需要了解如何處理這些特殊字元和轉義序列。一、特殊字元和

C#開發中如何處理XML和JSON資料格式,需要具體程式碼範例在現代軟體開發中,XML和JSON是廣泛應用的兩種資料格式。 XML(可擴展標記語言)是一種用於儲存和傳輸資料的標記語言,而JSON(JavaScript物件表示)是一種輕量級的資料交換格式。在C#開發中,我們經常需要處理和操作XML和JSON數據,本文將重點放在如何使用C#處理這兩種數據格式,並附上
