WSDAPI XML 類型位元組程式碼
WSDAPI 會使用這些位元組程式碼,使用描述複雜類型的位元組程式碼資料表來剖析及產生 XML。
型別的位元組程式碼資料表表示二進位 (記憶體內部) 和 XML (線上) 類型的標記法。 位元組程式碼資料表是由特殊作業終止的作業清單所組成,也就是 OpEndOfTable
。 作業是由一個位元組作業程式碼所組成,後面接著零個或多個位元組的引數資料。
位元組 碼 | Description |
---|---|
OpNone | 不相符任何專案。 |
OpEndOfTable | 表示位元組程式碼資料表的結尾。 |
OpBeginElement (名稱) | 比對具有指定名稱的專案起始標記。 名稱會以 4 位元組編碼形式出現在資料表中。 OnBeginElement 會啟動以相符 OpEndElement 結尾的子句。 OpBeginElement 與其相符的 OpEndElement 之間必須出現零個或多個完整子句。 |
OpBeginAnyElement | 比對具有任何名稱的專案起始標記。 OnBeginAnyElement 會啟動以相符 OpEndElement 結尾的子句。 OpBeginAnyElement 與其相符的 OpEndElement 之間必須出現零個或多個完整子句。 |
OpEndElement | 結束以 OpBeginElement 或 OpBeginAnyElement 開頭的子句。 |
OpElement (名稱) | 比對具有指定名稱的整個專案。 名稱會以 4 位元組編碼形式出現在資料表中。 |
OpAnyElement | 比對具有任何名稱的整個專案。 |
OpAnyElements | 比對任意數目的專案與任何名稱。 |
OpAnyText | 比對文字標記。 |
OpAttribute (名稱) | 比對具有指定名稱的屬性標籤標記。 OpAttribute 會啟動子句,其中包含資料表中的後續子句。 後續子句是用來比對屬性的值部分。 OpAttribute 子句一律會出現在 OpBeginElement 或 OpBeginAnyElement 作業或另一個 OpAttribute 子句之後。 |
OpBeginChoice | OpBeginChoice 會啟動以相符 OpEndChoice 結尾的子句。 OpBeginChoice 與其相符的 OpEndChoice 之間必須出現零個或多個完整子句。 外部子句符合任何一個內部子句所比對的標記。 所有內部子句都必須以 OpBeginElement 開頭,但最後一個子句可能是 OpAnything。 這個建構會對應至 XSD 選擇物件。 |
OpEndChoice | 結束以 OpBeginChoice 開頭的子句。 |
OpBeginSequence | OpBeginSequence 會啟動以相符 OpEndSequence 結尾的子句。 OpBeginSequence 與 OpEndSequence 之間必須出現零個或多個完整子句。 外部子句會比對序列中所有內部子句所比對的標記。 這個建構對應于 XSD 序列物件。 |
OpEndSequence | 結束以 OpBeginSequence 開頭的子句。 |
OpBeginAll | OpBeginAll 會啟動以相符 OpEndAll 結尾的 子句。 OpBeginAll 與 OpEndAll 之間必須出現零個或多個完整子句。 外部子句符合任何序列中內部子句所比對的標記。 與每個內部子句相關的發生運算子會指出每個子句的標記可能發生次數。 預設值為一次。 指定的子句多次可能會與其他內部子句的出現次數混在一起。 所有內部子句都必須以 OpBeginElement 開頭,但最後一個子句可能是 OpAnything。 這個建構會對應至 XSD 所有物件。 |
OpEndAll | 結束以 OpBeginAll 開頭的 子句。 |
任何作業 | 比對任意數目的專案和文字標記。 |
OpAnyNumber | 表示後續子句可能會發生任意次數。 OpAnyNumber 會啟動在後續子句結尾終止的 子句。 |
OpOneOrMore | 表示後續子句可能會發生一或多次。 OpOneOrMore 會啟動在後續子句結尾終止的 子句。 |
OpOptional | 表示後續子句可能會發生零次或一次。 OpOptional 會啟動在後續子句結尾終止的 子句。 |
OpFormatInt8 (type,field) | 比對文字標記中的 8 位帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatInt8 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatInt16 (type,field) | 比對 16 位帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatInt16 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatInt32 (type,field) | 比對文字標記中的 32 位帶正負號整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatInt32 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatInt64 (類型,field) | 比對文字標記中的 64 位帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatInt64 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUInt8 (type,field) | 比對文字標記中的 8 位不帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatUInt8 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUInt16 (type,field) | 比對文字標記中的 16 位不帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatUInt16 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUInt32 (type,field) | 比對文字標記中的 32 位不帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatUInt32 宏會計算所指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUInt64 (type,field) | 比對文字標記中的 64 位不帶正負號的整數。 4 位元組位移引數表示目前二進位內容中的二進位標記法位移。 OpFormatUInt64 宏會計算所指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUnicodeString (類型,欄位) | 比對包含文字標記之整個值的字串。 4 位元組位移引數表示字串指標出現在目前二進位內容中的位移。 OpFormatUnicodeString 宏會計算指定型別中指定欄位的位移,並提供該位移做為引數。 |
OpFormatDom (類型,欄位) | 表示後續子句所比對的所有 XML 都會以二進位形式來表示, (WSDXML_NODE結構清單) 。 OpFormatDom 會啟動在後續子句結尾終止的子句。 4 位元組位移引數指出第一個WSDXML_NODE指標出現在目前二進位內容中的位移。 OpFormatDom 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatStruct (structType,type,field) | 表示後續子句的二進位內容是目前二進位內容所參考的結構。 OpFormatStruct 會啟動在後續子句結尾終止的子句。 兩個 4 位元組引數中的第一個表示 結構的大小。 第二個引數表示結構指標出現在目前二進位內容中的位移。 OpFormatStruct 宏會計算指定的結構類型大小 (structType) ,並提供大小做為第一個引數。 宏會計算指定型別中指定欄位的位移,並提供該位移做為第二個引數。 |
OpFormatUri (類型,欄位) | 比對文字權杖中的 URI。 4 位元組位移引數表示 URI 字串指標出現在目前二進位內容中的位移。 OpFormatUri 宏會計算指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatUuidUri (類型,欄位) | 比對文字權杖中的 UUID 通訊協定 URI。 4 位元組位移引數表示 GUID 結構表單中 URI 出現在目前二進位內容中的位移。 OpFormatUuidUri 宏會計算所指定類型中指定欄位的位移,並提供該位移做為引數。 |
OpFormatName (type,field) | 比對文字標記中的限定名稱。 4 位元組位移引數表示在目前二進位內容中顯示WSDXML_NAME) 結構 (限定名稱指標的位移。 OpFormatName 宏會計算指定型別中指定欄位的位移,並提供該位移做為引數。 |
OpFormatListInsertTail (nodeType,type,field) | 表示後續子句所有出現的二進位內容都是目前二進位內容所參考之單一連結清單的結構。 OpFormatListInsertTail 會啟動在後續子句結尾終止的子句。 兩個 4 位元組引數的第一個表示結構的大小。 第二個引數表示結構指標出現在目前二進位內容中的位移。 將結構連結至清單中的 'next' 指標一律是結構中的第一個欄位。 OpFormatListInsertTail 宏會計算所指示結構類型的大小, (nodeType) ,並提供大小做為第一個引數。 宏會計算指定型別中指定欄位的位移,並提供該位移做為第二個引數。 |
OpFormatType (typetable,type,field) | 比對指定的型別資料表所比對的標記,並指出該資料表的二進位內容內嵌在目前二進位內容中,且位於指定的位移。 兩個 4 位元組引數中的第一個是類型資料表的編碼參考。 第二個引數是位移。 OpFormatType 宏會計算指定型別中指定欄位的位移,並提供該位移做為引數。 |
OpFormatDynamicType (name,type,field) | 比對使用指示的名稱動態取得的類型資料表所比對的標記,並指出該資料表的二進位內容內嵌在目前二進位內容中,且位於指定的位移。 兩個 4 位元組引數的第一個是識別類型資料表的名稱。 一般而言,這個名稱是以單引號字串的形式指定,例如 「'body'」,這會產生 4 位元組值。 第二個引數是位移。 OpFormatDynamicType 宏會計算指定型別中指定欄位的位移,並提供該位移做為引數。 |
OpFormatLookupType (urifield,type,field) | 比對在目前二進位內容中指定位移的 URI 所識別之類型資料表所識別的權杖,並指出該資料表的二進位內容內嵌在目前二進位內容中,位於指定的位移。 兩個 4 位元組引數中的第一個是目前二進位內容中類型 URI 的位移。 第二個引數是新二進位內容的位移。 OpFormatLookupType 宏會計算所指定類型中指定欄位的位移,並提供該位移作為引數。 |
OpProcess (類型,欄位) | 將參考的欄位標示為在產生和剖析階段期間需要其他處理。 這用於無法自動處理的複雜欄位。 |