目次
本文
.NETでXMLを扱うためのテクノロジー概要
構造(DOM)
- XmlDocument
- .NET Framework 1.1以降
- Microsoft の DOM 実装
- インメモリ
- 継承:XmlDocument->XmlNode
- 関連:XmlElement
- XmlDocument クラス (System.Xml) | Microsoft Learn
- XML ドキュメント オブジェクト モデル (DOM) - .NET | Microsoft Learn
- 読み込み例
new XmlDocument().Load(filePath)
new XmlDocument().LoadXml(xmlText)
- XDocument
- .NET Framework 3.5以降
- LINQ to XML のために再設計された DOM 実装
- インメモリ
- 継承:XDocument->XContainer->XNode->XObject
- 関連:XElement / XAttribute
- XDocument Class (System.Xml.Linq) | Microsoft Learn
- XDocument クラスの概要 - .NET | Microsoft Learn
- 読み込み例
XDocument.Load(stream)
/(filePath)
/(xmlReader)
/(textReader)
XElement.Load(stream)
/(filePath)
/(xmlReader)
/(textReader)
XMLの読み書き
- XmlWriter / XmlReader
- .NET Framework 1.1以降
- 高速、非キャッシュ、前方参照専用の XML データアクセス手段(パーサー)
- 高速、非キャッシュ、順方向専用の XML データ生成手段(パーサー)
- XMLデータを読み書きする機構
- ストリーム
- TextWriter / TextReader
- .NET Framework 1.1以降
- 文字を書き込むWriterの抽象クラス
- StreamWriter / StringWriter など
操作
- LINQ to XML
- .NET Framework 3.5以降
- DOMへのLINQクエリ式を使った編集/アクセス手段
- XDocumentなども含まれる
- インメモリ
- LINQ to XMLはXmlReaderの上に実装されており、両者は緊密に統合されている
- XMLデータの読み書きはDOM(XDocumentなど)の方から実行する
- 概要 - LINQ to XML - .NET | Microsoft Learn
- LINQ to XML およびDOM - .NET | Microsoft Learn
- LINQ to XML とその他の XML テクノロジ - .NET | Microsoft Learn
- ファイル、TextWriter、XmlWriter にシリアル化する - LINQ to XML - .NET | Microsoft Learn
シリアライズ/デシリアライズ
- XmlSerializer
- .NET Framework 1.1以降
- オブジェクトとXMLデータの相互変換
- パブリックメンバのみ、Dictionaryなど扱えない型があるなどの制約
- XMLデータを属性で細かく調整可能
- XmlSerializer クラス (System.Xml.Serialization) | Microsoft Learn
- XML シリアル化の詳細 - .NET | Microsoft Learn
- XML シリアル化の例 - .NET | Microsoft Learn
- DataContractSerializer
- .NET Framework 3.0以降
- プライベートメンバやDictionaryにも対応
- XMLデータの順序が厳密
- DataContractSerializer クラス (System.Runtime.Serialization) | Microsoft Learn