Using Perl With WDDX - Packet Sniffer (Page 3 of 8 )
All WDDX "packets" are constructed in a standard format.
The root, or document, element for WDDX data is always the <wddxPacket> element, which marks the beginning and end of a WDDX block.
<wddxPacket version='1.0'>
This is immediately followed by a header containing comments,
<header>
<comment>This packet was generated on stardate 56937, constellationOmega </comment> </header>
and a data area containing WDDX data structures.
<data>
...</data></wddxPacket>
In order to perform its magic, WDDX defines a set of base data types that correspond to the data types available in most programming languages. Here's a list, with examples - pay attention, because you'll be seeing a lot of these in the next few pages:
Strings, represented by the element <string> - for example
<wddxPacket version='1.0'>
<header/><data><string>Robin Hood</string></data></wddxPacket>
Numbers, represented by the element <number> - for example
<wddxPacket version='1.0'>
<header/><data><number>5</number></data></wddxPacket>
Boolean values, represented by the element <boolean> - for example
<wddxPacket version='1.0'>
<header/><data><boolean value='true'/></data></wddxPacket>
Timestamps, represented by the element <dateTime> - for example
<wddxPacket version='1.0'>
<header/><data><dateTime>2002-06-08T16:48:23</dateTime></data></wddxPacket
Arrays and hashes, represented by the elements <array> and <struct> respectively - for example
<wddxPacket version='1.0'>
<header/><data><array length='3'><string>red</string><string>blue</string><string>green</string></array></data></wddxPacket>
Tabular data, represented by the element <recordset> - for example
<wddxPacket version='1.0'>
<header/><data><recordset rowCount='3' fieldNames='ID,NAME'><field name='ID'><number>1</number><number>2</number><number>3</number></field><field name='NAME'><string>John</string><string>Joe</string><string>Mary</string></field></recordset></data></wddxPacket>
Base64-encoded binary data, represented by the element <binary> - for example
<wddxPacket version='1.0'>
<header/><data><binary length='24'>VGhpcyBpcyBzb21lIGJpbmFyeSBkYXRh</binary></data></wddxPacket>
The process of converting a data structure into WDDX is referred to as "serialization". The process of decoding a WDDX packet into a usable form is, obviously, "deserialization". The serializer/deserializer component is usually built into the programming language - as you will see on the next page, when I introduce Perl into the equation.
Next: Boyz 'N The Hood >>
More Perl Articles
More By icarus, (c) Melonfire