WSDAPI 會使用這些位元元組程式代碼,使用描述複雜類型的位元組程式代碼資料表來剖析和產生 XML。
型別的位元組程式代碼資料表表示型別的二進位 (記憶體內部) 和 XML (在線) 表示法。 位元組程式代碼數據表是由特殊作業終止的作業清單所組成,也就是 OpEndOfTable
。 作業是由一個字節作業程序代碼所組成,後面接著零個或多個字節的自變數數據。
Bytecode | 描述 |
---|---|
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 開頭的 子句。 |
Opanything | 符合任意數目的專案和文字標記。 |
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 (type,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 (type,field) | 比對包含文字標記之整個值的字串。 4 位元組位移自變數表示字串指標出現在目前二進位內容中的位移。 OpFormatUnicodeString 巨集會計算指定類型中指定欄位的位移,並提供該位移做為自變數。 |
OpFormatDom (type,field) | 表示後續子句所比對的所有 XML 都會以二進位形式表示為 DOM(WSDXML_NODE 結構清單)。 OpFormatDom 會啟動在後續子句結尾終止的子句。 4 位元組位移自變數表示第一個WSDXML_NODE指標出現在目前二進位內容中的位移。 OpFormatDom 巨集會計算指定類型中指定欄位移,並提供該位移做為自變數。 |
OpFormatStruct (structType,type,field) | 表示後續子句的二進位內容是目前二進位內容所參考的結構。 OpFormatStruct 會啟動在後續子句結尾終止的子句。 兩個 4 位元組自變數中的第一個表示結構的大小。 第二個自變數表示結構指標出現在目前二進位內容中的位移。 OpFormatStruct 巨集會計算指示的結構類型大小(structType),並提供大小做為第一個自變數。 巨集會計算指定型別中指定欄位移,並提供位移做為第二個自變數。 |
OpFormatUri (type,field) | 比對文字令牌中的 URI。 4 位元組位移自變數表示 URI 字串指標出現在目前二進位內容中的位移。 OpFormatUri 巨集會計算指定類型中指定欄位移,並提供該位移做為自變數。 |
OpFormatUuidUri (type,field) | 比對文字令牌中的 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(type,field) | 將參考的欄位標示為在產生和剖析階段期間需要額外的處理。 這用於無法自動處理的複雜欄位。 |