WS_FIELD_MAPPING 열거형(webservices.h)

구조체의 필드가 XML로 표시되는 방식을 지정합니다. 이는 WS_FIELD_DESCRIPTION 내에서 사용됩니다.

Syntax

typedef enum {
  WS_TYPE_ATTRIBUTE_FIELD_MAPPING = 0,
  WS_ATTRIBUTE_FIELD_MAPPING = 1,
  WS_ELEMENT_FIELD_MAPPING = 2,
  WS_REPEATING_ELEMENT_FIELD_MAPPING = 3,
  WS_TEXT_FIELD_MAPPING = 4,
  WS_NO_FIELD_MAPPING = 5,
  WS_XML_ATTRIBUTE_FIELD_MAPPING = 6,
  WS_ELEMENT_CHOICE_FIELD_MAPPING = 7,
  WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING = 8,
  WS_ANY_ELEMENT_FIELD_MAPPING = 9,
  WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING = 10,
  WS_ANY_CONTENT_FIELD_MAPPING = 11,
  WS_ANY_ATTRIBUTES_FIELD_MAPPING = 12
} WS_FIELD_MAPPING;

상수

 
WS_TYPE_ATTRIBUTE_FIELD_MAPPING
값: 0
필드는 XML 형식 특성(xsi:type)에 해당합니다. 이번
WS_DESCRIPTION_TYPE 사용할 수 있습니다.



syntax<br><br>struct Base<br>{<br> WS_STRUCT_DESCRIPTION* type;<br><br> // ... base fields ...<br>};<br><br>struct Derived : Base<br>{<br> // ... derived fields ...<br>};<br><br>struct Struct<br>{<br> Base* field;<br>};<br><br>Derived derived;<br>derived.type = &amp;DerivedStructDescription;<br>Struct s;<br>s.field = &amp;derived;<br><br>&lt;Struct&gt;<br> &lt;field xsi:type='Derived'&gt;<br> // ... base fields ...<br> // ... derived fields ...<br> &lt;/field&gt;<br>&lt;/Struct&gt;<br><br>

이 매핑은 WS_DEFAULT_VALUE 지정을 지원하지 않습니다.
WS_ATTRIBUTE_FIELD_MAPPING
값: 1
필드는 단일 특성에 해당합니다.


필드의 localName/ns는 XML 특성 이름 및 네임스페이스로 사용됩니다.


지정하지 않으면 특성이 XML에 표시되어야 합니다.
WS_FIELD_OPTIONAL 지정한 경우 특성
는 XML에 표시할 필요가 없습니다. 선택적이고 그렇지 않은 경우
이면 필드가 WS_DEFAULT_VALUE 설정됩니다.
기본값이 지정되지 않은 경우 또는 0입니다.



syntax<br><br>struct Struct<br>{<br> int field;<br>};<br><br>Struct s;<br>s.field = 1;<br><br>&lt;Struct field='1'/&gt;<br><br>

특성을 삭제하려면 WS_VOID_TYPE 사용해야 합니다.
이 경우 구조체에 필드가 필요하지 않습니다.
자세한 내용은 WS_VOID_TYPE 참조하세요.
WS_ELEMENT_FIELD_MAPPING
값: 2
필드는 단일 요소에 해당합니다.


필드의 localName/ns는 XML 요소 이름 및 네임스페이스로 사용됩니다.


지정하지 않으면 요소가 XML에 표시되어야 합니다.
WS_FIELD_OPTIONAL 지정한 경우 요소는
는 XML에 표시할 필요가 없습니다. 선택적이고 그렇지 않은 경우
이면 필드가 WS_DEFAULT_VALUE 설정됩니다.
기본값이 지정되지 않은 경우 또는 0입니다.



syntax<br><br>struct Struct<br>{<br> int field;<br>};<br><br>Struct s;<br>s.field = 1;<br><br>&lt;Struct&gt;<br> &lt;field&gt;1&lt;/field&gt;<br>&lt;/Struct&gt;<br><br>

요소를 삭제하려면 WS_VOID_TYPE 사용해야 합니다.
이 경우 구조체에 필드가 필요하지 않습니다.
자세한 내용은 WS_VOID_TYPE 참조하세요.
WS_REPEATING_ELEMENT_FIELD_MAPPING
값: 3
필드는 반복되는 요소 집합에 해당합니다.


필드의 localName/ns는 XML 요소로 사용됩니다.
래퍼 요소에 사용할 이름 및 네임스페이스(요소)
반복 요소의 부모입니다.) 래퍼가 없는 경우
요소가 원하는 경우 localName/ns는 모두 NULL이어야 합니다.


래퍼 요소를 지정한 경우 래퍼 요소가 나타나야 합니다.
반복 요소 수가 0이 아닌 경우 XML에서 입니다. WS_DEFAULT_VALUE
이 필드 매핑에 대해 지정하지 않습니다.


itemLocalName 및 itemN은 XML 요소로 사용됩니다.
반복 요소의 이름 및 네임스페이스입니다.



syntax<br><br>struct Struct<br>{<br> int* field;<br> ULONG fieldCount;<br>};<br><br>int values[] = { 1, 2 };<br>Struct s;<br>s.field = values;<br>s.fieldCount = 2;<br><br>// with wrapper element specified<br>&lt;Struct&gt;<br> &lt;field&gt;<br> &lt;item&gt;1&lt;/item&gt;<br> &lt;item&gt;2&lt;/item&gt;<br> &lt;/field&gt;<br>&lt;/Struct&gt;<br><br>// with no wrapper element specified<br>&lt;Struct&gt;<br> &lt;item&gt;1&lt;/item&gt;<br> &lt;item&gt;2&lt;/item&gt;<br>&lt;/Struct&gt;<br>

역직렬화된 배열의 요소 수를 제한할 수 있습니다.
NULL이 아닌 WS_ITEM_RANGE 구조체를 지정합니다.
WS_FIELD_DESCRIPTION 부분입니다.
WS_TEXT_FIELD_MAPPING
값: 4
필드는 요소의 전체 문자 콘텐츠에 해당합니다.
이 매핑을 사용하면 자식 요소가 허용되지 않습니다.


이 매핑은 일반적으로 일부 텍스트 및 특성을 포함하는 요소에 매핑되는 구조를 정의하기 위해 WS_ATTRIBUTE_FIELD_MAPPING 함께 사용됩니다(하지만 아니요).
자식 요소).



syntax<br><br>struct Struct<br>{<br> int field;<br>};<br><br>Struct s;<br>s.field = 1;<br><br>&lt;Struct&gt;1&lt;/Struct&gt;<br><br>

이 매핑은 WS_DEFAULT_VALUE 지정을 지원하지 않습니다.
WS_NO_FIELD_MAPPING
값: 5
필드는 직렬화되거나 역직렬화되지 않습니다.


직렬화할 때 필드가 무시되고 가 로 초기화됩니다.
역직렬화할 때 기본값입니다.


필드가 기존 형식 중 하나에 매핑되는 경우(예: WS_INT32_TYPE)
형식을 지정할 수 있습니다. 필드 형식이 다음 중 하나가 아닌 경우
기존 형식을 지정하는 데 WS_VOID_TYPE 사용할 수 있습니다.
임의 형식 및 크기의 필드입니다.


값을 제공하기 위해 WS_DEFAULT_VALUE 지정할 수 있습니다.
필드를 역직렬화할 때 필드를 로 초기화합니다. 기본값인 경우
값을 지정하지 않으면 필드가 0으로 초기화됩니다.


필드 매핑은 WS_FIELD_OPTIONS 값이 0인 경우에만 사용할 수 있습니다.



syntax<br><br>struct Struct<br>{<br> int field;<br>};<br><br>Struct s;<br>s.field = 1;<br><br>&lt;Struct/&gt;<br><br>
WS_XML_ATTRIBUTE_FIELD_MAPPING
값: 6
필드는 예약된 xml 특성(예: xml:lang)에 해당합니다.


필드의 localName은 XML 특성 이름을 식별하는 데 사용됩니다.


WS_FIELD_OPTIONAL 지정하지 않는 한 특성은
XML에 나타납니다. WS_FIELD_OPTIONAL 지정한 경우
그러면 특성이 XML에 표시할 필요가 없습니다. 선택적이고 그렇지 않은 경우
이면 필드가 WS_DEFAULT_VALUE 설정됩니다.
기본값이 지정되지 않은 경우 또는 0입니다.



syntax<br><br>struct Struct<br>{<br> WS_STRING field;<br>};<br><br>Struct s;<br>s.field = ...; // 'us-en';<br><br>// Example of xml:lang<br>&lt;Struct xml:lang='us-en'/&gt;<br><br>s.field = ...; // 'true'<br><br>// Example of xml:space<br>&lt;Struct xml:space='true'&gt;<br>
WS_ELEMENT_CHOICE_FIELD_MAPPING
값: 7
필드는 가능한 집합 중에서 선택한 항목에 해당합니다.
지정합니다. 각 요소는 공용 구조체의 필드 중 하나에 매핑됩니다.
공용 구조체의 각 필드에는 해당하는 열거형 값이 있습니다.
현재 선택을 식별하는 데 사용됩니다.



syntax<br><br>// Enumeration of choices of different values<br>enum Choice<br>{<br> ChoiceA = 10,<br> ChoiceB = 20,<br> None = 0,<br>};<br><br>// Struct containing union of values, and enum 'selector'<br>struct Struct<br>{<br> Choice choice;<br> union<br> {<br> int a; // valid when choice is ChoiceA<br> WS_STRING b; // valid when choice is ChoiceB<br> } value;<br>}; <br><br>

이 필드 매핑은 WS_UNION_TYPE 함께 사용해야 합니다.
요소 선택 항목의 이름 및 네임스페이스는 에 지정됩니다.
WS_UNION_DESCRIPTION. 필드의 localName
및 ns는 NULL이어야 합니다.


WS_FIELD_OPTIONAL 지정하지 않는 한
요소는 XML에 표시되어야 합니다. WS_FIELD_OPTIONAL 지정한 경우
그러면 XML에 표시할 요소가 없습니다. 선택 사항 및 없음인 경우
요소의 가 있으면 필드의 선택기 값이 로 설정됩니다.
열거형의 none 값(의 noneEnumValue 필드에 지정된 대로)
WS_UNION_DESCRIPTION). nonEnumValue로 인해
는 기본값으로 사용되며 이 매핑 값은 지원하지 않습니다.
WS_DEFAULT_VALUE 지정합니다.



syntax<br><br>Struct s;<br>s.choice = ChoiceA;<br>s.value.a = 123;<br><br>&lt;Struct&gt;<br> &lt;choiceA&gt;123&lt;/choiceA&gt;<br>&lt;/Struct&gt;<br><br>Struct S;<br>s.choice = ChoiceB;<br>s.value.b = ...; // 'hello'<br><br>&lt;Struct&gt;<br> &lt;choiceB&gt;hello&lt;/choiceB&gt;<br>&lt;/Struct&gt;<br><br>Struct S;<br>s.choice = None;<br><br>&lt;Struct&gt;<br>&lt;/Struct&gt; <br>

필드는 가능한 집합 중에서 선택한 항목에 해당합니다.
지정합니다. 각 요소는 공용 구조체의 필드 중 하나에 매핑됩니다.
공용 구조체의 각 필드에는 해당하는 열거형 값이 있습니다.
현재 선택을 식별하는 데 사용됩니다.



syntax<br><br>// Enumeration of choices of different values<br>enum Choice<br>{<br> ChoiceA = 10,<br> ChoiceB = 20,<br> None = 0,<br>};<br><br>// Struct containing union of values, and enum &amp;quot;selector&amp;quot;<br>struct Struct<br>{<br> Choice choice;<br> union<br> {<br> int a; // valid when choice is ChoiceA<br> WS_STRING b; // valid when choice is ChoiceB<br> } value;<br>};<br>

이 필드 매핑은 WS_UNION_TYPE 함께 사용해야 합니다.
요소 선택 항목의 이름 및 네임스페이스는 에 지정됩니다.
WS_UNION_DESCRIPTION. 필드의 localName
및 ns는 NULL이어야 합니다.


WS_FIELD_OPTIONAL 지정하지 않는 한
요소는 XML에 표시되어야 합니다. WS_FIELD_OPTIONAL 지정한 경우
그러면 XML에 표시할 요소가 없습니다. 선택 사항 및 없음인 경우
요소의 가 있으면 필드의 선택기 값이 로 설정됩니다.
열거형의 none 값(의 noneEnumValue 필드에 지정된 대로)
WS_UNION_DESCRIPTION). nonEnumValue로 인해
는 기본값으로 사용되며 이 매핑 값은 지원하지 않습니다.
WS_DEFAULT_VALUE 지정합니다.



syntax<br><br>Struct s;<br>s.choice = ChoiceA;<br>s.value.a = 123;<br><br>&lt;Struct&gt;<br> &lt;choiceA&gt;123&lt;/choiceA&gt;<br>&lt;/Struct&gt;<br><br>Struct S;<br>s.choice = ChoiceB;<br>s.value.b = ...; // &amp;quot;hello&amp;quot;<br><br>&lt;Struct&gt;<br> &lt;choiceB&gt;hello&lt;/choiceB&gt;<br>&lt;/Struct&gt;<br><br>Struct S;<br>s.choice = None;<br><br>&lt;Struct&gt;<br>&lt;/Struct&gt;<br>

선택기 값은 의 필드를 나타냅니다.
union이 설정됩니다. 다른 필드는 초기화되지 않은 상태로 남습니다.
값이 역직렬화됩니다. 애플리케이션은 항상
선택기 값을 참조하여 의 필드가 있는지 확인합니다.
공용 구조체에 액세스할 수 있습니다.
WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING
값: 8
필드는 반복되는 요소 선택 집합에 해당합니다.


각 항목은 선택기 값이 있는 공용 구조체로 표시됩니다.
이 매핑은 WS_UNION_TYPE 사용해야 합니다.


필드의 localName/ns는 XML 요소로 사용됩니다.
래퍼 요소에 사용할 이름 및 네임스페이스(요소)
반복 요소의 부모입니다.) 래퍼가 없는 경우
요소가 원하는 경우 localName/ns는 모두 NULL이어야 합니다.


래퍼 요소를 지정한 경우 래퍼 요소가 나타나야 합니다.
반복 요소 수가 0이 아닌 경우 XML에서 입니다. WS_DEFAULT_VALUE
이 필드 매핑에 대해 지정하지 않습니다.


itemLocalName 및 itemNs 필드는 NULL이어야 합니다. XML 요소
name 및 namespace는 WS_UNION_DESCRIPTION 정의됩니다.



syntax<br><br>struct Struct2<br>{<br> Struct* field; // see WS_UNION_DESCRIPTION for definition of Struct<br> ULONG fieldCount;<br>};<br><br>StructType values[2];<br>values[0].choice = ChoiceA;<br>values[0].values.a = 123;<br>values[1].choice = ChoiceB;<br>values[1].values.b = ...; // hello<br><br>Struct2 s2;<br>s2.field = values;<br>s2.fieldCount = 2;<br><br>// with wrapper element specified<br>&lt;Struct2&gt;<br> &lt;field&gt;<br> &lt;item&gt;123&lt;/item&gt;<br> &lt;item&gt;hello&lt;/item&gt;<br> &lt;/field&gt;<br>&lt;/Struct2&gt;<br><br>// with no wrapper element specified<br>&lt;Struct2&gt;<br> &lt;item&gt;123&lt;/item&gt;<br> &lt;item&gt;hello&lt;/item&gt;<br>&lt;/Struct2&gt;<br><br>

역직렬화된 배열의 요소 수를 제한할 수 있습니다.
NULL이 아닌 WS_ITEM_RANGE 구조체를 지정합니다.
WS_FIELD_DESCRIPTION 부분입니다.
WS_ANY_ELEMENT_FIELD_MAPPING
값: 9
WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING
값: 10
필드는 요소 시퀀스를 삭제하거나 저장하는 데 사용됩니다.
이름 및 네임스페이스를 사용합니다.


요소를 저장하려면 WS_XML_BUFFER_TYPE
사용 여부. 이는 WS_XML_BUFFER배열에 해당합니다.
선택해야 합니다.



syntax<br><br>struct Struct<br>{<br> // ... known fields ...<br> WS_XML_BUFFER** fields;<br> ULONG fieldCount;<br> // ... known fields ...<br>};<br><br>Struct s;<br>s.fields = ...; // { '&lt;unknown1/&gt;', '&lt;unknown2/&gt;'; }<br>s.fieldCount = 2;<br><br>&lt;Struct&gt;<br> ... known fields ...<br> &lt;unknown1/&gt;<br> &lt;unknown2/&gt;<br> ... known fields ...<br>&lt;/Struct&gt;<br><br>

요소를 삭제하려면 WS_VOID_TYPE 사용해야 합니다.
이 경우 구조체에 필드가 필요하지 않습니다. 에 대한 WS_VOID_TYPE 참조하세요.
자세한 정보.


역직렬화 중에 허용되는 요소 수를 제한할 수 있습니다.
NULL이 아닌 WS_ITEM_RANGE 구조체를 지정합니다.
WS_FIELD_DESCRIPTION 부분입니다.


이 매핑은 WS_DEFAULT_VALUE 지정을 지원하지 않습니다.
WS_ANY_CONTENT_FIELD_MAPPING
값: 11
필드는 나머지 콘텐츠를 삭제하거나 저장하는 데 사용됩니다.
(텍스트 또는 요소의 혼합) 종료 전에 발생
요소의 입니다.


요소를 저장하려면 WS_XML_BUFFER_TYPE
다음과 같이 사용할 수 있습니다.



syntax<br><br>struct Struct<br>{<br> // ... known fields ...<br> WS_XML_BUFFER* field;<br>};<br><br>Struct s;<br>s.field = ...; // 'text1&lt;unknown1/&gt;text2&lt;unknown2/&gt;'<br><br>&lt;Struct&gt;<br> ... known fields ...<br> text1<br> &lt;unknown1/&gt;<br> text2<br> &lt;unknown2/&gt;<br>&lt;/Struct&gt;<br><br>

요소를 삭제하려면 WS_VOID_TYPE 사용해야 합니다.
이 경우 구조체에 필드가 필요하지 않습니다.
자세한 내용은 WS_VOID_TYPE 참조하세요.


이 매핑은 WS_DEFAULT_VALUE 지정을 지원하지 않습니다.
WS_ANY_ATTRIBUTES_FIELD_MAPPING
값: 12
필드는 그렇지 않은 특성을 삭제하거나 저장하는 데 사용됩니다.
다른 WS_FIELD_MAPPING 값을 사용하여 매핑됩니다.


이 필드 매핑을 지정하지 않으면 매핑되지 않은 특성
는 역직렬화할 때 오류가 발생합니다.


WS_FIELD_DESCRIPTION 이름 필드는 NULL이어야 합니다.


WS_FIELD_DESCRIPTION ns 필드는
다음과 같이 허용되는 특성의 네임스페이스:

  • ns 필드가 NULL이면 제한이 없습니다. The
    WS_FIELD_OTHER_NAMESPACE 필드 옵션은 이 옵션에서 설정하지 않아야 합니다.
    경우.

  • ns 필드가 NULL이 아닌 경우 및 필드 옵션
    필드에 대해 WS_FIELD_OTHER_NAMESPACE 설정되지 않은 경우
    특성은 ns 필드에 지정된 것과 동일한 네임스페이스를 가져야 합니다.

  • ns 필드가 NULL이 아닌 경우 및 필드 옵션
    필드에 대해 WS_FIELD_OTHER_NAMESPACE 설정된 다음
    특성에 지정된 것과 다른 네임스페이스가 있어야 합니다.
    ns 필드에 있습니다.




특성을 저장하려면 WS_ANY_ATTRIBUTES_TYPE
있습니다. 이는 다음과 같이 WS_ANY_ATTRIBUTES 해당합니다.



syntax<br><br>struct Struct<br>{<br> // ... known attributes ...<br> WS_ANY_ATTRIBUTES field;<br> // ... other content ...<br>};<br><br>Struct s;<br>s.field = ...; // 'unknown'/'http://example.com'/'value'<br><br>&lt;Struct <br> ... known attributes ... <br> xmlns:a='http://example.com' a:unknown='value'&gt;<br><br> ... other content ...<br>&lt;/Struct&gt;<br><br>

매핑되지 않은 특성을 삭제하려면 WS_VOID_TYPE 사용해야 합니다.
이 경우 구조체에 필드가 필요하지 않습니다.
자세한 내용은 WS_VOID_TYPE 참조하세요.


이 매핑은 WS_DEFAULT_VALUE 지정을 지원하지 않습니다.

설명

WS_FIELD_MAPPING XML 콘텐츠의 여러 부분이 구조체의 필드에 매핑되는 방식을 나타냅니다. 예를 들어 WS_ELEMENT_FIELD_MAPPING 사용하여 자식 요소의 값을 매핑할 수 있으며 WS_ATTRIBUTE_FIELD_MAPPING 사용하여 특성을 매핑할 수 있습니다. 명시적으로 매핑되지 않은 읽은 XML 콘텐츠는 XML이 역직렬화될 때 WS_E_INVALID_FORMAT 반환됩니다. ( Windows Web Services 반환 값을 참조하세요.)

WS_STRUCT_DESCRIPTION 내의 WS_FIELD_DESCRIPTION 순서는 WS_FIELD_DESCRIPTIONWS_FIELD_MAPPING값에 따라 결정됩니다. 주문에 대한 자세한 내용은 WS_STRUCT_DESCRIPTION 참조하세요.

요구 사항

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