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이 반환되지 않습니다. 여기서
값은 선택 사항이며 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
이 옵션은 XML 콘텐츠에서 값이 nil이거나 누락될 수 있음을 지정합니다.


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


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


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


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


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


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


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


이 옵션은 아래에 나열된 다음 형식에 대해서만 지원됩니다.
which have a intrinsic way to represent a nil value. 설명서 참조
nil을 나타내는 방법에 대한 정보에 대한 각 형식의 입니다.

설명

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

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

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

요구 사항

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