この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

XmlWriter クラス

 

公開日: 2016年10月

XML データが格納されたストリームまたはファイルを、高速かつ非キャッシュで前方のみに生成する方法を提供するライターを表します。

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


public abstract class XmlWriter : IDisposable

名前説明
System_CAPS_protmethodXmlWriter()

XmlWriter クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertySettings

この XmlWriter インスタンスを作成するために使用された XmlWriterSettings オブジェクトを取得します。

System_CAPS_pubpropertyWriteState

派生クラスでオーバーライドされると、ライターの状態を取得します。

System_CAPS_pubpropertyXmlLang

派生クラスでオーバーライドされると、取得、現在 xml:lang スコープ。

System_CAPS_pubpropertyXmlSpace

派生クラスでオーバーライドされると、 XmlSpace 現在を表す xml:space スコープ。

名前説明
System_CAPS_pubmethodClose()

派生クラスでオーバーライドされると、このストリームと基になるストリームを閉じます。

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream)

新たに作成 XmlWriter インスタンスの指定のストリームを使用します。

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream, XmlWriterSettings)

新たに作成 XmlWriter ストリームを使用してインスタンスと XmlWriterSettings オブジェクトです。

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

新たに作成 XmlWriter インスタンスの指定したファイル名を使用します。

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, XmlWriterSettings)

新たに作成 XmlWriter インスタンス ファイル名を使用して、 XmlWriterSettings オブジェクトです。

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder)

新しい XmlWriter インスタンスの指定を使用して StringBuilderします。

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder, XmlWriterSettings)

新しい XmlWriter インスタンスを使用して、 StringBuilderXmlWriterSettings オブジェクトです。

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter)

新しい XmlWriter インスタンスの指定を使用して TextWriterします。

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter, XmlWriterSettings)

新しい XmlWriter インスタンスを使用して、 TextWriterXmlWriterSettings オブジェクトです。

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter)

新しい XmlWriter インスタンスの指定を使用して XmlWriter オブジェクトです。

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter, XmlWriterSettings)

新たに作成 XmlWriter インスタンスの指定を使用して XmlWriterXmlWriterSettings オブジェクトです。

System_CAPS_pubmethodDispose()

XmlWriter クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

System_CAPS_protmethodDispose(Boolean)

XmlWriter によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

オブジェクトが、ガベージ コレクションによって収集される前に、リソースの解放とその他のクリーンアップ操作の実行を試みることができるようにします。(Object から継承されます。)

System_CAPS_pubmethodFlush()

派生クラスでオーバーライドされると、バッファー内のデータをすべて基になるストリームにフラッシュし、基になるストリームもフラッシュします。

System_CAPS_pubmethodFlushAsync()

バッファー内のデータをすべて基になるストリームに非同期にフラッシュし、基になるストリームもフラッシュします。

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodLookupPrefix(String)

派生クラスでオーバーライドされると、名前空間 URI の現在の名前空間スコープで定義された最も近いプリフィックスを返します。

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

System_CAPS_pubmethodWriteAttributes(XmlReader, Boolean)

派生クラスでオーバーライドされると、現在位置で見つかったすべての属性を書き込みます、 XmlReaderです。

System_CAPS_pubmethodWriteAttributesAsync(XmlReader, Boolean)

現在位置で見つかったすべての属性を非同期に書き込みます、 XmlReaderです。

System_CAPS_pubmethodWriteAttributeString(String, String)

派生クラスでオーバーライドされると、指定したローカル名と値の属性を書き込みます。

System_CAPS_pubmethodWriteAttributeString(String, String, String)

派生クラスでオーバーライドされると、指定したローカル名、名前空間 URI、および値の属性を書き込みます。

System_CAPS_pubmethodWriteAttributeString(String, String, String, String)

派生クラスでオーバーライドされると、指定したプリフィックス、ローカル名、名前空間 URI、および値の属性を書き込みます。

System_CAPS_pubmethodWriteAttributeStringAsync(String, String, String, String)

指定されたプレフィックス、ローカル名、名前空間 URI、および値を使用して属性を非同期に書き込みます。

System_CAPS_pubmethodWriteBase64(Byte[], Int32, Int32)

派生クラスでオーバーライドされると、指定したバイナリ バイトを Base64 としてエンコードし、その結果生成されるテキストを書き込みます。

