【文章內(nèi)容簡(jiǎn)介】
部 DTD 文件的引用。下面的段落展示了這個(gè)文件的內(nèi)容。XML DTD DTD 的作用是定義 XML 文檔的結(jié)構(gòu)。它使用一系列合法的元素來定義文檔結(jié)構(gòu):!DOCTYPE note [ !ELEMENT note (to,from,heading,body) !ELEMENT to (PCDATA) !ELEMENT from (PCDATA) !ELEMENT heading (PCDATA) !ELEMENT body (PCDATA)] 如果您希望學(xué)習(xí) DTD,請(qǐng)?jiān)L問我們的 DTD 教程。XML Schema(基于 XML 的 DTD 代替者)W3C 支持一種基于 XML 的 DTD 代替者,它名為 XML Schema:xs:element name=notexs:plexType xs:sequence xs:element name=to type=xs:string/ xs:element name=from type=xs:string/ xs:element name=heading type=xs:string/ xs:element name=body type=xs:string/ /xs:sequence/xs:plexType/xs:element 如果您需要學(xué)習(xí) XML Schema,請(qǐng)?jiān)L問我們的 XML Schema 教程。一個(gè)通用的驗(yàn)證器為了幫助您檢查 XML 文件的語法,我們創(chuàng)建了這個(gè)工具,以便您對(duì)任何 XML 文件進(jìn)行語法檢查。請(qǐng)看下一節(jié)。0查看 XML 文件 Previous Page Next Page 在所有現(xiàn)代瀏覽器中,可查看原始的 XML 文件打開 XML 文件 XML 文檔將顯示為代碼顏色化的根以及子元素。通過點(diǎn)擊元素左側(cè)的加號(hào)或減號(hào),可以展開或收起元素的結(jié)構(gòu)。如需查看不帶有 + 和 符號(hào)的源代碼,請(qǐng)從瀏覽器菜單中選擇“查看源代碼”。注釋:在 Netscape, Opera 以及 Safari 中,僅僅會(huì)顯示元素文本!要查看原始的 XML,請(qǐng)右擊頁面,然后選擇“查看源代碼”。查看某個(gè)無效的 XML 文件如果瀏覽器打開了某個(gè)有錯(cuò)誤的 XML 文件,那么它會(huì)報(bào)告這個(gè)錯(cuò)誤。請(qǐng)查看這個(gè) XML 文件:其他的 XML 實(shí)例請(qǐng)查看這些 XML 文檔,這會(huì)有助于您建立對(duì) XML 的感性認(rèn)識(shí)。一個(gè) XML 的 CD 目錄 這是我父親的 CD 收藏,被存儲(chǔ)為 XML 數(shù)據(jù)(我猜可能是很老很無聊的題目... :)) 一個(gè) XML 的植物目錄 來自園藝店的植物目錄,存儲(chǔ)為 XML 數(shù)據(jù)。 一個(gè)簡(jiǎn)單的菜單 這是來自餐館的早餐菜單,存儲(chǔ)為 XML 數(shù)據(jù)。 為什么 XML 會(huì)這樣顯示?XML 文檔不會(huì)攜帶有關(guān)如何顯示數(shù)據(jù)的信息。由于 XML 標(biāo)簽由 XML 文檔的作者“發(fā)明”,瀏覽器無法確定像 table 這樣一個(gè)標(biāo)簽究竟描述一個(gè) HTML 表格還是一個(gè)餐桌。在沒有任何有關(guān)如何顯示數(shù)據(jù)的信息的情況下,大多數(shù)的瀏覽器都會(huì)僅僅把 XML 文檔顯示為源代碼。在下面的章節(jié),我們會(huì)了解幾個(gè)有關(guān)這個(gè)顯示問題的解決方案,其中會(huì)使用 CSS、XSL、JavaScript 以及 XML 數(shù)據(jù)島。0使用 XSLT 顯示 XML(首選) Previous Page Next Page 通過使用 XSLT,您可以向 XML 文檔添加顯示信息。使用 XSLT 顯示 XMLXSLT 是首選的 XML 樣式表語言。XSLT (eXtensible Stylesheet Language Transformations) 遠(yuǎn)比 CSS 更加完善。使用 XSLT 的方法之一是在瀏覽器顯示 XML 文件之前,先把它轉(zhuǎn)換為 HTML,正如以下的這些例子演示的那樣:查看 XML 文件, ?xml version= encoding=ISO88591 ? ! Edited with XML Spy v2007 () breakfast_menu food nameBelgian Waffles/name price$/price descriptiontwo of our famous Belgian Waffles with plenty of real maple syrup/description calories650/calories /food food nameStrawberry Belgian Waffles/name price$/price descriptionlight Belgian waffles covered with strawberries and whipped cream/description calories900/calories /food food nameBerryBerry Belgian Waffles/name price$/price descriptionlight Belgian waffles covered with an assortment of fresh berries and whipped cream/description calories900/calories /food food nameFrench Toast/name price$/price descriptionthick slices made from our homemade sourdough bread/description calories600/calories /food food nameHomestyle Breakfast/name price$/price descriptiontwo eggs, bacon or sausage, toast, and our everpopular hash browns/description calories950/calories /food /breakfast_menuXSLT 樣式表, ?xml version= encoding=ISO88591 ? ! Edited with XML Spy v2007 () html xsl:version= xmlns:xsl= xmlns= body style=fontfamily:Arial,helvetica,sansserif。fontsize:12pt。 backgroundcolor:EEEEEE xsl:foreach select=breakfast_menu/food div style=backgroundcolor:teal。color:white。padding:4px span style=fontweight:bold。color:white xsl:valueof select=name / /span xsl:valueof select=price / /div div style=marginleft:20px。marginbottom:1em。fontsize:10pt xsl:valueof select=description / span style=fontstyle:italic ( xsl:valueof select=calories / calories per serving) /span /div /xsl:foreach /body /html查看結(jié)果。下面是此 XML 文件的一個(gè)片斷。 第二行,?xmlstylesheet type=text/xsl href=?,把這個(gè) XML 文件鏈接到 XSL 文件:?xml version= encoding=ISO88591??xmlstylesheet type=text/xsl href=?breakfast_menu food nameBelgian Waffles/name price$/price description two of our famous Belgian Waffles /description calories650/calories /food/breakfast_menu如果您需要學(xué)習(xí)更多有關(guān) XSLT 的知識(shí),請(qǐng)?jiān)L問我們的《XSLT 教程》。在服務(wù)器上通過 XSLT 轉(zhuǎn)換 XML在上例中,XSLT 轉(zhuǎn)換是由瀏覽器完成的,瀏覽器讀取的是 XML 文件。在使用 XSLT 來轉(zhuǎn)換 XML 時(shí),不同的瀏覽器可能會(huì)產(chǎn)生不同結(jié)果。為了減少這種問題,可以在服務(wù)器上進(jìn)行 XSLT 轉(zhuǎn)換。查看結(jié)果。請(qǐng)注意,不論轉(zhuǎn)換由服務(wù)器還是由瀏覽器進(jìn)行,輸出結(jié)果完成相同。使用 CSS 顯示 XML Previous Page Next Page 通過使用 CSS,可為 XML 文檔添加顯示信息。使用 CSS 顯示您的 XML?使用 CSS 來格式化 XML 文檔是有可能的。下面的例子就是關(guān)于如何使用 CSS 樣式表來格式化某個(gè)XML文檔:這是 XML 文件:CD 目錄這是樣式表:CSS 文件最后,請(qǐng)查看效果:由 CSS 文件格式化的 CD 目錄下面是此XML文件的一個(gè)片斷。 第二行,?xmlstylesheet type=text/css href=?,把這個(gè) XML 文件鏈接到 CSS 文件: ?xml version= encoding=ISO88591??xmlstylesheet type=text/css href=?CATALOG CD TITLEEmpire Burlesque/TITLE ARTISTBob Dylan/ARTIST COUNTRYUSA/COUNTRY COMPANYColumbia/COMPANY PRICE/PRICE YEAR1985/YEAR /CD CD TITLEHide your heart/TITLE ARTISTBonnie Tyler/ARTIST COUNTRYUK/COUNTRY COMPANYCBS Records/COMPANY PRICE/PRICE YEAR1988/YEAR /CD..../CATALOG注釋:使用 CSS 格式化 XML 不能代表 XML 文檔樣式化的未來。XML 文檔應(yīng)當(dāng)使用 W3C 的 XSL 標(biāo)準(zhǔn)進(jìn)行格式化!1XML 解析器(如何使用瀏覽器來讀取、更新、創(chuàng)建并操作 XML 文檔) Previous Page Next Page 大多數(shù)瀏覽器都有讀取和操作 XML 的內(nèi)建 XML 解析器。解析器把 XML 轉(zhuǎn)換為 JavaScript 可訪問的對(duì)象。實(shí)例W3School 提供的實(shí)例是獨(dú)立于瀏覽器和平臺(tái)的。這些例子可以在所有現(xiàn)代瀏覽器中運(yùn)行。加載并解析 XML 文件(例子)htmlheadscript type=text/javascriptfunction parseXML(){try //Internet Explorer { xmlDoc=new ActiveXObject()。 }catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=(,null)。 } catch(e) { alert()。 return。 } }=false。(/example/xmle/)。(to).innerHTML=(to)[0].childNodes[0].nodeValue。(from).innerHTML=(from)[0].childNodes[0].nodeValue。(message).innerHTML=(body)[0].childNodes[0].nodeValue。}/script/headbody onload=pa