Thinking XML: 創(chuàng)建 XML 的好建議(2)_Xml教程
推薦:使用PHP和AJAX的XML編程(2) 基于 ACORD 人壽數(shù)據(jù)模型的場(chǎng)景 我們來(lái)考慮一個(gè)簡(jiǎn)單的人壽保險(xiǎn)場(chǎng)景,在這個(gè)場(chǎng)景中,首先創(chuàng)建一個(gè)表示新保單的 XML 文檔,然后查詢和操縱這個(gè)文檔,另外還將這個(gè)文檔從一層移動(dòng)到另
上面的評(píng)述表明,Henri 的建議可能由于過(guò)分關(guān)心生成結(jié)構(gòu)良好的 Web 提要的問(wèn)題而有些偏激。警告人們簡(jiǎn)單的堆砌字符串,期望它成為結(jié)構(gòu)良好的 XML 的做法是危險(xiǎn)的,這一點(diǎn)上他是正確的。我也在文章中建議人們使用成熟的 XML 工具箱而不是使用簡(jiǎn)單的文本工具來(lái)創(chuàng)建 XML(請(qǐng)參閱參考資料)。我疑慮的是 Henri 描述這個(gè)建議的方式有點(diǎn)混亂,在更廣泛的 XML 處理上下文中會(huì)造成誤解。他在“Don't use text-based templates”和“Don't print”兩節(jié)中反復(fù)重申這個(gè)觀點(diǎn)。我認(rèn)為可以將他的建議歸納為“不要使用不能保證產(chǎn)生結(jié)構(gòu)良好的 XML 的機(jī)制。”這確實(shí)是一項(xiàng)很重要的建議。正像 Herni 所提到的,安全創(chuàng)建 XML 的一種方法是發(fā)送 SAX 事件,“使用樹(shù)或棧(或者 XML 解析器)”。但即使這樣做也不能令您高枕無(wú)憂。使用的 SAX 工具不一定要進(jìn)行所有必要的結(jié)構(gòu)良好性檢查。比如,XML 中禁止某些 Unicode 字符。為了解決這些問(wèn)題可能需要進(jìn)行額外的檢查。
Henri 建議用戶不要嘗試手工管理名稱空間,這是正確的。我曾經(jīng)在 developerWorks 上討論過(guò),必須非常小心地處理 XML 名稱空間。他建議開(kāi)發(fā)人員,按照統(tǒng)一名[名稱空間統(tǒng)一資源標(biāo)識(shí)符(URI)加上本地名]來(lái)考慮一般情況就行了,但有時(shí)候不可避免地要面對(duì)前綴或者 XML 聲明。在 XSLT 這樣的規(guī)范中,QName(前綴/本地名組合)可在屬性值中使用,并假定前綴根據(jù)作用范圍內(nèi)的名稱空間聲明解釋。這種模式稱為上下文中的 QName。在這種情況下,開(kāi)發(fā)人員必須控制聲明的前綴,否則 XML 處理就會(huì)失敗。如果開(kāi)發(fā)人員管理自己的名稱空間聲明,由于 XML 名稱空間的復(fù)雜性,結(jié)果往往會(huì)顯得雜亂無(wú)章。
因?yàn)榻?jīng)過(guò) XML 處理管道之后名稱空間語(yǔ)法可能變得非�;靵y,一種解決方法是在管道的最后插入一個(gè)規(guī)范化步驟。XML 規(guī)范化消除了 XML 1.0 和 XML 名稱空間允許的各種語(yǔ)法變體,包括不同的名稱空間聲明方式。規(guī)范化不能消除使名稱空間聲明對(duì)開(kāi)發(fā)人員變得危險(xiǎn)的所有問(wèn)題。規(guī)范化也不能解決上下文中的 QName 問(wèn)題,因?yàn)樗](méi)有改變文檔中使用的前綴,但它確實(shí)可以減輕名稱空間聲明的混亂程度,使您很容易確定問(wèn)題所在,甚至可以編寫(xiě)代碼自動(dòng)糾正這些問(wèn)題。GenX 庫(kù)是 Henri 建議使用的 XML 創(chuàng)建工具之一,能夠自動(dòng)生成規(guī)范的 XML,其他很多工具箱也作為選項(xiàng)提供了規(guī)范化功能。
分享:論Asp與XML的關(guān)系1、XML 是什么? XML僅僅是一種數(shù)據(jù)存放格式,這種格式是一種文本(雖然XML規(guī)范中也提供了存放二進(jìn)制數(shù)據(jù)的解決方案)。 事實(shí)上有很多文本格式都可以用來(lái)存放數(shù)據(jù),例如大家所熟悉的.ini文
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開(kāi)發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語(yǔ)法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- WML教程之文本框控件Input
- 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門(mén) - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說(shuō)明:
Xml教程-Thinking XML: 創(chuàng)建 XML 的好建議(2)
。