System_CAPS_pubmethodWriteBase64Async(Byte[], Int32, Int32)

指定したバイナリ バイトを base64 として非同期にエンコードし、その結果生成されるテキストを書き込みます。

System_CAPS_pubmethodWriteBinHex(Byte[], Int32, Int32)

派生クラスでオーバーライドされると、指定されたバイナリ バイトをエンコードとして BinHex し、生成されるテキストを書き込みます。

System_CAPS_pubmethodWriteBinHexAsync(Byte[], Int32, Int32)

として指定したバイナリ バイトを非同期にエンコード BinHex し、生成されるテキストを書き込みます。

System_CAPS_pubmethodWriteCData(String)

派生クラスでオーバーライドされると、指定したテキストを含む <![CDATA[...]]> ブロックを書き込みます。

System_CAPS_pubmethodWriteCDataAsync(String)

指定したテキストを格納する <![CDATA[...]]> ブロックを非同期に書き込みます。

System_CAPS_pubmethodWriteCharEntity(Char)

派生クラスでオーバーライドされると、指定した Unicode 文字値の文字エンティティを強制的に生成します。

System_CAPS_pubmethodWriteCharEntityAsync(Char)

指定した Unicode 文字値の文字エンティティを非同期に強制的に生成します。

System_CAPS_pubmethodWriteChars(Char[], Int32, Int32)

派生クラスでオーバーライドされると、一度に 1 つのバッファーにテキストを書き込みます。

System_CAPS_pubmethodWriteCharsAsync(Char[], Int32, Int32)

一度に 1 つのバッファーにテキストを非同期に書き込みます。

System_CAPS_pubmethodWriteComment(String)

派生クラスでオーバーライドされると、指定したテキストを格納している <!--...--> コメントを書き込みます。

System_CAPS_pubmethodWriteCommentAsync(String)

指定したテキストを含むコメント <!--...--> を非同期に書き込みます。

System_CAPS_pubmethodWriteDocType(String, String, String, String)

派生クラスでオーバーライドされると、指定した名前とオプションの属性を含む DOCTYPE 宣言を書き込みます。

System_CAPS_pubmethodWriteDocTypeAsync(String, String, String, String)

指定された名前とオプション属性を使用して DOC 宣言を非同期に書き込みます。

System_CAPS_pubmethodWriteElementString(String, String)

指定されたローカル名および値を使用して要素を書き込みます。

System_CAPS_pubmethodWriteElementString(String, String, String)

指定されたローカル名、名前空間 URI、および値を使用して要素を書き込みます。

System_CAPS_pubmethodWriteElementString(String, String, String, String)

指定されたプレフィックス、ローカル名、名前空間 URI、および値を使用して要素を書き込みます。

System_CAPS_pubmethodWriteElementStringAsync(String, String, String, String)

指定されたプレフィックス、ローカル名、名前空間 URI、および値を使用して要素を非同期に書き込みます。

System_CAPS_pubmethodWriteEndAttribute()

派生クラスでオーバーライドされると、終了前 WriteStartAttribute 呼び出します。

System_CAPS_protmethodWriteEndAttributeAsync()

非同期に閉じ、以前 WriteStartAttribute 呼び出します。

System_CAPS_pubmethodWriteEndDocument()

派生クラスでオーバーライドされると、開いている任意の要素または属性を閉じ、ライターを Start 状態に戻します。

System_CAPS_pubmethodWriteEndDocumentAsync()

開いている要素または属性を非同期に閉じ、ライターを Start 状態に戻します。

System_CAPS_pubmethodWriteEndElement()

派生クラスでオーバーライドされると、1 つの要素を閉じ、対応する名前空間スコープをポップします。

System_CAPS_pubmethodWriteEndElementAsync()

1 つの要素を非同期に閉じ、対応する名前空間スコープをポップします。

System_CAPS_pubmethodWriteEntityRef(String)

派生クラスでオーバーライドされるなどのエンティティ参照を書き込みます &name;します。

System_CAPS_pubmethodWriteEntityRefAsync(String)

などのエンティティ参照を非同期に書き込みます &name;します。

System_CAPS_pubmethodWriteFullEndElement()

派生クラスでオーバーライドされると、1 つの要素を閉じ、対応する名前空間スコープをポップします。

System_CAPS_pubmethodWriteFullEndElementAsync()

1 つの要素を非同期に閉じ、対応する名前空間スコープをポップします。

