您好,登錄后才能下訂單哦!
XML代碼編寫(xiě)的編碼與驗(yàn)證問(wèn)題都有什么?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
編碼
編碼就是轉(zhuǎn)換 Unicode 字符為等價(jià)二進(jìn)制表示的過(guò)程。XML 處理程序讀取一個(gè) XML 文檔時(shí),它依賴于編碼類型來(lái)編碼文檔。因此,我們需要在 XML 聲明中指定編碼類型。
編碼類型
主要有兩種類型的編碼:
UTF-8
UTF-16
UTF 表示 UCS 轉(zhuǎn)換格式,而 UCS 本身的意義是通用字符集。編號(hào) 8 或者 16 表示呈現(xiàn)字符的比特?cái)?shù)。它們是 8(一個(gè)字節(jié))或者 16(兩個(gè)字節(jié))。對(duì)于沒(méi)有編碼信息的文檔,默認(rèn)使用 UTF-8。
語(yǔ)法
編碼信息包含在 XML 文檔的序言部分。UTF-8 編碼的語(yǔ)法如下:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
UTF-16 編碼語(yǔ)法如下:
<?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)證 就是對(duì) XML 文檔進(jìn)行驗(yàn)證的過(guò)程。如果文檔內(nèi)容與元素,屬性和關(guān)聯(lián)的文檔類型定義(DTD)匹配,以及文檔符合b表達(dá)的約束則該文檔被認(rèn)為是有效的。通過(guò) XML 解析器處理驗(yàn)證的方式有兩種。分別是:
格式良好的 XML 文檔
有效的 XML 文檔
格式良好的 XML 文檔
如果 XML 文檔遵守以下規(guī)則則被認(rèn)為是格式良好的。
沒(méi)有 DTD 的 XML 文檔必須使用預(yù)定義的字符實(shí)體處理 amp(&),apos(單引號(hào)),g(>),quot(雙引號(hào))。
必須遵循標(biāo)簽的順序,比如內(nèi)部標(biāo)簽必須在外部標(biāo)簽閉合之前閉合。
每個(gè)開(kāi)始標(biāo)簽必須都有一個(gè)結(jié)束標(biāo)簽或者必須是一個(gè)自閉合標(biāo)簽(<title>...</title> 或者 <title />)。
在開(kāi)始標(biāo)簽中必須只能有一個(gè)屬性,并且需要使用引號(hào)包裹。
除了amp(&),apos(單引號(hào)),g(>),quot(雙引號(hào))實(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)簽的順序正確。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。