Fungsi WsReadValue (webservices.h)

Membaca teks dari Pembaca dan mengurainya sesuai dengan jenis nilai yang ditentukan.

Pembaca membaca dari posisinya saat ini hingga elemen Mulai atau Akhir berikutnya dan mengurainya sesuai dengan jenis nilai yang ditentukan. Jika Pembaca sudah diposisikan pada elemen Mulai atau Akhir, buffer tetap kosong.

Komentar dilewati dan konten CDATA diperlakukan sama dengan konten elemen lainnya.

Spasi kosong di depan dan di belakang diabaikan. Jika nilai tidak dapat diurai sesuai dengan jenis nilai yang ditentukan, fungsi mengembalikan kode kesalahan WS_E_INVALID_FORMAT . (Lihat Nilai Pengembalian Windows Web Services.)

Catatan Fungsi ini dapat gagal karena salah satu alasan yang tercantum dalam WsReadNode.

 

Sintaks

HRESULT WsReadValue(
  [in]           WS_XML_READER *reader,
  [in]           WS_VALUE_TYPE valueType,
                 void          *value,
  [in]           ULONG         valueSize,
  [in, optional] WS_ERROR      *error
);

Parameter

[in] reader

Penunjuk ke Pembaca XML tempat nilai dibaca.

[in] valueType

Jenis interpretasi teks.

value

Penunjuk ke data yang diurai jika penguraian berhasil sesuai dengan jenis nilai yang ditentukan. Ukuran yang diperlukan ditentukan oleh jenis nilai. Lihat WS_VALUE_TYPE untuk informasi selengkapnya.

[in] valueSize

Ukuran byte dari nilai yang diambil.

[in, optional] error

Penunjuk ke objek WS_ERROR tempat informasi tambahan tentang kesalahan harus disimpan jika fungsi gagal.

Mengembalikan nilai

Fungsi ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
WS_E_INVALID_FORMAT
Data input tidak dalam format yang diharapkan atau tidak memiliki nilai yang diharapkan.
WS_E_QUOTA_EXCEEDED
Kuota terlampaui.

Keterangan

Contoh yang membaca elemen yang berisi nilai bilangan bulat.

// 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;
}

Tata bahasa untuk jenis nilai.


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?

Persyaratan

   
Klien minimum yang didukung Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header webservices.h
Pustaka WebServices.lib
DLL WebServices.dll