This topic has not yet been rated - Rate this topic

4.4 Simple BinXml Example

The following is a example of a simple BinXml fragment (without use of templates):

<Event>
<Element1>abc</Element1>
<Element2> def &amp;&#60; ghi </Element2>
<Element3 AttrA='abc' AttrB='def&amp;&#60;ghi'/>
</Event>
00 : 0f 01 01 00 01 f2 00 00-00 ba 0c 05 00 45 00 76   <Event>
10 : 00 65 00 6e 00 74 00 00-00 02 01 22 00 00 00 b5
20 : 79 08 00 45 00 6c 00 65-00 6d 00 65 00 6e 00 74
30 : 00 31 00 00 00 02 05 01-03 00 61 00 62 00 63 00
40 : 04 01 44 00 00 00 b6 79-08 00 45 00 6c 00 65 00   
                                              </Element1> <Element2>
50 : 6d 00 65 00 6e 00 74 00-32 00 00 00 02 45 01 05
60 : 00 20 00 64 00 65 00 66-00 20 00 49 24 fb 03 00
70 : 61 00 6d 00 70 00 00 00-48 3c 00 05 01 05 00 20
80 : 00 67 00 68 00 69 00 20-00 04 41 6b 00 00 00 b7   
                                              </Element2> <Element3>
90 : 79 08 00 45 00 6c 00 65-00 6d 00 65 00 6e 00 74
A0 : 00 33 00 00 00 50 00 00-00 46 90 d8 05 00 41 00
B0 : 74 00 74 00 72 00 41 00-00 00 05 01 03 00 61 00
C0 : 62 00 63 00 06 91 d8 05-00 41 00 74 00 74 00 72
D0 : 00 42 00 00 00 45 01 03-00 64 00 65 00 66 00 49
E0 : 24 fb 03 00 61 00 6d 00-70 00 00 00 48 3c 00 05
F0 : 01 03 00 67 00 68 00 69-00 03 04 00                
                                                <Element3/> </Event>

Token offset

Token type

Comments on encoding

00

0F - FragmentHeaderToken

Version 1.1, flags=0

04

01 - OpenStartElementToken

<Event> start tag. There is no Dependency ID because this is not a template definition.

The length of the data for the entire element is 0xF2, and this data starts at offset 0x09.

The data consists of three parts: name hash (2 bytes), string length (2 bytes), and name itself (the rest of the data).

At offset 0x09, the name begins for the start tag. The length of the name is five Unicode characters (does not include a null-terminator).

Note, the more bit is not set on the OpenStartElementToken, so attributes do not follow.

19

02 - CloseStartElementToken

Close <Event> start tag.

1A

01 - OpenStartElementToken

<Element1> start tag, no attributes to follow.

35

02 - CloseStartElementToken

Close <Element1> start tag.

36

05 - ValueTextToken

The character data 'abc'. It has a length of three Unicode characters (character data strings are not null- terminated).

40

04 - EndElementToken

End </Element1>.

41

01 - OpenStartElementToken

<Element2>.

5C

02 - CloseStartElementToken

Close <Element2> start tag.

5D

45 - ValueTextToken (MoreBit)

The character data ' def '. Spaces surround 'def' so its length is five Unicode characters. The more bit is set, so there is more character data that follows.

6B

49 - EntityRefToken (MoreBit)

An entity reference with Name 'amp'. More character data follows.

78

48 - CharRefToken (MoreBit)

The character reference for '&'. More character data follows.

7B

05 - ValueTextToken

The character data ' ghi ' (again with spaces). No more character data appears before the next markup token.

89

04 - EndElementToken

End </Element2>.

8A

41 - OpenStartElementToken ( MoreBit - AttrList )

<Element3>. The more bit is set, so an attribute list follows. The first attribute starts at offset 0xA9.

A9

46 - AttributeToken (More Bit)

This is 'AttrA', and more attributes follow.

BA

05 - ValueTextToken

This is 'abc'.

C4

06 - AttributeToken ( No More Bit )

This is 'AttrB', and no more attributes follow.

D5

45 - ValueTextToken (More Bit)

The character data 'def', with more character data to follow.

DF

49 - EntityRefToken (MoreBit)

The entity ref with Name 'amp' with more character data to follow.

EC

48 - CharRefToken (MoreBit)

The character reference for '&' with more character data to follow.

EF

05 - ValueTextToken

The character data 'ghi', with no more character data before the next markup token.

F9

03 - CloseEmptyElementToken

Close empty <Element3/>.

FA

04 - EndElementToken

End </Event>.

FB

00 - EOFToken

End of fragment / document.

 
Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.