WsReadValue 関数 (webservices.h)
Reader からテキストを読み取り、指定した値の種類に従って解析します。
Reader は、現在の位置から次の Start 要素または End 要素まで読み取り、指定された値の型に従って解析します。 リーダーが Start 要素または End 要素に既に配置されている場合、バッファーは空のままです。
コメントはスキップされ、CDATA コンテンツは他の要素コンテンツと同じように扱われます。
先頭と末尾の空白文字は無視されます。 指定した値の型に従って値を解析できない場合、関数は WS_E_INVALID_FORMAT エラー コードを返します。 ( 「Windows Web サービスの戻り値」を参照してください)。
メモ この関数は、 WsReadNode に記載されている理由のいずれかで失敗する可能性があります。
構文
HRESULT WsReadValue(
[in] WS_XML_READER *reader,
[in] WS_VALUE_TYPE valueType,
void *value,
[in] ULONG valueSize,
[in, optional] WS_ERROR *error
);
パラメーター
[in] reader
値の読み取り元である XML リーダー へのポインター。
[in] valueType
テキストの解釈の種類。
value
指定した値の型に従って解析が成功した場合の、解析されたデータへのポインター。 必要なサイズは、値の種類によって決まります。 詳細については、「 WS_VALUE_TYPE 」を参照してください。
[in] valueSize
取得した値のバイト サイズ。
[in, optional] error
関数 が失敗 した場合にエラーに関する追加情報を格納する必要があるWS_ERROR オブジェクトへのポインター。
戻り値
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
入力データが予期された形式でなかったか、予期された値を持っていませんでした。 |
|
クォータを超えました。 |
解説
整数値を含む要素を読み取る例。
// Advance the reader to the element
HRESULT hr = WsReadToStartElement(reader, localName, ns, NULL, error);
if (FAILED(hr))
{
return hr;
}
// Advance past the element to the content
hr = WsReadStartElement(reader, error);
if (FAILED(hr))
{
return hr;
}
// Read the content as an integer
__int32 i;
hr = WsReadValue(reader, WS_INT32_VALUE_TYPE, &i, sizeof(i), error);
if (FAILED(hr))
{
return hr;
}
// Read the end element
hr = WsReadEndElement(reader, error);
if (FAILED(hr))
{
return hr;
}
値型の文法。
WS_BOOL_VALUE_TYPE = "true"
| "false"
| "1"
| "0"
WS_INTxxx_VALUE_TYPE = sign? digits
WS_UINTxxx_VALUE_TYPE = digits
WS_FLOAT_VALUE_TYPE = WS_DOUBLE_VALUE_TYPE
WS_DOUBLE_VALUE_TYPE = sign? digits ("." digits)? exponent?
| "NaN"
| "INF"
| "-INF"
WS_DECIMAL_VALUE_TYPE = sign? digits ("." digits)?
WS_GUID_VALUE_TYPE = xxxxxxxx "-" xxxx "-" xxxx "-" xxxx "-" xxxxxxxxxxxx
WS_TIMESPAN_VALUE_TYPE = sign? (digits ".")? hh ":" mm ":" ss ("." d7)?
WS_DATETIME_VALUE_TYPE = yyyy "-" MM "-" dd "T" hh ":" mm ":" ss ("." d7)? tz?
WS_DURATION_VALUE_TYPE = sign? "P" (digits "Y") (digits "M")? (digits "D")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H") (digits "M")? (digits ("." digits)? "S")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H")? (digits "M") (digits ("." digits)? "S")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H")? (digits "M")? (digits ("." digits)? "S")
sign = "-"
| "+"
exponent = E sign? digits
| e sign? digits
digits = [0-9]+
x = [0-9]
| [A-F]
| [a-f]
yyyy = 1-9999
hh = 0-23
mm = 0-59
ss = 0-59
MM = 1-31
tz = "Z"
| sign hh ":" mm
d7 = digit digit? digit? digit? digit? digit? digit?
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | webservices.h |
Library | WebServices.lib |
[DLL] | WebServices.dll |