一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

XML基礎(chǔ)(元素、屬性、查看、顯示)

 herowuking 2014-03-12

 五、XML 元素

XML 命名規(guī)則

名稱可以含字母、數(shù)字以及其他的字符

名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開(kāi)始

名稱不能以字符 “xml”(或者 XMLXml)開(kāi)始

名稱不能包含空格

可使用任何名稱,沒(méi)有保留的字詞。

最佳命名習(xí)慣

名稱應(yīng)當(dāng)比較簡(jiǎn)短,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照這樣的方式進(jìn)行命名:"first-name",一些軟件會(huì)認(rèn)為需要提取第一個(gè)單詞。

避免 "." 字符。如果您按照這樣的方式進(jìn)行命名:"first.name",一些軟件會(huì)認(rèn)為 "name" 是對(duì)象 "first" 的屬性。

避免 ":" 字符。冒號(hào)會(huì)被轉(zhuǎn)換為命名空間來(lái)使用(稍后介紹)。

非英語(yǔ)的字母比如 éòá 也是合法的 XML 元素名,不過(guò)需要留意當(dāng)軟件開(kāi)發(fā)商不支持這些字符時(shí)可能出現(xiàn)的問(wèn)題。

XML 文檔包含 XML 元素

XML 元素的概念

XML 元素指的是從(且包括)開(kāi)始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。

元素可包含其他元素、文本或者兩者的混合物。

元素也可以擁有屬性。

<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

上例中,<bookstore> <book> 都擁有元素內(nèi)容,因?yàn)樗鼈儼似渌亍?/span>

上例中,<author> 只有文本內(nèi)容,因?yàn)樗鼉H包含文本。

上例中,只有 <book> 元素?fù)碛?b>屬性 (category="CHILDREN")。

XML 元素是可擴(kuò)展的

XML 元素可擴(kuò)展,以攜帶更多的信息。

XML 的優(yōu)勢(shì)之一,就是可以經(jīng)常在不中斷應(yīng)用程序的情況進(jìn)行擴(kuò)展。

六、XML 屬性

XML 屬性

屬性 (Attribute) 提供關(guān)于元素的額外(附加)信息。類似 HTML。

HTML,會(huì)回憶起:<img src="computer.gif">"src" 屬性提供有關(guān) <img> 元素的額外信息。

屬性通常提供不屬于數(shù)據(jù)組成部分的信息。

下例中,文件類型與數(shù)據(jù)無(wú)關(guān),但是對(duì)需要處理這個(gè)元素的軟件來(lái)說(shuō)卻很重要:

<file type="gif">computer.gif</file>

XML 屬性必須加引號(hào)

屬性值必須被引號(hào)包圍,不過(guò)單引號(hào)和雙引號(hào)均可使用

如果屬性值本身包含雙引號(hào),那么有必要使用單引號(hào)包圍它,就像這個(gè)例子:

<gangster name='George "Shotgun" Ziegler'>

或者使用實(shí)體引用

<gangster name="George "Shotgun" Ziegler">

XML 元素 vs. 屬性

在第一個(gè)例子中,sex 是一個(gè)屬性。在第二個(gè)例子中,sex 則是一個(gè)子元素。提供相同的信息。

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

經(jīng)驗(yàn): HTML 中,屬性用起來(lái)很便利,但是在 XML 中,應(yīng)該盡量避免使用屬性。

如果信息感覺(jué)起來(lái)很像數(shù)據(jù),那么請(qǐng)使用子元素。沒(méi)有什么規(guī)矩。

表示的方式

下面的三個(gè) XML 文檔包含完全相同的信息:

第一個(gè)例子中使用了 date 屬性:

<note date="08/08/2008">
<to>George</to>
</note>

第二個(gè)例子中使用了 date 元素:

<note>
<date>08/08/2008</date>
<to>George</to>
</note>

第三個(gè)例子中使用了擴(kuò)展的 date 元素(最推薦):

<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
</note>

使用屬性而引起的一些問(wèn)題:

屬性無(wú)法包含多重的值(元素可以)

屬性無(wú)法描述樹(shù)結(jié)構(gòu)(元素可以)

屬性不易擴(kuò)展(為未來(lái)的變化)

屬性難以閱讀和維護(hù)

盡量使用元素來(lái)描述數(shù)據(jù)。而僅僅使用屬性來(lái)提供與數(shù)據(jù)無(wú)關(guān)的信息。

針對(duì)元數(shù)據(jù)的 XML 屬性

向元素分配 ID 引用。可用于標(biāo)識(shí) XML 元素,它起作用的方式與 HTML ID 屬性是一樣的。

<messages>

<note id="501">

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

<note id="502">

<to>John</to>

<from>George</from>

<heading>Re: Reminder</heading>

<body>I will not</body>

</note>

</messages>

上面的 ID 僅僅是一個(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ǔ)為元素。

七、XML 驗(yàn)證和驗(yàn)證器

形式良好 XML擁有正確語(yǔ)法的 XML

合法 XML通過(guò) DTD 驗(yàn)證的 XML。

驗(yàn)證 XML 文檔

合法的 XML 文檔是形式良好 XML 文檔,同樣遵守文檔類型定義 (DTD) 的語(yǔ)法規(guī)則:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE note SYSTEM "Note.dtd">

<note>

</note>

DOCTYPE 聲明是對(duì)外部 DTD 文件的引用。

XML DTD

DTD 作用是定義 XML 文檔的結(jié)構(gòu)。它使用一系列合法的元素來(lái)定義文檔結(jié)構(gòu):

