WS_FIELD_MAPPING列舉 (webservices.h)
指定結構欄位在 XML 中的表示方式。 這會在 WS_FIELD_DESCRIPTION中使用。
語法
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搭配使用。
這個對應不支援指定 WS_DEFAULT_VALUE。 |
WS_ATTRIBUTE_FIELD_MAPPING 值:1 欄位會對應至單一屬性。 欄位的localName/ns會當做 XML 屬性名稱和命名空間使用。 除非指定,否則屬性必須出現在 XML 中。 如果指定了 WS_FIELD_OPTIONAL,則不需要屬性才能出現在 XML 中。 如果選擇性且不存在,則字段會設定為 WS_DEFAULT_VALUE,如果未指定預設值,則為零。
若要捨棄 屬性,應該使用 WS_VOID_TYPE。 在此情況下,結構中不需要欄位。 如需詳細資訊,請參閱 WS_VOID_TYPE。 |
WS_ELEMENT_FIELD_MAPPING 值:2 欄位會對應至單一專案。 欄位的localName/ns會當做 XML 專案名稱和命名空間使用。 除非指定,否則元素必須出現在 XML 中。 如果指定 WS_FIELD_OPTIONAL,則不需要元素出現在 XML 中。 如果選擇性且不存在,則字段會設定為 WS_DEFAULT_VALUE,如果未指定預設值,則為零。
若要捨棄項目,應該使用 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 專案名稱和命名空間使用。
還原串行化陣列中的項目數目可以藉由指定非NULLWS_ITEM_RANGE 結構來限制,該結構是 WS_FIELD_DESCRIPTION的一部分。 |
WS_TEXT_FIELD_MAPPING 值:4 欄位會對應至專案的整個字元內容。 使用此對應時,不允許子專案。 此對應通常與 WS_ATTRIBUTE_FIELD_MAPPING 搭配使用,以定義結構,該結構會對應至包含某些文字和屬性的專案(但沒有子元素)。
這個對應不支援指定 WS_DEFAULT_VALUE。 |
WS_NO_FIELD_MAPPING 值:5 欄位不會串行化或還原串行化。 串行化時會忽略 欄位,並在還原串行化時初始化為預設值。 如果字段對應至其中一個現有的類型(例如 WS_INT32_TYPE),則可以指定類型。 如果欄位的類型不是其中一個現有的類型,則 WS_VOID_TYPE 可用來指定任意類型和大小的欄位。 可以指定 WS_DEFAULT_VALUE,以提供值,以在還原串行化欄位時將字段初始化為 。 如果未指定預設值,則會將字段初始化為零。 欄位對應只能與 WS_FIELD_OPTIONS 值為 0 搭配使用。
|
WS_XML_ATTRIBUTE_FIELD_MAPPING 值:6 欄位會對應至保留的 xml 屬性(例如 xml:lang)。 欄位的localName是用來識別 XML 屬性名稱。 除非指定 WS_FIELD_OPTIONAL,否則屬性必須出現在 XML 中。 如果指定了 WS_FIELD_OPTIONAL,則不需要屬性才能出現在 XML 中。 如果選擇性且不存在,則字段會設定為 WS_DEFAULT_VALUE,如果未指定預設值,則為零。
|
WS_ELEMENT_CHOICE_FIELD_MAPPING 值:7 欄位會對應至一組可能元素之間的選擇。 每個元素都會對應至聯集的其中一個字段。 聯集的每個欄位都有對應的列舉值,用來識別目前的選擇。
此欄位對應必須與 WS_UNION_TYPE搭配使用。 項目選擇的名稱和命名空間會在 WS_UNION_DESCRIPTION中指定。 欄位的 localName 和 ns 應 NULL。 除非指定 WS_FIELD_OPTIONAL,否則其中一個項目必須出現在 XML 中。 如果指定 WS_FIELD_OPTIONAL,則不需要任何專案出現在 XML 中。 如果選擇性且沒有任何元素存在,則字段的選取器值會設定為列舉的無值(如 WS_UNION_DESCRIPTION的 noneEnumValue 字段所指定)。 由於 nonEnumValue 是當做預設值使用,所以這個對應值不支援指定 WS_DEFAULT_VALUE。
欄位會對應至一組可能元素之間的選擇。 每個元素都會對應至聯集的其中一個字段。 聯集的每個欄位都有對應的列舉值,用來識別目前的選擇。
此欄位對應必須與 WS_UNION_TYPE搭配使用。 項目選擇的名稱和命名空間會在 WS_UNION_DESCRIPTION中指定。 欄位的 localName 和 ns 應 NULL。 除非指定 WS_FIELD_OPTIONAL,否則其中一個項目必須出現在 XML 中。 如果指定 WS_FIELD_OPTIONAL,則不需要任何專案出現在 XML 中。 如果選擇性且沒有任何元素存在,則字段的選取器值會設定為列舉的無值(如 WS_UNION_DESCRIPTION的 noneEnumValue 字段所指定)。 由於 nonEnumValue 是當做預設值使用,所以這個對應值不支援指定 WS_DEFAULT_VALUE。
選取器值表示已設定聯集的欄位。 當值還原串行化時,其他欄位會保持未初始化。 應用程式應該一律諮詢選取器值,以確認聯集的欄位是可存取的。 |
WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING 值:8 欄位會對應至一組重複的項目選擇。 每個項目都會以具有選取器值的聯集來表示。 此對應必須與 WS_UNION_TYPE搭配使用。 欄位的localName/ns會作為 XML 專案名稱和命名空間,用於包裝函式專案(這是重複元素的父元素)。 如果不需要包裝函式專案,則這兩個localName/ns都應該 NULL。 如果已指定包裝函式專案,如果重複專案計數不是 0,包裝函式專案必須出現在 XML 中。 此欄位對應可能未指定 WS_DEFAULT_VALUE。 itemLocalName 和 itemN 字段必須 NULL。 XML 專案名稱和命名空間定義於 WS_UNION_DESCRIPTION中。
還原串行化陣列中的項目數目可以藉由指定非NULLWS_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的陣列,如下所示:
若要捨棄項目,應該使用 WS_VOID_TYPE。 在此情況下,結構中不需要欄位。 如需詳細資訊,請參閱 WS_VOID_TYPE。 還原串行化期間允許的項目數目可以藉由指定非NULLWS_ITEM_RANGE 結構來限制,而該結構是 WS_FIELD_DESCRIPTION的一部分。 這個對應不支援指定 WS_DEFAULT_VALUE。 |
WS_ANY_CONTENT_FIELD_MAPPING 值:11 欄位可用來捨棄或儲存在項目結尾之前的任何剩餘內容(任何文字或元素的混合)。 若要儲存項目,應該使用 WS_XML_BUFFER_TYPE,如下所示:
若要捨棄項目,應該使用 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,如下所示:
若要捨棄未對應的屬性,應該使用 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_DESCRIPTION的 WS_FIELD_MAPPING 值。 如需訂購的詳細資訊,請參閱 WS_STRUCT_DESCRIPTION。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
標頭 | webservices.h |