次の方法で共有


WsStartWriterCanonicalization 関数 (webservices.h)

指定した XML ライターで正規化を開始します。

構文

HRESULT WsStartWriterCanonicalization(
  [in]           WS_XML_WRITER                          *writer,
  [in]           WS_WRITE_CALLBACK                      writeCallback,
  [in]           void                                   *writeCallbackState,
                 const WS_XML_CANONICALIZATION_PROPERTY *properties,
  [in]           ULONG                                  propertyCount,
  [in, optional] WS_ERROR                               *error
);

パラメーター

[in] writer

正規化を開始する必要がある XML ライター。

[in] writeCallback

生成時に正規バイトを書き込むために呼び出されるコールバック。 このコールバックは常に同期的に呼び出されます。

[in] writeCallbackState

WS_WRITE_CALLBACKを呼び出すときに渡す必要がある呼び出し元定義の状態。

properties

正規化の実行方法を制御する省略可能なプロパティの配列。 「WS_XML_CANONICALIZATION_PROPERTY」を参照してください。

[in] propertyCount

プロパティの数。

[in, optional] error

関数が失敗した場合に追加のエラー情報を格納する場所を指定します。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
E_INVALIDARG
1 つ以上の引数が無効です。
WS_E_INVALID_OPERATION
オブジェクトの現在の状態のため、操作は許可されません。
WS_E_INVALID_FORMAT
入力データが予期された形式でなかったか、予期された値を持っていませんでした。

解説

正規化の使用パターンは次のとおりです。

  • WsStartWriterCanonicalization を呼び出す
  • 正規化される xml を書き込みます。
  • wsEndWriterCanonicalization を呼び出します。
このプロセス中に、正規バイトは指定された writeCallback に書き込まれます。 ライターによって書き込まれたすべてのノードは正規化されます。 したがって、XML の書き込みに使用される API に関係なく、正規化と生成を 1 回のパスオーバーで実行できます。 すべての正規化されたバイトが指定されたコールバックに確実に書き込まれるようにするには、WsEndWriterCanonicalization を呼び出す必要があります。

WsEndWriterCanonicalization は、 WsStartWriterCanonicalization が呼び出されたのと同じ深さで呼び出す必要があります。 他のライター API では、 WsStartWriterCanonicalization が呼び出された場所よりも深い深さに移動すると、エラーが返されます。

一致する WsStartWriterCanonicalization 呼び出しと WsEndWriterCanonicalization 呼び出しのペアの間でライターで WsMoveWriter または WsSetWriterPosition を呼び出す操作は無効です。

この API の呼び出しを入れ子にすることはできません。 そのため、 次の WsStartWriterCanonicalization 呼び出しの前に 、WsStartWriterCanonicalization の呼び出しの後に WsEndWriterCanonicalization の呼び出しを行う必要があります。

WS_XML_CANONICALIZATION_ALGORITHMが指定されていない場合は、WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHMが使用されます。

WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHMアルゴリズムとWS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM アルゴリズムは、xml ドキュメント全体でのみ使用できます。 ライターは、これらのアルゴリズムを 使用してWsStartWriterCanonicalization が呼び出されたときに、WS_XML_NODE_TYPE_BOFに配置する必要があります。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll