跳轉到內容

ETD 指南/技術問題/SGML\XML 和其他標記語言

來自華夏公益教科書

SGML(標準通用標記語言)和XML(可擴充套件標記語言)是標記語言,它們使用標籤(“<” 和 “>”)以及標籤名稱,將文件的各個部分標記或括起來。文件型別定義(DTD)指定文件型別或類別的語法或結構。SGML 需要 DTD,而 XML 可選地使用 DTD。但是,考慮到目前的趨勢,XML 最有可能被使用,原因如下。

  • XML 是一種將結構化資料放入文字檔案的方法,用於“結構化資料”,比如電子表格、通訊錄、配置引數、金融交易、技術圖紙等。生成此類資料的程式通常也會將其儲存在磁碟上,為此,它們可以使用二進位制格式或文字格式。後者允許您在必要時檢視資料,而無需使用生成資料的程式。XML 是一套規則、指南、約定,無論您稱其為什麼,都是為設計此類資料的文字格式而設計的,這樣可以生成易於生成和讀取(由計算機讀取)的檔案,這些檔案是明確的,並且避免了常見的陷阱,例如缺乏可擴充套件性、缺乏對國際化/本地化的支援以及平臺依賴性。
  • XML 看起來有點像 HTML,但不是 HTML
    與 HTML 一樣,XML 使用標籤和屬性(形式為 name="value"),但 HTML 指定每個標籤和屬性的含義(以及文字在瀏覽器中的顯示方式),而 XML 僅使用標籤來界定資料片段,並將資料的解釋完全留給讀取它的應用程式。換句話說,如果您在 XML 檔案中看到“<p>”,不要認為它是一個段落。根據上下文,它可能是價格、引數、人。簡而言之,它允許您開發特定於某個領域的自己的標記語言。
  • XML 文件可以長時間儲存。
    XML 在基本層面上是一種非常簡單的格式。它可以用 100% 純 ASCII 文字以及其他幾種定義明確的格式寫入。ASCII 文字對損壞具有較強的抵抗力。此外,XML 文件非常完善。W3C 的 XML 1.0 規範詳細說明了如何讀取 XML 資料。
  • XML 是免費、與平臺無關且得到良好支援的。
    透過選擇 XML 作為某個專案的基石,您便加入了一個龐大且不斷壯大的工具社群(其中一個可能已經滿足您的需求!)以及經驗豐富的工程師。選擇 XML 有點像為資料庫選擇 SQL:您仍然需要構建自己的資料庫以及操作它的程式/過程,但有許多工具可用,也有許多人可以為您提供幫助。由於 XML 作為一項 W3C 技術是免費的,您可以構建自己的軟體,而無需向任何人付費。龐大和不斷增長的支援意味著您也不會被繫結到單個供應商。XML 並非總是最佳解決方案,但它始終值得考慮。
  • XML 是一個技術家族。
    有 XML 1.0,它定義了“標籤”和“屬性”是什麼的規範,但在 XML 1.0 周圍,還有一套不斷增長的可選模組,它們提供標籤和屬性集,或為特定任務提供指南。例如,Xlink 描述了向 XML 檔案新增超連結的標準方法。XPointer 和 XFragments 是用於指向 XML 文件部分的語法。(Xpointer 有點像 URL,但它不是指向 Web 上的文件,而是指向 XML 檔案中的資料片段。)CSS,樣式表語言,適用於 XML 和 HTML。XSL 是用於表達樣式表的先進語言。DOM 是一套用於從程式語言操作 XML(和 HTML)檔案的標準函式呼叫。XML Namespaces 是一個規範,描述瞭如何將 URL 與 XML 文件中的每個標籤和屬性關聯起來。不過,該 URL 的用途取決於讀取該 URL 的應用程式。XML 模式幫助開發人員精確地定義他們自己的基於 XML 的格式。還有更多模組和工具可用或正在開發中。
  • XML 提供結構化和整合資料 XML 非常適合大型和複雜的資料,例如 ETD,因為資料是結構化的。它不僅讓您指定定義文件中元素的詞彙表;它還允許您指定元素之間的關係。
  • XML 可以編碼有關 DTD 的元資料。
    文件通常會輔以元資料(即關於資料的元資料)。如果將此類元資料包含在 ETD 中,則它將使 ETD 自描述。XML 可以編碼此類元資料。但是,另一方面,XML 也帶來了一些不便。
  1. 從文字處理表格到 XML 的轉換需要更多提前規劃、不同的工具以及更廣泛的關於處理概念的學習,這比 PDF 更復雜。
  2. 瞭解這些事項的人員要少得多,支援這種轉換的工具也更不成熟且更昂貴。此外,轉換過程也可能很複雜、困難且耗時。
  3. 使用 XML 編輯工具直接在 XML 中編寫需要一些 XML 的先驗知識。
  4. 此外,XML 對標籤的命名和排序非常嚴格。它也是區分大小寫的,這說明了學生用這種形式準備 ETD 所需的相對工作量。

建立 XML 文件的過程

XML 文件具有四階段生命週期。

XML 文件主要使用編輯器建立。它可能是像記事本這樣的基本文字編輯器。或者。vi. 編輯器。我們甚至可以使用所見即所得編輯器。XML 解析器讀取文件並將其轉換為元素樹。解析器將樹傳遞給顯示它的瀏覽器。重要的是要知道所有這些過程都是獨立的,彼此解耦的。

讓 XML 為 ETD 發揮作用 在深入探討 ETD 的 XML 細節之前,我們應該澄清一些事情,因為我們現在以後會經常使用它們。

DTD(文件型別定義)

XML 文件主要由一個嚴格巢狀的元素層次結構組成,只有一個根元素。元素可以包含字元資料、子元素或兩者的混合。XML 文件的結構在 DTD 中描述。有不同型別的文件,例如信件、詩歌、書籍、論文等。每個文件都有自己的結構。這種特定的結構在稱為文件型別定義 (DTD) 的單獨文件中定義。

使用的 DTD 基於 XML,它涵蓋了大多數基本的 HTML 格式標籤,以及一些來自都柏林核心元資料的特定標籤。DTD 已經為 ETD 開發完成。開發的 DTD 太通用了。如果有人想使用數學公式或包含一些化學公式,它就不夠用了。為此,我們可以加入MathML(數學標記語言)和/或CML(化學標記語言)。這些語言有定義的 DTD,我們也必須將其用於我們的文件。但是,將多個 DTD 整合到文件的不同部分的研究仍在進行中。

CSS(層疊樣式表)

CSS 是一種靈活的、跨平臺的、基於標準的語言,用於建議應用於整個網站或網頁的樣式或表現特徵。在它們最優雅的形式中,CSS 在單獨的檔案中指定,並在文件載入到支援 CSS 的瀏覽器時從 XML 或 HTML 標頭區域呼叫。使用者始終可以關閉作者的樣式並應用自己的樣式,或者將他們重要的樣式與作者的樣式混合。這指出了 CSS 的“層疊”方面。

CSS 基於規則和樣式表。規則是對一個或多個元素的一個樣式方面的陳述。樣式表是一個或多個應用於標記文件的規則。

一個簡單的樣式表示例是一個包含一個規則的樣式表。在以下示例中,我們向所有一級標題(H1)新增顏色。以下是我們新增的程式碼行 - 規則。

H1 {color: red}

XSL(可擴充套件樣式表語言)

XSL 是一種用於表達樣式表的語言。它包括兩個部分

  1. 一種用於轉換 XML 文件的語言,以及
  2. 一種用於指定格式語義的 XML 詞彙表。

如果您不明白這句話的意思,可以將 XSL 視為一種可以將 XML 轉換為 HTML 的語言,一種可以過濾和排序 XML 資料的語言,一種可以定址 XML 文件部分的語言,一種可以根據資料值格式化 XML 資料的語言,例如以紅色顯示負數,以及一種可以將 XML 資料輸出到不同裝置的語言,例如螢幕、紙張或語音。XSL 由 W3C XSL 工作組開發,該工作組的任務是開發 XSL 的下一個版本。

由於 XML 不使用預定義的標籤(我們可以使用任何我們想要的標籤),因此這些標籤的含義無法理解:<table> 可以表示 HTML 表格,也可以表示傢俱。由於 XML 的性質,瀏覽器不知道如何顯示 XML 文件。

為了顯示 XML 文件,需要有一種機制來描述文件的顯示方式。其中一種機制是如上所述的 CSS,但 XSL 是 XML 的首選樣式表語言,XSL 比 HTML 使用的 CSS 複雜得多,也更強大。

XML Namespaces

XML Namespaces 的目的是區分重複的元素型別和屬性名稱。這種重複可能發生在以下情況下,例如,在 XSLT 樣式表中或在包含來自兩個不同 DTD 的元素型別和屬性的文件中。

XML 名稱空間是元素型別和屬性名稱的集合。名稱空間由一個唯一的名稱標識,該名稱是一個 URI。因此,XML 名稱空間中的任何元素型別或屬性名稱都可以透過一個兩部分名稱唯一標識:其 XML 名稱空間的名稱和其本地名稱。這種兩部分命名系統是 XML 名稱空間的唯一功能。

  • XML 名稱空間使用 xmlns 屬性宣告,該屬性可以將一個字首與名稱空間相關聯。該宣告對包含該屬性的元素及其所有後代有效。例如,下面的程式碼聲明瞭兩個 XML 名稱空間。它們的範圍是 A 和 B 元素。
    <A xmlns:foo="http://www.foo.org/" xmlns="http://www.bar.org/">abcd</A>
  • 如果 XML 名稱空間宣告包含一個字首,則可以使用該字首引用該名稱空間中的元素型別和屬性名稱。例如,下面的程式碼在 http://www.foo.org 名稱空間中聲明瞭 A 和 B,該名稱空間與字首 foo 相關聯。
    <foo:A xmlns:foo="http://www.foo.org/"> <foo:B>abcd</foo:B> </foo:A>
  • 如果 XML 名稱空間宣告不包含字首,則該名稱空間是預設 XML 名稱空間,並且可以使用不帶字首的元素型別名稱引用該名稱空間中的元素型別名稱。例如,下面的程式碼與前面的程式碼相同,但使用預設名稱空間而不是 foo 字首。
    <A xmlns="http://www.foo.org/"><B>abcd</B></A>

術語表


屬性

XML 結構化構造。標記元素中的名稱-值對,用於修改元素的某些特性。對於 XML,所有值都必須用引號括起來。

層疊樣式表 (CSS)

格式描述,提供對 HTML 和 XML 元素的表示和佈局的增強控制。CSS 可用於描述簡單結構化 XML 文件的格式行為,但它不提供偏離源資料結構的顯示結構。

CDATA 部分

XML 結構化構造。CDATA 部分可用於標記帶引號的標籤或保留字元,從而防止它們被解釋。出於這個原因,CDATA 部分特別適用於轉義標記和指令碼。XML 中 CDATA 部分的語法為 <![CDATA[ ... ]]>。

字元資料

XML 結構化構造。元素或屬性的文字內容。XML 區分這種純文字和標記。

字元集

一組字元及其數值的對映。例如,Unicode 是一個 16 位字元集,能夠編碼所有已知字元;它用作全球字元編碼標準。

元件

封裝資料和程式碼的物件,並提供一組定義明確的公開可用服務。

資料型別

元素包含的內容型別:數字、日期等。在 XML 中,作者可以指定元素的資料型別,例如,使用標記化屬性型別。Microsoft 正在與 W3C 合作定義一組標準型別,任何人都可以自由使用。

文件元素

XML 文件的頂層元素;只允許一個頂層元素。文件元素是文件根的子元素。

文件物件模型 (DOM)

W3C 維護的標準,指定了如何使用指令碼或其他程式以程式設計方式更新 Web 文件的內容、結構和外觀。建議的 XML 物件模型與 HTML 的文件物件模型匹配,以便指令碼編寫者可以輕鬆地學習 XML 程式設計。XML DOM 將提供一種簡單的方法來讀取和寫入 XML 樹結構中的資料。

文件根

