XmlTextWriterとは? わかりやすく解説

XmlTextWriter クラス

W3C 勧告『Extensible Markup Language (XML) 1.0』および勧告『Namespaces in XML』に準拠する XML データを格納するストリームまたはファイルを高速に、非キャッシュで、前方向に生成する方法を提供するライタを表します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Class XmlTextWriter
    Inherits XmlWriter
Dim instance As XmlTextWriter
public class XmlTextWriter : XmlWriter
public class XmlTextWriter extends XmlWriter
public class XmlTextWriter extends
 XmlWriter
解説解説

このクラスは、XmlWriter クラスを実装します。

XmlTextWriter は、現在の要素スタックで定義されたすべての名前空間に対応する名前空間スタックを保持します。XmlTextWriter を使用すると、手動で名前空間を宣言できます。

 w.WriteStartElement("root");
 w.WriteAttributeString("xmlns", "x", null, "urn:1");
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
 w.WriteEndElement();

上記の C# コードで、次の出力が生成されます。XmlTextWriter は、名前空間宣言をルート要素に昇格させ、2 つの子要素で重複しないようにします。子要素は、名前空間宣言からプリフィックスをピック アップします。

 <root xmlns:x="urn:1">
  <x:item/>
  <x:item/>
 </x:root>

XmlTextWriter を使用すると、現在の名前空間宣言をオーバーライドできます。名前空間 URI "123" が "abc" でオーバーライドされ、XML 要素 <x:node xmlns:x="abc"/> を作成する例を次に示します。

 w.WriteStartElement("x","node","123");
 w.WriteAttributeString("xmlns","x",null,"abc");

プリフィックスを引数として取得する書き込みメソッドを使用して、使用するプリフィックスを指定することもできます。2 つの異なるプリフィックスを同じ名前空間 URI に割り当て、XML テキスト <x:root xmlns:x="urn:1"><y:item xmlns:y="urn:1"/></x:root> を作成する例を次に示します。

 XmlTextWriter w = new XmlTextWriter(Console.Out);
 w.WriteStartElement("x","root","urn:1");
  w.WriteStartElement("y","item","urn:1");
  w.WriteEndElement();
 w.WriteEndElement();
 w.Close();

異なるプリフィックスを同じ名前空間 URI に割り当てる複数の名前空間宣言がある場合、XmlTextWriter は、名前空間宣言のスタックを逆方向に検索し、最も近いものを選択します。

 XmlTextWriter w = new XmlTextWriter(Console.Out);
 w.Formatting = Formatting.Indented;
 w.WriteStartElement("x","root","urn:1");
 w.WriteStartElement("y","item","urn:1");
 w.WriteAttributeString("attr","urn:1","123");
 w.WriteEndElement();
 w.WriteEndElement();
 w.Close();

上記の C# の例では、WriteAttributeString 呼び出しでプリフィックスを指定しないため、ライタは、名前空間スタックに最後にプッシュされたプリフィックスを使用し、次の XML を作成します。

 <x:root xmlns:x="urn:1">
  <y:item y:attr="123" xmlns:y="urn:1" />
 </x:root>

名前空間の競合が発生すると、XmlTextWriter は、代替プリフィックスを生成して競合を解決します。たとえば、属性と要素のプリフィックスが同じで、名前空間が異なる場合、XmlWriter は、属性に対し代替プリフィックスを生成します。生成されたプリフィックスには、n{i} という名前が付けられます。i は 1 から始まる数字です。この数字は、要素ごとに 1 にリセットされます。

名前空間 URI に関連付けられる属性は、プリフィックスを持つ必要があります (既定の名前空間は属性に適用されません)。これは、W3C 勧告『Namespaces in XML』のセクション 5.2 に準拠します。属性が名前空間 URI を参照していても、プリフィックスを指定していない場合は、ライタが属性のプリフィックスを生成します。

空の要素を書き込むと、タグ名と終了タグの間に <item /> などの空白が追加されます。これにより、以前のバージョンのブラウザとの互換性を保つことができます。