System_CAPS_pubmethodWriteName(String)

派生クラスでオーバーライドされると、指定した名前を書き込み、その名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な名前であるようにします。

System_CAPS_pubmethodWriteNameAsync(String)

指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な名前であることを確認し、それを非同期に書き込みます。

System_CAPS_pubmethodWriteNmToken(String)

派生クラスでオーバーライドされると、指定した名前を書き込み、その名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な NmToken であるようにします。

System_CAPS_pubmethodWriteNmTokenAsync(String)

指定した名前が W3C 勧告『XML 1.0』(http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) に準拠した有効な NmToken であることを確認し、それを非同期に書き込みます。

System_CAPS_pubmethodWriteNode(XmlReader, Boolean)

派生クラスでオーバーライドされると、リーダーのデータをすべてライターにコピーし、リーダーを次の兄弟の開始位置に移動します。

System_CAPS_pubmethodWriteNode(XPathNavigator, Boolean)

すべてをコピー、 XPathNavigator オブジェクト ライターに出力します。 位置、 XPathNavigator は変更されません。

System_CAPS_pubmethodWriteNodeAsync(XmlReader, Boolean)

派生クラスでオーバーライドされると、リーダーのデータをすべてライターに非同期にコピーし、リーダーを次の兄弟の開始位置に移動します。

System_CAPS_pubmethodWriteNodeAsync(XPathNavigator, Boolean)

すべてを非同期的にコピー、 XPathNavigator オブジェクト ライターに出力します。 位置、 XPathNavigator は変更されません。

System_CAPS_pubmethodWriteProcessingInstruction(String, String)

派生クラスでオーバーライドされた場合に次のように名前とテキスト間に空白が入った処理命令を書き込みます: <? テキストという名前を? >。

System_CAPS_pubmethodWriteProcessingInstructionAsync(String, String)

非同期に次のように名前とテキスト間に空白が入った処理命令を書き込みます: <? テキストという名前ですか? >。

System_CAPS_pubmethodWriteQualifiedName(String, String)

派生クラスでオーバーライドされると、名前空間の限定名を書き込みます。 このメソッドは、指定した名前空間のスコープ内にあるプレフィックスを検索します。

System_CAPS_pubmethodWriteQualifiedNameAsync(String, String)

名前空間の修飾名を非同期に書き込みます。 このメソッドは、指定した名前空間のスコープ内にあるプレフィックスを検索します。

System_CAPS_pubmethodWriteRaw(Char[], Int32, Int32)

派生クラスでオーバーライドされると、手動で文字バッファーから生のマークアップを書き込みます。

System_CAPS_pubmethodWriteRaw(String)

派生クラスでオーバーライドされると、手動で文字列から生のマークアップを書き込みます。

System_CAPS_pubmethodWriteRawAsync(Char[], Int32, Int32)

文字バッファーから手動で生のマークアップを非同期に書き込みます。

System_CAPS_pubmethodWriteRawAsync(String)

文字列から手動で生のマークアップを非同期に書き込みます。

System_CAPS_pubmethodWriteStartAttribute(String)

指定されたローカル名を使用して属性の開始を書き込みます。

System_CAPS_pubmethodWriteStartAttribute(String, String)

指定されたローカル名および名前空間 URI を使用して属性の開始を書き込みます。

System_CAPS_pubmethodWriteStartAttribute(String, String, String)

派生クラスでオーバーライドされると、指定されたプリフィックス、ローカル名、および名前空間 URI を使用して属性の開始を書き込みます。

System_CAPS_protmethodWriteStartAttributeAsync(String, String, String)

指定されたプレフィックス、ローカル名、および名前空間 URI を使用して属性の開始を非同期に書き込みます。

System_CAPS_pubmethodWriteStartDocument()

派生クラスでオーバーライドされると、バージョン "1.0" の XML 宣言を書き込みます。

System_CAPS_pubmethodWriteStartDocument(Boolean)

派生クラスでオーバーライドされると、バージョン "1.0" の XML 宣言とスタンドアロン属性を書き込みます。

System_CAPS_pubmethodWriteStartDocumentAsync()

バージョン "1.0" で XML 宣言を非同期に書き込みます。

System_CAPS_pubmethodWriteStartDocumentAsync(Boolean)

バージョン "1.0" とスタントアロン属性を使用して XML 宣言を非同期に書き込みます。

System_CAPS_pubmethodWriteStartElement(String)

派生クラスでオーバーライドされると、指定したローカル名の開始タグを書き込みます。

System_CAPS_pubmethodWriteStartElement(String, String)

派生クラスでオーバーライドされると、指定した開始タグを書き込み、指定した名前空間に関連付けます。

System_CAPS_pubmethodWriteStartElement(String, String, String)

派生クラスでオーバーライドされると、指定した開始タグを書き込み、指定した名前空間とプリフィックスに関連付けます。

System_CAPS_pubmethodWriteStartElementAsync(String, String, String)

指定した開始タグを非同期に書き込み、指定した名前空間とプレフィックスに関連付けます。

System_CAPS_pubmethodWriteString(String)

派生クラスでオーバーライドされると、指定したテキスト内容を書き込みます。

System_CAPS_pubmethodWriteStringAsync(String)

指定したテキストの内容を非同期に書き込みます。

System_CAPS_pubmethodWriteSurrogateCharEntity(Char, Char)

派生クラスでオーバーライドされると、サロゲート文字ペアのサロゲート文字エンティティを生成し、書き込みます。

System_CAPS_pubmethodWriteSurrogateCharEntityAsync(Char, Char)

サロゲート文字ペアのサロゲート文字エンティティを非同期に生成して書き込みます。

System_CAPS_pubmethodWriteValue(Boolean)

Boolean 値を書き込みます。

System_CAPS_pubmethodWriteValue(DateTime)

DateTime 値を書き込みます。

System_CAPS_pubmethodWriteValue(DateTimeOffset)

DateTimeOffset 値を書き込みます。

System_CAPS_pubmethodWriteValue(Decimal)

Decimal 値を書き込みます。

System_CAPS_pubmethodWriteValue(Double)

Double 値を書き込みます。

System_CAPS_pubmethodWriteValue(Int32)

Int32 値を書き込みます。

System_CAPS_pubmethodWriteValue(Int64)

Int64 値を書き込みます。

System_CAPS_pubmethodWriteValue(Object)

オブジェクト値を書き込みます。

System_CAPS_pubmethodWriteValue(Single)

単精度浮動小数点数を書き込みます。

System_CAPS_pubmethodWriteValue(String)

String 値を書き込みます。

System_CAPS_pubmethodWriteWhitespace(String)

派生クラスでオーバーライドされると、指定した空白を書き込みます。

System_CAPS_pubmethodWriteWhitespaceAsync(String)

指定した空白を非同期に書き込みます。

XmlWriter クラス、XML データをストリーム、ファイル、テキスト リーダー、または文字列に書き込みます。 W3C がサポートしている Extensible Markup Language (XML) 1.0 (fourth edition)Namespaces in XML 1.0 (third edition) の推奨事項です。

メンバー、 XmlWriter クラスを使用するとします。

  • 文字が有効な XML 文字かどうか、要素名と属性名が有効な XML 名かどうかを確認します。

  • XML ドキュメントが整形式かどうかを確認します。

  • バイナリ バイトを Base64 または BinHex としてエンコードし、結果として得られるテキストを記述します。

  • 値の変換を手動で実行することを避けるため、文字列の代わりに共通言語ランタイム型を使用して値を渡します。

  • 複数のドキュメントを 1 つの出力ストリームに書き込みます。

  • 有効な名前、修飾された名前、および名前トークンを書き込みます。

このセクションの内容:

XML ライターを作成します。
出力形式を指定します。
データの一致
要素の書き込み
属性の記述
名前空間の処理
型指定されたデータの書き込み
XML ライターを閉じる
非同期プログラミング
セキュリティの考慮事項

作成する、 XmlWriter インスタンスを使用して、 XmlWriter.Create メソッドです。 XML ライターを有効に機能のセットを指定するには、渡す、 XmlWriterSettings に、 Create メソッドです。 それ以外の場合、既定の設定が使用されます。 参照してください、 Create 詳細ページを参照します。

XmlWriterSettings クラスには、制御するいくつかのプロパティが含まれています。 どのように XmlWriter 出力の書式設定します。

プロパティ

説明

Encoding

使用するテキスト エンコーディングを指定します。 既定値は、Encoding.UTF8 です。

Indent

要素をインデントするかどうかを示します。 既定値は false (インデントなし)。

IndentChars

インデントに使用する文字列を指定します。 既定値は 2 つのスペースです。

NewLineChars

改行に使用する文字列を指定します。 既定値は \r\n (キャリッジ リターン、ライン フィード) です。

NewLineHandling

改行文字を処理する方法を指定します。

NewLineOnAttributes

新しい行に属性を書き込むかどうかを示します。 このプロパティを使用するときは、Indenttrue に設定する必要があります。 既定値は、false です。

OmitXmlDeclaration

XML 宣言を書き込むかどうかを示します。 既定値は、false です。

Indent および IndentChars プロパティによって、意味のない空白の書式設定方法が制御されます。 たとえば、要素ノードにインデントを設定します。

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("books.xml", settings);

使用して、 NewLineOnAttributes 1 レベル深くインデントされた新しい行の各属性に書き込めません。

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
XmlWriter writer = XmlWriter.Create("books.xml", settings);

XML ライターから 2 つのプロパティを使用して、 XmlWriterSettings クラスのデータの一致を確認します。

  • CheckCharacters プロパティの文字をチェックし、スローする XML ライターに指示、 XmlException 、W3C で定義されていると、任意の文字が有効な範囲を超える場合に例外です。

  • ConformanceLevel プロパティに書き込まれるストリームが整形式 XML 1.0 ドキュメントまたはドキュメント フラグメントの規則に準拠していることを確認して、W3C で定義されている XML ライターを構成します。 次の 3 つの準拠レベルは次の表で説明します。 既定値は、Document です。 詳細については、「、 XmlWriterSettings.ConformanceLevel プロパティおよび System.Xml.ConformanceLevel 列挙します。

    レベル

    説明

    Document

    XML 出力は、整形式 XML 1.0 ドキュメントの規則に準拠しているし、準拠しているすべてのプロセッサで処理できます。

    Fragment

    XML 出力は、整形式 XML 1.0 ドキュメント フラグメントの規則に準拠しています。

    Auto

    XML ライターでは、確認を適用するチェック (ドキュメントまたはフラグメント)、受信データに基づくのレベルを決定します。

以下を使用する XmlWriter 要素ノードを作成する方法です。 例については、表示されているメソッドを参照してください。

用途

目的

WriteElementString

文字列値も含め、全体の要素ノードを作成します。

WriteStartElement

複数のメソッドを使用して要素の値を記述するには、次のように呼び出します。 たとえば、WriteValue を呼び出して、型指定された値を書き込んだり、WriteCharEntity を呼び出して文字エンティティを書き込んだり、WriteAttributeString を呼び出して 1 つの属性を書き込んだり、子要素を書き込んだりすることができます。 これはより高度なバージョンの WriteElementString メソッドです。

要素を閉じるを呼び出す、 WriteEndElement または WriteFullEndElement メソッドです。

WriteNode

現在位置にある要素ノードをコピーする、 XmlReader または XPathNavigator オブジェクトです。 呼び出されると、ソース オブジェクトからすべてを XmlWriter インスタンスにコピーします。

以下を使用する XmlWriter 要素ノードに属性を書き込む方法です。 次のセクションで説明したように、要素に名前空間宣言を作成するこれらのメソッドを使用もできます。

用途

目的

WriteAttributeString

文字列値も含め、全体の属性ノードに書き込めません。

WriteStartAttribute

複数のメソッドを使用して属性値を記述するには、次のように呼び出します。 たとえば、呼び出す WriteValue に型指定された値を書き込むことです。 これはより高度なバージョンの WriteElementString メソッドです。

要素を閉じるを呼び出す、 WriteEndAttribute メソッドです。

WriteAttributes

現在位置にあるすべての属性をコピーする、 XmlReader オブジェクトです。 書き込まれる属性は、リーダーが現在位置付けられているノードの種類によって異なります。

  • 属性ノードの現在の属性から、書き込みます残りの属性要素の終了タグまでです。

  • 要素ノードの要素に含まれるすべての属性を書き込みます。

  • XML 宣言ノードに対しては、宣言ですべての属性を書き込みます。

  • 他のすべてのノード型のメソッドは例外をスローします。

名前空間は、XML ドキュメント内の要素名と属性名を修飾するために使用されます。 名前空間プレフィックスは、さらに、URI 参照に関連付けられた名前空間を持つ要素と属性を関連付けます。 名前空間は、XML ドキュメントの中の要素名と属性名を一意にします。

XmlWriter 、現在の名前空間スコープで定義されているすべての名前空間に対応する名前空間スタックを保持します。 要素および属性の書き込み時には、次の方法で名前空間を使用できます。

  • 使用して手動で名前空間を宣言する、 WriteAttributeString メソッドです。 これは、名前空間宣言の個数を最適化する方法がわかっているときに役立つ場合があります。 例については、次を参照してください。、 WriteAttributeString(String, String, String, String) メソッドです。

  • 現在の名前空間宣言を新しい名前空間でオーバーライドする。 次のコードで、 WriteAttributeString メソッドは名前空間 URI を変更に対して、 "x" のプレフィックスを "123""abc"します。

    writer.WriteStartElement("x", "root", "123");
    writer.WriteStartElement("item");
    writer.WriteAttributeString("xmlns", "x", null, "abc");
    writer.WriteEndElement();
    writer.WriteEndElement();
    

    このコードは、次の XML 文字列を生成します。

    <x:root xmlns:x="123">
      <item xmlns:x="abc" />
    </x:root>
    
  • 属性または要素の書き込み時に名前空間プレフィックスを指定する。 要素や属性の書き込みに使用されるメソッドの多くは、これを行うには、有効にします。 たとえば、 WriteStartElement(String, String, String) メソッドが開始タグを書き込み、指定した名前空間とプレフィックスに関連付けます。

WriteValue メソッドは、共通言語ランタイム (CLR) オブジェクトを受け取り、入力値を XML スキーマ定義言語 (XSD) データ型変換規則に従って、文字列形式に変換しを使用してアウトに出力、 WriteString メソッドです。 これは、メソッドを使用するよりも簡単です、 XmlConvert 記述する前に、型指定されたデータを文字列値に変換するクラス。

使用して、型指定された値がテキストにシリアル化をテキストに記述する場合、 XmlConvert スキーマの種類のルール。

CLR 型に対応する既定の XSD データ型を参照してください、 WriteValue メソッドです。

XmlWriter XML データ ストアへの書き込みにも使用できます。 たとえば、XPathNavigator クラスは XmlWriter オブジェクトを作成して、XmlDocument オブジェクト用のノードを作成できます。 データ ストアに、利用可能なスキーマ情報がある場合、 WriteValue メソッドが許可されていない型に変換しようとする場合、例外をスローします。データ ストアには、利用可能なスキーマ情報がない場合、 WriteValue メソッドはすべての値として扱います、 xsd:anySimpleType 型です。

使用すると XmlWriter XML では、要素および属性を出力する方法は、呼び出されるまで書き込まれません、 Close メソッドです。 たとえばを使用している場合 XmlWriter を設定する、 XmlDocument オブジェクトを終了するまで書き込まれた要素とターゲット ドキュメントに属性を表示することはできません、 XmlWriter インスタンス。

ほとんどの XmlWriter メソッドをメソッド名の末尾に"Async"を持つ対応する非同期があります。 たとえば、非同期と同等の WriteAttributeStringWriteAttributeStringAsyncです。

WriteValue され、メソッドは非同期に対応するものがある、戻り値を文字列に変換を使用して、 WriteStringAsync メソッド代わりにします。

使用する場合は、以下を検討してください、 XmlWriter クラス。

  • によってスローされた例外、 XmlWriter たくないパス情報が満載のアプリを公開しています。 アプリは、例外をキャッチして、適切に処理する必要があります。

  • XmlWriter 渡されるデータを検証しません、 WriteDocType または WriteRaw メソッドです。 これらのメソッドには、任意のデータをパスする必要があります。

次のコード例は、非同期 API を使用して XML を生成する方法を示しています。

async Task TestWriter(Stream stream) 
{
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Async = true;

    using (XmlWriter writer = XmlWriter.Create(stream, settings)) {
        await writer.WriteStartElementAsync("pf", "root", "http://ns");
        await writer.WriteStartElementAsync(null, "sub", null);
        await writer.WriteAttributeStringAsync(null, "att", null, "val");
        await writer.WriteStringAsync("text");
        await writer.WriteEndElementAsync();
        await writer.WriteProcessingInstructionAsync("pName", "pValue");
        await writer.WriteCommentAsync("cValue");
        await writer.WriteCDataAsync("cdata value");
        await writer.WriteEndElementAsync();
        await writer.FlushAsync();
    }
}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: