DIV CSS 佈局教程網

Xml教程
編輯:XML基礎     

本章將向讀者介紹XML的基本知識以及概略地解釋什麼是XML以及如何使用XML。還要向讀者說明如何將各種不同的XML表達式組合在一起,XML文檔是如何創建的並如何向人們發送這種文檔。

本章的主要內容包括:
* 什麼是XML
* 為什麼開發人員對XML感到激動
* XML文檔的"生命"
* 相關的技術

1.1 什麼是XML

XML代表Extensible Markup Language(eXtensible Markup Language的縮寫,意為可擴展的標記語言)。XML是一套定義語義標記的規則,這些標記將文檔分成許多部件並對這些部件加以標識。它也是元標記語言,即定義了用於定義其他與特定領域有關的、語義的、結構化的標記語言的句法語言。

1.1.1 XML是元標記語言

關於XML要理解的第一件事是,它不只是像超文本標記語言(Hypertext Markup Language,HTML)或是格式化的程序。這些語言定義了一套固定的標記,用來描述一定數目的元素。如果標記語言中沒有所需的標記,用戶也就沒有辦法了。這時只好等待標記語言的下一個版本,希望在新版本中能夠包括所需的標記,但是這樣一來就得依賴於軟件開發商的選擇了。

但是XML是一種元標記語言。用戶可以定義自己需要的標記。這些標記必須根據某些通用的原理來創建,但是在標記的意義上,也具有相當的靈活性。例如,假如用戶正在處理與家譜有關的事情,需要描述人的出生、死亡、埋葬地、家庭、結婚、離婚等,這就必須創建用於每項的標記。新創建的標記可在文檔類型定義(Document Type Definition,在以後的篇幅中常簡稱為DTD)中加以描述。在本書的第二部分中將會學到有關DTD的更多的知識。現在,只需把DTD看作是一本詞匯表和某類文檔的句法。例如,在Peter Murray-Rust的Chemical Markup Language (化學標記語言,簡寫為CML)中的MOL.DTD文件中描述了詞匯表和分子科學的句法:其中包括chemistry(化學)、crystallography(結晶學)、solid state physics(固體物理)等詞匯。它包括用於atoms(原子)、molecules(分子)、bonds(化學鍵)、spectra(光譜)等的標記。這個DTD可與分子科學領域中的許多不同的人共享。對於其他領域也有其他的DTD,用戶還可以創建自己的DTD。

XML定義了一套元句法,與特定領域有關的標記語言(如MusicML、MathML和CML)都必須遵守。如果一個應用程序可以理解這一元句法,那麼它也就自動地能夠理解所有的由此元語言建立起來的語言。浏覽器不必事先了解多種不同的標記語言使用的每個標記。事實是,浏覽器在讀入文檔或是它的DTD時才了解了給定文檔使用的標記。關於如何顯示這些標記的內容的詳細指令是附加在文檔上的另外的樣式單提供的。例如,考慮薛定格(Schrodinger)方程:

科學論文中充滿了這一類方程,但是科學家還必須等待多年,才能讓浏覽器的開發商支持書寫最基本的數學公式所需的標記。音樂家也有同樣的局限性,因為Netscape Navigator和Internet Explorer還都不支持樂譜。

有了XML就意味著不必等待浏覽器的開發商來滿足用戶的需要了。用戶可以創建自己需要的標記,當需要時,告訴浏覽器如何顯示這些標記就可以了。

1.1.2 XML描述的是結構和語義,而不是格式化

關於XML要了解的第二件事是,XML標記描述的是文檔的結構和意義。它不描述頁面元素的格式化。可用樣式單為文檔增加格式化信息。文檔本身只說明文檔包括什麼標記,而不是說明文檔看起來是什麼樣的。

作為對照,HTML文檔包括了格式化、結構和語義的標記。<B>就是一種格式化標記,它使其中的內容變為粗體。<STRONG>是一種語義標記,意味著其中的內容特別重要。<TD>是結構標記,指明內容是表中的一個單元。事實上,某些標記可能具有所有這三種意義。<H1>標記可同時表示20磅的Helvetica字體的粗體、第一級標題和頁面標題。

例如,在HTML中,一首歌可能是用定義標題、定義數據、無序的列表和列表項來描述的。但是事實上這些項目沒有一件是與音樂有關的。用HTML定義的歌曲可能如下:

 

Hot Cop

 by Jacques Morali Henri Belolo and Victor Willis

 

Producer: Jacques Morali

 

Publisher: PolyGram Records

 

Length:

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved