中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XML序列化的優缺點是什么

發布時間:2021-12-18 21:50:56 來源:億速云 閱讀:191 作者:柒染 欄目:編程語言

XML序列化的優缺點是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

在XML序列化中我們會用到 XmlSerializer類,它在您將對象序列化為 XML 時為您提供完整而靈活的控制。如果您正在創建 XML Web services,則可以將控制序列化的屬性應用于類和成員以確保 XML 輸出符合特定的架構。

1、XML序列化之XmlSerializer使用所帶來的好處:

◆指定應將字段或屬性編碼為特性還是元素。

◆指定要使用的 XML 命名空間。

◆如果字段或屬性名不合適,則指定元素或特性的名稱。

◆XML序列化的另一個好處是:只要生成的XML流符合給定的架構,則對于所開發的應用程序就沒有約束。假定有這樣一個用于描述圖書的架構,它具有標題、作者、出版商和 ISBN 編號元素。您可以開發一個以您希望的任何方式(例如,作為圖書訂單,或作為圖書清單)處理 XML 數據的應用程序。在任一種情況下,***的要求是 XML 流應當符合指定的 XML 架構定義語言 (XSD) 架構。

2、XML 序列化注意事項:使用 XmlSerializer 類時,應考慮下列情況

◆序列化數據只包含數據本身以及類的結構。不包括類型標識和程序集信息。

◆只能序列化公共屬性和字段。如果需要序列化非公共數據,請使用 BinaryFormatter 類而不是 XML 序列化。

◆類必須有一個將由 XmlSerializer 序列化的默認構造函數。

◆不能序列化方法。

XmlSerializer 可以以不同方式處理實現 IEnumerable 或 ICollection 的類(條件是這些類滿足某些要求)。實現 IEnumerable 的類必須實現帶單個參數的公共 Add 方法。Add 方法的參數必須與從 GetEnumerator 方法返回的 IEnumerator.Current 屬性所返回的類型一致(多態)。除實現 IEnumerable 外還實現 ICollection 的類(如 CollectionBase)必須有一個取整數的公共 Item 索引屬性(在 C# 中為索引器),并且它必須有一個整數類型的公共 Count 屬性。傳遞給 Add 方法的參數必須與從 Item 屬性返回的類型相同或與該類型的某個基的類型相同。對于實現 ICollection 的類,要序列化的值將從索引 Item 屬性檢索,而不是通過調用 GetEnumerator 來檢索。另外請注意,除返回另一個集合類(實現 ICollection 的集合類)的公共字段之外,將不序列化公共字段和屬性。有關示例,請參見 XML 序列化的示例。
XSD 數據類型映射

標題為“XML Schema Part 2: Datatypes”的萬維網聯合會 (http://www.w3.org/) 文檔指定在 XML 架構定義語言 (XSD) 架構中允許使用的簡單數據類型。對于這些數據類型中的許多類型(例如,int 和 decimal),在 .NET Framework 中都有對應的數據類型。但是,某些 XML 數據類型在 .NET Framework 中沒有對應的數據類型(例如,NMTOKEN 數據類型)。在這樣的情況下,如果使用 XML 架構定義工具 (Xsd.exe) 從架構生成類,就會將適當的特性應用于字符串類型的成員,并會將其 DataType 屬性設置為 XML 數據類型名稱。例如,如果架構包含一個數據類型為 XML 數據類型 NMTOKEN 的、名為“MyToken”的元素,則生成的類可能包含以下示例中的成員。

[Visual Basic]<XmlElement(DataType:="NMTOKEN")>Public MyToken As String[C#][XmlElement(DataType = "NMTOKEN")]public string MyToken;與此類似,如果創建一個必須符合特定 XML 架構 (XSD) 的類,應當應用適當的特性并將它的 DataType 屬性設置為所需的 XML 數據類型名稱。

關于XML序列化的優缺點是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

xml
AI

呼伦贝尔市| 丰镇市| 木里| 商南县| 阿拉善左旗| 凯里市| 包头市| 泽州县| 鹿泉市| 宾川县| 花垣县| 玉山县| 双桥区| 永城市| 三穗县| 将乐县| 延庆县| 贵州省| 印江| 谷城县| 东乌珠穆沁旗| 富锦市| 博罗县| 视频| 惠安县| 安龙县| 博野县| 饶河县| 济阳县| 郯城县| 临朐县| 亚东县| 平利县| 永德县| 东兴市| 成都市| 隆昌县| 枣庄市| 崇明县| 河间市| 隆子县|