README
1 WBXML Library
2 -------------
3
4 The WBXML Library (aka libwbxml) contains a library and its associated tools to Parse,
5 Encode and Handle WBXML documents.
6
7 The WBXML format is a binary representation of XML, defined by the Wap Forum, and used
8 to reduce bandwidth in mobile communications.
9
10
11 Dependency:
12 -----------
13
14 The WBXML Library needs Expat to enable XML Parsing feature (and so XML to WBXML conversion).
15
16
17 High Level API:
18 ---------------
19
20 -------------------------
21 (1) | |
22 [ WBXML ] ---------> | | ----------> [ XML ]
23 | WBXML Library |
24 [ WBXML ] <--------- | | <---------- [ XML ]
25 | | (2)
26 -------------------------
27
28 The high level API permits to:
29 - (1) Convert a WBXML Document to an XML Document
30 - (2) Convert an XML Document to a WBXML Document
31
32
33 Inside the WBXML Library:
34 -------------------------
35
36 [ WBXML ] [ XML ]
37 | |
38 | ------------------------- ----------------------- |
39 | | WBXML Parser (1) | | Expat XML Parser | |
40 | | | | | |
41 | ------------------------- ----------------------- |
42 | |WBXML Callbacks (3)| |XML Callbacks (4)| |
43 \ /
44 \ /
45 -------------------------> [ WBXML Tree (2) ] <------------------------
46
47 ||
48 ||
49 \/
50
51 -----------------------
52 | WBXML Encoder (5) |
53 | |
54 -----------------------
55 | |
56 | |
57 / \
58 [ WBXML ] <----------------------- ------------------------> [ XML ]
59
60
61 The WBXML Library contains:
62 - (1) A WBXML Parser, with a SAX like interface (ie: this is a kind of Expat, but for WBXML)
63 - (2) A WBXML Tree structure (an internal representation of a WBXML/XML Document)
64 - (3) Libwbxml Callbacks to convert a WBXML Document to a WBXML Tree
65 - (4) Expat Callbacks to convert an XML Document to a WBXML Tree
66 - (5) A WBXML Encoder, that encodes a WBXML Tree to a WBXML Document or to an XML Document
67
68
69 If you find bugs, or simply use this library, feel free to contact me.
70
71
72 Supported Languages:
73 --------------------
74 - WML 1.0, 1.1, 1.2, 1.3
75 - WTA 1.0
76 - WTA-WML 1.2
77 - CHANNEL 1.1, 1.2
78 - SI 1.0 (tested)
79 - SL 1.0 (tested)
80 - CO 1.0
81 - PROV 1.0 (tested)
82 - EMN 1.0 (tested)
83 - DRMREL 1.0 (tested)
84 - Ericsson / Nokia OTA Settings v7.0 (tested)
85 - SYNCML 1.0, 1.1, 1.2
86 - WV CSP 1.1, 1.2 (partially tested)
87
88
89 TOOLS:
90 ------
91
92 Two tools are provided:
93 - wbxml2xml: (WBXML => XML)
94 wbxml2xml -i -o output.xml input.wbxml
95 wbxml2xml -i 4 -l CSP12 -o output.xml input.wbxml
96 Options:
97 -o output.xml : output file
98 -m X (Generation mode - Default: 1) with:
99 0: Compact Generation
100 1: Indent Generation
101 2: Canonical Generation
102 -i X (Indent delta when using mode '1' - Default: 1)
103 -k (Keep Ignorable Whitespaces - Default: FALSE)
104 -l X (Force Language Type of document to parse)
105 WML10 : WML 1.0
106 WML11 : WML 1.1
107 WML12 : WML 1.2
108 WML13 : WML 1.3
109 WTA10 : WTA 1.0
110 WTAWML12 : WTAWML 1.2
111 CHANNEL11 : CHANNEL 1.1
112 CHANNEL12 : CHANNEL 1.2
113 SI10 : SL 1.0
114 SL10 : SI 1.0
115 CO10 : CO 1.0
116 PROV10 : PROV 1.0
117 EMN10 : EMN 1.0
118 DRMREL10 : DRMREL 1.0
119 OTA : OTA Settings
120 SYNCML10 : SYNCML 1.0
121 DEVINF10 : DEVINF 1.0
122 SYNCML11 : SYNCML 1.1
123 DEVINF11 : DEVINF 1.1
124 METINF11 : METINF 1.1
125 SYNCML12 : SYNCML 1.2
126 DEVINF12 : DEVINF 1.2
127 METINF12 : METINF 1.2
128 CSP11 : WV CSP 1.1
129 CSP12 : WV CSP 1.2
130 Note: '-' can be used to mean stdin on input or stdout on output
131
132 - xml2wbxml: (XML => WBXML)
133 xml2wbxml -o output.wbxml input.xml
134 xml2wbxml -k -n -v 1.1 -o output.wbxml input.xml
135 Options:
136 -o output.wbxml : output file
137 -k : keep ignorable whitespaces (Default: ignore)
138 -n : do NOT generate String Table (Default: generate)
139 -v X (WBXML Version of output document)
140 1.0 : WBXML 1.0
141 1.1 : WBXML 1.1
142 1.2 : WBXML 1.2
143 1.3 : WBXML 1.3
144 Note: '-' can be used to mean stdin on input or stdout on output
145
146
147 CONTACT:
148 --------
149
150 Please use GitHub to report bugs, ask questions or submit code:
151 https://github.com/libwbxml/libwbxml
152
153 Releases can be found on Sourceforge too:
154 https://sourceforge.net/projects/libwbxml/
155
156