Freigeben über


WS_FIELD_MAPPING Enumeration (webservices.h)

Gibt an, wie ein Feld einer Struktur in XML dargestellt wird. Dies wird innerhalb eines WS_FIELD_DESCRIPTION verwendet.

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;

Konstanten

 
WS_TYPE_ATTRIBUTE_FIELD_MAPPING
Wert: 0
Das Feld entspricht dem XML-Type-Attribut (xsi:type). Diese
kann nur mit WS_DESCRIPTION_TYPE verwendet werden.



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>

Diese Zuordnung unterstützt die Angabe eines WS_DEFAULT_VALUE nicht.
WS_ATTRIBUTE_FIELD_MAPPING
Wert: 1
Das Feld entspricht einem einzelnen Attribut.


Die localName/ns des Felds werden als XML-Attributname und -Namespace verwendet.


Sofern nicht angegeben, muss das Attribut im XML-Code angezeigt werden.
Wenn WS_FIELD_OPTIONAL angegeben ist, dann das Attribut
ist nicht erforderlich, um im XML-Code angezeigt zu werden. Wenn optional und nicht
vorhanden ist, dann wird das Feld auf die WS_DEFAULT_VALUE festgelegt,
oder null, wenn der Standardwert nicht angegeben ist.



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>

Um das Attribut zu verwerfen, sollte ein WS_VOID_TYPE verwendet werden.
In diesem Fall ist ein Feld in der Struktur nicht erforderlich.
Weitere Informationen finden Sie unter WS_VOID_TYPE .
WS_ELEMENT_FIELD_MAPPING
Wert: 2
Das Feld entspricht einem einzelnen Element.


Die localName/ns des Felds werden als Xml-Elementname und -Namespace verwendet.


Sofern nicht angegeben, muss das Element im XML-Code angezeigt werden.
Wenn WS_FIELD_OPTIONAL angegeben ist, dann das -Element
ist nicht erforderlich, um im XML-Code angezeigt zu werden. Wenn optional und nicht
vorhanden ist, dann wird das Feld auf die WS_DEFAULT_VALUE festgelegt,
oder null, wenn der Standardwert nicht angegeben ist.



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>

Um das Element zu verwerfen, sollte ein WS_VOID_TYPE verwendet werden.
In diesem Fall ist ein Feld in der Struktur nicht erforderlich.
Weitere Informationen finden Sie unter WS_VOID_TYPE .
WS_REPEATING_ELEMENT_FIELD_MAPPING
Wert: 3
Das Feld entspricht einem sich wiederholenden Satz von Elementen.


Die localName/ns des Felds werden als XML-Element verwendet.
Name und Namespace, der für das Wrapperelement (das Element) verwendet werden soll
das übergeordnete Element der sich wiederholenden Elemente ist). Wenn kein Wrapper
Element ist erwünscht, dann sollten beide localName/ns NULL sein.


Wenn ein Wrapperelement angegeben wurde, muss das Wrapperelement angezeigt werden.
im XML, wenn die Anzahl der wiederholten Elemente nicht 0 ist. Ein WS_DEFAULT_VALUE kann
für diese Feldzuordnung nicht angegeben werden.


ItemLocalName und itemNs werden als XML-Element verwendet.
Name und Namespace für das sich wiederholende Element.



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>

Die Anzahl der Elemente im deserialisierten Array kann eingeschränkt werden.
durch Angeben einer Nicht-NULL-WS_ITEM_RANGE-Struktur
Teil der WS_FIELD_DESCRIPTION.
WS_TEXT_FIELD_MAPPING
Wert: 4
Das Feld entspricht dem gesamten Zeicheninhalt des Elements.
Wenn diese Zuordnung verwendet wird, sind untergeordnete Elemente nicht zulässig.


Diese Zuordnung wird häufig in Verbindung mit WS_ATTRIBUTE_FIELD_MAPPING verwendet, um eine Struktur zu definieren, die einem Element zugeordnet ist, das einige Text und Attribute enthält (aber keine
untergeordnete Elemente).



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>

Diese Zuordnung unterstützt die Angabe eines WS_DEFAULT_VALUE nicht.
WS_NO_FIELD_MAPPING
Wert: 5
Das Feld ist weder serialisiert noch deserialisiert.


Das Feld wird beim Serialisieren ignoriert und mit dem
Standardwert beim Deserialisieren.


Wenn das Feld einem der vorhandenen Typen zugeordnet ist (z. B. WS_INT32_TYPE),
dann kann der Typ angegeben werden. Wenn der Typ des Felds nicht einer von ist
Die vorhandenen Typen können dann WS_VOID_TYPE verwendet werden, um anzugeben
ein Feld mit einem beliebigen Typ und einer beliebigen Größe.


Es kann ein WS_DEFAULT_VALUE angegeben werden, um den Wert bereitzustellen.
, um das Feld beim Deserialisieren des Felds zu initialisieren. Wenn ein Standard
wert wird nicht angegeben, dann wird das Feld mit null initialisiert.


