曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
當前的Web 瀏覽器處理這種標記的方法不一致。但是如果想保持向后的兼容性,可以使用結束標記來代替,而且不能在其間
包含任何文本。例如:
<BR></BR>
<HR></HR>
<IMG></IMG>
即使這樣,Netscape 處理<BR></BR>也有困難(它把這兩個標記解釋為行間距,而不是前面所講的)。因此,在HTML 中包
含結構完整的空標記也并非總是可行的。
#4:讓一個元素完全包含其他所有元素
一個XML 文檔包含一個根元素,它完全包含了文檔中其他所有元素。有時候這種元素被稱作文檔元素。假設根元素是非空的
(通常都是如此),它肯定有起始標記和結束標記。這些標記可能使用但不是必須使用root 或DOCUMENT 命名。例如,在下
面的文檔中根元素是GREETING:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
XML 實用大全
第 142 頁
</GREETING>
XML 聲明不是一個元素,它更像是一個處理指令,因此不必包含在根元素中。類似地,在一個XML 文檔中的其他非元素數據,
諸如其他處理指令、DTD 和注釋也不必包含在根元素中。但是所有實際的元素(除根元素本身)必須包含在根元素中。
#5:不能重疊元素
元素可以包含別的元素(大多數情況下),但是元素不能重疊。事實上是指,如果一個元素含有一個起始標記,則必須同時
含有相應的結束標記。同樣,一個元素不能只含有一個結束標記而沒有相應的起始標記。例如,下面的XML 是允許的:
<PRE><CODE>n =n +1;</CODE></PRE>
下面所示的XML 是非法的,因為結束標記</PRE>放在了結束標記</CODE>之前:
<PRE><CODE>n =n +1;</PRE></CODE>
大部分HTML 瀏覽器容易處理這種情況,但是XML 瀏覽器會因為這種結構而報告出錯。
空標記可隨處出現。例如:
<PLAYWRIGHTS>Oscar Wilde<HR/>Joe Orton</PLAYWRIGHTS>
本規則與規則4 聯系在一起有如下含義:對于所有非根元素,只能有一個元素包含某一非根元素,但是元素不能包含其中含
有非根元素的元素。這個直接含有者稱為非根元素的父元素,非根元素被認為是父元素的子元素。因此,每個非根元素只有
一個父元素。但是一個單獨的元素可以有任意數目的子元素或不含有子元素。
請分析如下所示的清單6-1。根元素是DOCUMENT 元素,它含有兩個元素。第一個STATE 元素含有4 個子元素:NAME、TREE、
FLOWER 和CAPITOL。第二個STATE 元素含有3 個子元素:NAME、TREE 和CAPITOL。這些里層的子元素只包含字符數據,沒有
子元素。
清單6-1:父元素和子元素
<?xml version="1.0" standalone="yes"?>
<DOCUMENT>
<STATE>
<NAME>Louisiana</NAME>
<TREE>Bald Cypress</TREE>
<FLOWER>Magnolia</FLOWER>
<CAPITOL>Baton Rouge</CAPITOL>
</STATE>
XML 實用大全
第 143 頁
<STATE>
<NAME>Mississippi</NAME>
<TREE>Magnolia</TREE>
<CAPITOL>Jackson</CAPITOL>
</STATE>
</DOCUMENT>
在編程人員的術語中,這意味著XML 文檔形成了一個樹。圖6-1 顯示了清單6-1 表示的樹形結構以及將該結構稱為樹的原因。
圖6-1 從根開始,逐級地分支延伸到樹末端的葉。
樹有一些好的特性使計算機程序易于讀取,盡管對于文檔的作者而言是無關緊要的。
圖6-1 清單6-1 表示的樹形結構
樹通常由上向下畫,這就是說樹的根應該在圖片的頂部而不是底部。但這樣看起來不像真正的樹,不過并不影響
數據結構的拓撲形式。
#6:屬性值必須加引號
XML 要求所有的屬性值必須加引號,不管屬性值是否包括空白。例如:
<A HREF="http://metalab.unc.edu/xml/">
HTML 的要求則不是這樣。比如,HTML 允許標記含有不帶引號的屬性。例如,下面是一個合法的HTML<A>標記:
<A HREF=http://metalab.unc.edu/xml/>
唯一的要求是屬性值不能嵌有空格。
如果一個屬性值本身含有雙引號,可以使用屬性值加單引號來代替。例如:
XML 實用大全
第 144 頁
<IMG SRC="sistinechapel.jpg"ALT= And God said,"Let there be light," and there was light />
如果一個屬性值包含有單引號和雙引號,可以使用實體引用'代替單引號,"代替雙引號。例如:
<PARAM name="joke" value="The diner said,
"Waiter,There's a fly in my soup!"">
#7:只在開始標記和實體引用中使用<和&
XML 假定最先的<是一個標記的開始,&是一個實體引用的開始(HTML 也是如此,如果省略它們,大部分瀏覽器會假定有一個
分號)。例如:
<H1>A Homage to Ben &Jerry s
New York Super Fudge Chunk Ice Cream</H1>
Web 瀏覽器會正確地顯示該標記,但是為了最大限度的安全,應當避免使用&,用&來代替,像下面這樣:
<H1>A Homage to Ben &Jerry s New York Super Fudge Chunk
Ice Cream</H1>
開尖括號(<)的情況也類似。請看下面很普通的一行Java 代碼:
<CODE> for (int i =0;i <=args.length;i++){</CODE>
XML 與HTML 都會把<=中的小于號當作一個標記的開始。該標記會延續到下一個>。因此該行會現示成:
for (int i =0;i
而不是:
for (int i =0;i <=args.length;i++){
“=args.length;i++){”被解釋成一個不能識別的標記的一部分。
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(45)