摘要:的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)。驗(yàn)證擁有正確語(yǔ)法的被稱(chēng)為形式良好的。文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。命名空間命名空間提供避免元素命名沖突的方法。使用前綴來(lái)避免命名沖突在中的命名沖突可以通過(guò)使用名稱(chēng)前綴從而容易地避免。
1 XML簡(jiǎn)介 什么是XML?
XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)。
XML 是一種標(biāo)記語(yǔ)言。
XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)。
XML 標(biāo)簽沒(méi)有被預(yù)定義。您需要自行定義標(biāo)簽。
XML 被設(shè)計(jì)為具有自我描述性。
XML 是 W3C 的推薦標(biāo)準(zhǔn)。
XML不會(huì)做任何事情XML不會(huì)做任何事情,XML被設(shè)計(jì)用來(lái)結(jié)構(gòu)化、存儲(chǔ)以及傳輸信息。
Tove Jani Reminder Don"t forget me this weekend!
上面的這條便簽具有自我描述性。它包含了發(fā)送者和接受者的信息,同時(shí)擁有標(biāo)題以及消息主體。
但是,這個(gè) XML 文檔仍然沒(méi)有做任何事情。它僅僅是包裝在 XML 標(biāo)簽中的純粹的信息。我們需要編寫(xiě)軟件或者程序,才能傳送、接收和顯示出這個(gè)文檔。
上面實(shí)例中的標(biāo)簽沒(méi)有在任何 XML 標(biāo)準(zhǔn)中定義過(guò)(比如
HTML 中使用的標(biāo)簽都是預(yù)定義的。HTML 文檔只能使用在 HTML 標(biāo)準(zhǔn)中定義過(guò)的標(biāo)簽(如
、
XML文檔形成了一種樹(shù)結(jié)構(gòu),它從"根部"開(kāi)始,然后擴(kuò)展到"枝葉"。
一個(gè)XML文檔實(shí)例XML文檔使用簡(jiǎn)單的具有自我描述性的語(yǔ)法:
Tove Jani Reminder Don"t forget me this weekend!
第一行是 XML 聲明。它定義 XML 的版本(1.0)和所使用的編碼(UTF-8)。
下一行描述文檔的根元素(像在說(shuō):"本文檔是一個(gè)便簽"),接下來(lái) 4 行描述根的 4 個(gè)子元素(to, from, heading 以及 body)。
語(yǔ)法規(guī)則 XML 文檔必須有根元素XML 必須包含根元素,它是所有其他元素的父元素
XML 聲明XML 聲明文件的可選部分,如果存在需要放在文檔的第一行
所有的 XML 元素都必須有一個(gè)關(guān)閉標(biāo)簽在 XML 中,省略關(guān)閉標(biāo)簽是非法的。所有元素都必須有關(guān)閉標(biāo)簽。
note:
這個(gè)關(guān)閉標(biāo)簽的一種簡(jiǎn)寫(xiě)
XML 標(biāo)簽對(duì)大小寫(xiě)敏感。標(biāo)簽
與 HTML 類(lèi)似,XML 元素也可擁有屬性(名稱(chēng)/值的對(duì))。在 XML 中,XML 的屬性值必須加引號(hào)。
錯(cuò)誤:實(shí)體引用正確 Tove Jani Tove Jani
在 XML 中,一些字符擁有特殊的意義。如果您把字符 "<" 放在 XML 元素中,會(huì)發(fā)生錯(cuò)誤,這是因?yàn)榻馕銎鲿?huì)把它當(dāng)作新元素的開(kāi)始。
在 XML 中,有 5 個(gè)預(yù)定義的實(shí)體引用:
& lt; | < | less than |
& gt; | > | greater than |
& amp; | & | ampersand |
& apos; | " | apostrophe |
& quot; | " | quotation mark |
在 XML 中編寫(xiě)注釋的語(yǔ)法與 HTML 的語(yǔ)法很相似。
在 XML 中,空格會(huì)被保留 XML 以 LF 存儲(chǔ)換行 3 XML元素 什么是XML元素?XML 元素指的是從(且包括)開(kāi)始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。
一個(gè)元素可以包含:
其他元素
文本
屬性
或混合以上所有...
XML元素命名規(guī)則XML 元素必須遵循以下命名規(guī)則:
名稱(chēng)可以包含字母、數(shù)字以及其他的字符
名稱(chēng)不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開(kāi)始
名稱(chēng)不能以字母 xml(或者 XML、Xml 等等)開(kāi)始
名稱(chēng)不能包含空格
可使用任何名稱(chēng),沒(méi)有保留的字詞。
XML元素是可擴(kuò)展的XML 的優(yōu)勢(shì)之一,就是可以在不中斷應(yīng)用程序的情況下進(jìn)行擴(kuò)展元素。
4 XML屬性XML元素具有屬性,類(lèi)似 HTML。
屬性(Attribute)提供有關(guān)元素的額外信息,屬性通常提供不屬于數(shù)據(jù)組成部分的信息。
XML屬性值必須加引號(hào),單引號(hào)、雙引號(hào)都可以。
屬性 VS 元素
沒(méi)有什么規(guī)矩可以告訴我們什么時(shí)候該使用屬性,而什么時(shí)候該使用元素。我的經(jīng)驗(yàn)是在 HTML 中,屬性用起來(lái)很便利,但是在 XML 中,您應(yīng)該盡量避免使用屬性。如果信息感覺(jué)起來(lái)很像數(shù)據(jù),那么請(qǐng)使用元素吧。
Anna Smith female Anna Smith
屬性有如下限制:
屬性不能包含多個(gè)值(元素可以)
屬性不能包含樹(shù)結(jié)構(gòu)(元素可以)
屬性不容易擴(kuò)展(為未來(lái)的變化)
屬性難以閱讀和維護(hù)。請(qǐng)盡量使用元素來(lái)描述數(shù)據(jù),而僅僅使用屬性來(lái)提供與數(shù)據(jù)無(wú)關(guān)的信息。
針對(duì)元數(shù)據(jù)的XML屬性有時(shí)候會(huì)向元素分配 ID 引用。這些 ID 索引可用于標(biāo)識(shí) XML 元素,它起作用的方式與 HTML 中 id 屬性是一樣的。這個(gè)實(shí)例向我們演示了這種情況:
Tove Jani Reminder Don"t forget me this weekend!Jani Tove Re: Reminder I will not
上面的 id 屬性?xún)H僅是一個(gè)標(biāo)識(shí)符,用于標(biāo)識(shí)不同的便簽。它并不是便簽數(shù)據(jù)的組成部分。
在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。
5 XML驗(yàn)證擁有正確語(yǔ)法的XML被稱(chēng)為"形式良好"的XML。
有兩種方式可以驗(yàn)證XML文件:XML DTD, XML Schema。
XML錯(cuò)誤會(huì)終止您的程序XML文檔中的錯(cuò)誤會(huì)終止您的 XML 應(yīng)用程序。
W3C的XML規(guī)范聲明:如果XML文檔存在錯(cuò)誤,那么程序就不應(yīng)當(dāng)繼續(xù)處理這個(gè)文檔。理由是,XML軟件應(yīng)當(dāng)輕巧,快速,具有良好的兼容性。
XML DTDDTD(文檔類(lèi)型定義)的作用是定義XML文檔的合法構(gòu)建模塊。
通過(guò) DTD,您的每一個(gè) XML 文件均可攜帶一個(gè)有關(guān)其自身格式的描述。
通過(guò) DTD,獨(dú)立的團(tuán)體可一致地使用某個(gè)標(biāo)準(zhǔn)的 DTD 來(lái)交換數(shù)據(jù)。
而您的應(yīng)用程序也可使用某個(gè)標(biāo)準(zhǔn)的 DTD 來(lái)驗(yàn)證從外部接收到的數(shù)據(jù)。
您還可以使用 DTD 來(lái)驗(yàn)證您自身的數(shù)據(jù)。
DTD 可被成行地聲明于 XML 文檔中,也可作為一個(gè)外部引用。
內(nèi)部文檔聲明假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過(guò)下面的語(yǔ)法包裝在一個(gè) DOCTYPE 聲明中:
帶有DTD的XML文檔實(shí)例:
]>Tove Jani Reminder Don"t forget me this weekend
以上 DTD 解釋如下:
!DOCTYPE note (第二行)定義此文檔是 note 類(lèi)型的文檔。
!ELEMENT note (第三行)定義 note 元素有四個(gè)元素:"to、from、heading,、body"
!ELEMENT to (第四行)定義 to 元素為 "#PCDATA" 類(lèi)型
!ELEMENT from (第五行)定義 from 元素為 "#PCDATA" 類(lèi)型
!ELEMENT heading (第六行)定義 heading 元素為 "#PCDATA" 類(lèi)型
!ELEMENT body (第七行)定義 body 元素為 "#PCDATA" 類(lèi)型
假如 DTD 位于 XML 源文件的外部,那么它應(yīng)通過(guò)下面的語(yǔ)法被封裝在一個(gè) DOCTYPE 定義中:
Tove Jani Reminder Don"t forget me this weekend!
這是包含 DTD 的 "note.dtd" 文件:
note: SYSTEM表示DTD文件是私有的,PUBLIC表示DTD文件是共有的。
XML Schema 6 XML顯示在所有主流的瀏覽器中,均能夠查看原始的 XML 文件。
ML 文檔將顯示為代碼顏色化的根以及子元素。通過(guò)點(diǎn)擊元素左側(cè)的加號(hào)(+)或減號(hào)( - ),可以展開(kāi)或收起元素的結(jié)構(gòu)。要查看原始的 XML 源(不包括 + 和 - 符號(hào)),選擇"查看頁(yè)面源代碼"或從瀏覽器菜單"查看源文件"。
XML 文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。
由于 XML 標(biāo)簽由 XML 文檔的作者"發(fā)明",瀏覽器無(wú)法確定像
Apples | Bananas |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/110402.html
摘要:入門(mén)筆記簡(jiǎn)介是一種基于的實(shí)現(xiàn)了設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)框架,是系開(kāi)源項(xiàng)目中的一個(gè),和配合使用。配置在中需要添加使用的和映射規(guī)則。入門(mén)較快,而掌握起來(lái)相對(duì)較難。 SpringMVC入門(mén)筆記 1. 簡(jiǎn)介 Spring MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架 ,是Spring系開(kāi)源項(xiàng)目中的一個(gè),和IoC配合使用。通過(guò)策略接口,Spring...
摘要:文章源碼托管歡迎一前言在上一節(jié)中,通過(guò)一個(gè)入門(mén)程序,把的環(huán)境準(zhǔn)備好了,這一節(jié),將整合,并且部署一個(gè)最簡(jiǎn)單的流程圖。測(cè)試結(jié)果四總結(jié)這一節(jié)通過(guò)整合,繪制簡(jiǎn)單的文件,然后成功部署了文件。 文章源碼托管:https://github.com/OUYANGSIHA...歡迎 star !!! 一、前言 在上一節(jié)中,通過(guò)一個(gè)入門(mén)程序,把a(bǔ)ctiviti的環(huán)境準(zhǔn)備好了,這一節(jié),將整合spring,并...
摘要:起初的提出的初衷是將其作為一個(gè)通用的介于與間的語(yǔ)法模型。的基本使用要使用我們需要下載,在爬蟲(chóng)入門(mén)到精通環(huán)境的搭建這一章也說(shuō)明怎么裝,如果還沒(méi)有安裝的話(huà),那就去下載安裝吧直接看代碼實(shí)戰(zhàn)吧。 本文章屬于爬蟲(chóng)入門(mén)到精通系統(tǒng)教程第六講 在爬蟲(chóng)入門(mén)到精通第五講中,我們了解了如何用正則表達(dá)式去抓取我們想要的內(nèi)容.這一章我們來(lái)學(xué)習(xí)如何更加簡(jiǎn)單的來(lái)獲取我們想要的內(nèi)容. xpath的解釋 XPath即為...
摘要:支持相關(guān)規(guī)范和標(biāo)準(zhǔn),包括同上。支持多種傳輸協(xié)議和協(xié)議綁定數(shù)據(jù)綁定。構(gòu)建端還有其服務(wù)實(shí)現(xiàn),接口使用注解,標(biāo)明是一個(gè)遠(yuǎn)程服務(wù)接口。然后編寫(xiě)一個(gè)的啟動(dòng)程序,并運(yùn)行,我想你會(huì)成功的因?yàn)槲铱吹搅讼聢D是一種跨平臺(tái)的技術(shù)協(xié)議。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 學(xué)習(xí)系列 RPC框架是啥? RPC框架是啥之Java自帶RPC實(shí)現(xiàn),RMI框架入門(mén) Apache CXF一款WebService RP...
摘要:作為一個(gè)開(kāi)發(fā)框架,它為我們很好的提供了一個(gè)開(kāi)發(fā)模板,使用可以減輕開(kāi)發(fā)人員的負(fù)擔(dān)并且可以增強(qiáng)程序的可讀性,下面我們來(lái)說(shuō)說(shuō)如何使用做一個(gè)小例子開(kāi)發(fā)所需要的工具開(kāi)發(fā)環(huán)境開(kāi)發(fā)的包一個(gè)文檔模板開(kāi)發(fā)開(kāi)發(fā)分為以下四步完成導(dǎo)入相應(yīng)的包在文檔中配置的核 **Struts2**作為一個(gè)開(kāi)發(fā)框架,它為我們很好的提供了一個(gè)開(kāi)發(fā)模板,使用**Struts2**可以減輕開(kāi)發(fā)人員的負(fù)擔(dān)并且可以增強(qiáng)程序的可讀性,下面...
閱讀 3441·2023-04-25 23:25
閱讀 2069·2021-11-12 10:36
閱讀 2816·2019-08-30 12:47
閱讀 2037·2019-08-29 18:45
閱讀 435·2019-08-29 17:28
閱讀 1785·2019-08-29 17:15
閱讀 1707·2019-08-29 16:05
閱讀 1405·2019-08-29 14:17