Die Feldzuordnung kann nur mit WS_FIELD_OPTIONS Wert 0 verwendet werden.



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
Wert: 6
Das Feld entspricht einem reservierten xml-Attribut (z. B. xml:lang).


Der localName des Felds wird verwendet, um den XML-Attributnamen zu identifizieren.


Sofern nicht WS_FIELD_OPTIONAL angegeben ist, muss das Attribut
werden im XML-Code angezeigt. Wenn WS_FIELD_OPTIONAL angegeben ist,
dann ist das Attribut nicht erforderlich, um im XML-Code angezeigt zu werden. Wenn optional und nicht
vorhanden ist, dann wird das Feld auf die WS_DEFAULT_VALUE festgelegt,
oder null, wenn der Standardwert nicht angegeben ist.



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
Wert: 7
Das Feld entspricht einer Auswahl aus einer Reihe möglicher
unterstützt. Jedes Element wird einem der Felder einer Union zugeordnet.
Jedes Feld der Union verfügt über einen entsprechenden Enumerationswert.
wird verwendet, um die aktuelle Auswahl zu identifizieren.



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>

Diese Feldzuordnung muss mit WS_UNION_TYPE verwendet werden.
Die Namen und Namespaces der Elementauswahl werden im
WS_UNION_DESCRIPTION. LocalName des Felds
und ns sollte NULL sein.


Sofern nicht WS_FIELD_OPTIONAL angegeben ist, ist einer der
-Elemente müssen im XML-Code angezeigt werden. Wenn WS_FIELD_OPTIONAL angegeben ist,
dann muss keines der Elemente im XML-Code angezeigt werden. Wenn optional und ohne
der Elemente vorhanden sind, dann wird der Selektorwert des Felds auf festgelegt.
kein Wert der Enumeration (wie im Feld noneEnumValue von angegeben)
die WS_UNION_DESCRIPTION). Aufgrund der Tatsache, dass nonEnumValue
wird als Standardwert verwendet. Dieser Zuordnungswert unterstützt nicht.
Angeben eines 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>

Das Feld entspricht einer Auswahl aus einer Reihe möglicher Optionen.
unterstützt. Jedes Element wird einem der Felder einer Union zugeordnet.
Jedes Feld der Union verfügt über einen entsprechenden Enumerationswert, der ist.
wird verwendet, um die aktuelle Auswahl zu identifizieren.



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>

Diese Feldzuordnung muss mit WS_UNION_TYPE verwendet werden.
Die Namen und Namespaces der Elementauswahl werden im
WS_UNION_DESCRIPTION. LocalName des Felds
und ns sollten NULL sein.


Sofern nicht WS_FIELD_OPTIONAL angegeben ist, ist eine der
-Elemente müssen im XML-Code angezeigt werden. Wenn WS_FIELD_OPTIONAL angegeben ist,
Dann muss keines der Elemente im XML-Code angezeigt werden. Wenn optional und keine
der Elemente vorhanden sind, dann wird der Selektorwert des Felds auf festgelegt.
kein Wert der Enumeration (wie im Feld noneEnumValue von angegeben)
die WS_UNION_DESCRIPTION). Aufgrund der Tatsache, dass nonEnumValue
wird als Standardwert verwendet. Dieser Zuordnungswert unterstützt nicht.
Angeben eines 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>

Der Selektorwert gibt an, welches der Felder des
union ist festgelegt. Andere Felder werden nicht initialisiert, wenn
der Wert deserialisiert wird. Eine Anwendung sollte immer
Überprüfen Sie anhand des Selektorwerts, ob ein Feld der
Union ist zugänglich.
WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING
Wert: 8
Das Feld entspricht einem wiederholten Satz von Elementauswahlen.


Jedes Element wird durch eine Union mit Selektorwert dargestellt.
Diese Zuordnung muss mit WS_UNION_TYPE verwendet werden.


Die localName/ns des Felds werden als XML-Element verwendet.
Name und Namespace, die für das Wrapperelement (das -Element) verwendet werden sollen
dies ist das übergeordnete Element der sich wiederholenden Elemente). Wenn kein Wrapper
-Element ist gewünscht, dann sollten beide localName/ns NULL sein.


Wenn ein Wrapperelement angegeben wurde, muss das Wrapperelement angezeigt werden.
im XML-Code, wenn die Anzahl der wiederholten Elemente nicht 0 ist. Ein WS_DEFAULT_VALUE kann
für diese Feldzuordnung nicht angegeben werden.


Die Felder itemLocalName und itemNs müssen NULL sein. Das XML-Element
Name und Namespace werden im WS_UNION_DESCRIPTION definiert.



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>

Die Anzahl der Elemente im deserialisierten Array kann eingeschränkt werden.
durch Angeben einer Nicht-NULL-WS_ITEM_RANGE-Struktur, die
Teil der WS_FIELD_DESCRIPTION.
WS_ANY_ELEMENT_FIELD_MAPPING
Wert: 9
WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING
Wert: 10
Das Feld wird verwendet, um eine Sequenz von Elementen zu verwerfen oder zu speichern.
mit einem beliebigen Namen und Namespace.


Zum Speichern der Elemente sollte ein WS_XML_BUFFER_TYPE
verwendet werden. Dies entspricht einem Array von WS_XML_BUFFERs,
wie folgt auswählen:



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>

Um die Elemente zu verwerfen, sollte ein WS_VOID_TYPE verwendet werden.
In diesem Fall ist in der -Struktur kein Feld erforderlich. Weitere Informationen finden Sie unter WS_VOID_TYPE
weitere Informationen.


Die Anzahl der während der Deserialisierung zulässigen Elemente kann eingeschränkt werden.
durch Angeben einer Nicht-NULL-WS_ITEM_RANGE-Struktur, die
Teil der WS_FIELD_DESCRIPTION.


Diese Zuordnung unterstützt die Angabe einer WS_DEFAULT_VALUE nicht.
WS_ANY_CONTENT_FIELD_MAPPING
Wert: 11
Das Feld wird verwendet, um verbleibende Inhalte zu verwerfen oder zu speichern.
(eine beliebige Mischung aus Text oder Elementen), die vor dem Ende auftritt
eines Elements.


Zum Speichern der Elemente sollte ein WS_XML_BUFFER_TYPE
wie folgt verwendet werden:



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>

Um die Elemente zu verwerfen, sollte ein WS_VOID_TYPE verwendet werden.
In diesem Fall ist in der -Struktur kein Feld erforderlich.
Weitere Informationen finden Sie unter WS_VOID_TYPE .


Diese Zuordnung unterstützt die Angabe einer WS_DEFAULT_VALUE nicht.
WS_ANY_ATTRIBUTES_FIELD_MAPPING
Wert: 12
Das Feld wird verwendet, um alle Attribute zu verwerfen oder zu speichern, die nicht waren.
mit anderen WS_FIELD_MAPPING-Werten zugeordnet.


Wenn diese Feldzuordnung nicht angegeben ist, werden nicht zugeordnete Attribute
führt bei der Deserialisierung zu einem Fehler.


Das Namensfeld des WS_FIELD_DESCRIPTION muss NULL sein.


Das Feld ns der WS_FIELD_DESCRIPTION schränkt die
Namespace der zulässigen Attribute wie folgt:

  • Wenn das Feld ns NULL ist, gibt es keine Einschränkung. The
    WS_FIELD_OTHER_NAMESPACE Feldoption darf in dieser Option nicht festgelegt werden.
    Fall.

  • Wenn das Feld ns ungleich NULL ist, und die Feldoption
    WS_FIELD_OTHER_NAMESPACE für das Feld nicht festgelegt ist, dann
    Das Attribut muss denselben Namespace aufweisen, der im Feld ns angegeben wurde.

  • Wenn das Feld ns ungleich NULL ist, und die Feldoption
    WS_FIELD_OTHER_NAMESPACE für das Feld festgelegt ist, dann
    Das Attribut muss einen anderen Namespace als angegeben haben.
    im Feld ns.




Zum Speichern der Attribute sollte WS_ANY_ATTRIBUTES_TYPE
gebraucht. Dies entspricht WS_ANY_ATTRIBUTES wie folgt:



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>

Um die nicht zugeordneten Attribute zu verwerfen, sollte ein WS_VOID_TYPE verwendet werden.
In diesem Fall ist ein Feld in der Struktur nicht erforderlich.
Weitere Informationen finden Sie unter WS_VOID_TYPE .


Diese Zuordnung unterstützt die Angabe eines WS_DEFAULT_VALUE nicht.

Hinweise

Die WS_FIELD_MAPPING gibt an, wie verschiedene Teile des XML-Inhalts den Feldern einer Struktur zugeordnet werden. Beispielsweise können WS_ELEMENT_FIELD_MAPPING verwendet werden, um den Wert eines untergeordneten Elements zuzuordnen, und WS_ATTRIBUTE_FIELD_MAPPING kann zum Zuordnen eines Attributs verwendet werden. Alle gelesenen XML-Inhalte, die nicht explizit zugeordnet sind, führen dazu, dass WS_E_INVALID_FORMAT zurückgegeben werden, wenn der XML-Code deserialisiert wird. (Siehe Rückgabewerte für Windows-Webdienste.)

Die Reihenfolge der WS_FIELD_DESCRIPTION innerhalb eines WS_STRUCT_DESCRIPTION wird durch den WS_FIELD_MAPPING Wert des WS_FIELD_DESCRIPTION bestimmt. Weitere Informationen zur Bestellung finden Sie unter WS_STRUCT_DESCRIPTION .

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile webservices.h