Función WsReadValue (webservices.h)
Lee el texto de un Lector y lo analiza según el tipo de valor especificado.
El Lector lee de su posición actual hasta el siguiente elemento Start o End y los analiza según el tipo de valor especificado. Si el lector ya está colocado en un elemento Start o End, el búfer permanece vacío.
Los comentarios se omiten y el contenido de CDATA se trata igual que otro contenido de elemento.
Se omiten los espacios en blanco iniciales y finales. Si el valor no se puede analizar según el tipo de valor especificado, la función devuelve un código de error WS_E_INVALID_FORMAT . (Vea Valores devueltos de servicios web de Windows).
Sintaxis
HRESULT WsReadValue(
[in] WS_XML_READER *reader,
[in] WS_VALUE_TYPE valueType,
void *value,
[in] ULONG valueSize,
[in, optional] WS_ERROR *error
);
Parámetros
[in] reader
Puntero al lector XML desde el que se lee el valor.
[in] valueType
Tipo de interpretación de texto.
value
Puntero a los datos analizados si el análisis se realizó correctamente según el tipo de valor especificado. El tamaño necesario viene determinado por tipo de valor. Consulte WS_VALUE_TYPE para obtener más información.
[in] valueSize
Tamaño de byte del valor recuperado.
[in, optional] error
Puntero a un objeto WS_ERROR donde se debe almacenar información adicional sobre el error si se produce un error en la función.
Valor devuelto
Esta función puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Los datos de entrada no tenían el formato esperado o no tenían el valor esperado. |
|
Se superó una cuota. |
Comentarios
Ejemplo que lee un elemento que contiene un valor entero.
// 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;
}
Gramática de los tipos de valores.
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?
Requisitos
Cliente mínimo compatible | Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | webservices.h |
Library | WebServices.lib |
Archivo DLL | WebServices.dll |