Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following example shows the WBXML encoding of a server response that contains a new contact and provides a byte-by-byte description of the encoding.
The following XML represents a server response to a request to create a new contact.
-
<?xml version="1.0" encoding="utf-8"?> <Sync xmlns="AirSync" xmlns:airsyncbase="AirSyncBase" xmlns:contacts="Contacts"> <Collections> <Collection> <Class>Contacts</Class> <SyncKey>2</SyncKey> <CollectionId>2</CollectionId> <Status>1</Status> <Commands> <Add> <ServerId>2:1</ServerId> <ApplicationData> <airsyncbase:Body> <airsyncbase:Type>1</airsyncbase:Type> <airsyncbase:EstimatedDataSize>0</airsyncbase:EstimatedDataSize> <airsyncbase:Truncated>1</airsyncbase:Truncated> </airsyncbase:Body> <contacts:FileAs>Funk, Don</contacts:FileAs> <contacts:FirstName>Don</contacts:FirstName> <contacts:LastName>Funk</contacts:LastName> <airsyncbase:NativeBodyType>1</airsyncbase:NativeBodyType> </ApplicationData> </Add> </Commands> </Collection> </Collections> </Sync>
The Exchange ActiveSync: WAP Binary XML (WBXML) Algorithm encodes this XML as the following WBXML encoding.
-
03 01 6A 00 45 5C 4F 50 03 43 6F 6E 74 61 63 74 73 00 01 4B 03 32 00 01 52 03 32 00 01 4E 03 31 00 01 56 47 4D 03 32 3A 31 00 01 5D 00 11 4A 46 03 31 00 01 4C 03 30 00 01 4D 03 31 00 01 01 00 01 5E 03 46 75 6E 6B 2C 20 44 6F 6E 00 01 5F 03 44 6F 6E 00 01 69 03 46 75 6E 6B 00 01 00 11 56 03 31 00 01 01 01 01 01 01 01
The following table explains each byte in the WBXML encoding.
Bytes |
Description |
---|---|
03 |
Version number – WBXML version 1.3 |
01 |
Unknown public identifier |
6A |
Charset = UTF-8 |
00 |
String table length |
45 |
<airsync:Sync>, with content (0x05 + 0x40) |
5C |
<airsync:Collections>, with content |
4F |
<airsync:Collection>, with content |
50 |
<airsync:Class>, with content |
03 |
Inline string follows |
43 6F 6E 74 61 63 74 73 00 |
"contacts" (the 00 is the end of the string) |
01 |
</airsync:Class> |
4B |
<airsync:SyncKey>, with content |
03 |
Inline string follows |
32 00 |
"2" |
01 |
</airsync:SyncKey> |
52 |
<airsync:CollectionID>, with content |
03 |
Inline string follows |
32 00 |
"2" |
01 |
</airsync:CollectionID> |
4E |
<airsync:Status>, with content |
03 |
Inline string follows |
31 00 |
"1" |
01 |
</airsync:Status> |
56 |
<airsync:Commands>, with content |
47 |
<airsync:Add>, with content |
4D |
<airsync:ServerId>, with content |
03 |
Inline string follows |
32 3A 31 00 |
"2:1" |
01 |
</airsync:ServerId> |
5D |
<airsync:ApplicationData>, with content |
00 11 |
Select WBXML code page 17 (AirSyncBase) |
4A |
<airsyncbase:Body>, with content |
46 |
<airsyncbase:Type>, with content |
03 |
Inline string follows |
31 00 |
"1" |
01 |
</airsyncbase:Type> |
4C |
<airsyncbase:EstimatedDataSize>, with content |
03 |
Inline string follows |
30 00 |
"0" |
01 |
</airsyncbase:EstimatedDataSize> |
4D |
<airsyncbase:Truncated>, with content |
03 |
Inline string follows |
31 00 |
"1" |
01 |
</airsyncbase:Truncated> |
01 |
</airsyncbase:Body> |
00 01 |
Select WBXML code page 1 (Contacts) |
5E |
<contacts:FileAs>, with content |
03 |
Inline string follows |
46 75 6E 6B 2C 20 44 6F 6E 00 |
"Funk, Don" |
01 |
</contacts:FileAs> |
5F |
<contacts:FirstName>, with content |
03 |
Inline string follows |
44 6F 6E 00 |
"Don" |
01 |
</contacts:FirstName> |
69 |
<contacts:LastName>, with content |
03 |
Inline string follows |
46 75 6E 6B 00 |
"Funk" |
01 |
</contacts:LastName> |
00 11 |
Select WBXML code page 17 (AirSyncBase) |
56 |
<airsyncbase:NativeBodyType>, with content |
03 |
Inline string follows |
31 00 |
"1" |
01 |
</airsyncbase:NativeBodyType> |
01 |
</airsync:ApplicationData> |
01 |
</airsync:Add> |
01 |
</airsync:Commands> |
01 |
</airsync:Collection> |
01 |
</airsync:Collections> |
01 |
</airsync:Sync> |