XML 文件的頂層節點;其後代從它分支出來,形成該文件的 XML 樹。文件根包含文件元素,還可以包含一組處理指令和註釋。

文件型別宣告

XML 結構化構造。XML 文件中的一個生成,它包含或指向提供文件類語法規則的標記宣告。這種語法被稱為文件型別定義。文件型別宣告可以指向包含標記宣告的外部子集(一種特殊的外部實體),也可以直接在內部子集中包含標記宣告,也可以兩者兼而有之。文件的 DTD 由這兩個子集共同組成。文件型別宣告的語法為 <!DOCTYPE content >。

文件型別定義 (DTD)

描述文件類語法的標記宣告。DTD 在 XML 檔案的文件型別宣告生成中宣告。標記宣告可以位於外部子集(一種特殊的外部實體)中,可以位於 XML 檔案中的內部子集中,也可以兩者兼而有之。文件的 DTD 由這兩個子集共同組成。

電子資料交換 (EDI)

一種用於交換資料和支援交易的現有格式。EDI 交易只能在已專門設定了相容系統的站點之間進行。

元素

XML 結構化構造。XML 元素由開始標籤、結束標籤和標籤之間的資訊組成,這些資訊通常被稱為內容。XML 檔案中使用的元素由 DTD 或模式描述,它們都可以提供對資料結構的描述。

實體

XML 結構化構造。與名稱關聯的字元序列或格式良好的 XML 層次結構。實體可以透過實體引用來引用,以將實體的內容插入樹中的該點。XML 實體的功能類似於宏定義。實體聲明發生在 DTD 中。

實體引用

XML 結構化構造。引用命名實體的內容。名稱由與號和分號字元分隔;例如,&bookname; 和 <。它與宏的使用方式大致相同。

可擴充套件連結語言 (XLL)

一個 XML 詞彙表,它提供 XML 中的連結,類似於 HTML 中的連結,但功能更多。連結可以是多方向的,連結可以在物件級別存在,而不僅僅是在頁面級別存在。

可擴充套件標記語言 (XML)

SGML 的一個子集,它提供了一種統一的方法來描述和交換結構化資料,採用開放的文字格式,並透過使用標準 HTTP 協議來傳遞這些資料。截至本文撰寫時,XML 1.0 是全球資訊網聯盟的推薦標準,這意味著它處於批准過程的最後階段。

可擴充套件樣式表語言 (XSL)

一種用於將基於 XML 的資料轉換為 HTML 或其他表示格式的語言,以便在 Web 瀏覽器中顯示。它與層疊樣式表不同,因為它可以以不同於接收順序的順序呈現資訊。XSL 還能夠生成 CSS 和 HTML。XSL 包括兩個部分,一個是用於轉換的詞彙表,另一個是 XSL 格式化物件。

ID

XML 語言中的一個特殊屬性型別。XML 元素上的 ID 屬性提供了一個唯一名稱,使連結可以透過 IDREF 屬性型別連結到該元素。與 ID 屬性關聯的值必須在該 XML 文件中是唯一的。ID 目前使用 DTD 或模式宣告。

標記

XML 結構化構造。XML 文件中不表示字元資料的文字:開始標籤、結束標籤、空元素標籤、實體引用、字元引用、註釋、CDATA 部分定界符、DTD 和處理指令。

混合內容

XML 結構化構造。當元素型別可以包含字元資料時,該元素型別具有混合內容,可選地與子元素交織在一起。在這種情況下,子元素的型別可以被約束,但它們的順序或出現的次數不能被約束。

名稱空間

一種機制,用於在 XML 文件中來自不同詞彙表的元素之間解決命名衝突;它允許來自不同名稱空間的相同標籤名稱混合使用。名稱空間標識在 URN 中定義的 XML 詞彙表。元素、屬性或實體引用的一個屬性將一個短名稱與定義名稱空間的 URN 相關聯;然後將該短名稱用作元素、屬性或實體引用名稱的字首,以唯一標識名稱空間。名稱空間引用具有作用域。指定名稱空間的節點下的所有子節點繼承該名稱空間。這允許非限定名稱使用預設名稱空間。

NDATA

文字字串“NDATA”用作符號宣告的一部分。另請參見符號。

符號

通常指資料格式,例如 BMP。符號透過名稱標識未解析實體的格式、帶符號屬性的元素的格式,或處理指令所針對的應用程式。

符號宣告

符號宣告為符號提供名稱和外部識別符號。該名稱用於實體和屬性列表宣告以及屬性規範中。外部識別符號用於符號,它可以使 XML 處理器或其客戶端應用程式定位能夠處理給定符號中的資料的幫助應用程式。

處理指令 (PI)

XML 結構化構造。傳遞給應用程式的指令。目標作為 PI 的一部分指定。PI 的語法為 <?pi-name content?>。

資源定義框架 (RDF)

一個類似於應用程式程式設計介面 (API) 功能的物件模型,RDF 可以被開發人員用來訪問 XML 文件中指定內容的邏輯含義。

根元素

有時該術語用於指代文件元素,但這具有誤導性,因為頂層元素和文件根並不相同。由於這種歧義,不鼓勵使用“根元素”一詞。

模式

元素名稱的正式規範,指示哪些元素允許出現在 XML 文件中,以及以哪些組合出現。模式在功能上等效於 DTD,但它使用 XML 編寫;模式還提供擴充套件功能,例如資料型別、繼承和表示規則。

標準通用標記語言 (SGML)

定義電子文件結構和內容描述的國際標準。XML 是 SGML 的一個子集,旨在透過 Web 傳遞 SGML 型別的資訊。

目標

處理指令所針對的應用程式。以“XML”和“xml”開頭的目標名稱是保留的。目標出現在 PI 中的第一個標記中。例如,在 XML 宣告 <?xml version="1.0"?> 中,目標為“xml”。

文字標記

將標籤插入元素的文字流的中間,用額外的元資訊標記元素的某些部分。


標記化屬性型別

每個屬性都有一個屬性型別。七種屬性型別被描述為標記化的:ID、IDREF、IDREFS、ENTITY、ENTITIES、NMTOKEN 和 NMTOKENS。

統一資源識別符號 (URI)

所有引用資源的名稱和地址的通用集合,包括 URL 和 URN。定義在伯納斯-李,T.、R. 菲爾丁和 L. 馬辛特,統一資源識別符號 (URI):通用語法和語義。1997 年。參見 W3C 文件 RFC1738 的更新。Layman-Bray 對名稱空間的建議使每個元素名稱都從屬於一個 URI,這將確保元素名稱始終是明確的。

統一資源定位符 (URL)

一組具有明確說明如何訪問 Internet 上資源的 URI 方案。

統一資源名稱 (URN)

統一資源名稱標識一個持久化的 Internet 資源。

有效的 XML

符合 DTD 或模式中指定的詞彙表的 XML。

W3C

全球資訊網聯盟

格式良好的 XML

滿足 W3C 對 XML 1.0 的推薦中列出的要求的 XML:它包含一個或多個元素;它有一個單獨的文件元素,其他任何元素都正確巢狀在其下;文件中直接或間接引用的每個解析實體都是格式良好的。格式良好的 XML 文件不一定包含 DTD。

全球資訊網聯盟 (W3C)

1994 年成立的國際聯盟,致力於為網路制定標準。參見

XLL

可擴充套件連結語言

XML

可擴充套件標記語言

XML 宣告

XML 檔案的第一行可以可選地包含“xml”處理指令,這被稱為 XML 宣告。XML 宣告可以包含偽屬性來指示 XML 語言版本、字元集以及文件是否可以作為獨立實體使用。

XML 文件

一個數據物件,根據 XML 推薦,是格式良好的,並且可能(也可能不)是有效的。XML 文件具有邏輯結構(由宣告、元素、註釋、字元引用和處理指令組成)和物理結構(由實體組成,從根或文件實體開始)。

XML 解析器

一個通用的 XML 解析器讀取 XML 檔案並生成一個分層結構的樹,然後將資料傳遞給檢視器和其他應用程式進行處理。一個驗證 XML 解析器還會檢查 XML 語法並報告錯誤。


下一節:多媒體

華夏公益教科書