String をメソッド パラメータとして使用すると、null 参照 (Visual Basic では Nothing) と String.Empty は等しくなります。String.Empty は、W3C の規則に準拠します。

厳密に型指定されたデータを書き込むには、XmlConvert クラスを使用してデータ型を文字列に変換します。たとえば、次に示す C# コードは、データを Double から String に変換し、要素 <price>19.95</price> を書き込みます。

 Double price = 19.95;
 writer.WriteElementString("price", XmlConvert.ToString(price));

XmlTextWriter は次のことをチェックしません。

XML の書き込みに関する詳細については、「XmlWriter による XML の書き方」を参照してください。

セキュリティについての考慮事項
継承階層継承階層
System.Object
   System.Xml.XmlWriter
    System.Xml.XmlTextWriter
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlTextWriter コンストラクタ (String, Encoding)

指定したファイルを使用して、XmlTextWriter クラスのインスタンスを作成します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentException

エンコーディングがサポートされていません。ファイル名が空で、空白しか含んでいないか、無効な文字を 1 つ以上含んでいます。

UnauthorizedAccessException

アクセスが拒否されました。

ArgumentNullException

ファイル名が null 参照 (Visual Basic では Nothing) です。

DirectoryNotFoundException

書き込むディレクトリが見つかりません。

IOException

ファイル名には、ファイル名、ディレクトリ名、またはボリューム ラベルの不正な構文または無効な構文が含まれています。

SecurityException

呼び出し元に、必要なアクセス許可がありません。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlTextWriter コンストラクタ (TextWriter)

指定した TextWriter を使用して XmlTextWriter クラスのインスタンスを作成します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

public XmlTextWriter (
    TextWriter w
)
public:
XmlTextWriter (
    TextWriter^ w
)
public XmlTextWriter (
    TextWriter w
)
public function XmlTextWriter (
    w : TextWriter
)

パラメータ

w

書き込む TextWriter。TextWriter が既に正しいエンコーディングに設定されていることを前提にしています。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlTextWriter コンストラクタ (Stream, Encoding)

指定したストリームおよびエンコーディングを使用して、XmlTextWriter クラスのインスタンスを作成します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentException

エンコーディングがサポートされていないか、ストリームに書き込むことができません。

ArgumentNullException

w が null 参照 (Visual Basic では Nothing) です。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlTextWriter コンストラクタ


XmlTextWriter プロパティ


XmlTextWriter メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 このストリームおよび基になるストリームを閉じます。
パブリック メソッド Create  オーバーロードされます。 新しい XmlWriter インスタンスを作成します。 ( XmlWriter から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Flush オーバーライドされます。 バッファ内のデータをすべて基になるストリームにフラッシュし、基になるストリームもフラッシュします。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド LookupPrefix オーバーライドされます。 名前空間 URI の現在の名前空間スコープで定義されたものに最も近いプリフィックスを返します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
パブリック メソッド WriteAttributes  派生クラスによってオーバーライドされると、XmlReader の現在の位置で見つかったすべての属性を書き込みます。 ( XmlWriter から継承されます。)
パブリック メソッド WriteAttributeString  オーバーロードされます。 派生クラスでオーバーライドされると、指定した値の属性を書き込みます。 ( XmlWriter から継承されます。)
パブリック メソッド WriteBase64 オーバーライドされます。 指定したバイナリ バイトを base64 としてエンコードし、その結果生成されるテキストを書き込みます。
パブリック メソッド WriteBinHex オーバーライドされます。 指定したバイナリ バイトを binhex としてエンコードし、その結果生成されるテキストを書き込みます。
パブリック メソッド WriteCData オーバーライドされます。 指定したテキストを格納する <![CDATA[...]]> ブロックを書き込みます。
パブリック メソッド WriteCharEntity オーバーライドされます。 指定した Unicode 文字値の文字エンティティを強制的に生成します。
パブリック メソッド WriteChars オーバーライドされます。 一度に 1 つのバッファにテキストを書き込みます。
パブリック メソッド WriteComment オーバーライドされます。 指定したテキストを格納するコメント <!--...--> を書き込みます。
パブリック メソッド WriteDocType オーバーライドされます。 名前とオプション属性を指定して、DOCTYPE 宣言を書き込みます。
パブリック メソッド WriteElementString  オーバーロードされます。 派生クラスでオーバーライドされると、文字列値を含む要素を書き込みます。 ( XmlWriter から継承されます。)
パブリック メソッド WriteEndAttribute オーバーライドされます。 前の WriteStartAttribute 呼び出しを閉じます。
パブリック メソッド WriteEndDocument オーバーライドされます。 開いている要素または属性を閉じ、ライタを Start 状態に戻します。
パブリック メソッド WriteEndElement オーバーライドされます。 1 つの要素を閉じ、対応する名前空間スコープをポップします。
パブリック メソッド WriteEntityRef オーバーライドされます。 &name; のようにエンティティ参照を書き込みます。
パブリック メソッド WriteFullEndElement オーバーライドされます。 1 つの要素を閉じ、対応する名前空間スコープをポップします。
パブリック メソッド WriteName オーバーライドされます。 指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な名前であることを確認して、それを書き込みます。
パブリック メソッド WriteNmToken オーバーライドされます。 指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な NmToken であることを確認して、それを書き込みます。
パブリック メソッド WriteNode  オーバーロードされます。 ソース オブジェクトから現在のライタのインスタンスにすべてをコピーします。 ( XmlWriter から継承されます。)
パブリック メソッド WriteProcessingInstruction オーバーライドされます。 <?name text?> のように、name と text の間に空白を入れた処理命令を書き込みます。
パブリック メソッド WriteQualifiedName オーバーライドされます。 名前空間の限定名を書き込みます。このメソッドは、指定した名前空間のスコープ内にあるプリフィックスを検索します。
パブリック メソッド WriteRaw オーバーロードされます。 オーバーライドされます。 手動で生のマークアップを書き込みます。
パブリック メソッド WriteStartAttribute オーバーロードされます。 属性の開始を書き込みます。
パブリック メソッド WriteStartDocument オーバーロードされます。 オーバーライドされます。 バージョン "1.0" で XML 宣言を書き込みます。
パブリック メソッド WriteStartElement オーバーロードされます。 指定した開始タグを書き込みます。
パブリック メソッド WriteString オーバーライドされます。 指定したテキストの内容を書き込みます。
パブリック メソッド WriteSurrogateCharEntity オーバーライドされます。 サロゲート文字ペアのサロゲート文字エンティティを生成し、書き込みます。
パブリック メソッド WriteValue  オーバーロードされます。 単一の単純型の値を書き込みます。 ( XmlWriter から継承されます。)
パブリック メソッド WriteWhitespace オーバーライドされます。 指定した空白を書き込みます。
プロテクト メソッドプロテクト メソッド
参照参照

XmlTextWriter メンバ

W3C 勧告『Extensible Markup Language (XML) 1.0』および勧告『Namespaces in XML』に準拠する XML データを格納するストリームまたはファイルを高速に、非キャッシュで、前方向に生成する方法を提供するライタを表します。

XmlTextWriter データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド XmlTextWriter オーバーロードされます。 XmlTextWriter クラスのインスタンスを作成します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 このストリームおよび基になるストリームを閉じます。
パブリック メソッド Create  オーバーロードされます。 新しい XmlWriter インスタンスを作成します。 (XmlWriter から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド Flush オーバーライドされます。 バッファ内のデータをすべて基になるストリームにフラッシュし、基になるストリームもフラッシュします。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド LookupPrefix オーバーライドされます。 名前空間 URI の現在の名前空間スコープで定義されたものに最も近いプリフィックスを返します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
パブリック メソッド WriteAttributes  派生クラスによってオーバーライドされると、XmlReader の現在の位置で見つかったすべての属性を書き込みます。 (XmlWriter から継承されます。)
パブリック メソッド WriteAttributeString  オーバーロードされます。 派生クラスでオーバーライドされると、指定した値の属性を書き込みます。 (XmlWriter から継承されます。)
パブリック メソッド WriteBase64 オーバーライドされます。 指定したバイナリ バイトを base64 としてエンコードし、その結果生成されるテキストを書き込みます。
パブリック メソッド WriteBinHex オーバーライドされます。 指定したバイナリ バイトを binhex としてエンコードし、その結果生成されるテキストを書き込みます。
パブリック メソッド WriteCData オーバーライドされます。 指定したテキストを格納する <![CDATA[...]]> ブロックを書き込みます。
パブリック メソッド WriteCharEntity オーバーライドされます。 指定した Unicode 文字値の文字エンティティを強制的に生成します。
パブリック メソッド WriteChars オーバーライドされます。 一度に 1 つのバッファにテキストを書き込みます。
パブリック メソッド WriteComment オーバーライドされます。 指定したテキストを格納するコメント <!--...--> を書き込みます。
パブリック メソッド WriteDocType オーバーライドされます。 名前とオプション属性を指定して、DOCTYPE 宣言を書き込みます。
パブリック メソッド WriteElementString  オーバーロードされます。 派生クラスでオーバーライドされると、文字列値を含む要素を書き込みます。 (XmlWriter から継承されます。)
パブリック メソッド WriteEndAttribute オーバーライドされます。 前の WriteStartAttribute 呼び出しを閉じます。
パブリック メソッド WriteEndDocument オーバーライドされます。 開いている要素または属性を閉じ、ライタを Start 状態に戻します。
パブリック メソッド WriteEndElement オーバーライドされます。 1 つの要素を閉じ、対応する名前空間スコープをポップします。
パブリック メソッド WriteEntityRef オーバーライドされます。 &name; のようにエンティティ参照を書き込みます。
パブリック メソッド WriteFullEndElement オーバーライドされます。 1 つの要素を閉じ、対応する名前空間スコープをポップします。
パブリック メソッド WriteName オーバーライドされます。 指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な名前であることを確認して、それを書き込みます。
パブリック メソッド WriteNmToken オーバーライドされます。 指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な NmToken であることを確認して、それを書き込みます。
パブリック メソッド WriteNode  オーバーロードされます。 ソース オブジェクトから現在のライタのインスタンスにすべてをコピーします。 (XmlWriter から継承されます。)
パブリック メソッド WriteProcessingInstruction オーバーライドされます。 <?name text?> のように、name と text の間に空白を入れた処理命令を書き込みます。
パブリック メソッド WriteQualifiedName オーバーライドされます。 名前空間の限定名を書き込みます。このメソッドは、指定した名前空間のスコープ内にあるプリフィックスを検索します。
パブリック メソッド WriteRaw オーバーロードされます。 オーバーライドされます。 手動で生のマークアップを書き込みます。
パブリック メソッド WriteStartAttribute オーバーロードされます。 属性の開始を書き込みます。
パブリック メソッド WriteStartDocument オーバーロードされます。 オーバーライドされます。 バージョン "1.0" で XML 宣言を書き込みます。
パブリック メソッド WriteStartElement オーバーロードされます。 指定した開始タグを書き込みます。
パブリック メソッド WriteString オーバーライドされます。 指定したテキストの内容を書き込みます。
パブリック メソッド WriteSurrogateCharEntity オーバーライドされます。 サロゲート文字ペアのサロゲート文字エンティティを生成し、書き込みます。
パブリック メソッド WriteValue  オーバーロードされます。 単一の単純型の値を書き込みます。 (XmlWriter から継承されます。)
パブリック メソッド WriteWhitespace オーバーライドされます。 指定した空白を書き込みます。
プロテクト メソッドプロテクト メソッド
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「XmlTextWriter」の関連用語

XmlTextWriterのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlTextWriterのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS