System.Xml.XmlConvert 類別

本文提供此 API 參考文件的補充備註。

類別 XmlConvert 的功能相當於 Convert 類別,但它支援 XML 標準。 這種型別系統的架構是 XML 結構描述定義語言 (XSD) 的結構描述型別,因此傳回的值一律不受地區設定影響。

編碼和譯碼

元素和屬性名稱或識別碼值會根據 W3C XML 1.0 建議限製為 XML 字元的範圍。 當名稱包含無效的字元時,您可以使用 EncodeName 這個類別中的 和 DecodeName 方法,將它們轉譯成有效的 XML 名稱。

例如,如果您想要在資料庫中使用數據行標題「訂單詳細數據」,資料庫會允許兩個單字之間的空間。 不過,在 XML 中,“Order” 與 “Detail” 之間的空格會被視為無效的 XML 字元。 您必須將它轉換成逸出的十六進位編碼,並在稍後譯碼。

您可以使用 EncodeName 方法搭配 XmlWriter 類別,以確保寫入的名稱是有效的 XML 名稱。 下列 C# 程式代碼會將名稱 「Order Detail」 轉換成有效的 XML 名稱,並寫入 專案 <Order_0x0020_Detail>My order</Order_0x0020_Detail>

writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

下列 XmlConvert 方法會執行編碼和譯碼。

方法 描述
EncodeName 取得名稱並傳回編碼的名稱,以及逸出字串所取代的任何無效字元。 此方法允許任何位置的冒號,這表示根據 XML 1.0 建議中的 W3C 命名空間,名稱可能仍然無效。
EncodeNmToken 接受名稱並傳回編碼的名稱。
EncodeLocalName EncodeName 相同,不同之處在於它也會編碼冒號字元,保證名稱可以當做 LocalName 命名空間限定名稱的一部分使用。
DecodeName 反轉所有編碼方法的轉換。

名稱驗證

類別 XmlConvert 包含兩種方法來檢查元素或屬性名稱中的字元,並確認名稱符合 W3C XML 1.0 建議所設定的規則:

  • VerifyName 會檢查字元,並驗證名稱是否有效。 如果名稱有效,方法會傳回名稱,如果不是,則會擲回例外狀況。
  • VerifyNCName 會執行相同的驗證,但接受非限定名稱。

XmlConvert包含驗證令牌、空格符、公用標識元和其他字串的其他方法。

資料型別轉換

XmlConvert 也提供方法,可讓您將數據從字串轉換成強型別數據類型。 例如, ToDateTime 方法會將字串轉換成它的 DateTime 對等專案。 這很實用,因為類別中的 XmlReader 大部分方法都會以字串傳回數據。 讀取數據之後,就可以先轉換成適當的數據類型,再使用。 多 ToString 載會將強型別數據轉換成字串,以提供互補作業。 例如,當您想要將數據新增至網頁上的文字框時,這會很有用。 數據轉換期間不會考慮地區設定。 數據類型是以 XML 架構 (XSD) 資料類型為基礎。