WS_READ_OPTION 열거형(webservices.h)

값이 필요한지 여부와 값을 할당하는 방법을 지정합니다.

Syntax

typedef enum {
  WS_READ_REQUIRED_VALUE = 1,
  WS_READ_REQUIRED_POINTER = 2,
  WS_READ_OPTIONAL_POINTER = 3,
  WS_READ_NILLABLE_POINTER = 4,
  WS_READ_NILLABLE_VALUE = 5
} WS_READ_OPTION;

상수

 
WS_READ_REQUIRED_VALUE
값: 1
옵션은 값이 XML 콘텐츠에 있어야 임을 지정합니다.


호출자는 최상위 형식을 읽을 스토리지를 지정해야 합니다.


호출자가 지정한 스토리지의 크기는 형식에 따라 다릅니다.
역직렬화되는 것은 다음과 같습니다.

  • 기본 형식(예: WS_INT32_TYPE)의 경우 스토리지는
    기본 형식의 크기여야 합니다. 이 경우 힙을 지정할 필요가 없습니다.

  • 구조체의 경우( 사용자가 WS_STRUCT_TYPE 사용하는 구조체를 정의했는지 여부
    또는 WS_STRING)와 같이 미리 정의된 스토리지는
    구조체의 정확한 크기입니다.
    다른 데이터를 가리키는 구조체의 필드는 여전히 에 필요합니다.
    WS_HEAP 할당됩니다. 에 대한 필드가 없는 경우
    특정 구조체를 지정하면 힙을 지정할 필요가 없습니다.




포인터 형식(WS_WSZ_TYPEWS_XML_BUFFER_TYPE)
는 WS_READ_REQUIRED_VALUE 사용할 수 없습니다. WS_READ_REQUIRED_POINTER
대신 값을 사용해야 합니다.


읽는 XML에 값이 없으면
WS_E_INVALID_FORMAT 오류가 반환됩니다.
( Windows Web Services 반환 값을 참조하세요.)
WS_READ_REQUIRED_POINTER
값: 2
옵션은 값이 XML 콘텐츠에 있어야 임을 지정합니다.


역직렬화된 값은 크기에 관계없이 항상 WS_HEAP 할당됩니다.
역직렬화된 값에 대한 포인터가 반환됩니다. 이 옵션을 사용하는 경우
호출자는 포인터의 주소와 포인터 크기를 전달해야 합니다.
역직렬화되는 형식에 관계없이 입니다.


값이 없으면 오류가 반환됩니다.
이 옵션을 사용하면 NULL이 반환되지 않습니다. 여기서
value는 선택 사항이며 WS_READ_OPTIONAL_POINTER 사용합니다.
WS_READ_OPTIONAL_POINTER
값: 3
옵션은 값이 XML 콘텐츠에 존재하지 않도록 지정합니다.


역직렬화된 값은 크기에 관계없이 항상 WS_HEAP 할당됩니다.
역직렬화된 값에 대한 포인터가 반환됩니다. 이 옵션을 사용하는 경우
호출자는 포인터의 주소와 포인터 크기를 전달해야 합니다.
역직렬화되는 형식에 관계없이 입니다.


값을 읽는 XML에 없는 경우 함수는
성공하면 값에 대해 NULL 이 반환됩니다.


이 옵션을 사용하는 애플리케이션은 값에 액세스하기 전에 NULL에 대해 검사 주의해야 합니다.
NULL 값이 예상되지 않는 경우 WS_READ_REQUIRED_POINTER 사용합니다.
WS_READ_NILLABLE_POINTER
값: 4
옵션은 값이 Nil이거나 XML 콘텐츠에 누락될 수 있음을 지정합니다.


역직렬화된 값은 크기에 관계없이 항상 WS_HEAP 할당됩니다.
역직렬화된 값에 대한 포인터가 반환됩니다. 이 옵션을 사용하는 경우
호출자는 포인터의 주소와 포인터 크기를 전달해야 합니다.
역직렬화되는 형식에 관계없이 입니다.


요소가 읽는 XML에서 nil이거나 누락된 경우 함수는 성공하고
NULL 포인터가 반환됩니다.
요소가 읽는 XML의 nil이 아니면 값이 정상적으로 반환됩니다.


이 옵션을 사용하는 애플리케이션은 값에 액세스하기 전에 NULL에 대해 검사 주의해야 합니다.
NULL 값이 예상되지 않는 경우 WS_READ_REQUIRED_POINTER 사용합니다.


이 옵션은 API의 WS_TYPE_MAPPING 함께 지원되지 않습니다.
WsReadTypeWsReadElement 호출을 포함하여 XML을 읽는 입니다.
WS_READ_NILLABLE_VALUE
값: 5
옵션은 값이 Nil이거나 XML 콘텐츠에 누락될 수 있음을 지정합니다.


호출자는 최상위 형식을 읽을 스토리지를 지정해야 합니다.


XML 요소가 nil이거나 누락된 경우 nil 값이 반환됩니다. XML 요소가 인 경우
nil이 아닌 경우 값은 정상적으로 역직렬화됩니다.


이 옵션은 API의 WS_TYPE_MAPPING 함께 지원되지 않습니다.
WsReadTypeWsReadElement 호출을 포함하여 XML을 읽는 입니다.


이 옵션은 아래에 나열된 다음 형식에 대해서만 지원됩니다.
nil 값을 나타내는 기본 방법이 있는 입니다. 설명서를 참조하세요.
nil을 나타내는 방법에 대한 자세한 내용은 각 형식에 대한 입니다.

설명

WS_READ_OPTIONWS_HEAP 개체를 지정해야 하는 경우에 대해 설명합니다. 함수에 따라 이 경우 NULL 힙 매개 변수를 전달할 수 있습니다. 힙 매개 변수가 NULL인 경우 기본 힙이 사용되는지 여부에 대한 자세한 내용은 특정 함수에 대한 설명서를 참조하세요.

다음은 값을 힙 개체(WS_HEAP)로 역직렬화할 때 고려해야 할 사항입니다.

  • 역직렬화된 값은 힙이 해제(WsFreeHeap) 또는 다시 설정(WsResetHeap)될 때까지 할당된 상태로 유지됩니다.
  • 값이 역직렬화될 때마다 기존 값을 바꾸는 대신 힙에 추가됩니다.
  • 역직렬화 함수 중에 오류가 발생하고 함수가 실패하면 오류가 해제되지 않을 때까지 힙 개체에서 할당된 메모리가 발생합니다.
  • 힙의 크기를 사용하여 역직렬화 중에 이루어진 총 할당을 제한할 수 있습니다. 힙의 최대 크기는 다음과 같은 방법으로 확인할 수 있습니다.
    • 역직렬화 중에 힙에 할당될 각 값의 최대 크기(바이트)를 결정합니다. 역직렬화된 데이터 구조의 크기는 플랫폼에 따라 다를 수 있습니다.
    • 각 배열은 하나의 값으로 간주됩니다. 배열에 있는 항목의 실제 크기는 항목의 필수 맞춤의 영향을 받을 수 있습니다.
    • 각 값의 최대 크기를 16 바이트 경계로 반올림합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱 | UWP 앱]
머리글 webservices.h