淺談XML代碼編寫的編碼與驗(yàn)證問題

編碼
編碼就是轉(zhuǎn)換 Unicode 字符為等價(jià)二進(jìn)制表示的過程。XML 處理程序讀取一個(gè) XML 文檔時(shí),它依賴于編碼類型來編碼文檔。因此,我們需要在 XML 聲明中指定編碼類型。
編碼類型
主要有兩種類型的編碼:
UTF-8
UTF-16
UTF 表示 UCS 轉(zhuǎn)換格式,而 UCS 本身的意義是通用字符集。編號 8 或者 16 表示呈現(xiàn)字符的比特?cái)?shù)。它們是 8(一個(gè)字節(jié))或者 16(兩個(gè)字節(jié))。對于沒有編碼信息的文檔,默認(rèn)使用 UTF-8。
語法
編碼信息包含在 XML 文檔的序言部分。UTF-8 編碼的語法如下:
- <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
UTF-16 編碼語法如下:
- <?xml version="1.0" encoding="UTF-16" standalone="no" ?>
示例
下面的例子展示了編碼聲明:
- <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <contact-info>
- <name>Tanmay Patil</name>
- <company>TutorialsPoint</company>
- <phone>(011) 123-4567</phone>
- </contact-info>
在上面的 encoding="UTF-8" 示例中,指定使用 8 位表示字符。要使用 16 為表示字符,可以使用 UTF-16 編碼。
使用 UTF-8 編碼的 XML 文件尺寸比 UTF-16 格式的文件更小。
驗(yàn)證
驗(yàn)證 就是對 XML 文檔進(jìn)行驗(yàn)證的過程。如果文檔內(nèi)容與元素,屬性和關(guān)聯(lián)的文檔類型定義(DTD)匹配,以及文檔符合b表達(dá)的約束則該文檔被認(rèn)為是有效的。通過 XML 解析器處理驗(yàn)證的方式有兩種。分別是:
格式良好的 XML 文檔
有效的 XML 文檔
格式良好的 XML 文檔
如果 XML 文檔遵守以下規(guī)則則被認(rèn)為是格式良好的。
沒有 DTD 的 XML 文檔必須使用預(yù)定義的字符實(shí)體處理 amp(&),apos(單引號),g(>),quot(雙引號)。
必須遵循標(biāo)簽的順序,比如內(nèi)部標(biāo)簽必須在外部標(biāo)簽閉合之前閉合。
每個(gè)開始標(biāo)簽必須都有一個(gè)結(jié)束標(biāo)簽或者必須是一個(gè)自閉合標(biāo)簽(<title>...</title> 或者 <title />)。
在開始標(biāo)簽中必須只能有一個(gè)屬性,并且需要使用引號包裹。
除了amp(&),apos(單引號),g(>),quot(雙引號)實(shí)體之外其他的必須先聲明再使用。
示例
下面是一個(gè)格式良好的 XML 文檔示例:
- <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!DOCTYPE address
- [
- <!ELEMENT address (name,company,phone)>
- <!ELEMENT name (#PCDATA)>
- <!ELEMENT company (#PCDATA)>
- <!ELEMENT phone (#PCDATA)>
- ]>
- <address>
- <name>Tanmay Patil</name>
- <company>TutorialsPoint</company>
- <phone>(011) 123-4567</phone>
- </address>
上面的示例被認(rèn)為是格式良好的,因?yàn)椋?/p>
它定義了文檔類型。并且這里文檔類型是元素類型。
包含一個(gè)名為 address 的根元素。
每個(gè)子元素 name,company 和 phone 都是一個(gè)自解釋正確閉合的標(biāo)簽。
標(biāo)簽的順序正確。
相關(guān)文章
- 這篇文章主要介紹了XML中的處理指令,處理指令在XML中并不常用,稍作了解即可,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML對代碼中的空白處理,文中介紹到了XML書寫中的有效空白與無效空白的區(qū)分,需要的朋友可以參考下2016-02-14
深入解析XML中的字符實(shí)體與字符數(shù)據(jù)
這篇文章主要介紹了XML中的字符實(shí)體與字符數(shù)據(jù),文中所說的CDATA片段即是指字符數(shù)據(jù)即不由解析器解析的文本塊,需要的朋友可以參考下2016-02-14- 這篇文章主要介紹了詳解XML中的代碼注釋書寫方法,文章中總結(jié)了注釋使用的一些注意點(diǎn),比如XML不支持嵌套注釋等,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的屬性學(xué)習(xí)教程,包括使用屬性將數(shù)據(jù)存儲(chǔ)在子元素中的例子,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的標(biāo)簽與元素的使用,是XML入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的文檔與聲明用法,是XML入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-04
- 這篇文章主要介紹了XML標(biāo)記語言的基本概念及語法入門教程,XML同時(shí)也被廣泛用作標(biāo)記數(shù)據(jù)來作為XML數(shù)據(jù)交換格式,需要的朋友可以參考下2016-02-04