<!DOCTYPE note [

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

]>

XML Schema

XML Schema W3C 支持的一種基于 XML DTD 代替者。

驗(yàn)證器

工具,幫助檢查 XML 文件的語(yǔ)法,以便對(duì)任何 XML 文件進(jìn)行語(yǔ)法檢查。

XML 錯(cuò)誤會(huì)終止程序XML 程序

八、XML 瀏覽器支持

幾乎所有的主流瀏覽器均支持 XML XSLT

Mozilla Firefox

1.0.2 版本開(kāi)始,Firefox 就已開(kāi)始支持 XML XSLT(包括 CSS)。

Mozilla

Mozilla 含有用于 XML 解析的 Expat,并支持顯示 XML + CSSMozilla 同時(shí)擁有對(duì) Namespaces 的某些支持。

Mozilla 同樣可做到對(duì) XSLT 的執(zhí)行(XSLT implementation)。

Netscape

自從版本 8 開(kāi)始,Netscape 開(kāi)始使用 Mozilla 的引擎,因此它對(duì) XML / XSLT 的支持與 Mozilla 是相同的。

Opera

自從版本 9 開(kāi)始,Opera 已經(jīng)擁有對(duì) XML / XSLT(以及 CSS)的支持。版本 8 僅支持 XML + CSS

Internet Explorer

自從版本 6 開(kāi)始,Internet Explorer 就開(kāi)始支持 XMLNamespaces、CSSXSLT 以及 XPath。

注釋Internet Explorer 5 同樣擁有對(duì) XML 的支持,但是 XSL 部分與 W3C 的官方標(biāo)準(zhǔn)不兼容!

九、XML 文件查看

在所有現(xiàn)代瀏覽器中,均能夠查看原始的 XML 文件。

XML 文件不會(huì)直接顯示為 HTML 頁(yè)面。

XML 文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。

在沒(méi)有任何有關(guān)如何顯示數(shù)據(jù)的信息的情況下,大多數(shù)的瀏覽器都會(huì)僅僅把 XML 文檔顯示為源代碼。

十、XML 顯示

使用 CSS 顯示 XML

使用 CSS 來(lái)格式化 XML 文檔是有可能的。

下例第二行,<?xml-stylesheet type="text/css" href="cd_catalog.css"?>,把這個(gè) XML 文件鏈接到 CSS 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type="text/css" href="cd_catalog.css"?>

<CATALOG>

</CATALOG>

 

注釋:使用 CSS 格式化 XML 不是常用的方法,更不能代表 XML 文檔樣式化的未來(lái)。W3C 推薦使用 XSLT。

 

使用 XSLT 顯示 XML

通過(guò)使用 XSLT,可以向 XML 文檔添加顯示信息。

XSLT 是首選的 XML 樣式表語(yǔ)言。

XSLT (eXtensible Stylesheet Language Transformations) 遠(yuǎn)比 CSS 更加完善。

使用 XSLT 的方法之一是在瀏覽器顯示 XML 文件之前,先把它轉(zhuǎn)換為 HTML

下例第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把這個(gè) XML 文件鏈接到 XSL 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type="text/xsl" href="simple.xsl"?>

<breakfast_menu>

<food>

<name>Belgian Waffles</name>

<price>$5.95</price>

</food>

</breakfast_menu>

在服務(wù)器上通過(guò) XSLT 轉(zhuǎn)換 XML

上例中,XSLT 轉(zhuǎn)換是由瀏覽器完成的,瀏覽器讀取的是 XML 文件。

在使用 XSLT 來(lái)轉(zhuǎn)換 XML 時(shí),不同的瀏覽器可能會(huì)產(chǎn)生不同結(jié)果。為了減少這種問(wèn)題,可以在服務(wù)器上進(jìn)行 XSLT 轉(zhuǎn)換。

不論轉(zhuǎn)換由服務(wù)器還是由瀏覽器進(jìn)行,輸出結(jié)果完成相同。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    香港国产三级久久精品三级| 婷婷亚洲综合五月天麻豆| 日本人妻免费一区二区三区| 东京干男人都知道的天堂| 日韩欧美综合中文字幕 | 国产精品一区二区三区欧美| 深夜视频成人在线观看| 中文字幕日韩欧美一区| 国产av熟女一区二区三区蜜桃| 久草热视频这里只有精品| 国产午夜精品久久福利| 亚洲国产黄色精品在线观看| 亚洲天堂久久精品成人| 中文字幕亚洲精品乱码加勒比| 五月的丁香婷婷综合网| 精品国产av一区二区三区不卡蜜| 91人妻丝袜一区二区三区| 国产三级不卡在线观看视频| 日韩精品在线观看一区| 国产精品成人一区二区在线| 黑人粗大一区二区三区| 一二区不卡不卡在线观看| 免费大片黄在线观看国语| 国产午夜福利一区二区| 国产一区二区三区免费福利| 欧美日韩综合在线精品| 久久精品国产99国产免费| 国内九一激情白浆发布| 成人午夜在线视频观看| 中文字幕佐山爱一区二区免费| 少妇熟女精品一区二区三区| 日韩在线精品视频观看| 久久少妇诱惑免费视频| 免费大片黄在线观看国语| 久久综合日韩精品免费观看| 大屁股肥臀熟女一区二区视频| 中文字幕一区二区免费| 99热九九热这里只有精品| 隔壁的日本人妻中文字幕版| 黄色激情视频中文字幕| 国产一区二区精品丝袜|