1 /*
2  * libwbxml, the WBXML Library.
3  * Copyright (C) 2002-2008 Aymerick Jehanne <aymerick@jehanne.org>
4  * Copyright (C) 2008-2011 Michael Bell <michael.bell@opensync.org>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  * LGPL v2.1: http://www.gnu.org/copyleft/lesser.txt
21  *
22  * Contact: aymerick@jehanne.org
23  * Home: http://libwbxml.aymerick.com
24  */
25 
26 /**
27  * @file wbxml_tables.c
28  * @ingroup wbxml_tables
29  *
30  * @author Aymerick Jehanne <aymerick@jehanne.org>
31  * @date 02/03/17
32  *
33  * @brief WBXML Tables
34  */
35 
36 #include "wbxml_tables.h"
37 #include "wbxml_internals.h"
38 #include "wbxml_log.h"
39 
40 /**
41  * @brief If undefined, only the WML 1.3 tables are used for all WML versions (WML 1.0 / WML 1.1 / WML 1.2 / WML 1.3).
42  *        It saves space, and, well, every handset must supports WML 1.3 right now.
43  *        If defined, each version has its own exact tables.
44  */
45 #undef WBXML_TABLES_SEPARATE_WML_VERSIONS
46 
47 
48 /**************************************
49  * Languages Public IDs
50  */
51 
52 /* WAP */
53 #if defined( WBXML_SUPPORT_WML )
54 const WBXMLPublicIDEntry sv_wml10_public_id           = { WBXML_PUBLIC_ID_WML10,              XML_PUBLIC_ID_WML10,            "wml",                  "http://www.wapforum.org/DTD/wml.xml"               };
55 const WBXMLPublicIDEntry sv_wml11_public_id           = { WBXML_PUBLIC_ID_WML11,              XML_PUBLIC_ID_WML11,            "wml",                  "http://www.wapforum.org/DTD/wml_1_1.dtd"           };
56 const WBXMLPublicIDEntry sv_wml12_public_id           = { WBXML_PUBLIC_ID_WML12,              XML_PUBLIC_ID_WML12,            "wml",                  "http://www.wapforum.org/DTD/wml12.dtd"             };
57 const WBXMLPublicIDEntry sv_wml13_public_id           = { WBXML_PUBLIC_ID_WML13,              XML_PUBLIC_ID_WML13,            "wml",                  "http://www.wapforum.org/DTD/wml13.dtd"             };
58 #endif /* WBXML_SUPPORT_WML */
59 
60 #if defined( WBXML_SUPPORT_WTA )
61 const WBXMLPublicIDEntry sv_wta10_public_id           = { WBXML_PUBLIC_ID_WTA10,              XML_PUBLIC_ID_WTA10,            "wtai",                 "wtai.dtd"                                          };
62 const WBXMLPublicIDEntry sv_wtawml12_public_id        = { WBXML_PUBLIC_ID_WTAWML12,           XML_PUBLIC_ID_WTAWML12,         "wta-wml",              "http://www.wapforum.org/DTD/wta-wml12.dtd"         };
63 const WBXMLPublicIDEntry sv_channel11_public_id       = { WBXML_PUBLIC_ID_CHANNEL11,          XML_PUBLIC_ID_CHANNEL11,        "channel",              ""                                                  };
64 const WBXMLPublicIDEntry sv_channel12_public_id       = { WBXML_PUBLIC_ID_CHANNEL12,          XML_PUBLIC_ID_CHANNEL12,        "channel",              "http://www.wapforum.org/DTD/channel12.dtd"         };
65 #endif /* WBXML_SUPPORT_WTA */
66 
67 #if defined( WBXML_SUPPORT_SI )
68 const WBXMLPublicIDEntry sv_si10_public_id            = { WBXML_PUBLIC_ID_SI10,               XML_PUBLIC_ID_SI10,             "si",                   "http://www.wapforum.org/DTD/si.dtd"                };
69 #endif /* WBXML_SUPPORT_SI */
70 
71 #if defined( WBXML_SUPPORT_SL )
72 const WBXMLPublicIDEntry sv_sl10_public_id            = { WBXML_PUBLIC_ID_SL10,               XML_PUBLIC_ID_SL10,             "sl",                   "http://www.wapforum.org/DTD/sl.dtd"                };
73 #endif /* WBXML_SUPPORT_SL */
74 
75 #if defined( WBXML_SUPPORT_CO )
76 const WBXMLPublicIDEntry sv_co10_public_id            = { WBXML_PUBLIC_ID_CO10,               XML_PUBLIC_ID_CO10,             "co",                   "http://www.wapforum.org/DTD/co_1.0.dtd"            };
77 #endif /* WBXML_SUPPORT_CO */
78 
79 #if defined( WBXML_SUPPORT_PROV )
80 const WBXMLPublicIDEntry sv_prov10_public_id          = { WBXML_PUBLIC_ID_PROV10,             XML_PUBLIC_ID_PROV10,           "wap-provisioningdoc",  "http://www.wapforum.org/DTD/prov.dtd"              };
81 #endif /* WBXML_SUPPORT_PROV */
82 
83 #if defined( WBXML_SUPPORT_EMN )
84 const WBXMLPublicIDEntry sv_emn10_public_id           = { WBXML_PUBLIC_ID_EMN10,              XML_PUBLIC_ID_EMN10,            "emn",                  "http://www.wapforum.org/DTD/emn.dtd"               };
85 #endif /* WBXML_SUPPORT_EMN */
86 
87 #if defined( WBXML_SUPPORT_DRMREL )
88 const WBXMLPublicIDEntry sv_drmrel10_public_id        = { WBXML_PUBLIC_ID_DRMREL10,           XML_PUBLIC_ID_DRMREL10,         "o-ex:rights",          "http://www.openmobilealliance.org/DTD/drmrel10.dtd"};
89 #endif /* WBXML_SUPPORT_DRMREL */
90 
91 #if defined( WBXML_SUPPORT_OTA_SETTINGS )
92 /* Ericsson / Nokia OTA Settings v7.0 */
93 const WBXMLPublicIDEntry sv_ota_settings_public_id    = { WBXML_PUBLIC_ID_OTA_SETTINGS,       XML_PUBLIC_ID_OTA_SETTINGS,     "CHARACTERISTIC-LIST",  "characteristic-list.dtd"  };
94 #endif /* WBXML_SUPPORT_OTA_SETTINGS */
95 
96 #if defined( WBXML_SUPPORT_SYNCML )
97 /* SyncML 1.0 */
98 const WBXMLPublicIDEntry sv_syncml_syncml10_public_id = { WBXML_PUBLIC_ID_SYNCML_SYNCML10,    XML_PUBLIC_ID_SYNCML_SYNCML10,  "SyncML",               "http://www.syncml.org/docs/syncml_represent_v10_20001207.dtd"  };
99 const WBXMLPublicIDEntry sv_syncml_devinf10_public_id = { WBXML_PUBLIC_ID_SYNCML_DEVINF10,    XML_PUBLIC_ID_SYNCML_DEVINF10,  "DevInf",               "http://www.syncml.org/docs/syncml_devinf_v10_20001207.dtd"     };
100 const WBXMLPublicIDEntry sv_syncml_metinf10_public_id = { WBXML_PUBLIC_ID_SYNCML_METINF10,    XML_PUBLIC_ID_SYNCML_METINF10,  "MetInf",               "http://www.syncml.org/docs/syncml_metinf_v10_20001207.dtd"     };
101 
102 /* SyncML 1.1 */
103 const WBXMLPublicIDEntry sv_syncml_syncml11_public_id = { WBXML_PUBLIC_ID_SYNCML_SYNCML11,    XML_PUBLIC_ID_SYNCML_SYNCML11,  "SyncML",               "http://www.syncml.org/docs/syncml_represent_v11_20020213.dtd"  };
104 const WBXMLPublicIDEntry sv_syncml_devinf11_public_id = { WBXML_PUBLIC_ID_SYNCML_DEVINF11,    XML_PUBLIC_ID_SYNCML_DEVINF11,  "DevInf",               "http://www.syncml.org/docs/devinf_v11_20020215.dtd"            };
105 const WBXMLPublicIDEntry sv_syncml_metinf11_public_id = { WBXML_PUBLIC_ID_SYNCML_METINF11,    XML_PUBLIC_ID_SYNCML_METINF11,  "MetInf",               "http://www.syncml.org/docs/syncml_metinf_v11_20020215.dtd"     };
106 
107 /* SyncML 1.2 */
108 const WBXMLPublicIDEntry sv_syncml_syncml12_public_id = { WBXML_PUBLIC_ID_SYNCML_SYNCML12,    XML_PUBLIC_ID_SYNCML_SYNCML12,  "SyncML",               "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd"         };
109 const WBXMLPublicIDEntry sv_syncml_devinf12_public_id = { WBXML_PUBLIC_ID_SYNCML_DEVINF12,    XML_PUBLIC_ID_SYNCML_DEVINF12,  "DevInf",               "http://www.openmobilealliance.org/tech/DTD/OMA-SyncML-Device_Information-DTD-1.2.dtd" };
110 const WBXMLPublicIDEntry sv_syncml_metinf12_public_id = { WBXML_PUBLIC_ID_SYNCML_METINF12,    XML_PUBLIC_ID_SYNCML_METINF12,  "MetInf",               "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_MetaInfo_DTD-V1_2.dtd"       };
111 const WBXMLPublicIDEntry sv_syncml_dmddf12_public_id = { WBXML_PUBLIC_ID_SYNCML_DMDDF12,    XML_PUBLIC_ID_SYNCML_DMDDF12,     "MgmtTree",                "http://www.openmobilealliance.org/tech/DTD/dm_ddf-v1_2.dtd" };
112 #endif /* WBXML_SUPPORT_SYNCML */
113 
114 #if defined( WBXML_SUPPORT_WV )
115 /* OMA Wireless Village CSP 1.1 / 1.2 */
116 const WBXMLPublicIDEntry sv_wv_csp11_public_id        = { WBXML_PUBLIC_ID_WV_CSP11,           XML_PUBLIC_ID_WV_CSP11,         "WV-CSP-Message",       "http://www.openmobilealliance.org/DTD/WV-CSP.XML"  };
117 const WBXMLPublicIDEntry sv_wv_csp12_public_id        = { WBXML_PUBLIC_ID_WV_CSP12,           XML_PUBLIC_ID_WV_CSP12,         "WV-CSP-Message",       "http://www.openmobilealliance.org/DTD/WV-CSP.DTD"  };
118 #endif /* WBXML_SUPPORT_WV */
119 
120 #if defined( WBXML_SUPPORT_AIRSYNC )
121 const WBXMLPublicIDEntry sv_airsync_public_id         = { WBXML_PUBLIC_ID_AIRSYNC,            XML_PUBLIC_ID_AIRSYNC,          "AirSync",              "http://www.microsoft.com/"};
122 const WBXMLPublicIDEntry sv_activesync_public_id      = { WBXML_PUBLIC_ID_ACTIVESYNC,         XML_PUBLIC_ID_ACTIVESYNC,       "ActiveSync",           "http://www.microsoft.com/"};
123 #endif /* WBXML_SUPPORT_AIRSYNC */
124 
125 #if defined( WBXML_SUPPORT_CONML )
126 const WBXMLPublicIDEntry sv_conml_public_id         = { WBXML_PUBLIC_ID_CONML,                XML_PUBLIC_ID_CONML,            "ConML",                "http://www.nokia.com/"};
127 #endif /* WBXML_SUPPORT_CONML */
128 
129 
130 /**************************************
131  * Languages Tables
132  */
133 
134 #if defined( WBXML_SUPPORT_WML )
135 
136 #ifdef WBXML_TABLES_SEPARATE_WML_VERSIONS
137 
138 /********************************************
139  *    WML 1.0 (WAP 1.0: "WML-30-Apr-98.pdf")
140  */
141 
142 const WBXMLTagEntry sv_wml10_tag_table[] = {
143     { "a",         0x00, 0x22 },
144     { "access",    0x00, 0x23 },
145     { "b",         0x00, 0x24 },
146     { "big",       0x00, 0x25 },
147     { "br",        0x00, 0x26 },
148     { "card",      0x00, 0x27 },
149     { "do",        0x00, 0x28 },
150     { "em",        0x00, 0x29 },
151     { "fieldset",  0x00, 0x2a },
152     { "go",        0x00, 0x2b },
153     { "head",      0x00, 0x2c },
154     { "i",         0x00, 0x2d },
155     { "img",       0x00, 0x2e },
156     { "input",     0x00, 0x2f },
157     { "meta",      0x00, 0x30 },
158     { "noop",      0x00, 0x31 },
159     { "prev",      0x00, 0x32 },
160     { "onevent",   0x00, 0x33 },
161     { "optgroup",  0x00, 0x34 },
162     { "option",    0x00, 0x35 },
163     { "refresh",   0x00, 0x36 },
164     { "select",    0x00, 0x37 },
165     { "small",     0x00, 0x38 },
166     { "strong",    0x00, 0x39 },
167     { "tab",       0x00, 0x3a }, /* Deprecated */
168     { "template",  0x00, 0x3b },
169     { "timer",     0x00, 0x3c },
170     { "u",         0x00, 0x3d },
171     { "var",       0x00, 0x3e },
172     { "wml",       0x00, 0x3f },
173     { NULL,        0x00, 0x00 }
174 };
175 
176 
177 const WBXMLAttrEntry sv_wml10_attr_table[] = {
178     { "accept-charset",  NULL,                                0x00, 0x05 },
179     { "align",           "bottom",                            0x00, 0x06 },
180     { "align",           "center",                            0x00, 0x07 },
181     { "align",           "left",                              0x00, 0x08 },
182     { "align",           "middle",                            0x00, 0x09 },
183     { "align",           "right",                             0x00, 0x0a },
184     { "align",           "top",                               0x00, 0x0b },
185     { "alt",             NULL,                                0x00, 0x0c },
186     { "content",         NULL,                                0x00, 0x0d },
187     { "default",         NULL,                                0x00, 0x0e },
188     { "domain",          NULL,                                0x00, 0x0f },
189     { "emptyok",         "false",                             0x00, 0x10 },
190     { "emptyok",         "true",                              0x00, 0x11 },
191     { "format",          NULL,                                0x00, 0x12 },
192     { "height",          NULL,                                0x00, 0x13 },
193     { "hspace",          NULL,                                0x00, 0x14 },
194     { "idefault",        NULL,                                0x00, 0x15 }, /* Deprecated */
195     { "ikey",            NULL,                                0x00, 0x16 }, /* Deprecated */
196     { "key",             NULL,                                0x00, 0x17 }, /* Deprecated */
197     { "label",           NULL,                                0x00, 0x18 },
198     { "localsrc",        NULL,                                0x00, 0x19 },
199     { "maxlength",       NULL,                                0x00, 0x1a },
200     { "method",          "get",                               0x00, 0x1b },
201     { "method",          "post",                              0x00, 0x1c },
202     { "mode",            "nowrap",                            0x00, 0x1d },
203     { "mode",            "wrap",                              0x00, 0x1e },
204     { "multiple",        "false",                             0x00, 0x1f },
205     { "multiple",        "true",                              0x00, 0x20 },
206     { "name",            NULL,                                0x00, 0x21 },
207     { "newcontext",      "false",                             0x00, 0x22 },
208     { "newcontext",      "true",                              0x00, 0x23 },
209     { "onclick",         NULL,                                0x00, 0x24 }, /* Deprecated */
210     { "onenterbackward", NULL,                                0x00, 0x25 },
211     { "onenterforward",  NULL,                                0x00, 0x26 },
212     { "ontimer",         NULL,                                0x00, 0x27 },
213     { "optional",        "false",                             0x00, 0x28 },
214     { "optional",        "true",                              0x00, 0x29 },
215     { "path",            NULL,                                0x00, 0x2a },
216     { "postdata",        NULL,                                0x00, 0x2b }, /* Deprecated */
217     { "public",          "false",                             0x00, 0x2c }, /* Deprecated */
218     { "public",          "true",                              0x00, 0x2d }, /* Deprecated */
219     { "scheme",          NULL,                                0x00, 0x2e },
220     { "sendreferer",     "false",                             0x00, 0x2f },
221     { "sendreferer",     "true",                              0x00, 0x30 },
222     { "size",            NULL,                                0x00, 0x31 },
223     { "src",             NULL,                                0x00, 0x32 },
224     { "style",           "list",                              0x00, 0x33 }, /* Deprecated */
225     { "style",           "set",                               0x00, 0x34 }, /* Deprecated */
226     { "tabindex",        NULL,                                0x00, 0x35 },
227     { "title",           NULL,                                0x00, 0x36 },
228     { "type",            NULL,                                0x00, 0x37 },
229     { "type",            "accept",                            0x00, 0x38 },
230     { "type",            "delete",                            0x00, 0x39 },
231     { "type",            "help",                              0x00, 0x3a },
232     { "type",            "password",                          0x00, 0x3b },
233     { "type",            "onpick",                            0x00, 0x3c },
234     { "type",            "onenterbackward",                   0x00, 0x3d },
235     { "type",            "onenterforward",                    0x00, 0x3e },
236     { "type",            "ontimer",                           0x00, 0x3f },
237     { "type",            "options",                           0x00, 0x45 },
238     { "type",            "prev",                              0x00, 0x46 },
239     { "type",            "reset",                             0x00, 0x47 },
240     { "type",            "text",                              0x00, 0x48 },
241     { "type",            "vnd.",                              0x00, 0x49 },
242     { "url",             NULL,                                0x00, 0x4a }, /* Deprecated */
243     { "url",             "http://",                           0x00, 0x4b }, /* Deprecated */
244     { "url",             "https://",                          0x00, 0x4c }, /* Deprecated */
245     { "user-agent",      NULL,                                0x00, 0x4d }, /* Deprecated */
246     { "value",           NULL,                                0x00, 0x4e },
247     { "vspace",          NULL,                                0x00, 0x4f },
248     { "width",           NULL,                                0x00, 0x50 },
249     { "xml:lang",        NULL,                                0x00, 0x51 },
250     { NULL,              NULL,                                0x00, 0x00 }
251 };
252 
253 
254 const WBXMLAttrValueEntry sv_wml10_attr_value_table[] = {
255     { ".com/",           0x00, 0x85 },
256     { ".edu/",           0x00, 0x86 },
257     { ".net/",           0x00, 0x87 },
258     { ".org/",           0x00, 0x88 },
259     { "accept",          0x00, 0x89 },
260     { "bottom",          0x00, 0x8a },
261     { "clear",           0x00, 0x8b },
262     { "delete",          0x00, 0x8c },
263     { "help",            0x00, 0x8d },
264     /* Do NOT change the order in this table please ! */
265     { "http://www.",     0x00, 0x8f },
266     { "http://",         0x00, 0x8e },
267     { "https://www.",    0x00, 0x91 },
268     { "https://",        0x00, 0x90 },
269     { "list",            0x00, 0x92 }, /* Deprecated */
270     { "middle",          0x00, 0x93 },
271     { "nowrap",          0x00, 0x94 },
272     { "onclick",         0x00, 0x95 }, /* Deprecated */
273     { "onenterbackward", 0x00, 0x96 },
274     { "onenterforward",  0x00, 0x97 },
275     { "ontimer",         0x00, 0x98 },
276     { "options",         0x00, 0x99 },
277     { "password",        0x00, 0x9a },
278     { "reset",           0x00, 0x9b },
279     { "set",             0x00, 0x9c }, /* Deprecated */
280     { "text",            0x00, 0x9d },
281     { "top",             0x00, 0x9e },
282     { "unknown",         0x00, 0x9f },
283     { "wrap",            0x00, 0xa0 },
284     { "www.",            0x00, 0xa1 },
285     { NULL,              0x00, 0x00 }
286 };
287 
288 
289 /***********************************************
290  *    WML 1.1 (WAP 1.1: "SPEC-WML-19990616.pdf")
291  */
292 
293 const WBXMLTagEntry sv_wml11_tag_table[] = {
294     { "a",         0x00, 0x1c },
295     { "anchor",    0x00, 0x22 }, /* WML 1.1 */
296     { "access",    0x00, 0x23 },
297     { "b",         0x00, 0x24 },
298     { "big",       0x00, 0x25 },
299     { "br",        0x00, 0x26 },
300     { "card",      0x00, 0x27 },
301     { "do",        0x00, 0x28 },
302     { "em",        0x00, 0x29 },
303     { "fieldset",  0x00, 0x2a },
304     { "go",        0x00, 0x2b },
305     { "head",      0x00, 0x2c },
306     { "i",         0x00, 0x2d },
307     { "img",       0x00, 0x2e },
308     { "input",     0x00, 0x2f },
309     { "meta",      0x00, 0x30 },
310     { "noop",      0x00, 0x31 },
311     { "p",         0x00, 0x20 }, /* WML 1.1 */
312     { "postfield", 0x00, 0x21 }, /* WML 1.1 */
313     { "prev",      0x00, 0x32 },
314     { "onevent",   0x00, 0x33 },
315     { "optgroup",  0x00, 0x34 },
316     { "option",    0x00, 0x35 },
317     { "refresh",   0x00, 0x36 },
318     { "select",    0x00, 0x37 },
319     { "setvar",    0x00, 0x3e }, /* WML 1.1 */
320     { "small",     0x00, 0x38 },
321     { "strong",    0x00, 0x39 },
322     { "table",     0x00, 0x1f }, /* WML 1.1 */
323     { "td",        0x00, 0x1d }, /* WML 1.1 */
324     { "template",  0x00, 0x3b },
325     { "timer",     0x00, 0x3c },
326     { "tr",        0x00, 0x1e }, /* WML 1.1 */
327     { "u",         0x00, 0x3d },
328     { "wml",       0x00, 0x3f },
329     { NULL,        0x00, 0x00 }
330 };
331 
332 
333 const WBXMLAttrEntry sv_wml11_attr_table[] = {
334     { "accept-charset",  NULL,                                0x00, 0x05 },
335     { "align",           NULL,                                0x00, 0x52 }, /* WML 1.1 */
336     { "align",           "bottom",                            0x00, 0x06 },
337     { "align",           "center",                            0x00, 0x07 },
338     { "align",           "left",                              0x00, 0x08 },
339     { "align",           "middle",                            0x00, 0x09 },
340     { "align",           "right",                             0x00, 0x0a },
341     { "align",           "top",                               0x00, 0x0b },
342     { "alt",             NULL,                                0x00, 0x0c },
343     { "class",           NULL,                                0x00, 0x54 }, /* WML 1.1 */
344     { "columns",         NULL,                                0x00, 0x53 }, /* WML 1.1 */
345     { "content",         NULL,                                0x00, 0x0d },
346     { "content",         "application/vnd.wap.wmlc;charset=", 0x00, 0x5c }, /* WML 1.1 */
347     { "domain",          NULL,                                0x00, 0x0f },
348     { "emptyok",         "false",                             0x00, 0x10 },
349     { "emptyok",         "true",                              0x00, 0x11 },
350     { "format",          NULL,                                0x00, 0x12 },
351     { "forua",           "false",                             0x00, 0x56 }, /* WML 1.1 */
352     { "forua",           "true",                              0x00, 0x57 }, /* WML 1.1 */
353     { "height",          NULL,                                0x00, 0x13 },
354     { "href",            NULL,                                0x00, 0x4a }, /* WML 1.1 */
355     { "href",            "http://",                           0x00, 0x4b }, /* WML 1.1 */
356     { "href",            "https://",                          0x00, 0x4c }, /* WML 1.1 */
357     { "hspace",          NULL,                                0x00, 0x14 },
358     { "http-equiv",      NULL,                                0x00, 0x5a }, /* WML 1.1 */
359     { "http-equiv",      "Content-Type",                      0x00, 0x5b }, /* WML 1.1 */
360     { "http-equiv",      "Expires",                           0x00, 0x5d }, /* WML 1.1 */
361     { "id",              NULL,                                0x00, 0x55 }, /* WML 1.1 */
362     { "ivalue",          NULL,                                0x00, 0x15 }, /* WML 1.1 */
363     { "iname",           NULL,                                0x00, 0x16 }, /* WML 1.1 */
364     { "label",           NULL,                                0x00, 0x18 },
365     { "localsrc",        NULL,                                0x00, 0x19 },
366     { "maxlength",       NULL,                                0x00, 0x1a },
367     { "method",          "get",                               0x00, 0x1b },
368     { "method",          "post",                              0x00, 0x1c },
369     { "mode",            "nowrap",                            0x00, 0x1d },
370     { "mode",            "wrap",                              0x00, 0x1e },
371     { "multiple",        "false",                             0x00, 0x1f },
372     { "multiple",        "true",                              0x00, 0x20 },
373     { "name",            NULL,                                0x00, 0x21 },
374     { "newcontext",      "false",                             0x00, 0x22 },
375     { "newcontext",      "true",                              0x00, 0x23 },
376     { "onenterbackward", NULL,                                0x00, 0x25 },
377     { "onenterforward",  NULL,                                0x00, 0x26 },
378     { "onpick",          NULL,                                0x00, 0x24 }, /* WML 1.1 */
379     { "ontimer",         NULL,                                0x00, 0x27 },
380     { "optional",        "false",                             0x00, 0x28 },
381     { "optional",        "true",                              0x00, 0x29 },
382     { "path",            NULL,                                0x00, 0x2a },
383     { "scheme",          NULL,                                0x00, 0x2e },
384     { "sendreferer",     "false",                             0x00, 0x2f },
385     { "sendreferer",     "true",                              0x00, 0x30 },
386     { "size",            NULL,                                0x00, 0x31 },
387     { "src",             NULL,                                0x00, 0x32 },
388     { "src",             "http://",                           0x00, 0x58 }, /* WML 1.1 */
389     { "src",             "https://",                          0x00, 0x59 }, /* WML 1.1 */
390     { "ordered",         "true",                              0x00, 0x33 }, /* WML 1.1 */
391     { "ordered",         "false",                             0x00, 0x34 }, /* WML 1.1 */
392     { "tabindex",        NULL,                                0x00, 0x35 },
393     { "title",           NULL,                                0x00, 0x36 },
394     { "type",            NULL,                                0x00, 0x37 },
395     { "type",            "accept",                            0x00, 0x38 },
396     { "type",            "delete",                            0x00, 0x39 },
397     { "type",            "help",                              0x00, 0x3a },
398     { "type",            "password",                          0x00, 0x3b },
399     { "type",            "onpick",                            0x00, 0x3c },
400     { "type",            "onenterbackward",                   0x00, 0x3d },
401     { "type",            "onenterforward",                    0x00, 0x3e },
402     { "type",            "ontimer",                           0x00, 0x3f },
403     { "type",            "options",                           0x00, 0x45 },
404     { "type",            "prev",                              0x00, 0x46 },
405     { "type",            "reset",                             0x00, 0x47 },
406     { "type",            "text",                              0x00, 0x48 },
407     { "type",            "vnd.",                              0x00, 0x49 },
408     { "value",           NULL,                                0x00, 0x4d },
409     { "vspace",          NULL,                                0x00, 0x4e },
410     { "width",           NULL,                                0x00, 0x4f },
411     { "xml:lang",        NULL,                                0x00, 0x50 },
412     { NULL,              NULL,                                0x00, 0x00 }
413 };
414 
415 
416 const WBXMLAttrValueEntry sv_wml11_attr_value_table[] = {
417     { ".com/",           0x00, 0x85 },
418     { ".edu/",           0x00, 0x86 },
419     { ".net/",           0x00, 0x87 },
420     { ".org/",           0x00, 0x88 },
421     { "accept",          0x00, 0x89 },
422     { "bottom",          0x00, 0x8a },
423     { "clear",           0x00, 0x8b },
424     { "delete",          0x00, 0x8c },
425     { "help",            0x00, 0x8d },
426     /* Do NOT change the order in this table please ! */
427     { "http://www.",     0x00, 0x8f },
428     { "http://",         0x00, 0x8e },
429     { "https://www.",    0x00, 0x91 },
430     { "https://",        0x00, 0x90 },
431     { "middle",          0x00, 0x93 },
432     { "nowrap",          0x00, 0x94 },
433     { "onenterbackward", 0x00, 0x96 },
434     { "onenterforward",  0x00, 0x97 },
435     { "onpick",          0x00, 0x95 }, /* WML 1.1 */
436     { "ontimer",         0x00, 0x98 },
437     { "options",         0x00, 0x99 },
438     { "password",        0x00, 0x9a },
439     { "reset",           0x00, 0x9b },
440     { "text",            0x00, 0x9d },
441     { "top",             0x00, 0x9e },
442     { "unknown",         0x00, 0x9f },
443     { "wrap",            0x00, 0xa0 },
444     { "www.",            0x00, 0xa1 },
445     { NULL,              0x00, 0x00 }
446 };
447 
448 
449 /***********************************************
450  *    WML 1.2 (WAP 1.2: "SPEC-WML-19991104.pdf")
451  */
452 
453 const WBXMLTagEntry sv_wml12_tag_table[] = {
454     { "a",         0x00, 0x1c },
455     { "anchor",    0x00, 0x22 },
456     { "access",    0x00, 0x23 },
457     { "b",         0x00, 0x24 },
458     { "big",       0x00, 0x25 },
459     { "br",        0x00, 0x26 },
460     { "card",      0x00, 0x27 },
461     { "do",        0x00, 0x28 },
462     { "em",        0x00, 0x29 },
463     { "fieldset",  0x00, 0x2a },
464     { "go",        0x00, 0x2b },
465     { "head",      0x00, 0x2c },
466     { "i",         0x00, 0x2d },
467     { "img",       0x00, 0x2e },
468     { "input",     0x00, 0x2f },
469     { "meta",      0x00, 0x30 },
470     { "noop",      0x00, 0x31 },
471     { "p",         0x00, 0x20 },
472     { "postfield", 0x00, 0x21 },
473     { "pre",       0x00, 0x1b },
474     { "prev",      0x00, 0x32 },
475     { "onevent",   0x00, 0x33 },
476     { "optgroup",  0x00, 0x34 },
477     { "option",    0x00, 0x35 },
478     { "refresh",   0x00, 0x36 },
479     { "select",    0x00, 0x37 },
480     { "setvar",    0x00, 0x3e },
481     { "small",     0x00, 0x38 },
482     { "strong",    0x00, 0x39 },
483     { "table",     0x00, 0x1f },
484     { "td",        0x00, 0x1d },
485     { "template",  0x00, 0x3b },
486     { "timer",     0x00, 0x3c },
487     { "tr",        0x00, 0x1e },
488     { "u",         0x00, 0x3d },
489     { "wml",       0x00, 0x3f },
490     { NULL,        0x00, 0x00 }
491 };
492 
493 
494 const WBXMLAttrEntry sv_wml12_attr_table[] = {
495     { "accept-charset",  NULL,                                0x00, 0x05 },
496     { "accesskey",       NULL,                                0x00, 0x5e }, /* WML 1.2 */
497     { "align",           NULL,                                0x00, 0x52 },
498     { "align",           "bottom",                            0x00, 0x06 },
499     { "align",           "center",                            0x00, 0x07 },
500     { "align",           "left",                              0x00, 0x08 },
501     { "align",           "middle",                            0x00, 0x09 },
502     { "align",           "right",                             0x00, 0x0a },
503     { "align",           "top",                               0x00, 0x0b },
504     { "alt",             NULL,                                0x00, 0x0c },
505     { "class",           NULL,                                0x00, 0x54 },
506     { "columns",         NULL,                                0x00, 0x53 },
507     { "content",         NULL,                                0x00, 0x0d },
508     { "content",         "application/vnd.wap.wmlc;charset=", 0x00, 0x5c },
509     { "domain",          NULL,                                0x00, 0x0f },
510     { "emptyok",         "false",                             0x00, 0x10 },
511     { "emptyok",         "true",                              0x00, 0x11 },
512     { "enctype",         NULL,                                0x00, 0x5f }, /* WML 1.2 */
513     { "enctype",         "application/x-www-form-urlencoded", 0x00, 0x60 }, /* WML 1.2 */
514     { "enctype",         "multipart/form-data",               0x00, 0x61 }, /* WML 1.2 */
515     { "format",          NULL,                                0x00, 0x12 },
516     { "forua",           "false",                             0x00, 0x56 },
517     { "forua",           "true",                              0x00, 0x57 },
518     { "height",          NULL,                                0x00, 0x13 },
519     { "href",            NULL,                                0x00, 0x4a },
520     { "href",            "http://",                           0x00, 0x4b },
521     { "href",            "https://",                          0x00, 0x4c },
522     { "hspace",          NULL,                                0x00, 0x14 },
523     { "http-equiv",      NULL,                                0x00, 0x5a },
524     { "http-equiv",      "Content-Type",                      0x00, 0x5b },
525     { "http-equiv",      "Expires",                           0x00, 0x5d },
526     { "id",              NULL,                                0x00, 0x55 },
527     { "ivalue",          NULL,                                0x00, 0x15 },
528     { "iname",           NULL,                                0x00, 0x16 },
529     { "label",           NULL,                                0x00, 0x18 },
530     { "localsrc",        NULL,                                0x00, 0x19 },
531     { "maxlength",       NULL,                                0x00, 0x1a },
532     { "method",          "get",                               0x00, 0x1b },
533     { "method",          "post",                              0x00, 0x1c },
534     { "mode",            "nowrap",                            0x00, 0x1d },
535     { "mode",            "wrap",                              0x00, 0x1e },
536     { "multiple",        "false",                             0x00, 0x1f },
537     { "multiple",        "true",                              0x00, 0x20 },
538     { "name",            NULL,                                0x00, 0x21 },
539     { "newcontext",      "false",                             0x00, 0x22 },
540     { "newcontext",      "true",                              0x00, 0x23 },
541     { "onenterbackward", NULL,                                0x00, 0x25 },
542     { "onenterforward",  NULL,                                0x00, 0x26 },
543     { "onpick",          NULL,                                0x00, 0x24 },
544     { "ontimer",         NULL,                                0x00, 0x27 },
545     { "optional",        "false",                             0x00, 0x28 },
546     { "optional",        "true",                              0x00, 0x29 },
547     { "path",            NULL,                                0x00, 0x2a },
548     { "scheme",          NULL,                                0x00, 0x2e },
549     { "sendreferer",     "false",                             0x00, 0x2f },
550     { "sendreferer",     "true",                              0x00, 0x30 },
551     { "size",            NULL,                                0x00, 0x31 },
552     { "src",             NULL,                                0x00, 0x32 },
553     { "src",             "http://",                           0x00, 0x58 },
554     { "src",             "https://",                          0x00, 0x59 },
555     { "ordered",         "true",                              0x00, 0x33 },
556     { "ordered",         "false",                             0x00, 0x34 },
557     { "tabindex",        NULL,                                0x00, 0x35 },
558     { "title",           NULL,                                0x00, 0x36 },
559     { "type",            NULL,                                0x00, 0x37 },
560     { "type",            "accept",                            0x00, 0x38 },
561     { "type",            "delete",                            0x00, 0x39 },
562     { "type",            "help",                              0x00, 0x3a },
563     { "type",            "password",                          0x00, 0x3b },
564     { "type",            "onpick",                            0x00, 0x3c },
565     { "type",            "onenterbackward",                   0x00, 0x3d },
566     { "type",            "onenterforward",                    0x00, 0x3e },
567     { "type",            "ontimer",                           0x00, 0x3f },
568     { "type",            "options",                           0x00, 0x45 },
569     { "type",            "prev",                              0x00, 0x46 },
570     { "type",            "reset",                             0x00, 0x47 },
571     { "type",            "text",                              0x00, 0x48 },
572     { "type",            "vnd.",                              0x00, 0x49 },
573     { "value",           NULL,                                0x00, 0x4d },
574     { "vspace",          NULL,                                0x00, 0x4e },
575     { "width",           NULL,                                0x00, 0x4f },
576     { "xml:lang",        NULL,                                0x00, 0x50 },
577     { NULL,              NULL,                                0x00, 0x00 }
578 };
579 
580 
581 const WBXMLAttrValueEntry sv_wml12_attr_value_table[] = {
582     { ".com/",           0x00, 0x85 },
583     { ".edu/",           0x00, 0x86 },
584     { ".net/",           0x00, 0x87 },
585     { ".org/",           0x00, 0x88 },
586     { "accept",          0x00, 0x89 },
587     { "bottom",          0x00, 0x8a },
588     { "clear",           0x00, 0x8b },
589     { "delete",          0x00, 0x8c },
590     { "help",            0x00, 0x8d },
591     /* Do NOT change the order in this table please ! */
592     { "http://www.",     0x00, 0x8f },
593     { "http://",         0x00, 0x8e },
594     { "https://www.",    0x00, 0x91 },
595     { "https://",        0x00, 0x90 },
596     { "middle",          0x00, 0x93 },
597     { "nowrap",          0x00, 0x94 },
598     { "onenterbackward", 0x00, 0x96 },
599     { "onenterforward",  0x00, 0x97 },
600     { "onpick",          0x00, 0x95 },
601     { "ontimer",         0x00, 0x98 },
602     { "options",         0x00, 0x99 },
603     { "password",        0x00, 0x9a },
604     { "reset",           0x00, 0x9b },
605     { "text",            0x00, 0x9d },
606     { "top",             0x00, 0x9e },
607     { "unknown",         0x00, 0x9f },
608     { "wrap",            0x00, 0xa0 },
609     { "www.",            0x00, 0xa1 },
610     { NULL,              0x00, 0x00 }
611 };
612 
613 #endif /* WBXML_TABLES_SEPARATE_WML_VERSIONS */
614 
615 
616 /******************************************************
617  *    WML 1.3 (WAP 1.2.1: "WAP-191-WML-20000219-a.pdf")
618  */
619 
620 const WBXMLTagEntry sv_wml13_tag_table[] = {
621     { "a",         0x00, 0x1c },
622     { "anchor",    0x00, 0x22 }, /* WML 1.1 */
623     { "access",    0x00, 0x23 },
624     { "b",         0x00, 0x24 },
625     { "big",       0x00, 0x25 },
626     { "br",        0x00, 0x26 },
627     { "card",      0x00, 0x27 },
628     { "do",        0x00, 0x28 },
629     { "em",        0x00, 0x29 },
630     { "fieldset",  0x00, 0x2a },
631     { "go",        0x00, 0x2b },
632     { "head",      0x00, 0x2c },
633     { "i",         0x00, 0x2d },
634     { "img",       0x00, 0x2e },
635     { "input",     0x00, 0x2f },
636     { "meta",      0x00, 0x30 },
637     { "noop",      0x00, 0x31 },
638     { "p",         0x00, 0x20 }, /* WML 1.1 */
639     { "postfield", 0x00, 0x21 }, /* WML 1.1 */
640     { "pre",       0x00, 0x1b },
641     { "prev",      0x00, 0x32 },
642     { "onevent",   0x00, 0x33 },
643     { "optgroup",  0x00, 0x34 },
644     { "option",    0x00, 0x35 },
645     { "refresh",   0x00, 0x36 },
646     { "select",    0x00, 0x37 },
647     { "setvar",    0x00, 0x3e }, /* WML 1.1 */
648     { "small",     0x00, 0x38 },
649     { "strong",    0x00, 0x39 },
650     { "table",     0x00, 0x1f }, /* WML 1.1 */
651     { "td",        0x00, 0x1d }, /* WML 1.1 */
652     { "template",  0x00, 0x3b },
653     { "timer",     0x00, 0x3c },
654     { "tr",        0x00, 0x1e }, /* WML 1.1 */
655     { "u",         0x00, 0x3d },
656     { "wml",       0x00, 0x3f },
657     { NULL,        0x00, 0x00 }
658 };
659 
660 
661 const WBXMLAttrEntry sv_wml13_attr_table[] = {
662     { "accept-charset",  NULL,                                0x00, 0x05 },
663     { "accesskey",       NULL,                                0x00, 0x5e }, /* WML 1.2 */
664     { "align",           NULL,                                0x00, 0x52 }, /* WML 1.1 */
665     { "align",           "bottom",                            0x00, 0x06 },
666     { "align",           "center",                            0x00, 0x07 },
667     { "align",           "left",                              0x00, 0x08 },
668     { "align",           "middle",                            0x00, 0x09 },
669     { "align",           "right",                             0x00, 0x0a },
670     { "align",           "top",                               0x00, 0x0b },
671     { "alt",             NULL,                                0x00, 0x0c },
672     { "cache-control",   "no-cache",                          0x00, 0x64 }, /* WML 1.3 */
673     { "class",           NULL,                                0x00, 0x54 }, /* WML 1.1 */
674     { "columns",         NULL,                                0x00, 0x53 }, /* WML 1.1 */
675     { "content",         NULL,                                0x00, 0x0d },
676     { "content",         "application/vnd.wap.wmlc;charset=", 0x00, 0x5c }, /* WML 1.1 */
677     { "domain",          NULL,                                0x00, 0x0f },
678     { "emptyok",         "false",                             0x00, 0x10 },
679     { "emptyok",         "true",                              0x00, 0x11 },
680     { "enctype",         NULL,                                0x00, 0x5f }, /* WML 1.2 */
681     { "enctype",         "application/x-www-form-urlencoded", 0x00, 0x60 }, /* WML 1.2 */
682     { "enctype",         "multipart/form-data",               0x00, 0x61 }, /* WML 1.2 */
683     { "format",          NULL,                                0x00, 0x12 },
684     { "forua",           "false",                             0x00, 0x56 }, /* WML 1.1 */
685     { "forua",           "true",                              0x00, 0x57 }, /* WML 1.1 */
686     { "height",          NULL,                                0x00, 0x13 },
687     { "href",            NULL,                                0x00, 0x4a }, /* WML 1.1 */
688     { "href",            "http://",                           0x00, 0x4b }, /* WML 1.1 */
689     { "href",            "https://",                          0x00, 0x4c }, /* WML 1.1 */
690     { "hspace",          NULL,                                0x00, 0x14 },
691     { "http-equiv",      NULL,                                0x00, 0x5a }, /* WML 1.1 */
692     { "http-equiv",      "Content-Type",                      0x00, 0x5b }, /* WML 1.1 */
693     { "http-equiv",      "Expires",                           0x00, 0x5d }, /* WML 1.1 */
694     { "id",              NULL,                                0x00, 0x55 }, /* WML 1.1 */
695     { "ivalue",          NULL,                                0x00, 0x15 }, /* WML 1.1 */
696     { "iname",           NULL,                                0x00, 0x16 }, /* WML 1.1 */
697     { "label",           NULL,                                0x00, 0x18 },
698     { "localsrc",        NULL,                                0x00, 0x19 },
699     { "maxlength",       NULL,                                0x00, 0x1a },
700     { "method",          "get",                               0x00, 0x1b },
701     { "method",          "post",                              0x00, 0x1c },
702     { "mode",            "nowrap",                            0x00, 0x1d },
703     { "mode",            "wrap",                              0x00, 0x1e },
704     { "multiple",        "false",                             0x00, 0x1f },
705     { "multiple",        "true",                              0x00, 0x20 },
706     { "name",            NULL,                                0x00, 0x21 },
707     { "newcontext",      "false",                             0x00, 0x22 },
708     { "newcontext",      "true",                              0x00, 0x23 },
709     { "onenterbackward", NULL,                                0x00, 0x25 },
710     { "onenterforward",  NULL,                                0x00, 0x26 },
711     { "onpick",          NULL,                                0x00, 0x24 }, /* WML 1.1 */
712     { "ontimer",         NULL,                                0x00, 0x27 },
713     { "optional",        "false",                             0x00, 0x28 },
714     { "optional",        "true",                              0x00, 0x29 },
715     { "path",            NULL,                                0x00, 0x2a },
716     { "scheme",          NULL,                                0x00, 0x2e },
717     { "sendreferer",     "false",                             0x00, 0x2f },
718     { "sendreferer",     "true",                              0x00, 0x30 },
719     { "size",            NULL,                                0x00, 0x31 },
720     { "src",             NULL,                                0x00, 0x32 },
721     { "src",             "http://",                           0x00, 0x58 }, /* WML 1.1 */
722     { "src",             "https://",                          0x00, 0x59 }, /* WML 1.1 */
723     { "ordered",         "true",                              0x00, 0x33 }, /* WML 1.1 */
724     { "ordered",         "false",                             0x00, 0x34 }, /* WML 1.1 */
725     { "tabindex",        NULL,                                0x00, 0x35 },
726     { "title",           NULL,                                0x00, 0x36 },
727     { "type",            NULL,                                0x00, 0x37 },
728     { "type",            "accept",                            0x00, 0x38 },
729     { "type",            "delete",                            0x00, 0x39 },
730     { "type",            "help",                              0x00, 0x3a },
731     { "type",            "password",                          0x00, 0x3b },
732     { "type",            "onpick",                            0x00, 0x3c },
733     { "type",            "onenterbackward",                   0x00, 0x3d },
734     { "type",            "onenterforward",                    0x00, 0x3e },
735     { "type",            "ontimer",                           0x00, 0x3f },
736     { "type",            "options",                           0x00, 0x45 },
737     { "type",            "prev",                              0x00, 0x46 },
738     { "type",            "reset",                             0x00, 0x47 },
739     { "type",            "text",                              0x00, 0x48 },
740     { "type",            "vnd.",                              0x00, 0x49 },
741     { "value",           NULL,                                0x00, 0x4d },
742     { "vspace",          NULL,                                0x00, 0x4e },
743     { "width",           NULL,                                0x00, 0x4f },
744     { "xml:lang",        NULL,                                0x00, 0x50 },
745     { "xml:space",       "preserve",                          0x00, 0x62 }, /* WML 1.3 */
746     { "xml:space",       "default",                           0x00, 0x63 }, /* WML 1.3 */
747     { NULL,              NULL,                                0x00, 0x00 }
748 };
749 
750 
751 const WBXMLAttrValueEntry sv_wml13_attr_value_table[] = {
752     { ".com/",           0x00, 0x85 },
753     { ".edu/",           0x00, 0x86 },
754     { ".net/",           0x00, 0x87 },
755     { ".org/",           0x00, 0x88 },
756     { "accept",          0x00, 0x89 },
757     { "bottom",          0x00, 0x8a },
758     { "clear",           0x00, 0x8b },
759     { "delete",          0x00, 0x8c },
760     { "help",            0x00, 0x8d },
761     /* Do NOT change the order in this table please ! */
762     { "http://www.",     0x00, 0x8f },
763     { "http://",         0x00, 0x8e },
764     { "https://www.",    0x00, 0x91 },
765     { "https://",        0x00, 0x90 },
766     { "middle",          0x00, 0x93 },
767     { "nowrap",          0x00, 0x94 },
768     { "onenterbackward", 0x00, 0x96 },
769     { "onenterforward",  0x00, 0x97 },
770     { "onpick",          0x00, 0x95 }, /* WML 1.1 */
771     { "ontimer",         0x00, 0x98 },
772     { "options",         0x00, 0x99 },
773     { "password",        0x00, 0x9a },
774     { "reset",           0x00, 0x9b },
775     { "text",            0x00, 0x9d },
776     { "top",             0x00, 0x9e },
777     { "unknown",         0x00, 0x9f },
778     { "wrap",            0x00, 0xa0 },
779     { "www.",            0x00, 0xa1 },
780     { NULL,              0x00, 0x00 }
781 };
782 
783 #endif /* WBXML_SUPPORT_WML */
784 
785 
786 
787 #if defined( WBXML_SUPPORT_WTA )
788 
789 /********************************************
790  *    WTA 1.0 (WAP 1.0: "wta-30-apr-98.pdf")
791  */
792 
793 const WBXMLTagEntry sv_wta10_tag_table[] = {
794     { "EVENT",          0x00, 0x05 },
795     { "EVENTTABLE",     0x00, 0x06 },
796     { "TYPE",           0x00, 0x07 },
797     { "URL",            0x00, 0x08 },
798     { "WTAI",           0x00, 0x09 },
799     { NULL,             0x00, 0x00 }
800 };
801 
802 const WBXMLAttrEntry sv_wta10_attr_table[] = {
803     { "NAME",       NULL,                    0x00, 0x05 },
804     { "VALUE",      NULL,                    0x00, 0x06 },
805     { NULL,         NULL,                    0x00, 0x00 }
806 };
807 
808 
809 /***********************************************
810  *    WTA WML 1.2 ("WAP-266-WTA-20010908-a.pdf")
811  */
812 
813 const WBXMLTagEntry sv_wtawml12_tag_table[] = {
814     /* Code Page 0 (WML 1.2) */
815     { "a",         0x00, 0x1c },
816     { "anchor",    0x00, 0x22 },
817     { "access",    0x00, 0x23 },
818     { "b",         0x00, 0x24 },
819     { "big",       0x00, 0x25 },
820     { "br",        0x00, 0x26 },
821     { "card",      0x00, 0x27 },
822     { "do",        0x00, 0x28 },
823     { "em",        0x00, 0x29 },
824     { "fieldset",  0x00, 0x2a },
825     { "go",        0x00, 0x2b },
826     { "head",      0x00, 0x2c },
827     { "i",         0x00, 0x2d },
828     { "img",       0x00, 0x2e },
829     { "input",     0x00, 0x2f },
830     { "meta",      0x00, 0x30 },
831     { "noop",      0x00, 0x31 },
832     { "p",         0x00, 0x20 },
833     { "postfield", 0x00, 0x21 },
834     { "pre",       0x00, 0x1b },
835     { "prev",      0x00, 0x32 },
836     { "onevent",   0x00, 0x33 },
837     { "optgroup",  0x00, 0x34 },
838     { "option",    0x00, 0x35 },
839     { "refresh",   0x00, 0x36 },
840     { "select",    0x00, 0x37 },
841     { "setvar",    0x00, 0x3e },
842     { "small",     0x00, 0x38 },
843     { "strong",    0x00, 0x39 },
844     { "table",     0x00, 0x1f },
845     { "td",        0x00, 0x1d },
846     { "template",  0x00, 0x3b },
847     { "timer",     0x00, 0x3c },
848     { "tr",        0x00, 0x1e },
849     { "u",         0x00, 0x3d },
850     { "wml",       0x00, 0x3f },
851 
852     /* Code Page 1 (WTA) */
853     { "wta-wml",   0x01, 0x3f },
854     { NULL,        0x00, 0x00 }
855 };
856 
857 const WBXMLAttrEntry sv_wtawml12_attr_table[] = {
858     /* Code Page 0 (WML 1.2) */
859     { "accept-charset",  NULL,                                0x00, 0x05 },
860     { "accesskey",       NULL,                                0x00, 0x5e },
861     { "align",           NULL,                                0x00, 0x52 },
862     { "align",           "bottom",                            0x00, 0x06 },
863     { "align",           "center",                            0x00, 0x07 },
864     { "align",           "left",                              0x00, 0x08 },
865     { "align",           "middle",                            0x00, 0x09 },
866     { "align",           "right",                             0x00, 0x0a },
867     { "align",           "top",                               0x00, 0x0b },
868     { "alt",             NULL,                                0x00, 0x0c },
869     { "class",           NULL,                                0x00, 0x54 },
870     { "columns",         NULL,                                0x00, 0x53 },
871     { "content",         NULL,                                0x00, 0x0d },
872     { "content",         "application/vnd.wap.wmlc;charset=", 0x00, 0x5c },
873     { "domain",          NULL,                                0x00, 0x0f },
874     { "emptyok",         "false",                             0x00, 0x10 },
875     { "emptyok",         "true",                              0x00, 0x11 },
876     { "enctype",         NULL,                                0x00, 0x5f },
877     { "enctype",         "application/x-www-form-urlencoded", 0x00, 0x60 },
878     { "enctype",         "multipart/form-data",               0x00, 0x61 },
879     { "format",          NULL,                                0x00, 0x12 },
880     { "forua",           "false",                             0x00, 0x56 },
881     { "forua",           "true",                              0x00, 0x57 },
882     { "height",          NULL,                                0x00, 0x13 },
883     { "href",            NULL,                                0x00, 0x4a },
884     { "href",            "http://",                           0x00, 0x4b },
885     { "href",            "https://",                          0x00, 0x4c },
886     { "hspace",          NULL,                                0x00, 0x14 },
887     { "http-equiv",      NULL,                                0x00, 0x5a },
888     { "http-equiv",      "Content-Type",                      0x00, 0x5b },
889     { "http-equiv",      "Expires",                           0x00, 0x5d },
890     { "id",              NULL,                                0x00, 0x55 },
891     { "ivalue",          NULL,                                0x00, 0x15 },
892     { "iname",           NULL,                                0x00, 0x16 },
893     { "label",           NULL,                                0x00, 0x18 },
894     { "localsrc",        NULL,                                0x00, 0x19 },
895     { "maxlength",       NULL,                                0x00, 0x1a },
896     { "method",          "get",                               0x00, 0x1b },
897     { "method",          "post",                              0x00, 0x1c },
898     { "mode",            "nowrap",                            0x00, 0x1d },
899     { "mode",            "wrap",                              0x00, 0x1e },
900     { "multiple",        "false",                             0x00, 0x1f },
901     { "multiple",        "true",                              0x00, 0x20 },
902     { "name",            NULL,                                0x00, 0x21 },
903     { "newcontext",      "false",                             0x00, 0x22 },
904     { "newcontext",      "true",                              0x00, 0x23 },
905     { "onenterbackward", NULL,                                0x00, 0x25 },
906     { "onenterforward",  NULL,                                0x00, 0x26 },
907     { "onpick",          NULL,                                0x00, 0x24 },
908     { "ontimer",         NULL,                                0x00, 0x27 },
909     { "optional",        "false",                             0x00, 0x28 },
910     { "optional",        "true",                              0x00, 0x29 },
911     { "path",            NULL,                                0x00, 0x2a },
912     { "scheme",          NULL,                                0x00, 0x2e },
913     { "sendreferer",     "false",                             0x00, 0x2f },
914     { "sendreferer",     "true",                              0x00, 0x30 },
915     { "size",            NULL,                                0x00, 0x31 },
916     { "src",             NULL,                                0x00, 0x32 },
917     { "src",             "http://",                           0x00, 0x58 },
918     { "src",             "https://",                          0x00, 0x59 },
919     { "ordered",         "true",                              0x00, 0x33 },
920     { "ordered",         "false",                             0x00, 0x34 },
921     { "tabindex",        NULL,                                0x00, 0x35 },
922     { "title",           NULL,                                0x00, 0x36 },
923     { "type",            NULL,                                0x00, 0x37 },
924     { "type",            "accept",                            0x00, 0x38 },
925     { "type",            "delete",                            0x00, 0x39 },
926     { "type",            "help",                              0x00, 0x3a },
927     { "type",            "password",                          0x00, 0x3b },
928     { "type",            "onpick",                            0x00, 0x3c },
929     { "type",            "onenterbackward",                   0x00, 0x3d },
930     { "type",            "onenterforward",                    0x00, 0x3e },
931     { "type",            "ontimer",                           0x00, 0x3f },
932     { "type",            "options",                           0x00, 0x45 },
933     { "type",            "prev",                              0x00, 0x46 },
934     { "type",            "reset",                             0x00, 0x47 },
935     { "type",            "text",                              0x00, 0x48 },
936     { "type",            "vnd.",                              0x00, 0x49 },
937     { "value",           NULL,                                0x00, 0x4d },
938     { "vspace",          NULL,                                0x00, 0x4e },
939     { "width",           NULL,                                0x00, 0x4f },
940     { "xml:lang",        NULL,                                0x00, 0x50 },
941 
942     /* Code Page 1 (WTA) */
943     /* Do NOT change the order in this table please ! */
944     { "href",             "wtai://wp/mc;",                      0x01, 0x06 },
945     { "href",             "wtai://wp/sd;",                      0x01, 0x07 },
946     { "href",             "wtai://wp/ap;",                      0x01, 0x08 },
947     { "href",             "wtai://ms/ec;",                      0x01, 0x09 },
948     { "href",             "wtai://",                            0x01, 0x05 },
949     { "type",             "wtaev-cc/ic",                        0x01, 0x12 },
950     { "type",             "wtaev-cc/cl",                        0x01, 0x13 },
951     { "type",             "wtaev-cc/co",                        0x01, 0x14 },
952     { "type",             "wtaev-cc/oc",                        0x01, 0x15 },
953     { "type",             "wtaev-cc/cc",                        0x01, 0x16 },
954     { "type",             "wtaev-cc/dtmf",                      0x01, 0x17 },
955     { "type",             "wtaev-nt/it",                        0x01, 0x21 },
956     { "type",             "wtaev-nt/st",                        0x01, 0x22 },
957     { "type",             "wtaev-nt/",                          0x01, 0x20 },
958     { "type",             "wtaev-pb/",                          0x01, 0x30 },
959     { "type",             "wtaev-lg/",                          0x01, 0x38 },
960     { "type",             "wtaev-ms/ns",                        0x01, 0x51 },
961     { "type",             "wtaev-ms/",                          0x01, 0x50 },
962     { "type",             "wtaev-gsm/ru",                       0x01, 0x59 },
963     { "type",             "wtaev-gsm/ch",                       0x01, 0x5a },
964     { "type",             "wtaev-gsm/ca",                       0x01, 0x5b },
965     { "type",             "wtaev-gsm/",                         0x01, 0x58 },
966     { "type",             "wtaev-pdc",                          0x01, 0x60 },
967     { "type",             "wtaev-ansi136/ia",                   0x01, 0x69 },
968     { "type",             "wtaev-ansi136/if",                   0x01, 0x6a },
969     { "type",             "wtaev-ansi136",                      0x01, 0x68 },
970     { "type",             "wtaev-cdma/",                        0x01, 0x70 },
971     { "type",             "wtaev-cc",                           0x01, 0x11 },
972     { "type",             "wtaev-",                             0x01, 0x10 },
973     { NULL,               NULL,                                 0x00, 0x00 }
974 };
975 
976 const WBXMLAttrValueEntry sv_wtawml12_attr_value_table[] = {
977     /* Code Page 0 (WML 1.2) */
978     { ".com/",           0x00, 0x85 },
979     { ".edu/",           0x00, 0x86 },
980     { ".net/",           0x00, 0x87 },
981     { ".org/",           0x00, 0x88 },
982     { "accept",          0x00, 0x89 },
983     { "bottom",          0x00, 0x8a },
984     { "clear",           0x00, 0x8b },
985     { "delete",          0x00, 0x8c },
986     { "help",            0x00, 0x8d },
987     /* Do NOT change the order in this table please ! */
988     { "http://www.",     0x00, 0x8f },
989     { "http://",         0x00, 0x8e },
990     { "https://www.",    0x00, 0x91 },
991     { "https://",        0x00, 0x90 },
992     { "middle",          0x00, 0x93 },
993     { "nowrap",          0x00, 0x94 },
994     { "onenterbackward", 0x00, 0x96 },
995     { "onenterforward",  0x00, 0x97 },
996     { "onpick",          0x00, 0x95 },
997     { "ontimer",         0x00, 0x98 },
998     { "options",         0x00, 0x99 },
999     { "password",        0x00, 0x9a },
1000     { "reset",           0x00, 0x9b },
1001     { "text",            0x00, 0x9d },
1002     { "top",             0x00, 0x9e },
1003     { "unknown",         0x00, 0x9f },
1004     { "wrap",            0x00, 0xa0 },
1005     { "www.",            0x00, 0xa1 },
1006     { NULL,              0x00, 0x00 }
1007 };
1008 
1009 
1010 /***************************************************
1011  *    CHANNEL 1.1 (WAP 1.1: "SPEC-WTA-19990716.pdf")
1012  */
1013 
1014 const WBXMLTagEntry sv_channel11_tag_table[] = {
1015     { "channel",        0x00, 0x05 },
1016     { "title",          0x00, 0x06 },
1017     { "abstract",       0x00, 0x07 },
1018     { "resource",       0x00, 0x08 },
1019     { NULL,             0x00, 0x00 }
1020 };
1021 
1022 const WBXMLAttrEntry sv_channel11_attr_table[] = {
1023     { "maxspace",   NULL,           0x00, 0x05 },
1024     { "base",       NULL,           0x00, 0x06 },
1025     { "href",       NULL,           0x00, 0x07 },
1026     { "href",       "http://",      0x00, 0x08 },
1027     { "href",       "https://",     0x00, 0x09 },
1028     { "lastmod",    NULL,           0x00, 0x0a },
1029     { "etag",       NULL,           0x00, 0x0b },
1030     { "md5",        NULL,           0x00, 0x0c },
1031     { "success",    NULL,           0x00, 0x0d },
1032     { "success",    "http://",      0x00, 0x0e },
1033     { "success",    "https://",     0x00, 0x0f },
1034     { "failure",    NULL,           0x00, 0x10 },
1035     { "failure",    "http://",      0x00, 0x11 },
1036     { "failure",    "https://",     0x00, 0x12 },
1037     { "EventId",    NULL,           0x00, 0x13 },
1038     { NULL,         NULL,           0x00, 0x00 }
1039 };
1040 
1041 
1042 /***********************************************
1043  *    CHANNEL 1.2 ("WAP-266-WTA-20010908-a.pdf")
1044  */
1045 
1046 const WBXMLTagEntry sv_channel12_tag_table[] = {
1047     { "channel",        0x00, 0x05 },
1048     { "title",          0x00, 0x06 },
1049     { "abstract",       0x00, 0x07 },
1050     { "resource",       0x00, 0x08 },
1051     { NULL,             0x00, 0x00 }
1052 };
1053 
1054 
1055 const WBXMLAttrEntry sv_channel12_attr_table[] = {
1056     { "maxspace",       NULL,           0x00, 0x05 },
1057     { "base",           NULL,           0x00, 0x06 },
1058     { "href",           NULL,           0x00, 0x07 },
1059     { "href",           "http://",      0x00, 0x08 },
1060     { "href",           "https://",     0x00, 0x09 },
1061     { "lastmod",        NULL,           0x00, 0x0a },
1062     { "etag",            NULL,          0x00, 0x0b },
1063     { "md5",            NULL,           0x00, 0x0c },
1064     { "success",        NULL,           0x00, 0x0d },
1065     { "success",        "http://",      0x00, 0x0e },
1066     { "success",        "https://",     0x00, 0x0f },
1067     { "failure",        NULL,           0x00, 0x10 },
1068     { "failure",        "http://",      0x00, 0x11 },
1069     { "failure",        "https://",     0x00, 0x12 },
1070     { "eventid",        NULL,           0x00, 0x13 },
1071     { "eventid",            "wtaev-",   0x00, 0x14 },
1072     { "channelid",          NULL,       0x00, 0x15 },
1073     { "useraccessible",     NULL,       0x00, 0x16 },
1074     { NULL,                 NULL,       0x00, 0x00 }
1075 };
1076 
1077 #endif /* WBXML_SUPPORT_WTA */
1078 
1079 
1080 #if defined( WBXML_SUPPORT_SI )
1081 
1082 /*************************************************
1083  *    SI 1.0 ("WAP-167-ServiceInd-20010731-a.pdf")
1084  */
1085 
1086 const WBXMLTagEntry sv_si10_tag_table[] = {
1087     { "si",             0x00, 0x05 },
1088     { "indication",     0x00, 0x06 },
1089     { "info",           0x00, 0x07 },
1090     { "item",           0x00, 0x08 },
1091     { NULL,             0x00, 0x00 }
1092 };
1093 
1094 
1095 const WBXMLAttrEntry sv_si10_attr_table[] = {
1096     { "action",  "signal-none",             0x00, 0x05 },
1097     { "action",  "signal-low",              0x00, 0x06 },
1098     { "action",  "signal-medium",           0x00, 0x07 },
1099     { "action",  "signal-high",             0x00, 0x08 },
1100     { "action",  "delete",                  0x00, 0x09 },
1101     { "created", NULL,                      0x00, 0x0a },
1102     { "href",    NULL,                      0x00, 0x0b },
1103     /* Do NOT change the order in this table please ! */
1104     { "href",    "http://www.",             0x00, 0x0d },
1105     { "href",    "http://",                 0x00, 0x0c },
1106     { "href",    "https://www.",            0x00, 0x0f },
1107     { "href",    "https://",                0x00, 0x0e },
1108     { "si-expires", NULL,                   0x00, 0x10 },
1109     { "si-id",      NULL,                   0x00, 0x11 },
1110     { "class",      NULL,                   0x00, 0x12 },
1111     { NULL,         NULL,                   0x00, 0x00 }
1112 };
1113 
1114 
1115 const WBXMLAttrValueEntry sv_si10_attr_value_table[] = {
1116     { ".com/",           0x00, 0x85 },
1117     { ".edu/",           0x00, 0x86 },
1118     { ".net/",           0x00, 0x87 },
1119     { ".org/",           0x00, 0x88 },
1120     { NULL,              0x00, 0x00 }
1121 };
1122 
1123 #endif /* WBXML_SUPPORT_SI */
1124 
1125 
1126 #if defined( WBXML_SUPPORT_SL )
1127 
1128 /**************************************************
1129  *    SL 1.0 ("WAP-168-ServiceLoad-20010731-a.pdf")
1130  */
1131 
1132 const WBXMLTagEntry sv_sl10_tag_table[] = {
1133     { "sl",              0x00, 0x05 },
1134     { NULL,              0x00, 0x00 }
1135 };
1136 
1137 
1138 const WBXMLAttrEntry sv_sl10_attr_table[] = {
1139     { "action",  "execute-low",         0x00, 0x05 },
1140     { "action",  "execute-high",        0x00, 0x06 },
1141     { "action",  "cache",               0x00, 0x07 },
1142     { "href",    NULL,                  0x00, 0x08 },
1143     /* Do NOT change the order in this table please ! */
1144     { "href",    "http://www.",         0x00, 0x0a },
1145     { "href",    "http://",             0x00, 0x09 },
1146     { "href",    "https://www.",        0x00, 0x0c },
1147     { "href",    "https://",            0x00, 0x0b },
1148     { NULL,      NULL,                  0x00, 0x00 }
1149 };
1150 
1151 
1152 const WBXMLAttrValueEntry sv_sl10_attr_value_table[] = {
1153     { ".com/",           0x00, 0x85 },
1154     { ".edu/",           0x00, 0x86 },
1155     { ".net/",           0x00, 0x87 },
1156     { ".org/",           0x00, 0x88 },
1157     { NULL,              0x00, 0x00 }
1158 };
1159 
1160 #endif /* WBXML_SUPPORT_SL */
1161 
1162 
1163 #if defined( WBXML_SUPPORT_CO )
1164 
1165 /***********************************************
1166  *    CO 1.0 ("WAP-175-CacheOp-20010731-a.pdf")
1167  */
1168 
1169 const WBXMLTagEntry sv_co10_tag_table[] = {
1170     { "co",                     0x00, 0x05 },
1171     { "invalidate-object",      0x00, 0x06 },
1172     { "invalidate-service",     0x00, 0x07 },
1173     { NULL,                     0x00, 0x00 }
1174 };
1175 
1176 
1177 const WBXMLAttrEntry sv_co10_attr_table[] = {
1178     { "uri",    NULL,                   0x00, 0x05 },
1179     /* Do NOT change the order in this table please ! */
1180     { "uri",    "http://www.",          0x00, 0x07 },
1181     { "uri",    "http://",              0x00, 0x06 },
1182     { "uri",    "https://www.",         0x00, 0x09 },
1183     { "uri",    "https://",             0x00, 0x08 },
1184     { NULL,     NULL,                   0x00, 0x00 }
1185 };
1186 
1187 
1188 const WBXMLAttrValueEntry sv_co10_attr_value_table[] = {
1189     { ".com/",           0x00, 0x85 },
1190     { ".edu/",           0x00, 0x86 },
1191     { ".net/",           0x00, 0x87 },
1192     { ".org/",           0x00, 0x88 },
1193     { NULL,              0x00, 0x00 }
1194 };
1195 
1196 #endif /* WBXML_SUPPORT_CO */
1197 
1198 
1199 #if defined( WBXML_SUPPORT_PROV )
1200 
1201 /** Use OMA PROV 1.1 Tables (only 'sv_prov10_attr_value_table' changed) */
1202 #define WBXML_SUPPORT_PROV_11
1203 
1204 /**********************************************************
1205  *    PROV 1.0
1206  *      WAP 2.0: "WAP-183-PROVCONT-20010724-a.pdf"
1207  *      OMA: "OMA-WAP-ProvCont-v1_1-20021112-C.PDF"
1208  *
1209  *    PROV 1.1
1210  *      OMA: OMA-WAP-ProvCont-v1_1-20050428-Cchangebars.doc
1211  *      There is no new Public ID defined for this new version,
1212  *      so how should we handle this ??
1213  */
1214 
1215 const WBXMLTagEntry sv_prov10_tag_table[] = {
1216     { "wap-provisioningdoc",        0x00, 0x05 },
1217     { "characteristic",             0x00, 0x06 },
1218     { "parm",                       0x00, 0x07 },
1219 
1220     { "characteristic",             0x01, 0x06 }, /* OMA */
1221     { "parm",                       0x01, 0x07 }, /* OMA */
1222     { NULL,                         0x00, 0x00 }
1223 };
1224 
1225 
1226 const WBXMLAttrEntry sv_prov10_attr_table[] = {
1227     /* Wap-provisioningdoc */
1228     { "version",    NULL,               0x00, 0x45 },
1229     { "version",    "1.0",              0x00, 0x46 },
1230 
1231     /* Characteristic */
1232     { "type",        NULL,                  0x00, 0x50 },
1233     { "type",        "PXLOGICAL",           0x00, 0x51 },
1234     { "type",        "PXPHYSICAL",          0x00, 0x52 },
1235     { "type",        "PORT",                0x00, 0x53 },
1236     { "type",        "VALIDITY",            0x00, 0x54 },
1237     { "type",        "NAPDEF",              0x00, 0x55 },
1238     { "type",        "BOOTSTRAP",           0x00, 0x56 },
1239     { "type",        "VENDORCONFIG",        0x00, 0x57 },
1240     { "type",        "CLIENTIDENTITY",      0x00, 0x58 },
1241     { "type",        "PXAUTHINFO",          0x00, 0x59 },
1242     { "type",        "NAPAUTHINFO",         0x00, 0x5a },
1243     { "type",        "ACCESS",              0x00, 0x5b }, /* OMA */
1244 
1245     { "type",        NULL,                  0x01, 0x50 }, /* OMA */
1246     { "type",        "PORT",                0x01, 0x53 }, /* OMA */
1247     { "type",        "CLIENTIDENTITY",      0x01, 0x58 }, /* OMA */
1248     { "type",        "APPLICATION",         0x01, 0x55 }, /* OMA */
1249     { "type",        "APPADDR",             0x01, 0x56 }, /* OMA */
1250     { "type",        "APPAUTH",             0x01, 0x57 }, /* OMA */
1251     { "type",        "RESOURCE",            0x01, 0x59 }, /* OMA */
1252 
1253     /* Parm */
1254     { "name",        NULL,                  0x00, 0x05 },
1255     { "value",       NULL,                  0x00, 0x06 },
1256     { "name",        "NAME",                0x00, 0x07 },
1257     { "name",        "NAP-ADDRESS",         0x00, 0x08 },
1258     { "name",        "NAP-ADDRTYPE",        0x00, 0x09 },
1259     { "name",        "CALLTYPE",            0x00, 0x0a },
1260     { "name",        "VALIDUNTIL",          0x00, 0x0b },
1261     { "name",        "AUTHTYPE",            0x00, 0x0c },
1262     { "name",        "AUTHNAME",            0x00, 0x0d },
1263     { "name",        "AUTHSECRET",          0x00, 0x0e },
1264     { "name",        "LINGER",              0x00, 0x0f },
1265     { "name",        "BEARER",              0x00, 0x10 },
1266     { "name",        "NAPID",               0x00, 0x11 },
1267     { "name",        "COUNTRY",             0x00, 0x12 },
1268     { "name",        "NETWORK",             0x00, 0x13 },
1269     { "name",        "INTERNET",            0x00, 0x14 },
1270     { "name",        "PROXY-ID",            0x00, 0x15 },
1271     { "name",        "PROXY-PROVIDER-ID",   0x00, 0x16 },
1272     { "name",        "DOMAIN",              0x00, 0x17 },
1273     { "name",        "PROVURL",             0x00, 0x18 },
1274     { "name",        "PXAUTH-TYPE",         0x00, 0x19 },
1275     { "name",        "PXAUTH-ID",           0x00, 0x1a },
1276     { "name",        "PXAUTH-PW",           0x00, 0x1b },
1277     { "name",        "STARTPAGE",           0x00, 0x1c },
1278     { "name",        "BASAUTH-ID",          0x00, 0x1d },
1279     { "name",        "BASAUTH-PW",          0x00, 0x1e },
1280     { "name",        "PUSHENABLED",         0x00, 0x1f },
1281     { "name",        "PXADDR",              0x00, 0x20 },
1282     { "name",        "PXADDRTYPE",          0x00, 0x21 },
1283     { "name",        "TO-NAPID",            0x00, 0x22 },
1284     { "name",        "PORTNBR",             0x00, 0x23 },
1285     { "name",        "SERVICE",             0x00, 0x24 },
1286     { "name",        "LINKSPEED",           0x00, 0x25 },
1287     { "name",        "DNLINKSPEED",         0x00, 0x26 },
1288     { "name",        "LOCAL-ADDR",          0x00, 0x27 },
1289     { "name",        "LOCAL-ADDRTYPE",      0x00, 0x28 },
1290     { "name",        "CONTEXT-ALLOW",       0x00, 0x29 },
1291     { "name",        "TRUST",               0x00, 0x2a },
1292     { "name",        "MASTER",              0x00, 0x2b },
1293     { "name",        "SID",                 0x00, 0x2c },
1294     { "name",        "SOC",                 0x00, 0x2d },
1295     { "name",        "WSP-VERSION",         0x00, 0x2e },
1296     { "name",        "PHYSICAL-PROXY-ID",   0x00, 0x2f },
1297     { "name",        "CLIENT-ID",           0x00, 0x30 },
1298     { "name",        "DELIVERY-ERR-SDU",    0x00, 0x31 },
1299     { "name",        "DELIVERY-ORDER",      0x00, 0x32 },
1300     { "name",        "TRAFFIC-CLASS",       0x00, 0x33 },
1301     { "name",        "MAX-SDU-SIZE",        0x00, 0x34 },
1302     { "name",        "MAX-BITRATE-UPLINK",  0x00, 0x35 },
1303     { "name",        "MAX-BITRATE-DNLINK",  0x00, 0x36 },
1304     { "name",        "RESIDUAL-BER",        0x00, 0x37 },
1305     { "name",        "SDU-ERROR-RATIO",     0x00, 0x38 },
1306     { "name",        "TRAFFIC-HANDL-PRIO",  0x00, 0x39 },
1307     { "name",        "TRANSFER-DELAY",      0x00, 0x3a },
1308     { "name",        "GUARANTEED-BITRATE-UPLINK",   0x00, 0x3b },
1309     { "name",        "GUARANTEED-BITRATE-DNLINK",   0x00, 0x3c },
1310     { "name",        "PXADDR-FQDN",         0x00, 0x3d }, /* OMA */
1311     { "name",        "PROXY-PW",            0x00, 0x3e }, /* OMA */
1312     { "name",        "PPGAUTH-TYPE",        0x00, 0x3f }, /* OMA */
1313     { "name",        "PULLENABLED",         0x00, 0x47 }, /* OMA */
1314     { "name",        "DNS-ADDR",            0x00, 0x48 }, /* OMA */
1315     { "name",        "MAX-NUM-RETRY",       0x00, 0x49 }, /* OMA */
1316     { "name",        "FIRST-RETRY-TIMEOUT", 0x00, 0x4a }, /* OMA */
1317     { "name",        "REREG-THRESHOLD",     0x00, 0x4b }, /* OMA */
1318     { "name",        "T-BIT",               0x00, 0x4c }, /* OMA */
1319     { "name",        "AUTH-ENTITY",         0x00, 0x4e }, /* OMA */
1320     { "name",        "SPI",                 0x00, 0x4f }, /* OMA */
1321 
1322     { "name",        NULL,                  0x01, 0x05 }, /* OMA */
1323     { "value",       NULL,                  0x01, 0x06 }, /* OMA */
1324     { "name",        "NAME",                0x01, 0x07 }, /* OMA */
1325     { "name",        "INTERNET",            0x01, 0x14 }, /* OMA */
1326     { "name",        "STARTPAGE",           0x01, 0x1c }, /* OMA */
1327     { "name",        "TO-NAPID",            0x01, 0x22 }, /* OMA */
1328     { "name",        "PORTNBR",             0x01, 0x23 }, /* OMA */
1329     { "name",        "SERVICE",             0x01, 0x24 }, /* OMA */
1330     { "name",        "AACCEPT",             0x01, 0x2e }, /* OMA */
1331     { "name",        "AAUTHDATA",           0x01, 0x2f }, /* OMA */
1332     { "name",        "AAUTHLEVEL",          0x01, 0x30 }, /* OMA */
1333     { "name",        "AAUTHNAME",           0x01, 0x31 }, /* OMA */
1334     { "name",        "AAUTHSECRET",         0x01, 0x32 }, /* OMA */
1335     { "name",        "AAUTHTYPE",           0x01, 0x33 }, /* OMA */
1336     { "name",        "ADDR",                0x01, 0x34 }, /* OMA */
1337     { "name",        "ADDRTYPE",            0x01, 0x35 }, /* OMA */
1338     { "name",        "APPID",               0x01, 0x36 }, /* OMA */
1339     { "name",        "APROTOCOL",           0x01, 0x37 }, /* OMA */
1340     { "name",        "PROVIDER-ID",         0x01, 0x38 }, /* OMA */
1341     { "name",        "TO-PROXY",            0x01, 0x39 }, /* OMA */
1342     { "name",        "URI",                 0x01, 0x3a }, /* OMA */
1343     { "name",        "RULE",                0x01, 0x3b }, /* OMA */
1344 
1345     { NULL,          NULL,                  0x00, 0x00 }
1346 };
1347 
1348 
1349 const WBXMLAttrValueEntry sv_prov10_attr_value_table[] = {
1350     /* ADDRTYPE */
1351     { "IPV4",                   0x00, 0x85 },
1352     { "IPV6",                   0x00, 0x86 },
1353     { "E164",                   0x00, 0x87 },
1354     { "ALPHA",                  0x00, 0x88 },
1355     { "APN",                    0x00, 0x89 },
1356     { "SCODE",                  0x00, 0x8a },
1357     { "TETRA-ITSI",             0x00, 0x8b },
1358     { "MAN",                    0x00, 0x8c },
1359 
1360     { "IPV6",                   0x01, 0x86 }, /* OMA */
1361     { "E164",                   0x01, 0x87 }, /* OMA */
1362     { "ALPHA",                  0x01, 0x88 }, /* OMA */
1363     { "APPSRV",                 0x01, 0x8d }, /* OMA */
1364     { "OBEX",                   0x01, 0x8e }, /* OMA */
1365 
1366     /* CALLTYPE */
1367     { "ANALOG-MODEM",           0x00, 0x90 },
1368     { "V.120",                  0x00, 0x91 },
1369     { "V.110",                  0x00, 0x92 },
1370     { "X.31",                   0x00, 0x93 },
1371     { "BIT-TRANSPARENT",        0x00, 0x94 },
1372     { "DIRECT-ASYNCHRONOUS-DATA-SERVICE",    0x00, 0x95 },
1373 
1374     /* AUTHTYPE/PXAUTH-TYPE */
1375     { "PAP",                    0x00, 0x9a },
1376     { "CHAP",                   0x00, 0x9b },
1377     { "HTTP-BASIC",             0x00, 0x9c },
1378     { "HTTP-DIGEST",            0x00, 0x9d },
1379     { "WTLS-SS",                0x00, 0x9e },
1380     { "MD5",                    0x00, 0x9f }, /* OMA */
1381 
1382     /* BEARER */
1383     { "GSM-USSD",               0x00, 0xa2 },
1384     { "GSM-SMS",                0x00, 0xa3 },
1385     { "ANSI-136-GUTS",          0x00, 0xa4 },
1386     { "IS-95-CDMA-SMS",         0x00, 0xa5 },
1387     { "IS-95-CDMA-CSD",         0x00, 0xa6 },
1388     { "IS-95-CDMA-PACKET",      0x00, 0xa7 },
1389     { "ANSI-136-CSD",           0x00, 0xa8 },
1390     { "ANSI-136-GPRS",          0x00, 0xa9 },
1391     { "GSM-CSD",                0x00, 0xaa },
1392     { "GSM-GPRS",               0x00, 0xab },
1393     { "AMPS-CDPD",              0x00, 0xac },
1394     { "PDC-CSD",                0x00, 0xad },
1395     { "PDC-PACKET",             0x00, 0xae },
1396     { "IDEN-SMS",               0x00, 0xaf },
1397     { "IDEN-CSD",               0x00, 0xb0 },
1398     { "IDEN-PACKET",            0x00, 0xb1 },
1399     { "FLEX/REFLEX",            0x00, 0xb2 },
1400     { "PHS-SMS",                0x00, 0xb3 },
1401     { "PHS-CSD",                0x00, 0xb4 },
1402     { "TRETRA-SDS",             0x00, 0xb5 },
1403     { "TRETRA-PACKET",          0x00, 0xb6 },
1404     { "ANSI-136-GHOST",         0x00, 0xb7 },
1405     { "MOBITEX-MPAK",           0x00, 0xb8 },
1406     { "CDMA2000-1X-SIMPLE-IP",  0x00, 0xb9 }, /* OMA */
1407     { "CDMA2000-1X-MOBILE-IP",  0x00, 0xba }, /* OMA */
1408 
1409     /* LINKSPEED */
1410     { "AUTOBAUDING",            0x00, 0xc5 },
1411 
1412     /* SERVICE */
1413     { "CL-WSP",                 0x00, 0xca },
1414     { "CO-WSP",                 0x00, 0xcb },
1415     { "CL-SEC-WSP",             0x00, 0xcc },
1416     { "CO-SEC-WSP",             0x00, 0xcd },
1417     { "CL-SEC-WTA",             0x00, 0xce },
1418     { "CO-SEC-WTA",             0x00, 0xcf },
1419     { "OTA-HTTP-TO",            0x00, 0xd0 }, /* OMA */
1420     { "OTA-HTTP-TLS-TO",        0x00, 0xd1 }, /* OMA */
1421     { "OTA-HTTP-PO",            0x00, 0xd2 }, /* OMA */
1422     { "OTA-HTTP-TLS-PO",        0x00, 0xd3 }, /* OMA */
1423 
1424     /* AAUTHTYPE */
1425 #if defined( WBXML_SUPPORT_PROV_11 )
1426 
1427     { ",",                      0x01, 0x90 }, /* OMA */
1428     { "HTTP-",                  0x01, 0x91 }, /* OMA */
1429     { "BASIC",                  0x01, 0x92 }, /* OMA */
1430     { "DIGEST",                 0x01, 0x93 }, /* OMA */
1431 
1432 #else
1433 
1434     { ",",                      0x01, 0x80 }, /* OMA */
1435     { "HTTP-",                  0x01, 0x81 }, /* OMA */
1436     { "BASIC",                  0x01, 0x82 }, /* OMA */
1437     { "DIGEST",                 0x01, 0x83 }, /* OMA */
1438 
1439 #endif /* WBXML_SUPPORT_PROV_11 */
1440 
1441     /* AUTH-ENTITY */
1442     { "AAA",                    0x00, 0xe0 }, /* OMA */
1443     { "HA",                     0x00, 0xe1 }, /* OMA */
1444 
1445     { NULL,                     0x00, 0x00 }
1446 };
1447 
1448 #endif /* WBXML_SUPPORT_PROV */
1449 
1450 
1451 #if defined( WBXML_SUPPORT_EMN )
1452 
1453 /*************************************************
1454  *    Email Notification 1.0 ("OMA-Push-EMN-v1_0-20020830-C.PDF")
1455  */
1456 
1457 const WBXMLTagEntry sv_emn10_tag_table[] = {
1458     { "emn",    0x00, 0x05 },
1459     { NULL,     0x00, 0x00 }
1460 };
1461 
1462 const WBXMLAttrEntry sv_emn10_attr_table[] = {
1463     { "timestamp",      NULL,           0x00, 0x05 },
1464     { "mailbox",        NULL,           0x00, 0x06 },
1465     { "mailbox",        "mailat:",      0x00, 0x07 },
1466     { "mailbox",        "pop://",       0x00, 0x08 },
1467     { "mailbox",        "imap://",      0x00, 0x09 },
1468     /* Do NOT change the order in this table please ! */
1469     { "mailbox",        "http://www.",  0x00, 0x0b },
1470     { "mailbox",        "http://",      0x00, 0x0a },
1471     { "mailbox",        "https://www.", 0x00, 0x0d },
1472     { "mailbox",        "https://",     0x00, 0x0c },
1473     { NULL,             NULL,           0x00, 0x00 }
1474 };
1475 
1476 const WBXMLAttrValueEntry sv_emn10_attr_value_table[] = {
1477     { ".com",       0x00, 0x85 },
1478     { ".edu",       0x00, 0x86 },
1479     { ".net",       0x00, 0x87 },
1480     { ".org",       0x00, 0x88 },
1481     { NULL,         0x00, 0x00 }
1482 };
1483 
1484 #endif /* WBXML_SUPPORT_EMN */
1485 
1486 
1487 #if defined( WBXML_SUPPORT_DRMREL )
1488 
1489 /*************************************************
1490  *    Rights Expression Language Version 1.0 ("OMA-Download-DRMREL-v1_0-20020913-a.pdf")
1491  */
1492 
1493 const WBXMLTagEntry sv_drmrel10_tag_table[] = {
1494     { "o-ex:rights",    0x00, 0x05 },
1495     { "o-ex:context",   0x00, 0x06 },
1496     { "o-dd:version",   0x00, 0x07 },
1497     { "o-dd:uid",       0x00, 0x08 },
1498     { "o-ex:agreement", 0x00, 0x09 },
1499     { "o-ex:asset",     0x00, 0x0A },
1500     { "ds:KeyInfo",     0x00, 0x0B },
1501     { "ds:KeyValue",    0x00, 0x0C },
1502     { "o-ex:permission",0x00, 0x0D },
1503     { "o-dd:play",      0x00, 0x0E },
1504     { "o-dd:display",   0x00, 0x0F },
1505     { "o-dd:execute",   0x00, 0x10 },
1506     { "o-dd:print",     0x00, 0x11 },
1507     { "o-ex:constraint",0x00, 0x12 },
1508     { "o-dd:count",     0x00, 0x13 },
1509     { "o-dd:datetime",  0x00, 0x14 },
1510     { "o-dd:start",     0x00, 0x15 },
1511     { "o-dd:end",       0x00, 0x16 },
1512     { "o-dd:interval",  0x00, 0x17 },
1513     { NULL,             0x00, 0x00 }
1514 };
1515 
1516 const WBXMLAttrEntry sv_drmrel10_attr_table[] = {
1517     { "xmlns:o-ex",     NULL,       0x00, 0x05 },
1518     { "xmlns:o-dd",     NULL,       0x00, 0x06 },
1519     { "xmlns:ds",       NULL,       0x00, 0x07 },
1520     { NULL,             NULL,       0x00, 0x00 }
1521 };
1522 
1523 const WBXMLAttrValueEntry sv_drmrel10_attr_value_table[] = {
1524     { "http://odrl.net/1.1/ODRL-EX",        0x00, 0x85 },
1525     { "http://odrl.net/1.1/ODRL-DD",        0x00, 0x86 },
1526     { "http://www.w3.org/2000/09/xmldsig#/",0x00, 0x87 },
1527     { NULL,                                 0x00, 0x00 }
1528 };
1529 
1530 #endif /* WBXML_SUPPORT_DRMREL */
1531 
1532 
1533 #if defined( WBXML_SUPPORT_OTA_SETTINGS )
1534 
1535 /********************************************************************
1536  *    Ericsson / Nokia OTA Settings ("OTA_settings_general_7_0.pdf")
1537  */
1538 
1539 const WBXMLTagEntry sv_ota_settings_tag_table[] = {
1540     { "CHARACTERISTIC-LIST",        0x00, 0x05 },
1541     { "CHARACTERISTIC",             0x00, 0x06 },
1542     { "PARM",                       0x00, 0x07 },
1543 
1544     { NULL,                         0x00, 0x00 }
1545 };
1546 
1547 const WBXMLAttrEntry sv_ota_settings_attr_table[] = {
1548     /* Characteristic */
1549     { "TYPE",        "ADDRESS",             0x00, 0x06 },
1550     { "TYPE",        "URL",                 0x00, 0x07 },
1551     { "TYPE",        "NAME",                0x00, 0x08 },
1552     { "NAME",        NULL,                  0x00, 0x10 },
1553     { "VALUE",       NULL,                  0x00, 0x11 },
1554     { "NAME",        "BEARER",              0x00, 0x12 },
1555     { "NAME",        "PROXY",               0x00, 0x13 },
1556     { "NAME",        "PORT",                0x00, 0x14 },
1557     { "NAME",        "NAME",                0x00, 0x15 },
1558     { "NAME",        "PROXY_TYPE",          0x00, 0x16 },
1559     { "NAME",        "URL",                 0x00, 0x17 },
1560     { "NAME",        "PROXY_AUTHNAME",      0x00, 0x18 },
1561     { "NAME",        "PROXY_AUTHSECRET",    0x00, 0x19 },
1562     { "NAME",        "SMS_SMSC_ADDRESS",    0x00, 0x1A },
1563     { "NAME",        "USSD_SERVICE_CODE",   0x00, 0x1B },
1564     { "NAME",        "GPRS_ACCESSPOINTNAME",0x00, 0x1C },
1565     { "NAME",        "PPP_LOGINTYPE",       0x00, 0x1D },
1566     { "NAME",        "PROXY_LOGINTYPE",     0x00, 0x1E },
1567     { "NAME",        "CSD_DIALSTRING",      0x00, 0x21 },
1568     { "NAME",        "CSD_CALLTYPE",        0x00, 0x28 },
1569     { "NAME",        "CSD_CALLSPEED",       0x00, 0x29 },
1570     { "NAME",        "PPP_AUTHTYPE",        0x00, 0x22 },
1571     { "NAME",        "PPP_AUTHNAME",        0x00, 0x23 },
1572     { "NAME",        "PPP_AUTHSECRET",      0x00, 0x24 },
1573     { "VALUE",       "GSM/CSD",             0x00, 0x45 },
1574     { "VALUE",       "GSM/SMS",             0x00, 0x46 },
1575     { "VALUE",       "GSM/USSD",            0x00, 0x47 },
1576     { "VALUE",       "IS-136/CSD",          0x00, 0x48 },
1577     { "VALUE",       "GPRS",                0x00, 0x49 },
1578     { "VALUE",       "9200",                0x00, 0x60 },
1579     { "VALUE",       "9201",                0x00, 0x61 },
1580     { "VALUE",       "9202",                0x00, 0x62 },
1581     { "VALUE",       "9203",                0x00, 0x63 },
1582     { "VALUE",       "AUTOMATIC",           0x00, 0x64 },
1583     { "VALUE",       "MANUAL",              0x00, 0x65 },
1584     { "VALUE",       "AUTO",                0x00, 0x6A },
1585     { "VALUE",       "9600",                0x00, 0x6B },
1586     { "VALUE",       "14400",               0x00, 0x6C },
1587     { "VALUE",       "19200",               0x00, 0x6D },
1588     { "VALUE",       "28800",               0x00, 0x6E },
1589     { "VALUE",       "38400",               0x00, 0x6F },
1590     { "VALUE",       "PAP",                 0x00, 0x70 },
1591     { "VALUE",       "CHAP",                0x00, 0x71 },
1592     { "VALUE",       "ANALOGUE",            0x00, 0x72 },
1593     { "VALUE",       "ISDN",                0x00, 0x73 },
1594     { "VALUE",       "43200",               0x00, 0x74 },
1595     { "VALUE",       "57600",               0x00, 0x75 },
1596     { "VALUE",       "MSISDN_NO",           0x00, 0x76 },
1597     { "VALUE",       "IPV4",                0x00, 0x77 },
1598     { "VALUE",       "MS_CHAP",             0x00, 0x78 },
1599     { "TYPE",        "MMSURL",              0x00, 0x7C },
1600     { "TYPE",        "ID",                  0x00, 0x7D },
1601     { "NAME",        "ISP_NAME",            0x00, 0x7E },
1602     { "TYPE",        "BOOKMARK",            0x00, 0x7F },
1603 
1604     { NULL,          NULL,                  0x00, 0x00 }
1605 };
1606 
1607 #endif /* WBXML_SUPPORT_OTA_SETTINGS */
1608 
1609 
1610 #if defined( WBXML_SUPPORT_SYNCML )
1611 
1612 const WBXMLNameSpaceEntry sv_syncml_syncml10_ns_table[] = {
1613     { "SYNCML:SYNCML1.0",   0x00 },     /**< Code Page 0: SYNCML1.0 */
1614     { "syncml:metinf",      0x01 },     /**< Code Page 1: metinf */
1615     { NULL,                 0x00 }
1616 };
1617 
1618 
1619 const WBXMLNameSpaceEntry sv_syncml_syncml11_ns_table[] = {
1620     { "SYNCML:SYNCML1.1",   0x00 },     /**< Code Page 0: SYNCML1.1 */
1621     { "syncml:metinf",      0x01 },     /**< Code Page 1: metinf */
1622     { NULL,                 0x00 }
1623 };
1624 
1625 
1626 const WBXMLNameSpaceEntry sv_syncml_syncml12_ns_table[] = {
1627     { "SYNCML:SYNCML1.2",   0x00 },     /**< Code Page 0: SYNCML1.2 */
1628     { "syncml:metinf",      0x01 },     /**< Code Page 1: metinf */
1629     { NULL,                 0x00 }
1630 };
1631 
1632 
1633 /******************************************************
1634  *    SyncML 1.1 ("syncml_represent_v11_20020215.pdf")
1635  */
1636 
1637 const WBXMLTagEntry sv_syncml_syncml11_tag_table[] = {
1638     /* Code Page 0: SyncML */
1639     { "Add",            0x00, 0x05 },
1640     { "Alert",          0x00, 0x06 },
1641     { "Archive",        0x00, 0x07 },
1642     { "Atomic",         0x00, 0x08 },
1643     { "Chal",           0x00, 0x09 },
1644     { "Cmd",            0x00, 0x0a },
1645     { "CmdID",          0x00, 0x0b },
1646     { "CmdRef",         0x00, 0x0c },
1647     { "Copy",           0x00, 0x0d },
1648     { "Cred",           0x00, 0x0e },
1649     { "Data",           0x00, 0x0f },
1650     { "Delete",         0x00, 0x10 },
1651     { "Exec",           0x00, 0x11 },
1652     { "Final",          0x00, 0x12 },
1653     { "Get",            0x00, 0x13 },
1654     { "Item",           0x00, 0x14 },
1655     { "Lang",           0x00, 0x15 },
1656     { "LocName",        0x00, 0x16 },
1657     { "LocURI",         0x00, 0x17 },
1658     { "Map",            0x00, 0x18 },
1659     { "MapItem",        0x00, 0x19 },
1660     { "Meta",           0x00, 0x1a },
1661     { "MsgID",          0x00, 0x1b },
1662     { "MsgRef",         0x00, 0x1c },
1663     { "NoResp",         0x00, 0x1d },
1664     { "NoResults",      0x00, 0x1e },
1665     { "Put",            0x00, 0x1f },
1666     { "Replace",        0x00, 0x20 },
1667     { "RespURI",        0x00, 0x21 },
1668     { "Results",        0x00, 0x22 },
1669     { "Search",         0x00, 0x23 },
1670     { "Sequence",       0x00, 0x24 },
1671     { "SessionID",      0x00, 0x25 },
1672     { "SftDel",         0x00, 0x26 },
1673     { "Source",         0x00, 0x27 },
1674     { "SourceRef",      0x00, 0x28 },
1675     { "Status",         0x00, 0x29 },
1676     { "Sync",           0x00, 0x2a },
1677     { "SyncBody",       0x00, 0x2b },
1678     { "SyncHdr",        0x00, 0x2c },
1679     { "SyncML",         0x00, 0x2d },
1680     { "Target",         0x00, 0x2e },
1681     { "TargetRef",      0x00, 0x2f },
1682     { "Reserved for future use",    0x00, 0x30 },
1683     { "VerDTD",         0x00, 0x31 },
1684     { "VerProto",       0x00, 0x32 },
1685     { "NumberOfChanges",0x00, 0x33 },
1686     { "MoreData",       0x00, 0x34 },
1687 
1688     /* SourceParent is officially only specified for SyncML 1.2.
1689      * Nevertheless Nokia uses this tag during the synchronization
1690      * of SMS. So this is a proprietary extension to avoid that
1691      * there is a tag called "unknown".
1692      */
1693     { "SourceParent",   0x00, 0x39 },
1694 
1695     /* Code Page 1: MetInf11 */
1696     { "Anchor",         0x01, 0x05 },
1697     { "EMI",            0x01, 0x06 },
1698     { "Format",         0x01, 0x07 },
1699     { "FreeID",         0x01, 0x08 },
1700     { "FreeMem",        0x01, 0x09 },
1701     { "Last",           0x01, 0x0a },
1702     { "Mark",           0x01, 0x0b },
1703     { "MaxMsgSize",     0x01, 0x0c },
1704     { "Mem",            0x01, 0x0d },
1705     { "MetInf",         0x01, 0x0e },
1706     { "Next",           0x01, 0x0f },
1707     { "NextNonce",      0x01, 0x10 },
1708     { "SharedMem",      0x01, 0x11 },
1709     { "Size",           0x01, 0x12 },
1710     { "Type",           0x01, 0x13 },
1711     { "Version",        0x01, 0x14 },
1712     { "MaxObjSize",     0x01, 0x15 },
1713     { NULL,             0x00, 0x00 }
1714 };
1715 
1716 
1717 /*********************************************************
1718  *    SyncML DevInf 1.1 ("syncml_devinf_v11_20020215.pdf")
1719  */
1720 
1721 const WBXMLTagEntry sv_syncml_devinf11_tag_table[] = {
1722     { "CTCap",          0x00, 0x05 },
1723     { "CTType",         0x00, 0x06 },
1724     { "DataStore",      0x00, 0x07 },
1725     { "DataType",       0x00, 0x08 },
1726     { "DevID",          0x00, 0x09 },
1727     { "DevInf",         0x00, 0x0a },
1728     { "DevTyp",         0x00, 0x0b },
1729     { "DisplayName",    0x00, 0x0c },
1730     { "DSMem",          0x00, 0x0d },
1731     { "Ext",            0x00, 0x0e },
1732     { "FwV",            0x00, 0x0f },
1733     { "HwV",            0x00, 0x10 },
1734     { "Man",            0x00, 0x11 },
1735     { "MaxGUIDSize",    0x00, 0x12 },
1736     { "MaxID",          0x00, 0x13 },
1737     { "MaxMem",         0x00, 0x14 },
1738     { "Mod",            0x00, 0x15 },
1739     { "OEM",            0x00, 0x16 },
1740     { "ParamName",      0x00, 0x17 },
1741     { "PropName",       0x00, 0x18 },
1742     { "Rx",             0x00, 0x19 },
1743     { "Rx-Pref",        0x00, 0x1a },
1744     { "SharedMem",      0x00, 0x1b },
1745     { "Size",           0x00, 0x1c },
1746     { "SourceRef",      0x00, 0x1d },
1747     { "SwV",            0x00, 0x1e },
1748     { "SyncCap",        0x00, 0x1f },
1749     { "SyncType",       0x00, 0x20 },
1750     { "Tx",             0x00, 0x21 },
1751     { "Tx-Pref",        0x00, 0x22 },
1752     { "ValEnum",        0x00, 0x23 },
1753     { "VerCT",          0x00, 0x24 },
1754     { "VerDTD",         0x00, 0x25 },
1755     { "XNam",           0x00, 0x26 },
1756     { "XVal",           0x00, 0x27 },
1757     { "UTC",            0x00, 0x28 },
1758     { "SupportNumberOfChanges", 0x00, 0x29 },
1759     { "SupportLargeObjs",       0x00, 0x2a },
1760     { NULL,                0x00, 0x00 }
1761 };
1762 
1763 
1764 const WBXMLNameSpaceEntry sv_syncml_devinf11_ns_table[] = {
1765     { "syncml:devinf",  0x00 },     /**< Code Page 0: devinf */
1766     { NULL,             0x00 }
1767 };
1768 
1769 
1770 /*********************************************************
1771  *    SyncML MetInf 1.1 ("syncml_metinf_v11_20020215.pdf")
1772  */
1773 
1774 const WBXMLTagEntry sv_syncml_metinf11_tag_table[] = {
1775     { "Anchor",         0x01, 0x05 },
1776     { "EMI",            0x01, 0x06 },
1777     { "Format",         0x01, 0x07 },
1778     { "FreeID",         0x01, 0x08 },
1779     { "FreeMem",        0x01, 0x09 },
1780     { "Last",           0x01, 0x0a },
1781     { "Mark",           0x01, 0x0b },
1782     { "MaxMsgSize",     0x01, 0x0c },
1783     { "Mem",            0x01, 0x0d },
1784     { "MetInf",         0x01, 0x0e },
1785     { "Next",           0x01, 0x0f },
1786     { "NextNonce",      0x01, 0x10 },
1787     { "SharedMem",      0x01, 0x11 },
1788     { "Size",           0x01, 0x12 },
1789     { "Type",           0x01, 0x13 },
1790     { "Version",        0x01, 0x14 },
1791     { "MaxObjSize",     0x01, 0x15 },
1792     { NULL,             0x00, 0x00 }
1793 };
1794 
1795 
1796 /******************************************************
1797  *    SyncML 1.2 ("OMA-TS-SyncML_RepPro-V1_2-20050509-C.pdf")
1798  */
1799 
1800 const WBXMLTagEntry sv_syncml_syncml12_tag_table[] = {
1801     /* Code Page 0: SyncML */
1802     { "Add",            0x00, 0x05 },
1803     { "Alert",          0x00, 0x06 },
1804     { "Archive",        0x00, 0x07 },
1805     { "Atomic",         0x00, 0x08 },
1806     { "Chal",           0x00, 0x09 },
1807     { "Cmd",            0x00, 0x0a },
1808     { "CmdID",          0x00, 0x0b },
1809     { "CmdRef",         0x00, 0x0c },
1810     { "Copy",           0x00, 0x0d },
1811     { "Cred",           0x00, 0x0e },
1812     { "Data",           0x00, 0x0f },
1813     { "Delete",         0x00, 0x10 },
1814     { "Exec",           0x00, 0x11 },
1815     { "Final",          0x00, 0x12 },
1816     { "Get",            0x00, 0x13 },
1817     { "Item",           0x00, 0x14 },
1818     { "Lang",           0x00, 0x15 },
1819     { "LocName",        0x00, 0x16 },
1820     { "LocURI",         0x00, 0x17 },
1821     { "Map",            0x00, 0x18 },
1822     { "MapItem",        0x00, 0x19 },
1823     { "Meta",           0x00, 0x1a },
1824     { "MsgID",          0x00, 0x1b },
1825     { "MsgRef",         0x00, 0x1c },
1826     { "NoResp",         0x00, 0x1d },
1827     { "NoResults",      0x00, 0x1e },
1828     { "Put",            0x00, 0x1f },
1829     { "Replace",        0x00, 0x20 },
1830     { "RespURI",        0x00, 0x21 },
1831     { "Results",        0x00, 0x22 },
1832     { "Search",         0x00, 0x23 },
1833     { "Sequence",       0x00, 0x24 },
1834     { "SessionID",      0x00, 0x25 },
1835     { "SftDel",         0x00, 0x26 },
1836     { "Source",         0x00, 0x27 },
1837     { "SourceRef",      0x00, 0x28 },
1838     { "Status",         0x00, 0x29 },
1839     { "Sync",           0x00, 0x2a },
1840     { "SyncBody",       0x00, 0x2b },
1841     { "SyncHdr",        0x00, 0x2c },
1842     { "SyncML",         0x00, 0x2d },
1843     { "Target",         0x00, 0x2e },
1844     { "TargetRef",      0x00, 0x2f },
1845     { "Reserved for future use",    0x00, 0x30 },
1846     { "VerDTD",         0x00, 0x31 },
1847     { "VerProto",       0x00, 0x32 },
1848     { "NumberOfChanges",0x00, 0x33 },
1849     { "MoreData",       0x00, 0x34 },
1850     { "Field",          0x00, 0x35 },
1851     { "Filter",         0x00, 0x36 },
1852     { "Record",         0x00, 0x37 },
1853     { "FilterType",     0x00, 0x38 },
1854     { "SourceParent",   0x00, 0x39 },
1855     { "TargetParent",   0x00, 0x3a },
1856     { "Move",           0x00, 0x3b },
1857     { "Correlator",     0x00, 0x3c },
1858 
1859     /* Code Page 1: MetInf */
1860     { "Anchor",         0x01, 0x05 },
1861     { "EMI",            0x01, 0x06 },
1862     { "Format",         0x01, 0x07 },
1863     { "FreeID",         0x01, 0x08 },
1864     { "FreeMem",        0x01, 0x09 },
1865     { "Last",           0x01, 0x0a },
1866     { "Mark",           0x01, 0x0b },
1867     { "MaxMsgSize",     0x01, 0x0c },
1868     { "Mem",            0x01, 0x0d },
1869     { "MetInf",         0x01, 0x0e },
1870     { "Next",           0x01, 0x0f },
1871     { "NextNonce",      0x01, 0x10 },
1872     { "SharedMem",      0x01, 0x11 },
1873     { "Size",           0x01, 0x12 },
1874     { "Type",           0x01, 0x13 },
1875     { "Version",        0x01, 0x14 },
1876     { "MaxObjSize",     0x01, 0x15 },
1877     { "FieldLevel",     0x01, 0x16 },
1878     { NULL,             0x00, 0x00 }
1879 };
1880 
1881 
1882 /*********************************************************
1883  *    SyncML DevInf 1.2 ("OMA-TS-DS_DevInf-V1_2-20060710-A.pdf")
1884  */
1885 
1886 const WBXMLTagEntry sv_syncml_devinf12_tag_table[] = {
1887     { "CTCap",          0x00, 0x05 },
1888     { "CTType",         0x00, 0x06 },
1889     { "DataStore",      0x00, 0x07 },
1890     { "DataType",       0x00, 0x08 },
1891     { "DevID",          0x00, 0x09 },
1892     { "DevInf",         0x00, 0x0a },
1893     { "DevTyp",         0x00, 0x0b },
1894     { "DisplayName",    0x00, 0x0c },
1895     { "DSMem",          0x00, 0x0d },
1896     { "Ext",            0x00, 0x0e },
1897     { "FwV",            0x00, 0x0f },
1898     { "HwV",            0x00, 0x10 },
1899     { "Man",            0x00, 0x11 },
1900     { "MaxGUIDSize",    0x00, 0x12 },
1901     { "MaxID",          0x00, 0x13 },
1902     { "MaxMem",         0x00, 0x14 },
1903     { "Mod",            0x00, 0x15 },
1904     { "OEM",            0x00, 0x16 },
1905     { "ParamName",      0x00, 0x17 },
1906     { "PropName",       0x00, 0x18 },
1907     { "Rx",             0x00, 0x19 },
1908     { "Rx-Pref",        0x00, 0x1a },
1909     { "SharedMem",      0x00, 0x1b },
1910     { "MaxSize",        0x00, 0x1c },
1911     { "SourceRef",      0x00, 0x1d },
1912     { "SwV",            0x00, 0x1e },
1913     { "SyncCap",        0x00, 0x1f },
1914     { "SyncType",       0x00, 0x20 },
1915     { "Tx",             0x00, 0x21 },
1916     { "Tx-Pref",        0x00, 0x22 },
1917     { "ValEnum",        0x00, 0x23 },
1918     { "VerCT",          0x00, 0x24 },
1919     { "VerDTD",         0x00, 0x25 },
1920     { "XNam",           0x00, 0x26 },
1921     { "XVal",           0x00, 0x27 },
1922     { "UTC",            0x00, 0x28 },
1923     { "SupportNumberOfChanges", 0x00, 0x29 },
1924     { "SupportLargeObjs",       0x00, 0x2a },
1925     { "Property",       0x00, 0x2b },
1926     { "PropParam",      0x00, 0x2c },
1927     { "MaxOccur",       0x00, 0x2d },
1928     { "NoTruncate",     0x00, 0x2e },
1929     { "Filter-Rx",      0x00, 0x30 },
1930     { "FilterCap",      0x00, 0x31 },
1931     { "FilterKeyword",  0x00, 0x32 },
1932     { "FieldLevel",     0x00, 0x33 },
1933     { "SupportHierarchicalSync", 0x00, 0x34 },
1934     { NULL,             0x00, 0x00 }
1935 };
1936 
1937 
1938 const WBXMLNameSpaceEntry sv_syncml_devinf12_ns_table[] = {
1939     { "syncml:devinf",  0x00 },     /**< Code Page 0: devinf */
1940     { NULL,             0x00 }
1941 };
1942 
1943 
1944 /*********************************************************
1945  *    SyncML MetInf 1.2 ("OMA-TS-SyncML_MetaInfo-V1_2-20050509-C.pdf")
1946  */
1947 
1948 const WBXMLTagEntry sv_syncml_metinf12_tag_table[] = {
1949     { "Anchor",         0x01, 0x05 },
1950     { "EMI",            0x01, 0x06 },
1951     { "Format",         0x01, 0x07 },
1952     { "FreeID",         0x01, 0x08 },
1953     { "FreeMem",        0x01, 0x09 },
1954     { "Last",           0x01, 0x0a },
1955     { "Mark",           0x01, 0x0b },
1956     { "MaxMsgSize",     0x01, 0x0c },
1957     { "Mem",            0x01, 0x0d },
1958     { "MetInf",         0x01, 0x0e },
1959     { "Next",           0x01, 0x0f },
1960     { "NextNonce",      0x01, 0x10 },
1961     { "SharedMem",      0x01, 0x11 },
1962     { "Size",           0x01, 0x12 },
1963     { "Type",           0x01, 0x13 },
1964     { "Version",        0x01, 0x14 },
1965     { "MaxObjSize",     0x01, 0x15 },
1966     { "FieldLevel",     0x01, 0x16 },
1967     { NULL,             0x00, 0x00 }
1968 };
1969 
1970 /*********************************************************
1971  *    SyncML DM DDF 1.2 ("OMA-TS-DM_TND-V1_2_1-20080617-A.pdf")
1972  */
1973 
1974 const WBXMLTagEntry sv_syncml_dmddf12_tag_table[] = {
1975     { "AccessType",     0x02, 0x05 },
1976     { "ACL",            0x02, 0x06 },
1977     { "Add",            0x02, 0x07 },
1978     { "b64",            0x02, 0x08 },
1979     { "bin",            0x02, 0x09 },
1980     { "bool",           0x02, 0x0A },
1981     { "chr",            0x02, 0x0B },
1982     { "CaseSense",      0x02, 0x0C },
1983     { "CIS",            0x02, 0x0D },
1984     { "Copy",           0x02, 0x0E },
1985     { "CS",             0x02, 0x0F },
1986     { "date",           0x02, 0x10 },
1987     { "DDFName",        0x02, 0x11 },
1988     { "DefaultValue",   0x02, 0x12 },
1989     { "Delete",         0x02, 0x13 },
1990     { "Description",    0x02, 0x14 },
1991     { "DFFormat",       0x02, 0x15 },
1992     { "DFProperties",   0x02, 0x16 },
1993     { "DFTitle",        0x02, 0x17 },
1994     { "DFType",         0x02, 0x18 },
1995     { "Dynamic",        0x02, 0x19 },
1996     { "Exec",           0x02, 0x1A },
1997     { "float",          0x02, 0x1B },
1998     { "Format",         0x02, 0x1C },
1999     { "Get",            0x02, 0x1D },
2000     { "int",            0x02, 0x1E },
2001     { "Man",            0x02, 0x1F },
2002     { "MgmtTree",       0x02, 0x20 },
2003     { "MIME",           0x02, 0x21 },
2004     { "Mod",            0x02, 0x22 },
2005     { "Name",           0x02, 0x23 },
2006     { "Node",           0x02, 0x24 },
2007     { "node",           0x02, 0x25 },
2008     { "NodeName",       0x02, 0x26 },
2009     { "null",           0x02, 0x27 },
2010     { "Occurrence",     0x02, 0x28 },
2011     { "One",            0x02, 0x29 },
2012     { "OneOrMore",      0x02, 0x2A },
2013     { "OneOrN",         0x02, 0x2B },
2014     { "Path",           0x02, 0x2C },
2015     { "Permanent",      0x02, 0x2D },
2016     { "Replace",        0x02, 0x2E },
2017     { "RTProperties",   0x02, 0x2F },
2018     { "Scope",          0x02, 0x30 },
2019     { "Size",           0x02, 0x31 },
2020     { "time",           0x02, 0x32 },
2021     { "Title",          0x02, 0x33 },
2022     { "TStamp",         0x02, 0x34 },
2023     { "Type",           0x02, 0x35 },
2024     { "Value",          0x02, 0x36 },
2025     { "VerDTD",         0x02, 0x37 },
2026     { "VerNo",          0x02, 0x38 },
2027     { "xml",            0x02, 0x39 },
2028     { "ZeroOrMore",     0x02, 0x3A },
2029     { "ZeroOrN",        0x02, 0x3B },
2030     { "ZeroOrOne",      0x02, 0x3C },
2031     { NULL,             0x00, 0x00 }
2032 };
2033 
2034 const WBXMLNameSpaceEntry sv_syncml_dmddf12_ns_table[] = {
2035     { "syncml:dmddf1.2", 0x02 },     /**< Code Page 2: OMA DM DDF */
2036     { NULL,              0x00 }
2037 };
2038 
2039 #endif /* WBXML_SUPPORT_SYNCML */
2040 
2041 
2042 #if defined( WBXML_SUPPORT_WV )
2043 
2044 /*****************************************************************************
2045  *    Wireless Village CSP 1.1 ("OMA-WV-CSP-V1_1-20021001-A.pdf")
2046  *    Wireless Village CSP 1.2 ("OMA-IMPS-WV-CSP_WBXML-V1_2-20040522-C.pdf")
2047  */
2048 
2049 const WBXMLTagEntry sv_wv_csp_tag_table[] = {
2050     /* Common ... continue on Page 0x09 */
2051     { "Acceptance",     0x00, 0x05 },
2052     { "AddList",        0x00, 0x06 },
2053     { "AddNickList",    0x00, 0x07 },
2054     { "ClientID",       0x00, 0x0A },
2055     { "Code",           0x00, 0x0B },
2056     { "ContactList",    0x00, 0x0C },
2057     { "ContentData",    0x00, 0x0D },
2058     { "ContentEncoding",0x00, 0x0E },
2059     { "ContentSize",    0x00, 0x0F },
2060     { "ContentType",    0x00, 0x10 },
2061     { "DateTime",       0x00, 0x11 },
2062     { "Description",    0x00, 0x12 },
2063     { "DetailedResult", 0x00, 0x13 },
2064     { "EntityList",     0x00, 0x14 },
2065     { "Group",          0x00, 0x15 },
2066     { "GroupID",        0x00, 0x16 },
2067     { "GroupList",      0x00, 0x17 },
2068     { "InUse",          0x00, 0x18 },
2069     { "Logo",           0x00, 0x19 },
2070     { "MessageCount",   0x00, 0x1A },
2071     { "MessageID",      0x00, 0x1B },
2072     { "MessageURI",     0x00, 0x1C },
2073     { "MSISDN",         0x00, 0x1D },
2074     { "Name",           0x00, 0x1E },
2075     { "NickList",       0x00, 0x1F },
2076     { "NickName",       0x00, 0x20 },
2077     { "Poll",           0x00, 0x21 },
2078     { "Presence",       0x00, 0x22 },
2079     { "PresenceSubList",0x00, 0x23 },
2080     { "PresenceValue",  0x00, 0x24 },
2081     { "Property",       0x00, 0x25 },
2082     { "Qualifier",      0x00, 0x26 },
2083     { "Recipient",      0x00, 0x27 },
2084     { "RemoveList",     0x00, 0x28 },
2085     { "RemoveNickList", 0x00, 0x29 },
2086     { "Result",         0x00, 0x2A },
2087     { "ScreenName",     0x00, 0x2B },
2088     { "Sender",         0x00, 0x2C },
2089     { "Session",        0x00, 0x2D },
2090     { "SessionDescriptor",      0x00, 0x2E },
2091     { "SessionID",              0x00, 0x2F },
2092     { "SessionType",            0x00, 0x30 },
2093     { "SName",                  0x00, 0x08 },
2094     { "Status",                 0x00, 0x31 },
2095     { "Transaction",            0x00, 0x32 },
2096     { "TransactionContent",     0x00, 0x33 },
2097     { "TransactionDescriptor",  0x00, 0x34 },
2098     { "TransactionID",  0x00, 0x35 },
2099     { "TransactionMode",0x00, 0x36 },
2100     { "URL",            0x00, 0x37 },
2101     { "URLList",        0x00, 0x38 },
2102     { "User",           0x00, 0x39 },
2103     { "UserID",         0x00, 0x3A },
2104     { "UserList",       0x00, 0x3B },
2105     { "Validity",       0x00, 0x3C },
2106     { "Value",          0x00, 0x3D },
2107     { "WV-CSP-Message", 0x00, 0x09 },
2108 
2109     /* Access ... continue on Page 0x0A */
2110     { "AgreedCapabilityList",       0x01, 0x3A }, /* WV 1.2 */
2111     { "AllFunctions",               0x01, 0x05 },
2112     { "AllFunctionsRequest",        0x01, 0x06 },
2113     { "CancelInvite-Request",       0x01, 0x07 },
2114     { "CancelInviteUser-Request",   0x01, 0x08 },
2115     { "Capability",                 0x01, 0x09 },
2116     { "CapabilityList",             0x01, 0x0A },
2117     { "CapabilityRequest",          0x01, 0x0B },
2118     { "ClientCapability-Request",   0x01, 0x0C },
2119     { "ClientCapability-Response",  0x01, 0x0D },
2120     { "CompletionFlag",         0x01, 0x34 },
2121     { "DigestBytes",            0x01, 0x0E },
2122     { "DigestSchema",           0x01, 0x0F },
2123     { "Disconnect",             0x01, 0x10 },
2124     { "Extended-Request",       0x01, 0x38 }, /* WV 1.2 */
2125     { "Extended-Response",      0x01, 0x39 }, /* WV 1.2 */
2126     { "Extended-Data",          0x01, 0x3B }, /* WV 1.2 */
2127     { "Functions",              0x01, 0x11 },
2128     { "GetSPInfo-Request",      0x01, 0x12 },
2129     { "GetSPInfo-Response",     0x01, 0x13 },
2130     { "InviteID",               0x01, 0x14 },
2131     { "InviteNote",             0x01, 0x15 },
2132     { "Invite-Request",         0x01, 0x16 },
2133     { "Invite-Response",        0x01, 0x17 },
2134     { "InviteType",             0x01, 0x18 },
2135     { "InviteUser-Request",     0x01, 0x19 },
2136     { "InviteUser-Response",    0x01, 0x1A },
2137     { "KeepAlive-Request",      0x01, 0x1B },
2138     { "KeepAlive-Response",     0x01, 0x29 },
2139     { "KeepAliveTime",          0x01, 0x1C },
2140     { "Login-Request",          0x01, 0x1D },
2141     { "Login-Response",         0x01, 0x1E },
2142     { "Logout-Request",         0x01, 0x1F },
2143     { "Nonce",                  0x01, 0x20 },
2144     { "OtherServer",            0x01, 0x3C }, /* WV 1.2 */
2145     { "Password",               0x01, 0x21 },
2146     { "Polling-Request",        0x01, 0x22 },
2147     { "PresenceAttributeNSName",0x01, 0x3D }, /* WV 1.2 */
2148     { "ReceiveList",            0x01, 0x36 }, /* WV 1.2 */
2149     { "ResponseNote",           0x01, 0x23 },
2150     { "SearchElement",          0x01, 0x24 },
2151     { "SearchFindings",         0x01, 0x25 },
2152     { "SearchID",               0x01, 0x26 },
2153     { "SearchIndex",            0x01, 0x27 },
2154     { "SearchLimit",            0x01, 0x28 },
2155     { "SearchPairList",         0x01, 0x2A },
2156     { "Search-Request",         0x01, 0x2B },
2157     { "Search-Response",        0x01, 0x2C },
2158     { "SearchResult",           0x01, 0x2D },
2159     { "SearchString",           0x01, 0x33 },
2160     { "Service-Request",        0x01, 0x2E },
2161     { "Service-Response",       0x01, 0x2F },
2162     { "SessionCookie",          0x01, 0x30 },
2163     { "SessionNSName",          0x01, 0x3E }, /* WV 1.2 */
2164     { "StopSearch-Request",     0x01, 0x31 },
2165     { "TimeToLive",             0x01, 0x32 },
2166     { "TransactionNSName",      0x01, 0x3F }, /* WV 1.2 */
2167     { "VerifyID-Request",       0x01, 0x37 }, /* WV 1.2 */
2168 
2169     /* Service ... continue on Page 0x08 */
2170     { "ADDGM",          0x02, 0x05 },
2171     { "AttListFunc",    0x02, 0x06 },
2172     { "BLENT",          0x02, 0x07 },
2173     { "CAAUT",          0x02, 0x08 },
2174     { "CAINV",          0x02, 0x09 },
2175     { "CALI",           0x02, 0x0A },
2176     { "CCLI",           0x02, 0x0B },
2177     { "ContListFunc",   0x02, 0x0C },
2178     { "CREAG",          0x02, 0x0D },
2179     { "DALI",           0x02, 0x0E },
2180     { "DCLI",           0x02, 0x0F },
2181     { "DELGR",          0x02, 0x10 },
2182     { "FundamentalFeat",0x02, 0x11 },
2183     { "FWMSG",          0x02, 0x12 },
2184     { "GALS",           0x02, 0x13 },
2185     { "GCLI",           0x02, 0x14 },
2186     { "GETGM",          0x02, 0x15 },
2187     { "GETGP",          0x02, 0x16 },
2188     { "GETLM",          0x02, 0x17 },
2189     { "GETM",           0x02, 0x18 },
2190     { "GETPR",          0x02, 0x19 },
2191     { "GETSPI",         0x02, 0x1A },
2192     { "GETWL",          0x02, 0x1B },
2193     { "GLBLU",          0x02, 0x1C },
2194     { "GRCHN",          0x02, 0x1D },
2195     { "GroupAuthFunc",  0x02, 0x1E },
2196     { "GroupFeat",      0x02, 0x1F },
2197     { "GroupMgmtFunc",  0x02, 0x20 },
2198     { "GroupUseFunc",   0x02, 0x21 },
2199     { "IMAuthFunc",     0x02, 0x22 },
2200     { "IMFeat",         0x02, 0x23 },
2201     { "IMReceiveFunc",  0x02, 0x24 },
2202     { "IMSendFunc",     0x02, 0x25 },
2203     { "INVIT",          0x02, 0x26 },
2204     { "InviteFunc",     0x02, 0x27 },
2205     { "MBRAC",          0x02, 0x28 },
2206     { "MCLS",           0x02, 0x29 },
2207     { "MF",             0x02, 0x3D }, /* WV 1.2 */
2208     { "MG",             0x02, 0x3E }, /* WV 1.2 */
2209     { "MM",             0x02, 0x3F }, /* WV 1.2 */
2210     { "MDELIV",         0x02, 0x2A },
2211     { "NEWM",           0x02, 0x2B },
2212     { "NOTIF",          0x02, 0x2C },
2213     { "PresenceAuthFunc",   0x02, 0x2D },
2214     { "PresenceDeliverFunc",0x02, 0x2E },
2215     { "PresenceFeat",       0x02, 0x2F },
2216     { "REACT",          0x02, 0x30 },
2217     { "REJCM",          0x02, 0x31 },
2218     { "REJEC",          0x02, 0x32 },
2219     { "RMVGM",          0x02, 0x33 },
2220     { "SearchFunc",     0x02, 0x34 },
2221     { "ServiceFunc",    0x02, 0x35 },
2222     { "SETD",           0x02, 0x36 },
2223     { "SETGP",          0x02, 0x37 },
2224     { "SRCH",           0x02, 0x38 },
2225     { "STSRC",          0x02, 0x39 },
2226     { "SUBGCN",         0x02, 0x3A },
2227     { "UPDPR",          0x02, 0x3B },
2228     { "WVCSPFeat",      0x02, 0x3C },
2229 
2230     /* Client Capability */
2231     { "AcceptedCharset",            0x03, 0x05 },
2232     { "AcceptedContentLength",      0x03, 0x06 },
2233     { "AcceptedContentType",        0x03, 0x07 },
2234     { "AcceptedTransferEncoding",   0x03, 0x08 },
2235     { "AnyContent",                 0x03, 0x09 },
2236     { "DefaultLanguage",            0x03, 0x0A },
2237     { "InitialDeliveryMethod",      0x03, 0x0B },
2238     { "MultiTrans",                 0x03, 0x0C },
2239     { "ParserSize",                 0x03, 0x0D },
2240     { "ServerPollMin",              0x03, 0x0E },
2241     { "SupportedBearer",            0x03, 0x0F },
2242     { "SupportedCIRMethod",         0x03, 0x10 },
2243     { "TCPAddress",                 0x03, 0x11 },
2244     { "TCPPort",                    0x03, 0x12 },
2245     { "UDPPort",                    0x03, 0x13 },
2246 
2247     /* Presence Primitive */
2248     { "Auto-Subscribe",                 0x04, 0x1E }, /* WV 1.2 */
2249     { "CancelAuth-Request",             0x04, 0x05 },
2250     { "ContactListProperties",          0x04, 0x06 },
2251     { "CreateAttributeList-Request",    0x04, 0x07 },
2252     { "CreateList-Request",             0x04, 0x08 },
2253     { "DefaultAttributeList",           0x04, 0x09 },
2254     { "DefaultContactList",             0x04, 0x0A },
2255     { "DefaultList",                    0x04, 0x0B },
2256     { "DeleteAttributeList-Request",    0x04, 0x0C },
2257     { "DeleteList-Request",             0x04, 0x0D },
2258     { "GetAttributeList-Request",       0x04, 0x0E },
2259     { "GetAttributeList-Response",      0x04, 0x0F },
2260     { "GetList-Request",                0x04, 0x10 },
2261     { "GetList-Response",               0x04, 0x11 },
2262     { "GetPresence-Request",            0x04, 0x12 },
2263     { "GetPresence-Response",           0x04, 0x13 },
2264     { "GetReactiveAuthStatus-Request",  0x04, 0x1F }, /* WV 1.2 */
2265     { "GetReactiveAuthStatus-Response", 0x04, 0x20 }, /* WV 1.2 */
2266     { "GetWatcherList-Request",         0x04, 0x14 },
2267     { "GetWatcherList-Response",        0x04, 0x15 },
2268     { "ListManage-Request",             0x04, 0x16 },
2269     { "ListManage-Response",            0x04, 0x17 },
2270     { "PresenceAuth-Request",           0x04, 0x19 },
2271     { "PresenceAuth-User",              0x04, 0x1A },
2272     { "PresenceNotification-Request",   0x04, 0x1B },
2273     { "SubscribePresence-Request",      0x04, 0x1D },
2274     { "UnsubscribePresence-Request",    0x04, 0x18 },
2275     { "UpdatePresence-Request",         0x04, 0x1C },
2276 
2277     /* Presence Attribute */
2278     { "Accuracy",           0x05, 0x05 },
2279     { "Address",            0x05, 0x06 },
2280     { "AddrPref",           0x05, 0x07 },
2281     { "Alias",              0x05, 0x08 },
2282     { "Altitude",           0x05, 0x09 },
2283     { "Building",           0x05, 0x0A },
2284     { "Caddr",              0x05, 0x0B },
2285     { "Cap",                0x05, 0x2F },
2286     { "City",               0x05, 0x0C },
2287     { "ClientInfo",         0x05, 0x0D },
2288     { "ClientProducer",     0x05, 0x0E },
2289     { "ClientType",         0x05, 0x0F },
2290     { "ClientVersion",      0x05, 0x10 },
2291     { "Cname",              0x05, 0x30 },
2292     { "CommC",              0x05, 0x11 },
2293     { "CommCap",            0x05, 0x12 },
2294     { "Contact",            0x05, 0x31 },
2295     { "ContactInfo",        0x05, 0x13 },
2296     { "ContainedvCard",     0x05, 0x14 },
2297                                           /* WV 1.2: removed in last version */
2298     { "Country",            0x05, 0x15 },
2299     { "Cpriority",          0x05, 0x32 },
2300     { "Crossing1",          0x05, 0x16 },
2301     { "Crossing2",          0x05, 0x17 },
2302     { "Cstatus",            0x05, 0x33 },
2303     { "DevManufacturer",    0x05, 0x18 },
2304     { "DirectContent",      0x05, 0x19 },
2305     { "FreeTextLocation",   0x05, 0x1A },
2306     { "GeoLocation",        0x05, 0x1B },
2307     { "Inf_link",           0x05, 0x37 }, /* WV 1.2 */
2308     { "InfoLink",           0x05, 0x38 }, /* WV 1.2 */
2309     { "Language",           0x05, 0x1C },
2310     { "Latitude",           0x05, 0x1D },
2311     { "Link",               0x05, 0x39 }, /* WV 1.2 */
2312     { "Longitude",          0x05, 0x1E },
2313     { "Model",              0x05, 0x1F },
2314     { "NamedArea",          0x05, 0x20 },
2315     { "Note",               0x05, 0x34 }, /* WV 1.2 */
2316     { "OnlineStatus",       0x05, 0x21 },
2317     { "PLMN",               0x05, 0x22 },
2318     { "PrefC",              0x05, 0x23 },
2319     { "PreferredContacts",  0x05, 0x24 },
2320     { "PreferredLanguage",  0x05, 0x25 },
2321     { "PreferredContent",   0x05, 0x26 },
2322     { "PreferredvCard",     0x05, 0x27 },
2323     { "Registration",       0x05, 0x28 },
2324     { "StatusContent",      0x05, 0x29 },
2325     { "StatusMood",         0x05, 0x2A },
2326     { "StatusText",         0x05, 0x2B },
2327     { "Street",             0x05, 0x2C },
2328     { "Text",               0x05, 0x3A }, /* WV 1.2 */
2329     { "TimeZone",           0x05, 0x2D },
2330     { "UserAvailability",   0x05, 0x2E },
2331     { "Zone",               0x05, 0x35 },
2332 
2333     /* Messaging */
2334     { "BlockList",                  0x06, 0x05 },
2335     { "BlockEntity-Request",        0x06, 0x06 }, /* WV 1.2 : changed from 'BlockUser-Request' in WV 1.1 */
2336     { "DeliveryMethod",             0x06, 0x07 },
2337     { "DeliveryReport",             0x06, 0x08 },
2338     { "DeliveryReport-Request",     0x06, 0x09 },
2339     { "DeliveryTime",               0x06, 0x1A },
2340     { "ForwardMessage-Request",     0x06, 0x0A },
2341     { "GetBlockedList-Request",     0x06, 0x0B },
2342     { "GetBlockedList-Response",    0x06, 0x0C },
2343     { "GetMessageList-Request",     0x06, 0x0D },
2344     { "GetMessageList-Response",    0x06, 0x0E },
2345     { "GetMessage-Request",         0x06, 0x0F },
2346     { "GetMessage-Response",        0x06, 0x10 },
2347     { "GrantList",                  0x06, 0x11 },
2348     { "MessageDelivered",           0x06, 0x12 },
2349     { "MessageInfo",                0x06, 0x13 },
2350     { "MessageNotification",        0x06, 0x14 },
2351     { "NewMessage",                 0x06, 0x15 },
2352     { "RejectMessage-Request",      0x06, 0x16 },
2353     { "SendMessage-Request",        0x06, 0x17 },
2354     { "SendMessage-Response",       0x06, 0x18 },
2355     { "SetDeliveryMethod-Request",  0x06, 0x19 },
2356 
2357     /* Group */
2358     { "AddGroupMembers-Request",    0x07, 0x05 },
2359     { "Admin",                      0x07, 0x06 },
2360     { "AdminMapList",               0x07, 0x26 }, /* WV 1.2 */
2361     { "AdminMapping",               0x07, 0x27 }, /* WV 1.2 */
2362     { "CreateGroup-Request",        0x07, 0x07 },
2363     { "DeleteGroup-Request",        0x07, 0x08 },
2364     { "GetGroupMembers-Request",    0x07, 0x09 },
2365     { "GetGroupMembers-Response",   0x07, 0x0A },
2366     { "GetGroupProps-Request",      0x07, 0x0B },
2367     { "GetGroupProps-Response",     0x07, 0x0C },
2368     { "GetJoinedUsers-Request",     0x07, 0x24 }, /* WV 1.2 */
2369     { "GetJoinedUsers-Response",    0x07, 0x25 }, /* WV 1.2 */
2370     { "GroupChangeNotice",          0x07, 0x0D },
2371     { "GroupProperties",            0x07, 0x0E },
2372     { "Joined",                     0x07, 0x0F },
2373     { "JoinGroup",                  0x07, 0x21 },
2374     { "JoinedRequest",              0x07, 0x10 },
2375     { "JoinGroup-Request",          0x07, 0x11 },
2376     { "JoinGroup-Response",         0x07, 0x12 },
2377     { "LeaveGroup-Request",         0x07, 0x13 },
2378     { "LeaveGroup-Response",        0x07, 0x14 },
2379     { "Left",                       0x07, 0x15 },
2380     { "Mapping",                    0x07, 0x28 }, /* WV 1.2 */
2381     { "MemberAccess-Request",       0x07, 0x16 },
2382     { "Mod",                        0x07, 0x17 },
2383     { "ModMapping",                 0x07, 0x29 }, /* WV 1.2 */
2384     { "OwnProperties",              0x07, 0x18 },
2385     { "RejectList-Request",         0x07, 0x19 },
2386     { "RejectList-Response",        0x07, 0x1A },
2387     { "RemoveGroupMembers-Request", 0x07, 0x1B },
2388     { "SetGroupProps-Request",      0x07, 0x1C },
2389     { "SubscribeGroupNotice-Request",   0x07, 0x1D },
2390     { "SubscribeGroupNotice-Response",  0x07, 0x1E },
2391     { "SubscribeNotification",          0x07, 0x22 },
2392     { "SubscribeType",                  0x07, 0x23 },
2393     { "UserMapList",                0x07, 0x2A }, /* WV 1.2 */
2394     { "UserMapping",                0x07, 0x2B }, /* WV 1.2 */
2395     { "Users",                      0x07, 0x1F },
2396     { "WelcomeNote",                0x07, 0x20 },
2397 
2398     /* Service ... continued */
2399     { "GETAUT",                     0x08, 0x06 }, /* WV 1.2 */
2400     { "GETJU",                      0x08, 0x07 }, /* WV 1.2 */
2401     { "MP",                         0x08, 0x05 }, /* WV 1.2 */
2402     { "VRID",                       0x08, 0x08 }, /* WV 1.2 */
2403     { "VerifyIDFunc",               0x08, 0x09 }, /* WV 1.2 */
2404 
2405     /* Common ... continued */
2406     { "CIR",                        0x09, 0x05 }, /* WV 1.2 */
2407     { "Domain",                     0x09, 0x06 }, /* WV 1.2 */
2408     { "ExtBlock",                   0x09, 0x07 }, /* WV 1.2 */
2409     { "HistoryPeriod",              0x09, 0x08 }, /* WV 1.2 */
2410     { "IDList",                     0x09, 0x09 }, /* WV 1.2 */
2411     { "MaxWatcherList",             0x09, 0x0A }, /* WV 1.2 */
2412     { "ReactiveAuthState",          0x09, 0x0B }, /* WV 1.2 */
2413     { "ReactiveAuthStatus",         0x09, 0x0C }, /* WV 1.2 */
2414     { "ReactiveAuthStatusList",     0x09, 0x0D }, /* WV 1.2 */
2415     { "Watcher",                    0x09, 0x0E }, /* WV 1.2 */
2416     { "WatcherStatus",              0x09, 0x0F }, /* WV 1.2 */
2417 
2418     /* Access ... continued */
2419     { "WV-CSP-VersionDiscovery-Request",  0x0A, 0x05 }, /* WV 1.2 */
2420     { "WV-CSP-VersionDiscovery-Response", 0x0A, 0x06 }, /* WV 1.2 */
2421     { "VersionList",                      0x0A, 0x07 }, /* WV 1.2 */
2422 
2423     { NULL,                         0x00, 0x00 }
2424 };
2425 
2426 const WBXMLAttrEntry sv_wv_csp_attr_table[] = {
2427     { "xmlns",      "http://www.wireless-village.org/CSP",  0x00, 0x05 },
2428     { "xmlns",      "http://www.wireless-village.org/PA",   0x00, 0x06 },
2429     { "xmlns",      "http://www.wireless-village.org/TRC",  0x00, 0x07 },
2430     { "xmlns",      "http://www.openmobilealliance.org/DTD/WV-CSP",     0x00, 0x08 },
2431     { "xmlns",      "http://www.openmobilealliance.org/DTD/WV-PA",      0x00, 0x09 },
2432     { "xmlns",      "http://www.openmobilealliance.org/DTD/WV-TRC",     0x00, 0x0A },
2433     { NULL,         NULL,                                   0x00, 0x00 }
2434 };
2435 
2436 const WBXMLExtValueEntry sv_wv_csp_ext_table[] = {
2437     /*
2438      * DO NOT CHANGE THIS TABLE ORDER PLEASE !
2439      * Extension Tokens must be sorted by length !
2440      */
2441 
2442     { "application/vnd.wap.mms-message",    0x04 }, /* Common value token */
2443     { "www.wireless-village.org",           0x30 }, /* Common value token */
2444     { "GROUP_USER_ID_AUTOJOIN",             0x50 }, /* Access value token */ /* WV 1.2 */
2445     { "GROUP_USER_ID_JOINED",               0x40 }, /* Access value token */
2446     { "GROUP_USER_ID_OWNER",                0x41 }, /* Access value token */
2447     { "USER_EMAIL_ADDRESS",                 0x47 }, /* Access value token */
2448     { "USER_MOBILE_NUMBER",                 0x4b }, /* Access value token */
2449     { "USER_ONLINE_STATUS",                 0x4c }, /* Access value token */
2450     { "application/x-sms",                  0x05 }, /* Common value token */
2451     { "PrivateMessaging",                   0x1c }, /* Common value token */
2452     { "text/x-vCalendar",                   0x29 }, /* Common value token */
2453     { "USER_FIRST_NAME",                    0x48 }, /* Access value token */
2454     { "MaxActiveUsers",                     0x13 }, /* Common value token */
2455     { "PrivilegeLevel",                     0x1d }, /* Common value token */
2456     { "USER_LAST_NAME",                     0x4a }, /* Access value token */
2457     { "NOT_AVAILABLE",                      0x70 }, /* Presence value token */
2458     { "application/",                       0x03 }, /* Common value token */
2459     { "text/x-vCard",                       0x2a }, /* Common value token */
2460     { "MOBILE_PHONE",                       0x6f }, /* Presence value token */
2461     { "VIDEO_STREAM",                       0x77 }, /* Presence value token */
2462     { "ActiveUsers",                        0x01 }, /* Common value token */
2463     { "DisplayName",                        0x0a }, /* Common value token */
2464     { "GROUP_TOPIC",                        0x3f }, /* Access value token */
2465     { "AccessType",                         0x00 }, /* Common value token */
2466     { "AutoDelete",                         0x31 }, /* Common value token */ /* WV 1.2 */
2467     { "Restricted",                         0x22 }, /* Common value token */
2468     { "ScreenName",                         0x23 }, /* Common value token */
2469     { "Searchable",                         0x24 }, /* Common value token */
2470     { "text/plain",                         0x28 }, /* Common value token */
2471     { "GROUP_NAME",                         0x3e }, /* Access value token */
2472     { "USER_ALIAS",                         0x46 }, /* Access value token */
2473     { "AUDIO_CALL",                         0x5e }, /* Presence value token */
2474     { "IM_OFFLINE",                         0x69 }, /* Presence value token */
2475     { "INVINCIBLE",                         0x6c }, /* Presence value token */
2476     { "VIDEO_CALL",                         0x76 }, /* Presence value token */
2477     { "AVAILABLE",                          0x5f }, /* Presence value token */
2478     { "IM_ONLINE",                          0x6a }, /* Presence value token */
2479     { "https://",                           0x0f }, /* Common value token */
2480     { "AutoJoin",                           0x06 }, /* Common value token */
2481     { "Response",                           0x21 }, /* Common value token */
2482     { "Validity",                           0x33 }, /* Common value token */ /* WV 1.2 */
2483     { "GROUP_ID",                           0x3d }, /* Access value token */
2484     { "COMPUTER",                           0x63 }, /* Presence value token */
2485     { "DISCREET",                           0x64 }, /* Presence value token */
2486     { "Default",                            0x09 }, /* Common value token */
2487     { "GRANTED",                            0x35 }, /* Common value token */ /* WV 1.2 */
2488     { "http://",                            0x0e }, /* Common value token */
2489     { "Outband",                            0x19 }, /* Common value token */
2490     { "PENDING",                            0x36 }, /* Common value token */ /* WV 1.2 */
2491     { "Private",                            0x1b }, /* Common value token */
2492     { "Request",                            0x20 }, /* Common value token */
2493     { "USER_ID",                            0x49 }, /* Access value token */
2494     { "ANXIOUS",                            0x5c }, /* Presence value token */
2495     { "ASHAMED",                            0x5d }, /* Presence value token */
2496     { "EXCITED",                            0x66 }, /* Presence value token */
2497     { "IN_LOVE",                            0x6b }, /* Presence value token */
2498     { "JEALOUS",                            0x6d }, /* Presence value token */
2499     { "BASE64",                             0x07 }, /* Common value token */
2500     { "Closed",                             0x08 }, /* Common value token */
2501     { "image/",                             0x10 }, /* Common value token */
2502     { "Inband",                             0x11 }, /* Common value token */
2503     { "Public",                             0x1e }, /* Common value token */
2504     { "DENIED",                             0x34 }, /* Common value token */ /* WV 1.2 */
2505     { "WAPSMS",                             0x4d }, /* Access value token */
2506     { "WAPUDP",                             0x4e }, /* Access value token */
2507     { "SLEEPY",                             0x74 }, /* Presence value token */
2508     { "ShowID",                             0x37 }, /* Common value token */ /* WV 1.2 */
2509     { "Admin",                              0x02 }, /* Common value token */
2510     { "text/",                              0x27 }, /* Common value token */
2511     { "Topic",                              0x2b }, /* Common value token */
2512     { "ANGRY",                              0x5b }, /* Presence value token */
2513     { "BORED",                              0x60 }, /* Presence value token */
2514     { "EMAIL",                              0x65 }, /* Presence value token */
2515     { "HAPPY",                              0x67 }, /* Presence value token */
2516     { "OTHER",                              0x71 }, /* Presence value token */
2517     { "Name",                               0x15 }, /* Common value token */
2518     { "None",                               0x16 }, /* Common value token */
2519     { "Open",                               0x18 }, /* Common value token */
2520     { "Type",                               0x2d }, /* Common value token */
2521     { "HTTP",                               0x42 }, /* Access value token */
2522     { "STCP",                               0x44 }, /* Access value token */
2523     { "SUDP",                               0x45 }, /* Access value token */
2524     { "CALL",                               0x61 }, /* Presence value token */
2525     { "Mod",                                0x14 }, /* Common value token */
2526     { "SMS",                                0x43 }, /* Access value token */
2527     { "WSP",                                0x4f }, /* Access value token */
2528     { "CLI",                                0x62 }, /* Presence value token */
2529     { "MMS",                                0x6e }, /* Presence value token */
2530     { "PDA",                                0x72 }, /* Presence value token */
2531     { "SAD",                                0x73 }, /* Presence value token */
2532     { "SMS",                                0x75 }, /* Presence value token */
2533     { "GM",                                 0x32 }, /* Common value token */ /* WV 1.2 */
2534     { "GR",                                 0x0d }, /* Common value token */
2535     { "IM",                                 0x12 }, /* Common value token */
2536     { "PR",                                 0x1a }, /* Common value token */
2537     { "SC",                                 0x26 }, /* Common value token */
2538     { "US",                                 0x2f }, /* Common value token */
2539     { "IM",                                 0x68 }, /* Presence value token */ /* Obsolete in WV 1.2 */
2540     { "F",                                  0x0b }, /* Common value token */
2541     { "G",                                  0x0c }, /* Common value token */
2542     { "N",                                  0x17 }, /* Common value token */
2543     { "P",                                  0x1f }, /* Common value token */
2544     { "S",                                  0x25 }, /* Common value token */
2545     { "T",                                  0x2c }, /* Common value token */
2546     { "U",                                  0x2e }, /* Common value token */
2547 
2548     { NULL,                                 0x00 }, /* Presence value token */
2549 };
2550 
2551 #endif /* WBXML_SUPPORT_WV */
2552 
2553 
2554 #if defined( WBXML_SUPPORT_AIRSYNC )
2555 
2556 /*************************************************
2557  *    Microsoft ActiveSync (aka AirSync)
2558  *
2559  *    Actually the table represent [MS-ASWBXML] 8.0.
2560  *
2561  *    The version means the protocol version (e.g. v12.0).
2562  *    The revision means the revision of the specification document (e.g. r8.0).
2563  *
2564  *    mainly used by Microsoft Exchange and
2565  *    modern mobiles from all vendors
2566  */
2567 
2568 const WBXMLTagEntry sv_airsync_tag_table[] = {
2569     /* Code Page: "AirSync" (since v2.5 and r1.0) */
2570     { "Sync",                   0x00, 0x05 }, /* since r1.0 */
2571     { "Responses",              0x00, 0x06 }, /* since r1.0 */
2572     { "Add",                    0x00, 0x07 }, /* since r1.0 */
2573     { "Change",                 0x00, 0x08 }, /* since r1.0 */
2574     { "Delete",                 0x00, 0x09 }, /* since r1.0 */
2575     { "Fetch",                  0x00, 0x0a }, /* since r1.0 */
2576     { "SyncKey",                0x00, 0x0b }, /* since r1.0 */
2577     { "ClientId",               0x00, 0x0c }, /* since r1.0 */
2578     { "ServerId",               0x00, 0x0d }, /* since r1.0 */
2579     { "Status",                 0x00, 0x0e }, /* since r1.0 */
2580     { "Collection",             0x00, 0x0f }, /* since r1.0 */
2581     { "Class",                  0x00, 0x10 }, /* since r1.0 */
2582     { "Version",                0x00, 0x11 }, /* not defined in r8.0 but in r1.0 */
2583     { "CollectionId",           0x00, 0x12 }, /* since r1.0 */
2584     { "GetChanges",             0x00, 0x13 }, /* since r1.0 */
2585     { "MoreAvailable",          0x00, 0x14 }, /* since r1.0 */
2586     { "WindowSize",             0x00, 0x15 }, /* since r1.0 */
2587     { "Commands",               0x00, 0x16 }, /* since r1.0 */
2588     { "Options",                0x00, 0x17 }, /* since r1.0 */
2589     { "FilterType",             0x00, 0x18 }, /* since r1.0 */
2590     { "Truncation",             0x00, 0x19 }, /* not defined in r8.0 but in r1.0 */
2591     { "RTFTruncation",          0x00, 0x1a }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0 */
2592     { "Conflict",               0x00, 0x1b }, /* since r1.0 */
2593     { "Collections",            0x00, 0x1c }, /* since r1.0 */
2594     { "ApplicationData",        0x00, 0x1d }, /* since r1.0 */
2595     { "DeletesAsMoves",         0x00, 0x1e }, /* since r1.0 */
2596     { "NotifyGUID",             0x00, 0x1f }, /* not defined in r8.0 but in r1.0 */
2597     { "Supported",              0x00, 0x20 }, /* since r1.0 */
2598     { "SoftDelete",             0x00, 0x21 }, /* since r1.0 */
2599     { "MIMESupport",            0x00, 0x22 }, /* since r1.0 */
2600     { "MIMETruncation",         0x00, 0x23 }, /* since r1.0 */
2601     { "Wait",                   0x00, 0x24 }, /* since r1.0 */
2602     { "Limit",                  0x00, 0x25 }, /* since r1.0 */
2603     { "Partial",                0x00, 0x26 }, /* since r1.0 */
2604     { "ConversationMode",       0x00, 0x27 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2605     { "MaxItems",               0x00, 0x28 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2606     { "HeartbeatInterval",      0x00, 0x29 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2607 
2608     /* Code Page: Contacts (since v2.5 and r1.0) */
2609     { "Anniversary",            0x01, 0x05 }, /* since r1.0 */
2610     { "AssistantName",          0x01, 0x06 }, /* since r1.0 */
2611     { "AssistantTelephoneNumber", 0x01, 0x07 }, /* corrected in libwbxml 0.11.0 */
2612     { "Birthday",               0x01, 0x08 }, /* since r1.0 */
2613     { "Body",                   0x01, 0x09 }, /* not defined in r8.0 but in r1.0 */
2614     { "BodySize",               0x01, 0x0a }, /* not defined in r8.0 but in r1.0 */
2615     { "BodyTruncated",          0x01, 0x0b }, /* not defined in r8.0 but in r1.0 */
2616     { "Business2PhoneNumber",   0x01, 0x0c }, /* changed in r8.0, r1.0: Business2TelephoneNumber */
2617     { "BusinessCity",           0x01, 0x0d }, /* since r1.0 */
2618     { "BusinessCountry",        0x01, 0x0e }, /* since r1.0 */
2619     { "BusinessPostalCode",     0x01, 0x0f }, /* since r1.0 */
2620     { "BusinessState",          0x01, 0x10 }, /* since r1.0 */
2621     { "BusinessStreet",         0x01, 0x11 }, /* since r1.0 */
2622     { "BusinessFaxNumber",      0x01, 0x12 }, /* since r1.0 */
2623     { "BusinessPhoneNumber",    0x01, 0x13 }, /* changed in r8.0, r1.0: BusinessTelephoneNumber */
2624     { "CarPhoneNumber",         0x01, 0x14 }, /* since r1.0 */
2625     { "Categories",             0x01, 0x15 }, /* since r1.0 */
2626     { "Category",               0x01, 0x16 }, /* since r1.0 */
2627     { "Children",               0x01, 0x17 }, /* since r1.0 */
2628     { "Child",                  0x01, 0x18 }, /* since r1.0 */
2629     { "CompanyName",            0x01, 0x19 }, /* since r1.0 */
2630     { "Department",             0x01, 0x1a }, /* since r1.0 */
2631     { "Email1Address",          0x01, 0x1b }, /* since r1.0 */
2632     { "Email2Address",          0x01, 0x1c }, /* since r1.0 */
2633     { "Email3Address",          0x01, 0x1d }, /* since r1.0 */
2634     { "FileAs",                 0x01, 0x1e }, /* since r1.0 */
2635     { "FirstName",              0x01, 0x1f }, /* since r1.0 */
2636     { "Home2PhoneNumber",       0x01, 0x20 }, /* changed in r8.0, r1.0: BusinessTelephoneNumber */
2637     { "HomeCity",               0x01, 0x21 }, /* since r1.0 */
2638     { "HomeCountry",            0x01, 0x22 }, /* since r1.0 */
2639     { "HomePostalCode",         0x01, 0x23 }, /* since r1.0 */
2640     { "HomeState",              0x01, 0x24 }, /* since r1.0 */
2641     { "HomeStreet",             0x01, 0x25 }, /* since r1.0 */
2642     { "HomeFaxNumber",          0x01, 0x26 }, /* since r1.0 */
2643     { "HomePhoneNumber",        0x01, 0x27 }, /* changed in r8.0, r1.0: BusinessTelephoneNumber */
2644     { "JobTitle",               0x01, 0x28 }, /* since r1.0 */
2645     { "LastName",               0x01, 0x29 }, /* since r1.0 */
2646     { "MiddleName",             0x01, 0x2a }, /* since r1.0 */
2647     { "MobilePhoneNumber",      0x01, 0x2b }, /* changed in r8.0, r1.0: BusinessTelephoneNumber */
2648     { "OfficeLocation",         0x01, 0x2c }, /* since r1.0 */
2649     { "OtherCity",              0x01, 0x2d }, /* since r1.0 */
2650     { "OtherCountry",           0x01, 0x2e }, /* since r1.0 */
2651     { "OtherPostalCode",        0x01, 0x2f }, /* since r1.0 */
2652     { "OtherState",             0x01, 0x30 }, /* since r1.0 */
2653     { "OtherStreet",            0x01, 0x31 }, /* since r1.0 */
2654     { "PagerNumber",            0x01, 0x32 }, /* since r1.0 */
2655     { "RadioPhoneNumber",       0x01, 0x33 }, /* changed in r8.0, r1.0: BusinessTelephoneNumber */
2656     { "Spouse",                 0x01, 0x34 }, /* since r1.0 */
2657     { "Suffix",                 0x01, 0x35 }, /* since r1.0 */
2658     { "Title",                  0x01, 0x36 }, /* since r1.0 */
2659     { "WebPage",                0x01, 0x37 }, /* since r1.0 */
2660     { "YomiCompanyName",        0x01, 0x38 }, /* since r1.0 */
2661     { "YomiFirstName",          0x01, 0x39 }, /* since r1.0 */
2662     { "YomiLastName",           0x01, 0x3a }, /* since r1.0 */
2663     { "CompressedRTF",          0x01, 0x3b }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0 */
2664     { "Picture",                0x01, 0x3c }, /* since r1.0 */
2665     { "Alias",                  0x01, 0x3d }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2666     { "WeightedRank",           0x01, 0x3e }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2667 
2668     /* Code Page: Email (since v2.5 and r1.0) */
2669     { "Attachment",             0x02, 0x05 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2670     { "Attachments",            0x02, 0x06 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2671     { "AttName",                0x02, 0x07 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2672     { "AttSize",                0x02, 0x08 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2673     { "AttOId",                 0x02, 0x09 }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2674     { "AttMethod",              0x02, 0x0a }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2675     { "AttRemoved",             0x02, 0x0b }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2676     { "Body",                   0x02, 0x0c }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2677     { "BodySize",               0x02, 0x0d }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2678     { "BodyTruncated",          0x02, 0x0e }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2679     { "DateReceived",           0x02, 0x0f }, /* supported since v2.5 */
2680     { "DisplayName",            0x02, 0x10 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2681     { "DisplayTo",              0x02, 0x11 }, /* supported since v2.5 */
2682     { "Importance",             0x02, 0x12 }, /* supported since v2.5 */
2683     { "MessageClass",           0x02, 0x13 }, /* supported since v2.5 */
2684     { "Subject",                0x02, 0x14 }, /* supported since v2.5 */
2685     { "Read",                   0x02, 0x15 }, /* supported since v2.5 */
2686     { "To",                     0x02, 0x16 }, /* supported since v2.5 */
2687     { "Cc",                     0x02, 0x17 }, /* supported since v2.5 */
2688     { "From",                   0x02, 0x18 }, /* supported since v2.5 */
2689     { "Reply-To",               0x02, 0x19 }, /* supported since v2.5 */
2690     { "AllDayEvent",            0x02, 0x1a }, /* supported since v2.5 */
2691     { "Categories",             0x02, 0x1b }, /* r1.0: supported by v2.5, v12.0 and 12.1; BUT r8.0: not supported by 12.1 */
2692     { "Category",               0x02, 0x1c }, /* r1.0: supported by v2.5, v12.0 and 12.1; BUT r8.0: not supported by 12.1 */
2693     { "DTStamp",                0x02, 0x1d }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2694     { "EndTime",                0x02, 0x1e }, /* supported since v2.5 */
2695     { "InstanceType",           0x02, 0x1f }, /* supported since v2.5 */
2696     { "BusyStatus",             0x02, 0x20 }, /* supported since v2.5 */
2697     { "Location",               0x02, 0x21 }, /* supported since v2.5 */
2698     { "MeetingRequest",         0x02, 0x22 }, /* supported since v2.5 */
2699     { "Organizer",              0x02, 0x23 }, /* supported since v2.5 */
2700     { "RecurrenceId",           0x02, 0x24 }, /* supported since v2.5 */
2701     { "Reminder",               0x02, 0x25 }, /* supported since v2.5 */
2702     { "ResponseRequested",      0x02, 0x26 }, /* supported since v2.5 */
2703     { "Recurrences",            0x02, 0x27 }, /* supported since v2.5 */
2704     { "Recurrence",             0x02, 0x28 }, /* supported since v2.5 */
2705     { "Recurrence_Type",        0x02, 0x29 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2706     { "Recurrence_Until",       0x02, 0x2a }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2707     { "Recurrence_Occurrences", 0x02, 0x2b }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2708     { "Recurrence_Interval",    0x02, 0x2c }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2709     { "Recurrence_DayOfWeek",   0x02, 0x2d }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2710     { "Recurrence_DayOfMonth",  0x02, 0x2e }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2711     { "Recurrence_WeekOfMonth", 0x02, 0x2f }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2712     { "Recurrence_MonthOfYear", 0x02, 0x30 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2713     { "StartTime",              0x02, 0x31 }, /* supported since v2.5 */
2714     { "Sensitivity",            0x02, 0x32 }, /* supported since v2.5 */
2715     { "TimeZone",               0x02, 0x33 }, /* supported since v2.5 */
2716     { "GlobalObjId",            0x02, 0x34 }, /* supported since v2.5 */
2717     { "ThreadTopic",            0x02, 0x35 }, /* supported since v2.5 */
2718     { "MIMEData",               0x02, 0x36 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2719     { "MIMETruncated",          0x02, 0x37 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2720     { "MIMESize",               0x02, 0x38 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2721     { "InternetCPID",           0x02, 0x39 }, /* supported since v2.5 */
2722     { "Flag",                   0x02, 0x3a }, /* supported since v12.0 */
2723     { "FlagStatus",             0x02, 0x3b }, /* supported since v12.0 */
2724     { "ContentClass",           0x02, 0x3c }, /* supported since v12.0 */
2725     { "FlagType",               0x02, 0x3d }, /* supported since v12.0 */
2726     { "CompleteTime",           0x02, 0x3e }, /* supported since v12.0 */
2727     { "DisallowNewTimeProposal",0x02, 0x3f }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2728 
2729     /* Code Page: AirNotify */
2730 
2731     /* There are conflicting version informations.
2732      *
2733      * r1.0: supported by v2.5, v12.0 and v12.1
2734      * r8.0: This code page is no longer in use.
2735      * r8.0: Tokens 05 to 17 have been defined.
2736      */
2737 
2738     { "Notify",                 0x03, 0x05 }, /* not defined in r8.0 but in r1.0, only supported by v2.0 and v2.5 */
2739     { "Notification",           0x03, 0x06 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2740     { "Version",                0x03, 0x07 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2741     { "LifeTime",               0x03, 0x08 }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2742     { "DeviceInfo",             0x03, 0x09 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2743     { "Enable",                 0x03, 0x0a }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2744     { "Folder",                 0x03, 0x0b }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2745     { "ServerId",               0x03, 0x0c }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2746     { "DeviceAddress",          0x03, 0x0d }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2747     { "ValidCarrierProfiles",   0x03, 0x0e }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2748     { "CarrierProfile",         0x03, 0x0f }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2749     { "Status",                 0x03, 0x10 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2750     { "Responses",              0x03, 0x11 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2751     { "Devices",                0x03, 0x12 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2752     { "Device",                 0x03, 0x13 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2753     { "Id",                     0x03, 0x14 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2754     { "Expiry",                 0x03, 0x15 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2755     { "NotifyGUID",             0x03, 0x16 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2756     { "DeviceFriendlyName",     0x03, 0x17 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2757 
2758     /* Code Page: Calendar (since v2.5 and r1.0) */
2759     { "TimeZone",               0x04, 0x05 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2760     { "AllDayEvent",            0x04, 0x06 }, /* supported since v2.5 */
2761     { "Attendees",              0x04, 0x07 }, /* supported since v2.5 */
2762     { "Attendee",               0x04, 0x08 }, /* supported since v2.5 */
2763     { "Attendee_Email",         0x04, 0x09 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2764     { "Attendee_Name",          0x04, 0x0a }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2765     { "Body",                   0x04, 0x0b }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2766     { "BodyTruncated",          0x04, 0x0c }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2767     { "BusyStatus",             0x04, 0x0d }, /* supported since v2.5 */
2768     { "Categories",             0x04, 0x0e }, /* supported since v2.5 */
2769     { "Category",               0x04, 0x0f }, /* supported since v2.5 */
2770     { "Compressed_RTF",         0x04, 0x10 }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2771     { "DTStamp",                0x04, 0x11 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2772     { "EndTime",                0x04, 0x12 }, /* supported since v2.5 */
2773     { "Exception",              0x04, 0x13 }, /* supported since v2.5 */
2774     { "Exceptions",             0x04, 0x14 }, /* supported since v2.5 */
2775     { "Exception_Deleted",      0x04, 0x15 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: Exception_IsDeleted */
2776     { "Exception_StartTime",    0x04, 0x16 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2777     { "Location",               0x04, 0x17 }, /* supported since v2.5 */
2778     { "MeetingStatus",          0x04, 0x18 }, /* supported since v2.5 */
2779     { "Organizer_Email",        0x04, 0x19 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2780     { "Organizer_Name",         0x04, 0x1a }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2781     { "Recurrence",             0x04, 0x1b }, /* supported since v2.5 */
2782     { "Recurrence_Type",        0x04, 0x1c }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2783     { "Recurrence_Until",       0x04, 0x1d }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2784     { "Recurrence_Occurrences", 0x04, 0x1e }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2785     { "Recurrence_Interval",    0x04, 0x1f }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2786     { "Recurrence_DayOfWeek",   0x04, 0x20 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2787     { "Recurrence_DayOfMonth",  0x04, 0x21 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2788     { "Recurrence_WeekOfMonth", 0x04, 0x22 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2789     { "Recurrence_MonthOfYear", 0x04, 0x23 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2790     { "Reminder",               0x04, 0x24 }, /* supported since v2.5 */
2791     { "Sensitivity",            0x04, 0x25 }, /* supported since v2.5 */
2792     { "Subject",                0x04, 0x26 }, /* supported since v2.5 */
2793     { "StartTime",              0x04, 0x27 }, /* supported since v2.5 */
2794     { "UID",                    0x04, 0x28 }, /* supported since v2.5 */
2795     { "Attendee_Status",        0x04, 0x29 }, /* corrected in libwbxml 0.11.0, supported since v12.0 */
2796     { "Attendee_Type",          0x04, 0x2a }, /* corrected in libwbxml 0.11.0, supported since v12.0 */
2797     { "DisallowNewTimeProposal",0x04, 0x33 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2798     { "ResponseRequested",      0x04, 0x34 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2799     { "AppointmentReplyTime",   0x04, 0x35 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2800     { "ResponseType",           0x04, 0x36 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2801     { "CalendarType",           0x04, 0x37 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2802     { "IsLeapMonth",            0x04, 0x38 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2803     { "FirstDayOfWeek",         0x04, 0x39 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2804     { "OnlineMeetingConfLink",  0x04, 0x3a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2805     { "OnlineMeetingExternalLink",0x04, 0x3b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2806     { "ClientUid",              0x04, 0x3c }, /* since 16.0 */
2807 
2808     /* Code Page: Move (since v2.5 and r1.0) */
2809     { "MoveItems",              0x05, 0x05 }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2810     { "Move",                   0x05, 0x06 }, /* since r1.0 */
2811     { "SrcMsgId",               0x05, 0x07 }, /* since r1.0 */
2812     { "SrcFldId",               0x05, 0x08 }, /* since r1.0 */
2813     { "DstFldId",               0x05, 0x09 }, /* since r1.0 */
2814     { "Response",               0x05, 0x0a }, /* since r1.0 */
2815     { "Status",                 0x05, 0x0b }, /* since r1.0 */
2816     { "DstMsgId",               0x05, 0x0c }, /* since r1.0 */
2817 
2818     /* Code Page: ItemEstimate (since v2.5 and r1.0) */
2819     { "GetItemEstimate",        0x06, 0x05 }, /* since r1.0 */
2820     { "Version",                0x06, 0x06 }, /* r8.0: only supported when the MS-ASProtocolVersion header is set to 12.1 */
2821     { "Collections",            0x06, 0x07 }, /* since r1.0 */
2822     { "Collection",             0x06, 0x08 }, /* since r1.0 */
2823     { "Class",                  0x06, 0x09 }, /* r8.0: only supported when the MS-ASProtocolVersion header is set to 12.1 */
2824     { "CollectionId",           0x06, 0x0a }, /* since r1.0 */
2825     { "DateTime",               0x06, 0x0b }, /* r8.0: only supported when the MS-ASProtocolVersion header is set to 12.1 */
2826     { "Estimate",               0x06, 0x0c }, /* since r1.0 */
2827     { "Response",               0x06, 0x0d }, /* since r1.0 */
2828     { "Status",                 0x06, 0x0e }, /* since r1.0 */
2829 
2830     /* Code Page: FolderHierarchy (since v2.5 and r1.0) */
2831     { "Folders",                0x07, 0x05 }, /* not defined in r8.0 but in r1.0 */
2832     { "Folder",                 0x07, 0x06 }, /* not defined in r8.0 but in r1.0 */
2833     { "DisplayName",            0x07, 0x07 }, /* since r1.0 */
2834     { "ServerId",               0x07, 0x08 }, /* since r1.0 */
2835     { "ParentId",               0x07, 0x09 }, /* since r1.0 */
2836     { "Type",                   0x07, 0x0a }, /* since r1.0 */
2837     { "Response",               0x07, 0x0b }, /* not defined in r8.0 but in r1.0 */
2838     { "Status",                 0x07, 0x0c }, /* since r1.0 */
2839     { "ContentClass",           0x07, 0x0d }, /* not defined in r8.0 but in r1.0 */
2840     { "Changes",                0x07, 0x0e }, /* since r1.0 */
2841     { "Add",                    0x07, 0x0f }, /* since r1.0 */
2842     { "Delete",                 0x07, 0x10 }, /* since r1.0 */
2843     { "Update",                 0x07, 0x11 }, /* since r1.0 */
2844     { "SyncKey",                0x07, 0x12 }, /* since r1.0 */
2845     { "FolderCreate",           0x07, 0x13 }, /* since r1.0 */
2846     { "FolderDelete",           0x07, 0x14 }, /* since r1.0 */
2847     { "FolderUpdate",           0x07, 0x15 }, /* since r1.0 */
2848     { "FolderSync",             0x07, 0x16 }, /* since r1.0 */
2849     { "Count",                  0x07, 0x17 }, /* since r1.0 */
2850     { "Version",                0x07, 0x18 }, /* not defined in r8.0 but in r1.0 */
2851 
2852     /* Code Page: MeetingResponse (since v2.5 and r1.0) */
2853     { "CalendarId",             0x08, 0x05 }, /* changed in r8.0, r1.0: CallID */
2854     { "CollectionId",           0x08, 0x06 }, /* since r1.0 */
2855     { "MeetingResponse",        0x08, 0x07 }, /* since r1.0 */
2856     { "RequestId",              0x08, 0x08 }, /* changed in r8.0, r1.0: ReqId */
2857     { "Request",                0x08, 0x09 }, /* since r1.0 */
2858     { "Result",                 0x08, 0x0a }, /* since r1.0 */
2859     { "Status",                 0x08, 0x0b }, /* since r1.0 */
2860     { "UserResponse",           0x08, 0x0c }, /* since r1.0 */
2861     { "Version",                0x08, 0x0d }, /* not defined in r8.0 but in r1.0 */
2862     { "InstanceId",             0x08, 0x0e }, /* since r8.0? */
2863     { "SendResponse",           0x08, 0x12 }, /* since 16.0 */
2864 
2865     /* Code Page: Tasks (since v2.5 and r1.0) */
2866     { "Body",                   0x09, 0x05 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2867     { "BodySize",               0x09, 0x06 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2868     { "BodyTruncated",          0x09, 0x07 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2869     { "Categories",             0x09, 0x08 }, /* supported since v2.5 */
2870     { "Category",               0x09, 0x09 }, /* supported since v2.5 */
2871     { "Complete",               0x09, 0x0a }, /* supported since v2.5 */
2872     { "DateCompleted",          0x09, 0x0b }, /* supported since v2.5 */
2873     { "DueDate",                0x09, 0x0c }, /* supported since v2.5 */
2874     { "UTCDueDate",             0x09, 0x0d }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2875     { "Importance",             0x09, 0x0e }, /* supported since v2.5 */
2876     { "Recurrence",             0x09, 0x0f }, /* supported since v2.5 */
2877     { "Recurrence_Type",        0x09, 0x10 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceType */
2878     { "Recurrence_Start",       0x09, 0x11 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceStart */
2879     { "Recurrence_Until",       0x09, 0x12 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceUntil */
2880     { "Recurrence_Occurrences", 0x09, 0x13 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceOccurrences */
2881     { "Recurrence_Interval",    0x09, 0x14 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceInterval */
2882     { "Recurrence_DayOfMonth",  0x09, 0x15 }, /* supported since v2.5, changed in r8.0, r1.0: RecurrenceDayOfMonth */
2883     { "Recurrence_DayOfWeek",   0x09, 0x16 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceDayOfWeek */
2884     { "Recurrence_DayOfMonth",  0x09, 0x15 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceDayOfMonth */
2885     { "Recurrence_WeekOfMonth", 0x09, 0x17 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceWeekOfMonth */
2886     { "Recurrence_MonthOfYear", 0x09, 0x18 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceMonthOfYear */
2887     { "Recurrence_Regenerate",  0x09, 0x19 }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceRegenerate */
2888     { "Recurrence_DeadOccur",   0x09, 0x1a }, /* corrected in libwbxml 0.11.0, supported since v2.5, changed in r8.0, r1.0: RecurrenceDeadOccour */
2889     { "ReminderSet",            0x09, 0x1b }, /* supported since v2.5 */
2890     { "ReminderTime",           0x09, 0x1c }, /* supported since v2.5 */
2891     { "Sensitivity",            0x09, 0x1d }, /* supported since v2.5 */
2892     { "StartDate",              0x09, 0x1e }, /* supported since v2.5 */
2893     { "UTCStartDate",           0x09, 0x1f }, /* corrected in libwbxml 0.11.0, supported since v2.5 */
2894     { "Subject",                0x09, 0x20 }, /* supported since v2.5 */
2895     { "CompressedRTF",          0x09, 0x21 }, /* corrected in libwbxml 0.11.0, not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
2896     { "OrdinalDate",            0x09, 0x22 }, /* supported since v12.0 */
2897     { "SubOrdinalDate",         0x09, 0x23 }, /* supported since v12.0 */
2898     { "CalendarType",           0x09, 0x24 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2899     { "IsLeapMonth",            0x09, 0x25 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2900     { "FirstDayOfWeek",         0x09, 0x26 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2901 
2902     /* Code Page: ResolveRecipients (since v2.5 and r1.0) */
2903     { "ResolveRecipients",      0x0a, 0x05 }, /* since r1.0 */
2904     { "Response",               0x0a, 0x06 }, /* since r1.0 */
2905     { "Status",                 0x0a, 0x07 }, /* since r1.0 */
2906     { "Type",                   0x0a, 0x08 }, /* since r1.0 */
2907     { "Recipient",              0x0a, 0x09 }, /* since r1.0 */
2908     { "DisplayName",            0x0a, 0x0a }, /* since r1.0 */
2909     { "EmailAddress",           0x0a, 0x0b }, /* since r1.0 */
2910     { "Certificates",           0x0a, 0x0c }, /* since r1.0 */
2911     { "Certificate",            0x0a, 0x0d }, /* since r1.0 */
2912     { "MiniCertificate",        0x0a, 0x0e }, /* since r1.0 */
2913     { "Options",                0x0a, 0x0f }, /* since r1.0 */
2914     { "To",                     0x0a, 0x10 }, /* since r1.0 */
2915     { "CertificateRetrieval",   0x0a, 0x11 }, /* since r1.0 */
2916     { "RecipientCount",         0x0a, 0x12 }, /* since r1.0 */
2917     { "MaxCertificates",        0x0a, 0x13 }, /* since r1.0 */
2918     { "MaxAmbiguousRecipients", 0x0a, 0x14 }, /* since r1.0 */
2919     { "CertificateCount",       0x0a, 0x15 }, /* since r1.0 */
2920     { "Availability",           0x0a, 0x16 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2921     { "StartTime",              0x0a, 0x17 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2922     { "EndTime",                0x0a, 0x18 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2923     { "MergedFreeBusy",         0x0a, 0x19 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
2924     { "Picture",                0x0a, 0x1a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2925     { "MaxSize",                0x0a, 0x1b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2926     { "Data",                   0x0a, 0x1c, WBXML_TAG_OPTION_BINARY }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2927     { "MaxPictures",            0x0a, 0x1d }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
2928 
2929     /* Code Page: ValidateCert (since v2.5 and r1.0) */
2930     { "ValidateCert",           0x0b, 0x05 }, /* since r1.0 */
2931     { "Certificates",           0x0b, 0x06 }, /* since r1.0 */
2932     { "Certificate",            0x0b, 0x07 }, /* since r1.0 */
2933     { "CertificateChain",       0x0b, 0x08 }, /* since r1.0 */
2934     { "CheckCRL",               0x0b, 0x09 }, /* since r1.0 */
2935     { "Status",                 0x0b, 0x0a }, /* since r1.0 */
2936 
2937     /* Code Page: Contacts2 (since v2.5 and r1.0) */
2938     { "CustomerId",             0x0c, 0x05 }, /* since r1.0 */
2939     { "GovernmentId",           0x0c, 0x06 }, /* since r1.0 */
2940     { "IMAddress",              0x0c, 0x07 }, /* since r1.0 */
2941     { "IMAddress2",             0x0c, 0x08 }, /* since r1.0 */
2942     { "IMAddress3",             0x0c, 0x09 }, /* since r1.0 */
2943     { "ManagerName",            0x0c, 0x0a }, /* since r1.0 */
2944     { "CompanyMainPhone",       0x0c, 0x0b }, /* since r1.0 */
2945     { "AccountName",            0x0c, 0x0c }, /* since r1.0 */
2946     { "NickName",               0x0c, 0x0d }, /* since r1.0 */
2947     { "MMS",                    0x0c, 0x0e }, /* since r1.0 */
2948 
2949     /* Code Page: Ping (since v2.5 and r1.0) */
2950     { "Ping",                   0x0d, 0x05 }, /* since r1.0 */
2951     { "AutdState",              0x0d, 0x06 }, /* not used by protocol */
2952     { "Status",                 0x0d, 0x07 }, /* since r1.0 */
2953     { "HeartbeatInterval",      0x0d, 0x08 }, /* since r1.0 */
2954     { "Folders",                0x0d, 0x09 }, /* since r1.0 */
2955     { "Folder",                 0x0d, 0x0a }, /* since r1.0 */
2956     { "Id",                     0x0d, 0x0b }, /* since r1.0 */
2957     { "Class",                  0x0d, 0x0c }, /* since r1.0 */
2958     { "MaxFolders",             0x0d, 0x0d }, /* since r1.0 */
2959 
2960     /* Code Page: Provision (since v2.5 and r1.0) */
2961     { "Provision",                                0x0e, 0x05 }, /* supported since v2.5 */
2962     { "Policies",                                 0x0e, 0x06 }, /* supported since v2.5 */
2963     { "Policy",                                   0x0e, 0x07 }, /* supported since v2.5 */
2964     { "PolicyType",                               0x0e, 0x08 }, /* supported since v2.5 */
2965     { "PolicyKey",                                0x0e, 0x09 }, /* supported since v2.5 */
2966     { "Data",                                     0x0e, 0x0a }, /* supported since v2.5 */
2967     { "Status",                                   0x0e, 0x0b }, /* supported since v2.5 */
2968     { "RemoteWipe",                               0x0e, 0x0c }, /* supported since v2.5 */
2969     { "EASProvisionDoc",                          0x0e, 0x0d }, /* supported since v12.0 */
2970     { "DevicePasswordEnabled",                    0x0e, 0x0e }, /* supported since v12.0 */
2971     { "AlphanumericDevicePasswordRequired",       0x0e, 0x0f }, /* supported since v12.0 */
2972     { "DeviceEncryptionEnabled",                  0x0e, 0x10 }, /* r1.0: supported since v12.0 */
2973     { "RequireStorageCardEncryption",             0x0e, 0x10 }, /* r1.0: supported by v2.0 and v2.5 */
2974     { "PasswordRecoveryEnabled",                  0x0e, 0x11 }, /* supported since v12.0 */
2975     { "DocumentBrowseEnabled",                    0x0e, 0x12 }, /* supported since v12.0, not defined in r8.0 but in r1.0 */
2976     { "AttachmentsEnabled",                       0x0e, 0x13 }, /* supported since v12.0 */
2977     { "MinDevicePasswordLength",                  0x0e, 0x14 }, /* supported since v12.0 */
2978     { "MaxInactivityTimeDeviceLock",              0x0e, 0x15 }, /* supported since v12.0 */
2979     { "MaxDevicePasswordFailedAttempts",          0x0e, 0x16 }, /* supported since v12.0 */
2980     { "MaxAttachmentSize",                        0x0e, 0x17 }, /* supported since v12.0 */
2981     { "AllowSimpleDevicePassword",                0x0e, 0x18 }, /* supported since v12.0 */
2982     { "DevicePasswordExpiration",                 0x0e, 0x19 }, /* supported since v12.0 */
2983     { "DevicePasswordHistory",                    0x0e, 0x1a }, /* supported since v12.0 */
2984     { "AllowStorageCard",                         0x0e, 0x1b }, /* supported since v12.1 */
2985     { "AllowCamera",                              0x0e, 0x1c }, /* supported by v2.0 and v2.5 */
2986     { "RequireDeviceEncryption",                  0x0e, 0x1d }, /* supported by v2.0 and v2.5 */
2987     { "AllowUnsignedApplications",                0x0e, 0x1e }, /* supported by v2.0 and v2.5 */
2988     { "AllowUnsignedInstallationPackages",        0x0e, 0x1f }, /* supported by v2.0 and v2.5 */
2989     { "MinDevicePasswordComplexCharacters",       0x0e, 0x20 }, /* supported by v2.0 and v2.5 */
2990     { "AllowWiFi",                                0x0e, 0x21 }, /* supported by v2.0 and v2.5 */
2991     { "AllowTextMessaging",                       0x0e, 0x22 }, /* supported by v2.0 and v2.5 */
2992     { "AllowPOPIMAPEmail",                        0x0e, 0x23 }, /* supported by v2.0 and v2.5 */
2993     { "AllowBluetooth",                           0x0e, 0x24 }, /* supported by v2.0 and v2.5 */
2994     { "AllowIrDA",                                0x0e, 0x25 }, /* supported by v2.0 and v2.5 */
2995     { "RequireManualSyncWhenRoaming",             0x0e, 0x26 }, /* supported by v2.0 and v2.5 */
2996     { "AllowDesktopSync",                         0x0e, 0x27 }, /* supported by v2.0 and v2.5 */
2997     { "MaxCalendarAgeFilter",                     0x0e, 0x28 }, /* supported by v2.0 and v2.5 */
2998     { "AllowHTMLEmail",                           0x0e, 0x29 }, /* supported by v2.0 and v2.5 */
2999     { "MaxEmailAgeFilter",                        0x0e, 0x2a }, /* supported by v2.0 and v2.5 */
3000     { "MaxEmailBodyTruncationSize",               0x0e, 0x2b }, /* supported by v2.0 and v2.5 */
3001     { "MaxEmailHTMLBodyTruncationSize",           0x0e, 0x2c }, /* supported by v2.0 and v2.5 */
3002     { "RequireSignedSMIMEMessages",               0x0e, 0x2d }, /* supported by v2.0 and v2.5 */
3003     { "RequireEncryptedSMIMEMessages",            0x0e, 0x2e }, /* supported by v2.0 and v2.5 */
3004     { "RequireSignedSMIMEAlgorithm",              0x0e, 0x2f }, /* supported by v2.0 and v2.5 */
3005     { "RequireEncryptionSMIMEAlgorithm",          0x0e, 0x30 }, /* supported by v2.0 and v2.5 */
3006     { "AllowSMIMEEncryptionAlgorithmNegotiation", 0x0e, 0x31 }, /* supported by v2.0 and v2.5 */
3007     { "AllowSMIMESoftCerts",                      0x0e, 0x32 }, /* supported by v2.0 and v2.5 */
3008     { "AllowBrowser",                             0x0e, 0x33 }, /* supported by v2.0 and v2.5 */
3009     { "AllowConsumerEmail",                       0x0e, 0x34 }, /* supported by v2.0 and v2.5 */
3010     { "AllowRemoteDesktop",                       0x0e, 0x35 }, /* supported by v2.0 and v2.5 */
3011     { "AllowInternetSharing",                     0x0e, 0x36 }, /* supported by v2.0 and v2.5 */
3012     { "UnapprovedInROMApplicationList",           0x0e, 0x37 }, /* supported by v2.0 and v2.5 */
3013     { "ApplicationName",                          0x0e, 0x38 }, /* supported by v2.0 and v2.5 */
3014     { "ApprovedApplicationList",                  0x0e, 0x39 }, /* supported by v2.0 and v2.5 */
3015     { "Hash",                                     0x0e, 0x3a }, /* supported by v2.0 and v2.5 */
3016 
3017     /* Code Page: Search (since v2.5 and r1.0) */
3018     /* Token 0x06 and 0x16 are not supported. */
3019     { "Search",                 0x0f, 0x05 }, /* supported since v2.5 */
3020     { "Store",                  0x0f, 0x07 }, /* supported since v2.5 */
3021     { "Name",                   0x0f, 0x08 }, /* supported since v2.5 */
3022     { "Query",                  0x0f, 0x09 }, /* supported since v2.5 */
3023     { "Options",                0x0f, 0x0a }, /* supported since v2.5 */
3024     { "Range",                  0x0f, 0x0b }, /* supported since v2.5 */
3025     { "Status",                 0x0f, 0x0c }, /* supported since v2.5 */
3026     { "Response",               0x0f, 0x0d }, /* supported since v2.5 */
3027     { "Result",                 0x0f, 0x0e }, /* supported since v2.5 */
3028     { "Properties",             0x0f, 0x0f }, /* supported since v2.5 */
3029     { "Total",                  0x0f, 0x10 }, /* supported since v2.5 */
3030     { "EqualTo",                0x0f, 0x11 }, /* supported since v12.0 */
3031     { "Value",                  0x0f, 0x12 }, /* supported since v12.0 */
3032     { "And",                    0x0f, 0x13 }, /* supported since v12.0 */
3033     { "Or",                     0x0f, 0x14 }, /* supported since v12.0, r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3034     { "FreeText",               0x0f, 0x15 }, /* supported since v12.0 */
3035     { "DeepTraversal",          0x0f, 0x17 }, /* supported since v12.0 */
3036     { "LongId",                 0x0f, 0x18 }, /* supported since v12.0 */
3037     { "RebuildResults",         0x0f, 0x19 }, /* supported since v12.0 */
3038     { "LessThan",               0x0f, 0x1a }, /* supported since v12.0 */
3039     { "GreaterThan",            0x0f, 0x1b }, /* supported since v12.0 */
3040     { "Schema",                 0x0f, 0x1c }, /* supported since v12.0, r8.0: not defined in r8.0 but in r1.0 */
3041     { "Supported",              0x0f, 0x1d }, /* supported since v12.0, r8.0: not defined in r8.0 but in r1.0 */
3042     { "UserName",               0x0f, 0x1e }, /* since 8.0? */
3043     { "Password",               0x0f, 0x1f }, /* since 8.0? */
3044     { "ConversationId",         0x0f, 0x20, WBXML_TAG_OPTION_BINARY }, /* since 8.0? */
3045     { "Picture",                0x0f, 0x21 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3046     { "MaxSize",                0x0f, 0x22 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3047     { "MaxPictures",            0x0f, 0x23 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3048 
3049     /* Code Page: GAL (since v2.5 and r1.0) */
3050     { "DisplayName",            0x10, 0x05 }, /* since r1.0 */
3051     { "Phone",                  0x10, 0x06 }, /* since r1.0 */
3052     { "Office",                 0x10, 0x07 }, /* since r1.0 */
3053     { "Title",                  0x10, 0x08 }, /* since r1.0 */
3054     { "Company",                0x10, 0x09 }, /* since r1.0 */
3055     { "Alias",                  0x10, 0x0a }, /* since r1.0 */
3056     { "FirstName",              0x10, 0x0b }, /* since r1.0 */
3057     { "LastName",               0x10, 0x0c }, /* since r1.0 */
3058     { "HomePhone",              0x10, 0x0d }, /* since r1.0 */
3059     { "MobilePhone",            0x10, 0x0e }, /* since r1.0 */
3060     { "EmailAddress",           0x10, 0x0f }, /* since r1.0 */
3061     { "Picture",                0x10, 0x10 }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3062     { "Status",                 0x10, 0x11 }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3063     { "Data",                   0x10, 0x12, WBXML_TAG_OPTION_BINARY }, /* not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3064 
3065     /* Code Page: AirSyncBase (since v12.0 and r1.0) */
3066     { "BodyPreference",         0x11, 0x05 }, /* since r1.0 */
3067     { "Type",                   0x11, 0x06 }, /* since r1.0 */
3068     { "TruncationSize",         0x11, 0x07 }, /* since r1.0 */
3069     { "AllOrNone",              0x11, 0x08 }, /* since r1.0 */
3070     { "Body",                   0x11, 0x0a }, /* since r1.0 */
3071     { "Data",                   0x11, 0x0b }, /* since r1.0 */
3072     { "EstimatedDataSize",      0x11, 0x0c }, /* since r1.0 */
3073     { "Truncated",              0x11, 0x0d }, /* since r1.0 */
3074     { "Attachments",            0x11, 0x0e }, /* since r1.0 */
3075     { "Attachment",             0x11, 0x0f }, /* since r1.0 */
3076     { "DisplayName",            0x11, 0x10 }, /* since r1.0 */
3077     { "FileReference",          0x11, 0x11 }, /* since r1.0 */
3078     { "Method",                 0x11, 0x12 }, /* since r1.0 */
3079     { "ContentId",              0x11, 0x13 }, /* since r1.0 */
3080     { "ContentLocation",        0x11, 0x14 }, /* r8.0: not used */
3081     { "IsInline",               0x11, 0x15 }, /* since r1.0 */
3082     { "NativeBodyType",         0x11, 0x16 }, /* since r1.0 */
3083     { "ContentType",            0x11, 0x17 }, /* since r1.0 */
3084     { "Preview",                0x11, 0x18 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3085     { "BodyPartPreference",     0x11, 0x19 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */
3086     { "BodyPart",               0x11, 0x1a }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */
3087     { "Status",                 0x11, 0x1b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 or 14 */
3088     { "Add",                    0x11, 0x1c }, /* since 16.0 */
3089     { "Delete",                 0x11, 0x1d }, /* since 16.0 */
3090     { "ClientId",               0x11, 0x1e }, /* since 16.0 */
3091     { "Content",                0x11, 0x1f, WBXML_TAG_OPTION_BINARY }, /* since 16.0 */
3092     { "Location",               0x11, 0x20 }, /* since 16.0 */
3093     { "Annotation",             0x11, 0x21 }, /* since 16.0 */
3094     { "Street",                 0x11, 0x22 }, /* since 16.0 */
3095     { "City",                   0x11, 0x23 }, /* since 16.0 */
3096     { "State",                  0x11, 0x24 }, /* since 16.0 */
3097     { "Country",                0x11, 0x25 }, /* since 16.0 */
3098     { "PostalCode",             0x11, 0x26 }, /* since 16.0 */
3099     { "Latitude",               0x11, 0x27 }, /* since 16.0 */
3100     { "Longitude",              0x11, 0x28 }, /* since 16.0 */
3101     { "Accuracy",               0x11, 0x29 }, /* since 16.0 */
3102     { "Altitude",               0x11, 0x2a }, /* since 16.0 */
3103     { "AltitudeAccuracy",       0x11, 0x2b }, /* since 16.0 */
3104     { "LocationUri",            0x11, 0x2c }, /* since 16.0 */
3105     { "InstanceId",             0x11, 0x2d }, /* since 16.0 */
3106 
3107     /* Code Page: Settings (since v12.1 and r1.0) */
3108     { "Settings",                   0x12, 0x05 }, /* since r1.0 */
3109     { "Status",                     0x12, 0x06 }, /* since r1.0 */
3110     { "Get",                        0x12, 0x07 }, /* since r1.0 */
3111     { "Set",                        0x12, 0x08 }, /* since r1.0 */
3112     { "Oof",                        0x12, 0x09 }, /* since r1.0 */
3113     { "OofState",                   0x12, 0x0a }, /* since r1.0 */
3114     { "StartTime",                  0x12, 0x0b }, /* since r1.0 */
3115     { "EndTime",                    0x12, 0x0c }, /* since r1.0 */
3116     { "OofMessage",                 0x12, 0x0d }, /* since r1.0 */
3117     { "AppliesToInternal",          0x12, 0x0e }, /* since r1.0 */
3118     { "AppliesToExternalKnown",     0x12, 0x0f }, /* since r1.0 */
3119     { "AppliesToExternalUnknown",   0x12, 0x10 }, /* since r1.0 */
3120     { "Enabled",                    0x12, 0x11 }, /* since r1.0 */
3121     { "ReplyMessage",               0x12, 0x12 }, /* since r1.0 */
3122     { "BodyType",                   0x12, 0x13 }, /* since r1.0 */
3123     { "DevicePassword",             0x12, 0x14 }, /* since r1.0 */
3124     { "Password",                   0x12, 0x15 }, /* since r1.0 */
3125     { "DeviceInformation",          0x12, 0x16 }, /* since r1.0 */
3126     { "Model",                      0x12, 0x17 }, /* since r1.0 */
3127     { "IMEI",                       0x12, 0x18 }, /* since r1.0 */
3128     { "FriendlyName",               0x12, 0x19 }, /* since r1.0 */
3129     { "OS",                         0x12, 0x1a }, /* since r1.0 */
3130     { "OSLanguage",                 0x12, 0x1b }, /* since r1.0 */
3131     { "PhoneNumber",                0x12, 0x1c }, /* since r1.0 */
3132     { "UserInformation",            0x12, 0x1d }, /* since r1.0 */
3133     { "EmailAddresses",             0x12, 0x1e }, /* since r1.0 */
3134     { "SmtpAddress",                0x12, 0x1f }, /* since r1.0 */
3135     { "UserAgent",                  0x12, 0x20 }, /* since r8.0? */
3136     { "EnableOutboundSMS",          0x12, 0x21 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3137     { "MobileOperator",             0x12, 0x22 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3138     { "PrimarySmtpAddress",         0x12, 0x23 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3139     { "Accounts",                   0x12, 0x24 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3140     { "Account",                    0x12, 0x25 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3141     { "AccountId",                  0x12, 0x26 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3142     { "AccountName",                0x12, 0x27 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3143     { "UserDisplayName",            0x12, 0x28 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3144     { "SendDisabled",               0x12, 0x29 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3145     { "ihsManagementInformation",   0x12, 0x2b }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3146 
3147     /* Code Page: DocumentLibrary (since v12.1 and r1.0) */
3148     { "LinkId",             0x13, 0x05 }, /* since r1.0 */
3149     { "DisplayName",        0x13, 0x06 }, /* since r1.0 */
3150     { "IsFolder",           0x13, 0x07 }, /* since r1.0 */
3151     { "CreationDate",       0x13, 0x08 }, /* since r1.0 */
3152     { "LastModifiedDate",   0x13, 0x09 }, /* since r1.0 */
3153     { "IsHidden",           0x13, 0x0a }, /* since r1.0 */
3154     { "ContentLength",      0x13, 0x0b }, /* since r1.0 */
3155     { "ContentType",        0x13, 0x0c }, /* since r1.0 */
3156 
3157     /* Code Page: ItemOperations (since v12.1 and r1.0) */
3158     { "ItemOperations",      0x14, 0x05 }, /* since r1.0 */
3159     { "Fetch",               0x14, 0x06 }, /* since r1.0 */
3160     { "Store",               0x14, 0x07 }, /* since r1.0 */
3161     { "Options",             0x14, 0x08 }, /* since r1.0 */
3162     { "Range",               0x14, 0x09 }, /* since r1.0 */
3163     { "Total",               0x14, 0x0a }, /* since r1.0 */
3164     { "Properties",          0x14, 0x0b }, /* since r1.0 */
3165     { "Data",                0x14, 0x0c }, /* since r1.0 */
3166     { "Status",              0x14, 0x0d }, /* since r1.0 */
3167     { "Response",            0x14, 0x0e }, /* since r1.0 */
3168     { "Version",             0x14, 0x0f }, /* since r1.0 */
3169     { "Schema",              0x14, 0x10 }, /* since r1.0 */
3170     { "Part",                0x14, 0x11 }, /* since r1.0 */
3171     { "EmptyFolderContents", 0x14, 0x12 }, /* since r1.0 */
3172     { "DeleteSubFolders",    0x14, 0x13 }, /* since r1.0 */
3173     { "UserName",            0x14, 0x14 }, /* since r8.0? */
3174     { "Password",            0x14, 0x15 }, /* since r8.0? */
3175     { "Move",                0x14, 0x16 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3176     { "DstFldId",            0x14, 0x17 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3177     { "ConversationId",      0x14, 0x18, WBXML_TAG_OPTION_BINARY }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3178     { "MoveAlways",          0x14, 0x19 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3179 
3180     /* Code Page: ComposeMail (since v14.0 and r8.0?) */
3181     /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3182     { "SendMail",               0x15, 0x05 }, /* since r8.0? */
3183     { "SmartForward",           0x15, 0x06 }, /* since r8.0? */
3184     { "SmartReply",             0x15, 0x07 }, /* since r8.0? */
3185     { "SaveInSentItems",        0x15, 0x08 }, /* since r8.0? */
3186     { "ReplaceMime",            0x15, 0x09 }, /* since r8.0? */
3187     { "Source",                 0x15, 0x0b }, /* since r8.0? */
3188     { "FolderId",               0x15, 0x0c }, /* since r8.0? */
3189     { "ItemId",                 0x15, 0x0d }, /* since r8.0? */
3190     { "LongId",                 0x15, 0x0e }, /* since r8.0? */
3191     { "InstanceId",             0x15, 0x0f }, /* since r8.0? */
3192     { "MIME",                   0x15, 0x10, WBXML_TAG_OPTION_BINARY }, /* since r8.0? */
3193     { "ClientId",               0x15, 0x11 }, /* since r8.0? */
3194     { "Status",                 0x15, 0x12 }, /* since r8.0? */
3195     { "AccountId",              0x15, 0x13 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3196     { "Forwardees",             0x15, 0x15 }, /* since 16.0 */
3197     { "Forwardee",              0x15, 0x16 }, /* since 16.0 */
3198     { "ForwardeeName",          0x15, 0x17 }, /* since 16.0 */
3199     { "ForwardeeEmail",         0x15, 0x18 }, /* since 16.0 */
3200 
3201     /* Code Page: Email2 (since v14.0 and r8.0?) */
3202     /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3203     { "UmCallerID",             0x16, 0x05 }, /* since r8.0? */
3204     { "UmUserNotes",            0x16, 0x06 }, /* since r8.0? */
3205     { "UmAttDuration",          0x16, 0x07 }, /* since r8.0? */
3206     { "UmAttOrder",             0x16, 0x08 }, /* since r8.0? */
3207     { "ConversationId",         0x16, 0x09, WBXML_TAG_OPTION_BINARY }, /* since r8.0? */
3208     { "ConversationIndex",      0x16, 0x0a, WBXML_TAG_OPTION_BINARY }, /* since r8.0? */
3209     { "LastVerbExecuted",       0x16, 0x0b }, /* since r8.0? */
3210     { "LastVerbExecutionTime",  0x16, 0x0c }, /* since r8.0? */
3211     { "ReceivedAsBcc",          0x16, 0x0d }, /* since r8.0? */
3212     { "Sender",                 0x16, 0x0e }, /* since r8.0? */
3213     { "CalendarType",           0x16, 0x0f }, /* since r8.0? */
3214     { "IsLeapMonth",            0x16, 0x10 }, /* since r8.0? */
3215     { "AccountId",              0x16, 0x11 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3216     { "FirstDayOfWeek",         0x16, 0x12 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3217     { "MeetingMessageType",     0x16, 0x13 }, /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3218     { "IsDraft",                0x16, 0x15 }, /* since 16.0 */
3219     { "Bcc",                    0x16, 0x16 }, /* since 16.0 */
3220     { "Send",                   0x16, 0x17 }, /* since 16.0 */
3221 
3222     /* Code Page: Notes (since v14.0 and r8.0?) */
3223     /* r8.0: not supported when the MS-ASProtocolVersion header is set to 12.1 */
3224     { "Subject",                0x17, 0x05 }, /* since r8.0? */
3225     { "MessageClass",           0x17, 0x06 }, /* since r8.0? */
3226     { "LastModifiedDate",       0x17, 0x07 }, /* since r8.0? */
3227     { "Categories",             0x17, 0x08 }, /* since r8.0? */
3228     { "Category",               0x17, 0x09 }, /* since r8.0? */
3229 
3230     /* Code Page: RightsManagement (since r8.0?) */
3231     /* r8.0: not supported when the MS-ASProtocolVersion header is set to 14.0 or 12.1 */
3232     { "RightsManagementSupport",0x18, 0x05 }, /* since r8.0? */
3233     { "RightsManagementTemplates",0x18, 0x06 }, /* since r8.0? */
3234     { "RightsManagementTemplate",0x18, 0x07 }, /* since r8.0? */
3235     { "RightsManagementLicense",0x18, 0x08 }, /* since r8.0? */
3236     { "EditAllowed",            0x18, 0x09 }, /* since r8.0? */
3237     { "ReplyAllowed",           0x18, 0x0a }, /* since r8.0? */
3238     { "ReplyAllAllowed",        0x18, 0x0b }, /* since r8.0? */
3239     { "ForwardAllowed",         0x18, 0x0c }, /* since r8.0? */
3240     { "ModifyRecipientsAllowed",0x18, 0x0d }, /* since r8.0? */
3241     { "ExtractAllowed",         0x18, 0x0e }, /* since r8.0? */
3242     { "PrintAllowed",           0x18, 0x0f }, /* since r8.0? */
3243     { "ExportAllowed",          0x18, 0x10 }, /* since r8.0? */
3244     { "ProgrammaticAccessAllowed",0x18, 0x11 }, /* since r8.0? */
3245     { "RMOwner",                0x18, 0x12 }, /* since r8.0? */
3246     { "ContentExpiryDate",      0x18, 0x13 }, /* since r8.0? */
3247     { "TemplateID",             0x18, 0x14 }, /* since r8.0? */
3248     { "TemplateName",           0x18, 0x15 }, /* since r8.0? */
3249     { "TemplateDescription",    0x18, 0x16 }, /* since r8.0? */
3250     { "ContentOwner",           0x18, 0x17 }, /* since r8.0? */
3251     { "RemoveRightsManagementDistribution",0x18, 0x18 }, /* since r8.0? */
3252 
3253     { NULL,                  0x00, 0x00 }
3254 };
3255 
3256 const WBXMLAttrEntry sv_airsync_attr_table[] = {
3257     { "Version", "1.1", 0x03, 0x05 }, /* not defined in r8.0 but in r1.0, supported by v2.5, v12.0 and v12.1 */
3258     { NULL,      NULL,  0x00, 0x00 }
3259 };
3260 
3261 /* NOTE:
3262  * These namespace names differ from the Microsoft-assigned namespaces.  The
3263  * reason for the difference is that the Microsoft-assigned names are not
3264  * valid URI's and hence produce warning messages when processed by some
3265  * libraries.  The mapping is as follows:
3266  *
3267  *   Microsoft	          Ours
3268  *   ---------            ----
3269  *   AirSync:             http://synce.org/formats/airsync_wm5/airsync
3270  *   Contacts:            http://synce.org/formats/airsync_wm5/contacts
3271  *   Email:               http://synce.org/formats/airsync_wm5/email
3272  *   AirNotify:           http://synce.org/formats/airsync_wm5/airnotify
3273  *   Calendar:            http://synce.org/formats/airsync_wm5/calendar
3274  *   Move:                http://synce.org/formats/airsync_wm5/move
3275  *   ItemEstimate:        http://synce.org/formats/airsync_wm5/itemestimate
3276  *   FolderHierarchy:     http://synce.org/formats/airsync_wm5/folderhierarchy
3277  *   MeetingResponse:     http://synce.org/formats/airsync_wm5/meetingresponse
3278  *   Tasks:               http://synce.org/formats/airsync_wm5/tasks
3279  *   ResolveRecipients:   http://synce.org/formats/airsync_wm5/resolverecipients
3280  *   ValidateCert:        http://synce.org/formats/airsync_wm5/validatecert
3281  *   Contacts2:           http://synce.org/formats/airsync_wm5/contacts2
3282  *   Ping:                http://synce.org/formats/airsync_wm5/ping
3283  *   Provision:           http://synce.org/formats/airsync_wm5/provision
3284  *   Search:              http://synce.org/formats/airsync_wm5/search
3285  *   Gal:                 http://synce.org/formats/airsync_wm5/gal
3286  *   AirSyncBase:         http://synce.org/formats/airsync_wm5/airsyncbase
3287  *   Settings:            http://synce.org/formats/airsync_wm5/settings
3288  *   DocumentLibrary:     http://synce.org/formats/airsync_wm5/documentlibrary
3289  *   ItemOperations:      http://synce.org/formats/airsync_wm5/itemoperations
3290  *   ComposeMail:         http://synce.org/formats/airsync_wm5/composemail
3291  *   Email2:              http://synce.org/formats/airsync_wm5/email2
3292  *   Notes:               http://synce.org/formats/airsync_wm5/notes
3293  *   RightsManagement:    http://synce.org/formats/airsync_wm5/rightsmanagement
3294  *
3295  */
3296 const WBXMLNameSpaceEntry sv_airsync_ns_table[] = {
3297     { "http://synce.org/formats/airsync_wm5/airsync",           0x00 },     /**< Code Page 0 */
3298     { "http://synce.org/formats/airsync_wm5/contacts",          0x01 },     /**< Code Page 1 */
3299     { "http://synce.org/formats/airsync_wm5/email",             0x02 },     /**< Code Page 2 */
3300     { "http://synce.org/formats/airsync_wm5/airnotify",         0x03 },     /**< Code Page 3 */
3301     { "http://synce.org/formats/airsync_wm5/calendar",          0x04 },     /**< Code Page 4 */
3302     { "http://synce.org/formats/airsync_wm5/move",              0x05 },     /**< Code Page 5 */
3303     { "http://synce.org/formats/airsync_wm5/itemestimate",      0x06 },     /**< Code Page 6 */
3304     { "http://synce.org/formats/airsync_wm5/folderhierarchy",   0x07 },     /**< Code Page 7 */
3305     { "http://synce.org/formats/airsync_wm5/meetingresponse",   0x08 },     /**< Code Page 8 */
3306     { "http://synce.org/formats/airsync_wm5/tasks",             0x09 },     /**< Code Page 9 */
3307     { "http://synce.org/formats/airsync_wm5/resolverecipients", 0x0a },     /**< Code Page 10 */
3308     { "http://synce.org/formats/airsync_wm5/validatecert",      0x0b },     /**< Code Page 11 */
3309     { "http://synce.org/formats/airsync_wm5/contacts2",         0x0c },     /**< Code Page 12 */
3310     { "http://synce.org/formats/airsync_wm5/ping",              0x0d },     /**< Code Page 13 */
3311     { "http://synce.org/formats/airsync_wm5/provision",         0x0e },     /**< Code Page 14 */
3312     { "http://synce.org/formats/airsync_wm5/search",            0x0f },     /**< Code Page 15 */
3313     { "http://synce.org/formats/airsync_wm5/gal",               0x10 },     /**< Code Page 16 */
3314     { "http://synce.org/formats/airsync_wm5/airsyncbase",       0x11 },     /**< Code Page 17 */
3315     { "http://synce.org/formats/airsync_wm5/settings",          0x12 },     /**< Code Page 18 */
3316     { "http://synce.org/formats/airsync_wm5/documentlibrary",   0x13 },     /**< Code Page 19 */
3317     { "http://synce.org/formats/airsync_wm5/itemoperations",    0x14 },     /**< Code Page 20 */
3318     { "http://synce.org/formats/airsync_wm5/composemail",       0x15 },     /**< Code Page 21 */
3319     { "http://synce.org/formats/airsync_wm5/email2",            0x16 },     /**< Code Page 22 */
3320     { "http://synce.org/formats/airsync_wm5/notes",             0x17 },     /**< Code Page 23 */
3321     { "http://synce.org/formats/airsync_wm5/rightsmanagement",  0x18 },     /**< Code Page 24 */
3322     { NULL,                                                     0x00 }
3323 };
3324 
3325 const WBXMLNameSpaceEntry sv_activesync_ns_table[] = {
3326     { "AirSync:",           0x00 },     /**< Code Page 0 */
3327     { "Contacts:",          0x01 },     /**< Code Page 1 */
3328     { "Email:",             0x02 },     /**< Code Page 2 */
3329     { "AirNotify:",         0x03 },     /**< Code Page 3 */
3330     { "Calendar:",          0x04 },     /**< Code Page 4 */
3331     { "Move:",              0x05 },     /**< Code Page 5 */
3332     { "GetItemEstimate:",   0x06 },     /**< Code Page 6 */
3333     { "FolderHierarchy:",   0x07 },     /**< Code Page 7 */
3334     { "MeetingResponse:",   0x08 },     /**< Code Page 8 */
3335     { "Tasks:",             0x09 },     /**< Code Page 9 */
3336     { "ResolveRecipients:", 0x0a },     /**< Code Page 10 */
3337     { "ValidateCert:",      0x0b },     /**< Code Page 11 */
3338     { "Contacts2:",         0x0c },     /**< Code Page 12 */
3339     { "Ping:",              0x0d },     /**< Code Page 13 */
3340     { "Provision:",         0x0e },     /**< Code Page 14 */
3341     { "Search:",            0x0f },     /**< Code Page 15 */
3342     { "Gal:",               0x10 },     /**< Code Page 16 */
3343     { "AirSyncBase:",       0x11 },     /**< Code Page 17 */
3344     { "Settings:",          0x12 },     /**< Code Page 18 */
3345     { "DocumentLibrary:",   0x13 },     /**< Code Page 19 */
3346     { "ItemOperations:",    0x14 },     /**< Code Page 20 */
3347     { "ComposeMail:",       0x15 },     /**< Code Page 21 */
3348     { "Email2:",            0x16 },     /**< Code Page 22 */
3349     { "Notes:",             0x17 },     /**< Code Page 23 */
3350     { "RightsManagement:",  0x18 },     /**< Code Page 24 */
3351     { NULL,                 0x00 }
3352 };
3353 
3354 #endif /* WBXML_SUPPORT_AIRSYNC */
3355 
3356 
3357 #if defined( WBXML_SUPPORT_CONML )
3358 
3359 /*************************************************
3360  *    Nokia ConML
3361  *
3362  *    This is no official markup language from Nokia.
3363  *    It is used for example by Nokia PC Suite to install software.
3364  */
3365 
3366 const WBXMLTagEntry sv_conml_tag_table[] = {
3367     /* Code Page: "ConML" */
3368     { "All",                  0x00, 0x05 },
3369     { "Application",          0x00, 0x06 },
3370     { "Applications",         0x00, 0x07 },
3371     { "Unknown_0x08",         0x00, 0x08 },
3372     { "Cancel",               0x00, 0x09 },
3373     { "Complete",             0x00, 0x0a },
3374     { "ConML",                0x00, 0x0b },
3375     { "Data",                 0x00, 0x0c },
3376     /* Candidates from SyncML:
3377          DataType     *
3378          DefaultValue
3379          Delete
3380          Description  *
3381          DevID        *
3382      */
3383     { "Unknown_0x0d",         0x00, 0x0d },
3384     { "Unknown_0x0e",         0x00, 0x0e },
3385     { "Unknown_0x0f",         0x00, 0x0f },
3386     { "DeviceInfo",           0x00, 0x10 },
3387     /* Candidates from SyncML:
3388          DevTyp
3389      */
3390     { "Unknown_0x11",         0x00, 0x11 },
3391     { "Drives",               0x00, 0x12 },
3392     { "Execute",              0x00, 0x13 },
3393     /* Candidates from SyncML:
3394          Final
3395      */
3396     { "Unknown_0x14",         0x00, 0x14 },
3397     { "Unknown_0x15",         0x00, 0x15 },
3398     { "Unknown_0x16",         0x00, 0x16 },
3399     { "GetDataSize",          0x00, 0x17 },
3400     { "GetStatus",            0x00, 0x18 },
3401     { "HasFiles",             0x00, 0x19 },
3402     { "ID",                   0x00, 0x1a },
3403     { "IncType",              0x00, 0x1b },
3404     { "Install",              0x00, 0x1c },
3405     { "InstParams",           0x00, 0x1d },
3406     { "ListInstalledApps",    0x00, 0x1f },
3407     /* Candidates from SyncML:
3408          MaxMsgSize
3409      */
3410     { "Unknown_0x20",         0x00, 0x20 },
3411     { "MaxObjectSize",        0x00, 0x21 },
3412     { "Modified",             0x00, 0x22 },
3413     { "MoreData",             0x00, 0x23 },
3414     /* The content of the element Name is originally encoded as opaque data.
3415        The mobiles accepts the element data also as a normal string.
3416        Therefore the data will be encoded as a string.
3417        If there is a requirement for the original behavior
3418        then it is necessary to add some code to wbxml_encoder.c.
3419      */
3420     { "Name",                 0x00, 0x24 },
3421     { "PackageInfo",          0x00, 0x25 },
3422     { "Param",                0x00, 0x26 },
3423     { "PartialType",          0x00, 0x27 },
3424     { "Progress",             0x00, 0x28 },
3425     { "Reboot",               0x00, 0x29 },
3426     /* Candidates from SyncML:
3427          Replace
3428          RespURI
3429      */
3430     { "Unknown_0x2a",         0x00, 0x2a },
3431     { "Unknown_0x2b",         0x00, 0x2b },
3432     { "Results",              0x00, 0x2c },
3433     /* Candidates from SyncML:
3434          Search
3435          Sequence
3436          SessionID
3437          SftDel
3438          Source
3439          SourceRef
3440      */
3441     { "Unknown_0x2d",         0x00, 0x2d },
3442     { "Unknown_0x2e",         0x00, 0x2e },
3443     { "Unknown_0x2f",         0x00, 0x2f },
3444     { "Unknown_0x30",         0x00, 0x30 },
3445     { "Status",               0x00, 0x31 },
3446     /* Candidates from SyncML:
3447          Target
3448          TargetRef
3449      */
3450     { "Unknown_0x32",         0x00, 0x32 },
3451     { "Unknown_0x33",         0x00, 0x33 },
3452     { "Unknown_0x34",         0x00, 0x34 },
3453     { "Task",                 0x00, 0x35 },
3454     /* Candidates from SyncML:
3455          Time
3456          TStamp
3457          Title
3458      */
3459     { "Unknown_0x36",         0x00, 0x36 },
3460     { "Type",                 0x00, 0x37 },
3461     { "UID",                  0x00, 0x38 },
3462     { "UnInstall",            0x00, 0x39 },
3463     /* Candidates from SyncML:
3464          ValEnum
3465      */
3466     { "Unknown_0x3a",         0x00, 0x3a },
3467     { "Unknown_0x3b",         0x00, 0x3b },
3468     { "Value",                0x00, 0x3c },
3469     { "Version",              0x00, 0x3d },
3470     { NULL,                   0x00, 0x00 }
3471 };
3472 
3473 #endif /* WBXML_SUPPORT_CONML */
3474 
3475 
3476 /******************************
3477  *    Main Table
3478  */
3479 
3480 const WBXMLLangEntry sv_table_entry[] = {
3481 #if defined( WBXML_SUPPORT_WML )
3482 #ifdef WBXML_TABLES_SEPARATE_WML_VERSIONS
3483     { WBXML_LANG_WML10,             &sv_wml10_public_id,            sv_wml10_tag_table,             NULL,                           sv_wml10_attr_table,        sv_wml10_attr_value_table,      NULL },
3484     { WBXML_LANG_WML11,             &sv_wml11_public_id,            sv_wml11_tag_table,             NULL,                           sv_wml11_attr_table,        sv_wml11_attr_value_table,      NULL },
3485     { WBXML_LANG_WML12,             &sv_wml12_public_id,            sv_wml12_tag_table,             NULL,                           sv_wml12_attr_table,        sv_wml12_attr_value_table,      NULL },
3486 #else /* WBXML_TABLES_SEPARATE_WML_VERSIONS */
3487     { WBXML_LANG_WML10,             &sv_wml10_public_id,            sv_wml13_tag_table,             NULL,                           sv_wml13_attr_table,        sv_wml13_attr_value_table,      NULL },
3488     { WBXML_LANG_WML11,             &sv_wml11_public_id,            sv_wml13_tag_table,             NULL,                           sv_wml13_attr_table,        sv_wml13_attr_value_table,      NULL },
3489     { WBXML_LANG_WML12,             &sv_wml12_public_id,            sv_wml13_tag_table,             NULL,                           sv_wml13_attr_table,        sv_wml13_attr_value_table,      NULL },
3490 #endif /* WBXML_TABLES_SEPARATE_WML_VERSIONS */
3491     { WBXML_LANG_WML13,             &sv_wml13_public_id,            sv_wml13_tag_table,             NULL,                           sv_wml13_attr_table,        sv_wml13_attr_value_table,      NULL },
3492 #endif /* WBXML_SUPPORT_WML */
3493 
3494 #if defined( WBXML_SUPPORT_WTA )
3495     { WBXML_LANG_WTA10,             &sv_wta10_public_id,            sv_wta10_tag_table,             NULL,                           sv_wta10_attr_table,        NULL,                           NULL },
3496     { WBXML_LANG_WTAWML12,          &sv_wtawml12_public_id,         sv_wtawml12_tag_table,          NULL,                           sv_wtawml12_attr_table,     sv_wtawml12_attr_value_table,   NULL },
3497     { WBXML_LANG_CHANNEL11,         &sv_channel11_public_id,        sv_channel11_tag_table,         NULL,                           sv_channel11_attr_table,    NULL,                           NULL },
3498     { WBXML_LANG_CHANNEL12,         &sv_channel12_public_id,        sv_channel12_tag_table,         NULL,                           sv_channel12_attr_table,    NULL,                           NULL },
3499 #endif /* WBXML_SUPPORT_WTA */
3500 
3501 #if defined( WBXML_SUPPORT_SI )
3502     { WBXML_LANG_SI10,              &sv_si10_public_id,             sv_si10_tag_table,              NULL,                           sv_si10_attr_table,         sv_si10_attr_value_table,       NULL },
3503 #endif /* WBXML_SUPPORT_SI */
3504 
3505 #if defined( WBXML_SUPPORT_SL )
3506     { WBXML_LANG_SL10,              &sv_sl10_public_id,             sv_sl10_tag_table,              NULL,                           sv_sl10_attr_table,         sv_sl10_attr_value_table,       NULL },
3507 #endif /* WBXML_SUPPORT_SL */
3508 
3509 #if defined( WBXML_SUPPORT_CO )
3510     { WBXML_LANG_CO10,              &sv_co10_public_id,             sv_co10_tag_table,              NULL,                           sv_co10_attr_table,         sv_co10_attr_value_table,       NULL },
3511 #endif /* WBXML_SUPPORT_CO */
3512 
3513 #if defined( WBXML_SUPPORT_PROV )
3514     { WBXML_LANG_PROV10,            &sv_prov10_public_id,           sv_prov10_tag_table,            NULL,                           sv_prov10_attr_table,       sv_prov10_attr_value_table,     NULL },
3515 #endif /* WBXML_SUPPORT_PROV */
3516 
3517 #if defined( WBXML_SUPPORT_EMN )
3518     { WBXML_LANG_EMN10,             &sv_emn10_public_id,            sv_emn10_tag_table,             NULL,                           sv_emn10_attr_table,        sv_emn10_attr_value_table,      NULL },
3519 #endif /* WBXML_SUPPORT_EMN */
3520 
3521 #if defined( WBXML_SUPPORT_DRMREL )
3522     { WBXML_LANG_DRMREL10,          &sv_drmrel10_public_id,         sv_drmrel10_tag_table,          NULL,                           sv_drmrel10_attr_table,     sv_drmrel10_attr_value_table,   NULL },
3523 #endif /* WBXML_SUPPORT_DRMREL */
3524 
3525 #if defined( WBXML_SUPPORT_OTA_SETTINGS )
3526     { WBXML_LANG_OTA_SETTINGS,      &sv_ota_settings_public_id,     sv_ota_settings_tag_table,      NULL,                           sv_ota_settings_attr_table, NULL,                           NULL },
3527 #endif /* WBXML_SUPPORT_OTA_SETTINGS */
3528 
3529 #if defined( WBXML_SUPPORT_SYNCML )
3530     /* SyncML 1.2 */
3531     { WBXML_LANG_SYNCML_SYNCML12,   &sv_syncml_syncml12_public_id,  sv_syncml_syncml12_tag_table,   sv_syncml_syncml12_ns_table,    NULL,                       NULL,                           NULL },
3532     { WBXML_LANG_SYNCML_DEVINF12,   &sv_syncml_devinf12_public_id,  sv_syncml_devinf12_tag_table,   sv_syncml_devinf12_ns_table,    NULL,                       NULL,                           NULL },
3533     { WBXML_LANG_SYNCML_METINF12,   &sv_syncml_metinf12_public_id,  sv_syncml_metinf12_tag_table,   NULL,                           NULL,                       NULL,                           NULL },
3534     { WBXML_LANG_SYNCML_DMDDF12,    &sv_syncml_dmddf12_public_id,   sv_syncml_dmddf12_tag_table,    sv_syncml_dmddf12_ns_table,     NULL,                       NULL,                           NULL },
3535 
3536     /* SyncML 1.1 */
3537     { WBXML_LANG_SYNCML_SYNCML11,   &sv_syncml_syncml11_public_id,  sv_syncml_syncml11_tag_table,   sv_syncml_syncml11_ns_table,    NULL,                       NULL,                           NULL },
3538     { WBXML_LANG_SYNCML_DEVINF11,   &sv_syncml_devinf11_public_id,  sv_syncml_devinf11_tag_table,   sv_syncml_devinf11_ns_table,    NULL,                       NULL,                           NULL },
3539     { WBXML_LANG_SYNCML_METINF11,   &sv_syncml_metinf11_public_id,  sv_syncml_metinf11_tag_table,   NULL,                           NULL,                       NULL,                           NULL },
3540 
3541     /** @todo Check if Tag Tables are exactly with SyncML 1.0 */
3542     { WBXML_LANG_SYNCML_SYNCML10,   &sv_syncml_syncml10_public_id,  sv_syncml_syncml11_tag_table,   sv_syncml_syncml10_ns_table,    NULL,                       NULL,                           NULL },
3543     { WBXML_LANG_SYNCML_DEVINF10,   &sv_syncml_devinf10_public_id,  sv_syncml_devinf11_tag_table,   sv_syncml_devinf11_ns_table,    NULL,                       NULL,                           NULL },
3544 #endif /* WBXML_SUPPORT_SYNCML */
3545 
3546 #if defined( WBXML_SUPPORT_WV )
3547     { WBXML_LANG_WV_CSP11,          &sv_wv_csp11_public_id,         sv_wv_csp_tag_table,            NULL,                           sv_wv_csp_attr_table,       NULL,                           sv_wv_csp_ext_table },
3548     { WBXML_LANG_WV_CSP12,          &sv_wv_csp12_public_id,         sv_wv_csp_tag_table,            NULL,                           sv_wv_csp_attr_table,       NULL,                           sv_wv_csp_ext_table },
3549 #endif /* WBXML_SUPPORT_WV */
3550 
3551 #if defined( WBXML_SUPPORT_AIRSYNC )
3552     { WBXML_LANG_AIRSYNC,           &sv_airsync_public_id,          sv_airsync_tag_table,           sv_airsync_ns_table,            sv_airsync_attr_table,                       NULL,                           NULL },
3553     { WBXML_LANG_ACTIVESYNC,        &sv_activesync_public_id,       sv_airsync_tag_table,           sv_activesync_ns_table,         sv_airsync_attr_table,                       NULL,                           NULL },
3554 #endif /* WBXML_SUPPORT_AIRSYNC */
3555 
3556 #if defined( WBXML_SUPPORT_CONML )
3557     { WBXML_LANG_CONML,             &sv_conml_public_id,            sv_conml_tag_table,             NULL,                           NULL,                       NULL,                           NULL },
3558 #endif /* WBXML_SUPPORT_CONML */
3559 
3560     { WBXML_LANG_UNKNOWN,           NULL,                           NULL,                           NULL,                           NULL,                       NULL,                           NULL }
3561 };
3562 
3563 
3564 /******************************
3565  * Public Functions
3566  */
3567 
3568 /* Exported function to return pointer to WBXML Languages Main Table */
wbxml_tables_get_main(void)3569 WBXML_DECLARE(const WBXMLLangEntry *) wbxml_tables_get_main(void)
3570 {
3571     return sv_table_entry;
3572 }
3573 
3574 
wbxml_tables_get_table(WBXMLLanguage lang)3575 WBXML_DECLARE(const WBXMLLangEntry *) wbxml_tables_get_table(WBXMLLanguage lang)
3576 {
3577     const WBXMLLangEntry *main_table = NULL;
3578     WB_ULONG index = 0;
3579 
3580     /* Get main tables array*/
3581     if ((lang == WBXML_LANG_UNKNOWN) || ((main_table = wbxml_tables_get_main()) == NULL))
3582         return NULL;
3583 
3584     /* Search language table */
3585     while (main_table[index].langID != WBXML_LANG_UNKNOWN) {
3586         if (main_table[index].langID == lang)
3587             return &main_table[index];
3588         index++;
3589     }
3590 
3591     return NULL;
3592 }
3593 
3594 
wbxml_tables_search_table(const WBXMLLangEntry * main_table,const WB_UTINY * public_id,const WB_UTINY * system_id,const WB_UTINY * root)3595 WBXML_DECLARE(const WBXMLLangEntry *) wbxml_tables_search_table(const WBXMLLangEntry *main_table,
3596                                                                 const WB_UTINY *public_id,
3597                                                                 const WB_UTINY *system_id,
3598                                                                 const WB_UTINY *root)
3599 {
3600     WB_ULONG index;
3601     const WB_UTINY *sep = NULL;
3602 
3603     if (main_table == NULL)
3604         return NULL;
3605 
3606     /* Search by XML Public ID  */
3607     if (public_id != NULL) {
3608         index = 0;
3609 
3610         while (main_table[index].publicID != NULL) {
3611             if (main_table[index].publicID->xmlPublicID && WBXML_STRCASECMP(main_table[index].publicID->xmlPublicID, public_id) == 0)
3612                 return &main_table[index];
3613             index++;
3614         }
3615     }
3616 
3617     /* Search by XML System ID  */
3618     if (system_id != NULL) {
3619         index = 0;
3620 
3621         while (main_table[index].publicID != NULL) {
3622             if (main_table[index].publicID->xmlDTD && WBXML_STRCMP(main_table[index].publicID->xmlDTD, system_id) == 0)
3623                 return &main_table[index];
3624             index++;
3625         }
3626     }
3627 
3628     /* Search by XML Root Element  */
3629     if (root != NULL) {
3630         index = 0;
3631 
3632         /* table scan for matching namespace element */
3633         sep = (WB_UTINY *)strrchr((const WB_TINY *) root, WBXML_NAMESPACE_SEPARATOR);
3634         if (sep != NULL) {
3635             /* There is a namespace (from root to sep). */
3636             while (main_table[index].publicID != NULL) {
3637                 /* It is only possible to evaluate the first entry in the table
3638                  * because the second code page has often no unique name space name.
3639                  * Example: SyncML Meta Information => syncml:metinf
3640                  */
3641                 if (main_table[index].nsTable != NULL &&
3642                     main_table[index].nsTable[0].xmlNameSpace &&
3643                     WBXML_STRNCASECMP(main_table[index].nsTable[0].xmlNameSpace, root, WBXML_STRLEN(main_table[index].nsTable[0].xmlNameSpace)) == 0)
3644                     return &main_table[index];
3645                 index++;
3646             }
3647         }
3648 
3649         /* table scan for matching root element */
3650         while (main_table[index].publicID != NULL) {
3651             if (main_table[index].publicID->xmlRootElt && WBXML_STRCMP(main_table[index].publicID->xmlRootElt, root) == 0)
3652                 return &main_table[index];
3653             index++;
3654         }
3655     }
3656 
3657     return NULL;
3658 }
3659 
3660 
wbxml_tables_get_wbxml_publicid(const WBXMLLangEntry * main_table,WBXMLLanguage lang_id)3661 WBXML_DECLARE(WB_ULONG) wbxml_tables_get_wbxml_publicid(const WBXMLLangEntry *main_table, WBXMLLanguage lang_id)
3662 {
3663     WB_ULONG i = 0;
3664 
3665     if (main_table == NULL)
3666         return WBXML_PUBLIC_ID_UNKNOWN;
3667 
3668     while (main_table[i].langID != WBXML_LANG_UNKNOWN) {
3669         if (main_table[i].langID == lang_id) {
3670             if (main_table[i].publicID != NULL)
3671                 return main_table[i].publicID->wbxmlPublicID;
3672             else
3673                 return WBXML_PUBLIC_ID_UNKNOWN;
3674         }
3675         i++;
3676     }
3677 
3678     return WBXML_PUBLIC_ID_UNKNOWN;
3679 }
3680 
3681 
wbxml_tables_get_tag_from_xml(const WBXMLLangEntry * lang_table,const int cur_code_page,const WB_UTINY * xml_name)3682 WBXML_DECLARE(const WBXMLTagEntry *) wbxml_tables_get_tag_from_xml(const WBXMLLangEntry *lang_table,
3683                                                                    const int cur_code_page,
3684                                                                    const WB_UTINY *xml_name)
3685 {
3686     WB_ULONG i;
3687     WB_BOOL found_current = FALSE;
3688 
3689     if ((lang_table == NULL) || (lang_table->tagTable == NULL) || (xml_name == NULL))
3690         return NULL;
3691 
3692     /* First off, try to find it in the current code page, if provided */
3693     for (i = 0; cur_code_page >= 0 && lang_table->tagTable[i].xmlName != NULL; i++) {
3694         const WBXMLTagEntry *entry = &lang_table->tagTable[i];
3695 
3696         if (entry->wbxmlCodePage == cur_code_page) {
3697             found_current = TRUE;
3698 
3699             if (WBXML_STRCMP(entry->xmlName, xml_name) == 0)
3700                 return entry;
3701         } else {
3702             if (found_current)
3703               break;
3704         }
3705     }
3706 
3707     /* Then try all others */
3708     for (i = 0; lang_table->tagTable[i].xmlName != NULL; i++) {
3709         const WBXMLTagEntry *entry = &lang_table->tagTable[i];
3710 
3711         /* We've already searched the current code page */
3712         if (cur_code_page >= 0 && entry->wbxmlCodePage == cur_code_page)
3713           continue;
3714 
3715         if (WBXML_STRCMP(entry->xmlName, xml_name) == 0)
3716             return entry;
3717     }
3718 
3719     return NULL;
3720 }
3721 
3722 
wbxml_tables_get_attr_from_xml(const WBXMLLangEntry * lang_table,WB_UTINY * xml_name,WB_UTINY * xml_value,WB_UTINY ** value_left)3723 WBXML_DECLARE(const WBXMLAttrEntry *) wbxml_tables_get_attr_from_xml(const WBXMLLangEntry *lang_table,
3724                                                                      WB_UTINY *xml_name,
3725                                                                      WB_UTINY *xml_value,
3726                                                                      WB_UTINY **value_left)
3727 {
3728     WB_ULONG i = 0;
3729     WB_ULONG found_index = 0, found_comp = 0;
3730     WB_BOOL found = FALSE;
3731 
3732     if ((lang_table == NULL) || (lang_table->attrTable == NULL) || (xml_name == NULL))
3733         return NULL;
3734 
3735     if (value_left != NULL)
3736         *value_left = xml_value;
3737 
3738     /* Iterate in Attribute Table */
3739     while (lang_table->attrTable[i].xmlName != NULL) {
3740         /* Search for Attribute Name */
3741         if (WBXML_STRCMP(lang_table->attrTable[i].xmlName, xml_name) == 0)
3742         {
3743             if (lang_table->attrTable[i].xmlValue == NULL) {
3744                 /* This is the token with a NULL Attribute Value */
3745                 if (xml_value == NULL) {
3746                     /* Well, we got it */
3747                     return &(lang_table->attrTable[i]);
3748                 }
3749                 else {
3750                     if (!found) {
3751                         /* We haven't found yet a better Attribute Token */
3752                         found = TRUE;
3753                         found_index = i;
3754                     }
3755 
3756                     /* Else: We already have found a better Attribute Token, so let's forget this one */
3757                 }
3758             }
3759             else {
3760                 /* Check the Attribute Value */
3761                 if (xml_value != NULL)
3762                 {
3763                     if (WBXML_STRCMP(lang_table->attrTable[i].xmlValue, xml_value) == 0)
3764                     {
3765                         /* We have found the EXACT Attribute Name / Value pair we are searching, well done boy */
3766                         if (value_left != NULL)
3767                             *value_left = NULL;
3768 
3769                         return &(lang_table->attrTable[i]);
3770                     }
3771                     else {
3772                         if ((WBXML_STRLEN(lang_table->attrTable[i].xmlValue) < WBXML_STRLEN(xml_value)) &&
3773                             (found_comp < WBXML_STRLEN(lang_table->attrTable[i].xmlValue)) &&
3774                             (WBXML_STRNCMP(lang_table->attrTable[i].xmlValue, xml_value, WBXML_STRLEN(lang_table->attrTable[i].xmlValue)) == 0))
3775                         {
3776                             /* We have found a better Attribute Value */
3777                             found = TRUE;
3778                             found_index = i;
3779                             found_comp = WBXML_STRLEN(lang_table->attrTable[i].xmlValue);
3780                         }
3781                     }
3782                 }
3783 
3784                 /* Else: We are searching for the Attribute Token with a NULL Attribute Value associated, so forget this one  */
3785             }
3786         }
3787         i++;
3788     }
3789 
3790     /* Attribute Name / Value pair not found, but an entry with this Attribute Name,
3791      * and (maybe) start of this Attribute Value was found */
3792     if (found) {
3793         if (value_left != NULL)
3794             *value_left = xml_value + found_comp;
3795 
3796         return &(lang_table->attrTable[found_index]);
3797     }
3798 
3799     /* Attribute Name NOT found */
3800     return NULL;
3801 }
3802 
3803 
wbxml_tables_get_ext_from_xml(const WBXMLLangEntry * lang_table,WB_UTINY * xml_value)3804 WBXML_DECLARE(const WBXMLExtValueEntry *) wbxml_tables_get_ext_from_xml(const WBXMLLangEntry *lang_table,
3805                                                                         WB_UTINY *xml_value)
3806 {
3807     WB_ULONG i = 0;
3808 
3809     if ((lang_table == NULL) || (lang_table->extValueTable == NULL) || (xml_value == NULL))
3810         return NULL;
3811 
3812     while (lang_table->extValueTable[i].xmlName != NULL) {
3813         if (WBXML_STRCMP(lang_table->extValueTable[i].xmlName, xml_value) == 0)
3814             return &(lang_table->extValueTable[i]);
3815         i++;
3816     }
3817 
3818     return NULL;
3819 }
3820 
3821 
wbxml_tables_contains_attr_value_from_xml(const WBXMLLangEntry * lang_table,WB_UTINY * xml_value)3822 WBXML_DECLARE(WB_BOOL) wbxml_tables_contains_attr_value_from_xml(const WBXMLLangEntry *lang_table,
3823                                                                  WB_UTINY *xml_value)
3824 {
3825     WB_ULONG i = 0;
3826 
3827     if ((lang_table == NULL) || (lang_table->attrValueTable == NULL) || (xml_value == NULL))
3828         return FALSE;
3829 
3830     while (lang_table->attrValueTable[i].xmlName != NULL)
3831     {
3832         /* Is this Attribute Value contained in this XML Buffer ? */
3833         if (WBXML_STRSTR(xml_value, lang_table->attrValueTable[i].xmlName) != NULL)
3834             return TRUE;
3835 
3836         i++;
3837     }
3838 
3839     return FALSE;
3840 }
3841 
3842 
wbxml_tables_get_xmlns(const WBXMLNameSpaceEntry * ns_table,WB_UTINY code_page)3843 WBXML_DECLARE(const WB_TINY *) wbxml_tables_get_xmlns(const WBXMLNameSpaceEntry *ns_table, WB_UTINY code_page)
3844 {
3845     WB_ULONG i = 0;
3846 
3847     if (ns_table == NULL)
3848         return NULL;
3849 
3850     while (ns_table[i].xmlNameSpace != NULL)
3851     {
3852         if (ns_table[i].wbxmlCodePage == code_page)
3853             return ns_table[i].xmlNameSpace;
3854 
3855         i++;
3856     }
3857 
3858     return NULL;
3859 }
3860 
wbxml_tables_get_code_page(const WBXMLNameSpaceEntry * ns_table,const WB_TINY * xmlns)3861 WBXML_DECLARE(WB_UTINY) wbxml_tables_get_code_page(const WBXMLNameSpaceEntry *ns_table, const WB_TINY* xmlns)
3862 {
3863     WB_ULONG i = 0;
3864 
3865     if (ns_table == NULL)
3866         return 0;
3867 
3868     while (ns_table[i].xmlNameSpace != NULL)
3869     {
3870         if (strcmp(ns_table[i].xmlNameSpace, xmlns) == 0)
3871             return ns_table[i].wbxmlCodePage;
3872 
3873         i++;
3874     }
3875 
3876     return 0;
3877 }
3878 
3879