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 = &DerivedStructDescription;<br>Struct s;<br>s.field = &derived;<br><br><Struct><br> <field xsi:type='Derived'><br> // ... base fields ...<br> // ... derived fields ...<br> </field><br></Struct><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><Struct field='1'/><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><Struct><br> <field>1</field><br></Struct><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><Struct><br> <field><br> <item>1</item><br> <item>2</item><br> </field><br></Struct><br><br>// with no wrapper element specified<br><Struct><br> <item>1</item><br> <item>2</item><br></Struct><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><Struct>1</Struct><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><Struct/><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><Struct xml:lang='us-en'/><br><br>s.field = ...; // 'true'<br><br>// Example of xml:space<br><Struct xml:space='true'><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><Struct><br> <choiceA>123</choiceA><br></Struct><br><br>Struct S;<br>s.choice = ChoiceB;<br>s.value.b = ...; // 'hello'<br><br><Struct><br> <choiceB>hello</choiceB><br></Struct><br><br>Struct S;<br>s.choice = None;<br><br><Struct><br></Struct> <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 &quot;selector&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><Struct><br> <choiceA>123</choiceA><br></Struct><br><br>Struct S;<br>s.choice = ChoiceB;<br>s.value.b = ...; // &quot;hello&quot;<br><br><Struct><br> <choiceB>hello</choiceB><br></Struct><br><br>Struct S;<br>s.choice = None;<br><br><Struct><br></Struct><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><Struct2><br> <field><br> <item>123</item><br> <item>hello</item><br> </field><br></Struct2><br><br>// with no wrapper element specified<br><Struct2><br> <item>123</item><br> <item>hello</item><br></Struct2><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 = ...; // { '<unknown1/>', '<unknown2/>'; }<br>s.fieldCount = 2;<br><br><Struct><br> ... known fields ...<br> <unknown1/><br> <unknown2/><br> ... known fields ...<br></Struct><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<unknown1/>text2<unknown2/>'<br><br><Struct><br> ... known fields ...<br> text1<br> <unknown1/><br> text2<br> <unknown2/><br></Struct><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 필드는 다음과 같이 허용되는 특성의 네임스페이스:
특성을 저장하려면 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><Struct <br> ... known attributes ... <br> xmlns:a='http://example.com' a:unknown='value'><br><br> ... other content ...<br></Struct><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 |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기