曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
</mrow>
<mi>c</mi>
</mfrac>
<mi></mi>
<msup>
<mi>J</mi>
<mrow>
<mi>β</mi>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
<P>and there was light</P>
</body>
</html>
此處的math、mrow、msub、mo、mi、mfrac、mn 和msup 都在http://www.w3.org/ TR/ REC-MathML/命名域中,盡管包含它
們的文檔使用http://www.w3.org/TR/ REC-html40 命名域。
XML 實用大全
第 629 頁
18.3 DTD 中的命名域
命名域并沒有排除結構整潔和合法性的正常規則。要使帶有命名域的文檔合法,必須在DTD 中聲明xmlns 特性,這樣才能用
于與這些特性相關聯的元素。此外,如果文檔使用math:subset 元素,那么DTD 必須聲明math:subset 元素,而不僅僅聲明
subset 元素(當然,這些規定不適用于迄今討論過的少數幾個結構整潔的文檔)。例如:
<!ELEMENT math:subset EMPTY>
缺省的特性值以及#IMPLIED 特性在此處都有用。例如,下面的ATTLIST 聲明將每個math:subset 元素都放在
http://www.w3.org/TR/REC-MathML/命名域中,除非在文檔中另外指定。
<!ATTLIST math:subset
xmlns:math "http://www.w3.org/TR/REC-MathML/" #IMPLIED>
由于缺省命名域不需要在所有的元素前加上前綴,所以當處理合法的文檔時,這樣的命名域特別有用。給DTD 不使用前綴的
XML 應用程序中的元素加前綴將破壞合法性。
但是,缺省命名域到底起多大作用,卻有明確的范圍。特別是,這些命名域不足以區分這樣的兩個元素:即使用的元素名相
互矛盾。例如,如果一個DTD 定義一個HEAD,同時又包含一個TITLE 和一個META 元素,并且另一個DTD 也定義一個HEAD,
同時包含#PCDATA,那么就得在DTD 和文檔中使用前綴來區分這兩個不同的HEAD 元素。
正在進行的兩種不同的開發,可能(或許不能)最終解決對來自不同領域的相互矛盾的DTD 進行融合問題。XML 模式為DTD
提供更加強大的替代對象;而XML 片斷能夠使不同的文檔與差別更大的部分結合起來。但是,這兩者至今仍沒有完成。因此,
如今,融合相互矛盾的DTD 或許需要使用前綴來重新編寫DTD 和文檔。
如果對有關使用命名域的文檔是否是結構整潔或合法還不太清楚的話,請忘掉有關命名域的所有知識。只將文
檔作為一個正常的XML 文檔來看待,只不過這樣的文檔中的一些元素和特性名碰巧包含冒號罷了。這種文檔也
是結構整潔和合法的,就像不考慮命名域時的一樣。
XML 實用大全
第 630 頁
18.4 本章小結
本章解釋了如何使用命名域。特別是學習了如下內容:
• 命名域區別不同XML 應用程序中相同名稱的元素和特性。
• 命名域是由xmlns 特性(其值為命名域的URI)來聲明的。由該URI 引用的文檔可以不存在。
• 與命名域相關聯的前綴是xmlns 特性名的組成部分,而此命名域前面有一冒號;例如xmlns:prefix。
• 加到所有元素和特性名中的前綴屬于由前綴表征的命名域。
• 如果xmlns 特性沒有前綴,那么它就為元素及該元素的子元素(但不為任何特性)建立一個缺省的命名域。
• DTD 必須以這樣的方式來編寫,以使對命名域一無所知的處理程序仍能分析并驗證此文檔的合法性。
下一章將探討資源描述框架(Resource Description Framework,RDF),它是個XML 應用程序,用于編譯元數據(metadata)
和信息結構。
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(178)