溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

XML代碼編寫(xiě)的編碼與驗(yàn)證問(wèn)題都有什么

發(fā)布時(shí)間:2020-07-09 15:23:11 來(lái)源:億速云 閱讀:136 作者:Leah 欄目:編程語(yǔ)言

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ì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI