XML語法小總結
1.XML文檔必須包含根元素。
上一篇的例子中
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
note是根元素,除聲明外,最外層的開啓標籤標識的元素是根元素。
2.所有XML元素必須有一個關閉標籤
每一個元素都必須有一個對應的關閉標籤
<note>This is a note.//1
<content>balabalabala</content>//2
//3
上述的例子是錯誤的,需要在第三行加上note的關閉標籤
3.XML標籤對大小寫敏感
<test>this is a test</test>
<Test>this is a test</Test>
上述兩個元素雖然字面意思都是test,但XML認爲是兩個元素。一對開啓標籤和關閉標籤的元素名字需要相同纔是時合法的語法。
4.XML需要正確嵌套
因爲XML是以樹結構來組織元素的,所以嵌套的順序必須符合一開一閉不能嵌套其他的元素的開或閉。
如下面的例子
是不允許出現的
<out>
<in>
this is a test
</out>
</in>
必須符合下面的格式
<out>
<in>
this is a test
</in>
</out>
引用網上的原話:正確嵌套的意思是在內打開,必須要在內關閉。
5.XML的屬性值必須加引號(單引號或雙引號都可)
下面的例子是錯誤的
<learn_note date=12/5/2017>
<target>
learn xml
</target>
</learn_note>
下面的例子是正確的
<learn_note date="12/5/2017">
<target>
learn xml
</target>
</learn_note>
所有元素實例的屬性都需要是字符串類型,比如在本文出現的標紅字體,使用瞭如下的標籤,屬性顏色用字符串類型的RGB值來設定。
<font color="#ff00">在裏面的文字將會被渲染成紅色</font>
效果如下:
在裏面的文字將會被渲染成紅色
6.XML中的特殊轉義字符
在XML中有一些字符有特殊的含義,其含義會和默認的一些語法起衝突,比如:< 解析器會認爲這是一個新元素的開始。爲了解決這個爲,維護XML的人設計了 實體引用來代替這些字符。
XML中的實體引用有5個。其中”<” 號和”&”號是必須使用實體引用外,其他三個符號不是必須的,但最好使用實體引用來代替,特別是”>”.
實體引用標識 | 被替換符號 | 語義 |
---|---|---|
< ; | < | 小於號 |
> ; | > | 大於號 |
& ; | & | 邏輯與 |
&apos ; | ‘ | 單引號 |
" ; | “ | 雙引號 |
7.XML中的註釋
語法
<!--這裏填註釋內容-->
8.XML命名規則
XML的元素命名規則
* 名稱可以包含字母,數字,字符
* 名稱不能以數字或者標點符號開始
* 名稱不能以xml字樣開始,無論大小寫,只要是xml這三個字母,都不可以。
* 名稱不能包含空格
8.1命名習慣
兩個以上單詞組成的名稱應以下劃線在分割單詞,以提高閱讀性
如:`bookname ----> <book_name>`
如果是”-“,”.”,”:”這三種字符的話,可能會在某些軟件中出現誤識別,執行別的語義操作。
9.XML的屬性和元素的區別和使用建議
引用上面的例子
①
<learn_note date="12/5/2017">
<target>
learn xml
</target>
</learn_note>
②
<learn_note >
<date>
12/5/2017
</date>
<target>
learn xml
</target>
</learn_note>
例子①中的屬性date和②中的元素date都表達了相同的信息,其實這兩者在數據存儲上沒什麼區別。
但是呢,如果date的數據是在使用者角度來看應該是一個數據文檔中的數據,而不是一個對該數據文檔中的某個數據標籤的一個描述,建議擴展date,使之成爲一個元素,這樣子在數據的表達上更符合規範,且方便處理。
引用網上的理念:元數據(有關數據的數據)應當存儲爲屬性,而數據本身應當存儲爲元素。