Package: modello / 1.9.1-4

01-plexus-utils-compatibility.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
Description: Revert the commit 2c55132 to remain compatible with plexus-utils 1.x still used by maven2
 https://github.com/sonatype/modello/commit/2c55132415675f36919a1ff0dc6352e715da72f8
Author: Emmanuel Bourg <ebourg@apache.org>
Forwarded: not-needed
--- a/modello-plugins/modello-plugin-xpp3/src/main/java/org/codehaus/modello/plugin/xpp3/Xpp3ReaderGenerator.java
+++ b/modello-plugins/modello-plugin-xpp3/src/main/java/org/codehaus/modello/plugin/xpp3/Xpp3ReaderGenerator.java
@@ -267,7 +267,7 @@
 
         sc = unmarshall.getSourceCode();
 
-        sc.add("XmlPullParser parser = addDefaultEntities ? new MXParser(EntityReplacementMap.defaultEntityReplacementMap) : new MXParser( );");
+        sc.add( "XmlPullParser parser = new MXParser();" );
 
         sc.add( "" );
 
@@ -275,6 +275,8 @@
 
         sc.add( "" );
 
+        sc.add( "initParser( parser );" );
+
         sc.add( "" );
 
         sc.add( "return " + readerMethodName + "( parser, strict" + trackingArgs + " );" );
@@ -355,7 +357,6 @@
 
         jClass.addImport( "org.codehaus.plexus.util.ReaderFactory" );
         jClass.addImport( "org.codehaus.plexus.util.xml.pull.MXParser" );
-        jClass.addImport( "org.codehaus.plexus.util.xml.pull.EntityReplacementMap" );
         jClass.addImport( "org.codehaus.plexus.util.xml.pull.XmlPullParser" );
         jClass.addImport( "org.codehaus.plexus.util.xml.pull.XmlPullParserException" );
         jClass.addImport( "java.io.InputStream" );
@@ -1097,6 +1098,288 @@
         }
     }
 
+
+    private void writeParserInitialization( JSourceCode sc )
+    {
+        sc.add( "if ( addDefaultEntities )" );
+
+        sc.add( "{" );
+        sc.indent();
+
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "// Latin 1 entities" );
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "" );
+        sc.add( "parser.defineEntityReplacementText( \"nbsp\", \"\\u00a0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"iexcl\", \"\\u00a1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"cent\", \"\\u00a2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"pound\", \"\\u00a3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"curren\", \"\\u00a4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"yen\", \"\\u00a5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"brvbar\", \"\\u00a6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sect\", \"\\u00a7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"uml\", \"\\u00a8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"copy\", \"\\u00a9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ordf\", \"\\u00aa\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"laquo\", \"\\u00ab\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"not\", \"\\u00ac\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"shy\", \"\\u00ad\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"reg\", \"\\u00ae\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"macr\", \"\\u00af\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"deg\", \"\\u00b0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"plusmn\", \"\\u00b1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sup2\", \"\\u00b2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sup3\", \"\\u00b3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"acute\", \"\\u00b4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"micro\", \"\\u00b5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"para\", \"\\u00b6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"middot\", \"\\u00b7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"cedil\", \"\\u00b8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sup1\", \"\\u00b9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ordm\", \"\\u00ba\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"raquo\", \"\\u00bb\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"frac14\", \"\\u00bc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"frac12\", \"\\u00bd\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"frac34\", \"\\u00be\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"iquest\", \"\\u00bf\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Agrave\", \"\\u00c0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Aacute\", \"\\u00c1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Acirc\", \"\\u00c2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Atilde\", \"\\u00c3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Auml\", \"\\u00c4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Aring\", \"\\u00c5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"AElig\", \"\\u00c6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ccedil\", \"\\u00c7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Egrave\", \"\\u00c8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Eacute\", \"\\u00c9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ecirc\", \"\\u00ca\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Euml\", \"\\u00cb\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Igrave\", \"\\u00cc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Iacute\", \"\\u00cd\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Icirc\", \"\\u00ce\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Iuml\", \"\\u00cf\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ETH\", \"\\u00d0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ntilde\", \"\\u00d1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ograve\", \"\\u00d2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Oacute\", \"\\u00d3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ocirc\", \"\\u00d4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Otilde\", \"\\u00d5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ouml\", \"\\u00d6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"times\", \"\\u00d7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Oslash\", \"\\u00d8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ugrave\", \"\\u00d9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Uacute\", \"\\u00da\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Ucirc\", \"\\u00db\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Uuml\", \"\\u00dc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Yacute\", \"\\u00dd\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"THORN\", \"\\u00de\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"szlig\", \"\\u00df\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"agrave\", \"\\u00e0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"aacute\", \"\\u00e1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"acirc\", \"\\u00e2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"atilde\", \"\\u00e3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"auml\", \"\\u00e4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"aring\", \"\\u00e5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"aelig\", \"\\u00e6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ccedil\", \"\\u00e7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"egrave\", \"\\u00e8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"eacute\", \"\\u00e9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ecirc\", \"\\u00ea\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"euml\", \"\\u00eb\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"igrave\", \"\\u00ec\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"iacute\", \"\\u00ed\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"icirc\", \"\\u00ee\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"iuml\", \"\\u00ef\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"eth\", \"\\u00f0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ntilde\", \"\\u00f1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ograve\", \"\\u00f2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"oacute\", \"\\u00f3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ocirc\", \"\\u00f4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"otilde\", \"\\u00f5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ouml\", \"\\u00f6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"divide\", \"\\u00f7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"oslash\", \"\\u00f8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ugrave\", \"\\u00f9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"uacute\", \"\\u00fa\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ucirc\", \"\\u00fb\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"uuml\", \"\\u00fc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"yacute\", \"\\u00fd\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"thorn\", \"\\u00fe\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"yuml\", \"\\u00ff\" );" );
+        sc.add( "" );
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "// Special entities" );
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "" );
+        // These are required to be handled by the parser by the XML specification
+//        sc.add( "parser.defineEntityReplacementText( \"quot\", \"\\u0022\" );" );
+//        sc.add( "parser.defineEntityReplacementText( \"amp\", \"\\u0026\" );" );
+//        sc.add( "parser.defineEntityReplacementText( \"lt\", \"\\u003c\" );" );
+//        sc.add( "parser.defineEntityReplacementText( \"gt\", \"\\u003e\" );" );
+//        sc.add( "parser.defineEntityReplacementText( \"apos\", \"\\u0027\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"OElig\", \"\\u0152\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"oelig\", \"\\u0153\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Scaron\", \"\\u0160\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"scaron\", \"\\u0161\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Yuml\", \"\\u0178\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"circ\", \"\\u02c6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"tilde\", \"\\u02dc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ensp\", \"\\u2002\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"emsp\", \"\\u2003\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"thinsp\", \"\\u2009\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"zwnj\", \"\\u200c\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"zwj\", \"\\u200d\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lrm\", \"\\u200e\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rlm\", \"\\u200f\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ndash\", \"\\u2013\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"mdash\", \"\\u2014\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lsquo\", \"\\u2018\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rsquo\", \"\\u2019\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sbquo\", \"\\u201a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ldquo\", \"\\u201c\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rdquo\", \"\\u201d\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"bdquo\", \"\\u201e\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"dagger\", \"\\u2020\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Dagger\", \"\\u2021\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"permil\", \"\\u2030\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lsaquo\", \"\\u2039\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rsaquo\", \"\\u203a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"euro\", \"\\u20ac\" );" );
+        sc.add( "" );
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "// Symbol entities" );
+        sc.add( "// ----------------------------------------------------------------------" );
+        sc.add( "" );
+        sc.add( "parser.defineEntityReplacementText( \"fnof\", \"\\u0192\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Alpha\", \"\\u0391\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Beta\", \"\\u0392\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Gamma\", \"\\u0393\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Delta\", \"\\u0394\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Epsilon\", \"\\u0395\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Zeta\", \"\\u0396\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Eta\", \"\\u0397\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Theta\", \"\\u0398\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Iota\", \"\\u0399\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Kappa\", \"\\u039a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Lambda\", \"\\u039b\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Mu\", \"\\u039c\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Nu\", \"\\u039d\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Xi\", \"\\u039e\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Omicron\", \"\\u039f\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Pi\", \"\\u03a0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Rho\", \"\\u03a1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Sigma\", \"\\u03a3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Tau\", \"\\u03a4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Upsilon\", \"\\u03a5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Phi\", \"\\u03a6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Chi\", \"\\u03a7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Psi\", \"\\u03a8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Omega\", \"\\u03a9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"alpha\", \"\\u03b1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"beta\", \"\\u03b2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"gamma\", \"\\u03b3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"delta\", \"\\u03b4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"epsilon\", \"\\u03b5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"zeta\", \"\\u03b6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"eta\", \"\\u03b7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"theta\", \"\\u03b8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"iota\", \"\\u03b9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"kappa\", \"\\u03ba\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lambda\", \"\\u03bb\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"mu\", \"\\u03bc\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"nu\", \"\\u03bd\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"xi\", \"\\u03be\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"omicron\", \"\\u03bf\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"pi\", \"\\u03c0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rho\", \"\\u03c1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sigmaf\", \"\\u03c2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sigma\", \"\\u03c3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"tau\", \"\\u03c4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"upsilon\", \"\\u03c5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"phi\", \"\\u03c6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"chi\", \"\\u03c7\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"psi\", \"\\u03c8\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"omega\", \"\\u03c9\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"thetasym\", \"\\u03d1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"upsih\", \"\\u03d2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"piv\", \"\\u03d6\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"bull\", \"\\u2022\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"hellip\", \"\\u2026\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"prime\", \"\\u2032\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"Prime\", \"\\u2033\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"oline\", \"\\u203e\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"frasl\", \"\\u2044\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"weierp\", \"\\u2118\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"image\", \"\\u2111\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"real\", \"\\u211c\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"trade\", \"\\u2122\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"alefsym\", \"\\u2135\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"larr\", \"\\u2190\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"uarr\", \"\\u2191\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rarr\", \"\\u2192\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"darr\", \"\\u2193\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"harr\", \"\\u2194\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"crarr\", \"\\u21b5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lArr\", \"\\u21d0\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"uArr\", \"\\u21d1\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rArr\", \"\\u21d2\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"dArr\", \"\\u21d3\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"hArr\", \"\\u21d4\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"forall\", \"\\u2200\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"part\", \"\\u2202\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"exist\", \"\\u2203\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"empty\", \"\\u2205\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"nabla\", \"\\u2207\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"isin\", \"\\u2208\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"notin\", \"\\u2209\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ni\", \"\\u220b\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"prod\", \"\\u220f\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sum\", \"\\u2211\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"minus\", \"\\u2212\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lowast\", \"\\u2217\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"radic\", \"\\u221a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"prop\", \"\\u221d\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"infin\", \"\\u221e\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ang\", \"\\u2220\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"and\", \"\\u2227\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"or\", \"\\u2228\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"cap\", \"\\u2229\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"cup\", \"\\u222a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"int\", \"\\u222b\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"there4\", \"\\u2234\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sim\", \"\\u223c\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"cong\", \"\\u2245\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"asymp\", \"\\u2248\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ne\", \"\\u2260\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"equiv\", \"\\u2261\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"le\", \"\\u2264\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"ge\", \"\\u2265\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sub\", \"\\u2282\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sup\", \"\\u2283\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"nsub\", \"\\u2284\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sube\", \"\\u2286\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"supe\", \"\\u2287\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"oplus\", \"\\u2295\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"otimes\", \"\\u2297\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"perp\", \"\\u22a5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"sdot\", \"\\u22c5\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lceil\", \"\\u2308\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rceil\", \"\\u2309\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lfloor\", \"\\u230a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rfloor\", \"\\u230b\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"lang\", \"\\u2329\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"rang\", \"\\u232a\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"loz\", \"\\u25ca\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"spades\", \"\\u2660\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"clubs\", \"\\u2663\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"hearts\", \"\\u2665\" );" );
+        sc.add( "parser.defineEntityReplacementText( \"diams\", \"\\u2666\" );" );
+        sc.add( "" );
+
+        sc.unindent();
+        sc.add( "}" );
+    }
+
     private void writeBuildDomMethod( JClass jClass )
     {
         if ( domAsXpp3 )
@@ -1250,6 +1533,8 @@
         jClass.addMethod( getCheckUnknonwElement2Method() );
         jClass.addMethod( getCheckUnknownAttributeMethod() );
         jClass.addMethod( getNextTagMethod() );
+
+        jClass.addMethod( initParser() );
     }
 
     private JMethod getCheckUnknonwElement2Method() {
@@ -1597,6 +1882,20 @@
 
         return method;
     }
+
+    private JMethod initParser()
+    {
+        JMethod method = new JMethod( "initParser" );
+        method.addParameter( new JParameter( new JClass( "XmlPullParser" ), "parser" ) );
+        method.addException( new JClass( "XmlPullParserException" ) );
+        method.getModifiers().makePrivate();
+
+        JSourceCode sc = method.getSourceCode();
+
+        writeParserInitialization( sc );
+
+        return method;
+    }
 
     private void addTrackingParameters( JMethod method )
     {