Skip to content

Commit 56f773a

Browse files
committed
Improved parsing of element declarations
1 parent 1586024 commit 56f773a

9 files changed

Lines changed: 240 additions & 163 deletions

File tree

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.DS_Store
2-
/bin/
3-
/.scannerwork/
2+
bin/
3+
.scannerwork/
4+
.vscode/

i18n/XMLJava_es.tmx

Lines changed: 123 additions & 107 deletions
Large diffs are not rendered by default.

i18n/XMLJava_es.xlf

Lines changed: 62 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ dGVudE1vZGVsLjQ9JSUlOCUlJQpDb250ZW50TW9kZWwuNT0lJSU5JSUlCkNvbnRlbnRNb2RlbC42
88
PSUlJTEwJSUlCkN1c3RvbUNvbnRlbnRIYW5kbGVyLjA9JSUlMTElJSUKRG9jdW1lbnQuMD0lJSUx
99
MiUlJQpEVERQYXJzZXIuMD0lJSUxMyUlJQpEVERQYXJzZXIuMT0lJSUxNCUlJQpEVERQYXJzZXIu
1010
MTA9JSUlMTUlJSUKRFREUGFyc2VyLjExPSUlJTE2JSUlCkRURFBhcnNlci4xMj0lJSUxNyUlJQpE
11-
VERQYXJzZXIuMTM9JSUlMTglJSUKRFREUGFyc2VyLjE0PSUlJTE5JSUlCkRURFBhcnNlci4yPSUl
12-
JTIwJSUlCkRURFBhcnNlci4zPSUlJTIxJSUlCkRURFBhcnNlci40PSUlJTIyJSUlCkRURFBhcnNl
13-
ci41PSUlJTIzJSUlCkRURFBhcnNlci42PSUlJTI0JSUlCkRURFBhcnNlci43PSUlJTI1JSUlCkRU
14-
RFBhcnNlci44PSUlJTI2JSUlCkRURFBhcnNlci45PSUlJTI3JSUlCkVsZW1lbnQuMD0lJSUyOCUl
15-
JQpSZWxheE5HUGFyc2VyLjA9JSUlMjklJSUKUmVsYXhOR1BhcnNlci4xPSUlJTMwJSUlClNBWEJ1
16-
aWxkZXIuMT0lJSUzMSUlJQpYTUxPdXRwdXR0ZXIuMD0lJSUzMiUlJQpYTUxPdXRwdXR0ZXIuMT0l
17-
JSUzMyUlJQpYTUxVdGlscy4xPSUlJTM0JSUlCg==</skeleton>
11+
VERQYXJzZXIuMTM9JSUlMTglJSUKRFREUGFyc2VyLjE0PSUlJTE5JSUlCkRURFBhcnNlci4xNT0l
12+
JSUyMCUlJQpEVERQYXJzZXIuMTY9JSUlMjElJSUKRFREUGFyc2VyLjI9JSUlMjIlJSUKRFREUGFy
13+
c2VyLjM9JSUlMjMlJSUKRFREUGFyc2VyLjQ9JSUlMjQlJSUKRFREUGFyc2VyLjU9JSUlMjUlJSUK
14+
RFREUGFyc2VyLjY9JSUlMjYlJSUKRFREUGFyc2VyLjc9JSUlMjclJSUKRFREUGFyc2VyLjg9JSUl
15+
MjglJSUKRFREUGFyc2VyLjk9JSUlMjklJSUKRWxlbWVudC4wPSUlJTMwJSUlClJlbGF4TkdQYXJz
16+
ZXIuMD0lJSUzMSUlJQpSZWxheE5HUGFyc2VyLjE9JSUlMzIlJSUKU0FYQnVpbGRlci4xPSUlJTMz
17+
JSUlClhNTE91dHB1dHRlci4wPSUlJTM0JSUlClhNTE91dHB1dHRlci4xPSUlJTM1JSUlClhNTFV0
18+
aWxzLjE9JSUlMzYlJSUK</skeleton>
1819
<mda:metadata>
1920
<mda:metaGroup category="format">
2021
<mda:meta type="datatype">javapropertyresourcebundle</mda:meta>
@@ -25,7 +26,7 @@ JSUzMyUlJQpYTUxVdGlscy4xPSUlJTM0JSUlCg==</skeleton>
2526
<mda:meta type="tool-version">3.13.0 20230829_0823</mda:meta>
2627
</mda:metaGroup>
2728
<mda:metaGroup category="PI">
28-
<mda:meta type="encoding">UTF-8</mda:meta>
29+
<mda:meta type="encoding">utf-8</mda:meta>
2930
</mda:metaGroup>
3031
</mda:metadata>
3132
<unit id="0">
@@ -123,8 +124,8 @@ JSUzMyUlJQpYTUxVdGlscy4xPSUlJTM0JSUlCg==</skeleton>
123124
</mda:metaGroup>
124125
</mda:metadata>
125126
<segment state="final" id="8">
126-
<source xml:space="preserve">No separator found in group: {0}</source>
127-
<target xml:space="preserve">No se encontró separador en el grupo: {0}</target>
127+
<source xml:space="preserve">No separator found when parsing group</source>
128+
<target xml:space="preserve">No se encontró separador al analizar grupo</target>
128129
</segment>
129130
</unit>
130131
<unit id="9">
@@ -251,164 +252,186 @@ JSUzMyUlJQpYTUxVdGlscy4xPSUlJTM0JSUlCg==</skeleton>
251252
<unit id="20">
252253
<mda:metadata>
253254
<mda:metaGroup category="transUnitAttributes">
254-
<mda:meta type="resname">DTDParser.2</mda:meta>
255+
<mda:meta type="resname">DTDParser.15</mda:meta>
255256
</mda:metaGroup>
256257
</mda:metadata>
257258
<segment state="final" id="20">
259+
<source xml:space="preserve">Unknown parameter entity ''{0}'' referenced in {1}</source>
260+
<target xml:space="preserve">Entidad de parámetro desconocida ''{0}'' referenciada en {1}</target>
261+
</segment>
262+
</unit>
263+
<unit id="21">
264+
<mda:metadata>
265+
<mda:metaGroup category="transUnitAttributes">
266+
<mda:meta type="resname">DTDParser.16</mda:meta>
267+
</mda:metaGroup>
268+
</mda:metadata>
269+
<segment state="final" id="21">
270+
<source xml:space="preserve">Broken parameter entity found in {1}</source>
271+
<target xml:space="preserve">Entidad de parámetro dañada encontrada en ''{0}''</target>
272+
</segment>
273+
</unit>
274+
<unit id="22">
275+
<mda:metadata>
276+
<mda:metaGroup category="transUnitAttributes">
277+
<mda:meta type="resname">DTDParser.2</mda:meta>
278+
</mda:metaGroup>
279+
</mda:metadata>
280+
<segment state="final" id="22">
258281
<source xml:space="preserve">Error parsing referenced entity %{0};</source>
259282
<target xml:space="preserve">Error al analizar la entidad referenciada %{0};</target>
260283
</segment>
261284
</unit>
262-
<unit id="21">
285+
<unit id="23">
263286
<mda:metadata>
264287
<mda:metaGroup category="transUnitAttributes">
265288
<mda:meta type="resname">DTDParser.3</mda:meta>
266289
</mda:metaGroup>
267290
</mda:metadata>
268-
<segment state="final" id="21">
291+
<segment state="final" id="23">
269292
<source xml:space="preserve">Module ''{0}'' not found</source>
270293
<target xml:space="preserve">Módulo ''{0}'' no encontrado</target>
271294
</segment>
272295
</unit>
273-
<unit id="22">
296+
<unit id="24">
274297
<mda:metadata>
275298
<mda:metaGroup category="transUnitAttributes">
276299
<mda:meta type="resname">DTDParser.4</mda:meta>
277300
</mda:metaGroup>
278301
</mda:metadata>
279-
<segment state="final" id="22">
302+
<segment state="final" id="24">
280303
<source xml:space="preserve">Malformed element declaration</source>
281304
<target xml:space="preserve">Declaración de elementos con formato incorrecto</target>
282305
</segment>
283306
</unit>
284-
<unit id="23">
307+
<unit id="25">
285308
<mda:metadata>
286309
<mda:metaGroup category="transUnitAttributes">
287310
<mda:meta type="resname">DTDParser.5</mda:meta>
288311
</mda:metaGroup>
289312
</mda:metadata>
290-
<segment state="final" id="23">
313+
<segment state="final" id="25">
291314
<source xml:space="preserve">Malformed attribute declaration</source>
292315
<target xml:space="preserve">Declaración de atributo con formato incorrecto</target>
293316
</segment>
294317
</unit>
295-
<unit id="24">
318+
<unit id="26">
296319
<mda:metadata>
297320
<mda:metaGroup category="transUnitAttributes">
298321
<mda:meta type="resname">DTDParser.6</mda:meta>
299322
</mda:metaGroup>
300323
</mda:metadata>
301-
<segment state="final" id="24">
324+
<segment state="final" id="26">
302325
<source xml:space="preserve">Malformed entity declaration</source>
303326
<target xml:space="preserve">Declaración de entidad con formato incorrecto</target>
304327
</segment>
305328
</unit>
306-
<unit id="25">
329+
<unit id="27">
307330
<mda:metadata>
308331
<mda:metaGroup category="transUnitAttributes">
309332
<mda:meta type="resname">DTDParser.7</mda:meta>
310333
</mda:metaGroup>
311334
</mda:metadata>
312-
<segment state="final" id="25">
335+
<segment state="final" id="27">
313336
<source xml:space="preserve">Duplicated entity declaration {0}</source>
314337
<target xml:space="preserve">Declaración de entidad duplicada {0}</target>
315338
</segment>
316339
</unit>
317-
<unit id="26">
340+
<unit id="28">
318341
<mda:metadata>
319342
<mda:metaGroup category="transUnitAttributes">
320343
<mda:meta type="resname">DTDParser.8</mda:meta>
321344
</mda:metaGroup>
322345
</mda:metadata>
323-
<segment state="final" id="26">
346+
<segment state="final" id="28">
324347
<source xml:space="preserve">Malformed notation declaration</source>
325348
<target xml:space="preserve">Declaración de notación con formato incorrecto</target>
326349
</segment>
327350
</unit>
328-
<unit id="27">
351+
<unit id="29">
329352
<mda:metadata>
330353
<mda:metaGroup category="transUnitAttributes">
331354
<mda:meta type="resname">DTDParser.9</mda:meta>
332355
</mda:metaGroup>
333356
</mda:metadata>
334-
<segment state="final" id="27">
357+
<segment state="final" id="29">
335358
<source xml:space="preserve">Malformed processing instruction</source>
336359
<target xml:space="preserve">Instrucción de procesamiento con formato incorrecto</target>
337360
</segment>
338361
</unit>
339-
<unit id="28">
362+
<unit id="30">
340363
<mda:metadata>
341364
<mda:metaGroup category="transUnitAttributes">
342365
<mda:meta type="resname">Element.0</mda:meta>
343366
</mda:metaGroup>
344367
</mda:metadata>
345-
<segment state="final" id="28">
368+
<segment state="final" id="30">
346369
<source xml:space="preserve">Element contains wrong content type</source>
347370
<target xml:space="preserve">El elemento contiene un tipo de contenido incorrecto</target>
348371
</segment>
349372
</unit>
350-
<unit id="29">
373+
<unit id="31">
351374
<mda:metadata>
352375
<mda:metaGroup category="transUnitAttributes">
353376
<mda:meta type="resname">RelaxNGParser.0</mda:meta>
354377
</mda:metaGroup>
355378
</mda:metadata>
356-
<segment state="final" id="29">
379+
<segment state="final" id="31">
357380
<source xml:space="preserve">Missing ''{0}'' in &lt;include&gt;</source>
358381
<target xml:space="preserve">Falta ''{0}'' en &lt;include&gt;</target>
359382
</segment>
360383
</unit>
361-
<unit id="30">
384+
<unit id="32">
362385
<mda:metadata>
363386
<mda:metaGroup category="transUnitAttributes">
364387
<mda:meta type="resname">RelaxNGParser.1</mda:meta>
365388
</mda:metaGroup>
366389
</mda:metadata>
367-
<segment state="final" id="30">
390+
<segment state="final" id="32">
368391
<source xml:space="preserve">Missing ''{0}'' in &lt;externalRef&gt;</source>
369392
<target xml:space="preserve">Falta ''{0}'' en &lt;externalRef&gt;</target>
370393
</segment>
371394
</unit>
372-
<unit id="31">
395+
<unit id="33">
373396
<mda:metadata>
374397
<mda:metaGroup category="transUnitAttributes">
375398
<mda:meta type="resname">SAXBuilder.1</mda:meta>
376399
</mda:metaGroup>
377400
</mda:metadata>
378-
<segment state="final" id="31">
401+
<segment state="final" id="33">
379402
<source xml:space="preserve">File ''{0}'' does not exist</source>
380403
<target xml:space="preserve">El archivo ''{0}'' no existe</target>
381404
</segment>
382405
</unit>
383-
<unit id="32">
406+
<unit id="34">
384407
<mda:metadata>
385408
<mda:metaGroup category="transUnitAttributes">
386409
<mda:meta type="resname">XMLOutputter.0</mda:meta>
387410
</mda:metaGroup>
388411
</mda:metadata>
389-
<segment state="final" id="32">
412+
<segment state="final" id="34">
390413
<source xml:space="preserve">Header contains wrong content type</source>
391414
<target xml:space="preserve">El encabezado contiene un tipo de contenido incorrecto</target>
392415
</segment>
393416
</unit>
394-
<unit id="33">
417+
<unit id="35">
395418
<mda:metadata>
396419
<mda:metaGroup category="transUnitAttributes">
397420
<mda:meta type="resname">XMLOutputter.1</mda:meta>
398421
</mda:metaGroup>
399422
</mda:metadata>
400-
<segment state="final" id="33">
423+
<segment state="final" id="35">
401424
<source xml:space="preserve">Unknown node type</source>
402425
<target xml:space="preserve">Tipo de nodo desconocido</target>
403426
</segment>
404427
</unit>
405-
<unit id="34">
428+
<unit id="36">
406429
<mda:metadata>
407430
<mda:metaGroup category="transUnitAttributes">
408431
<mda:meta type="resname">XMLUtils.1</mda:meta>
409432
</mda:metaGroup>
410433
</mda:metadata>
411-
<segment state="final" id="34">
434+
<segment state="final" id="36">
412435
<source xml:space="preserve">Error reading BOM from {0}</source>
413436
<target xml:space="preserve">Error al leer Marca de Orden de Bytes (BOM) de {0}</target>
414437
</segment>

lib/xmljava.jar

260 Bytes
Binary file not shown.

src/com/maxprograms/xml/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
public class Constants {
1616

1717
public static final String VERSION = "2.2.0";
18-
public static final String BUILD = "20250520_1057";
18+
public static final String BUILD = "20250523_1301";
1919

2020
private Constants() {
2121
// private for security

src/com/maxprograms/xml/ContentModel.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static ContentModel parse(String modelString) {
6767
type = MIXED;
6868
if (!string.endsWith(")*")) {
6969
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.0"));
70-
throw new IllegalArgumentException(mf.format(new Object[] { modelString }));
70+
throw new IllegalArgumentException(mf.format(new String[] { modelString }));
7171
}
7272
}
7373

@@ -90,12 +90,12 @@ public static ContentModel parse(String modelString) {
9090
} else if ("*".equals(token) || "+".equals(token) || "?".equals(token)) {
9191
if (current.isEmpty()) {
9292
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.1"));
93-
throw new IllegalArgumentException(mf.format(new Object[] { token }));
93+
throw new IllegalArgumentException(mf.format(new String[] { token }));
9494
}
9595
Object lastObject = current.get(current.size() - 1);
9696
if (!(lastObject instanceof ContentParticle)) {
9797
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.1"));
98-
throw new IllegalArgumentException(mf.format(new Object[] { token }));
98+
throw new IllegalArgumentException(mf.format(new String[] { token }));
9999
}
100100
int cardinality = "?".equals(token) ? OPTIONAL : ("*".equals(token) ? ZEROMANY : ONEMANY);
101101
((ContentParticle) lastObject).setCardinality(cardinality);
@@ -111,7 +111,7 @@ public static ContentModel parse(String modelString) {
111111
for (Object obj : current) {
112112
if (!(obj instanceof ContentParticle)) {
113113
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.2"));
114-
throw new IllegalArgumentException(mf.format(new Object[] { modelString }));
114+
throw new IllegalArgumentException(mf.format(new String[] { modelString }));
115115
}
116116
particles.add((ContentParticle) obj);
117117
}
@@ -142,8 +142,7 @@ private static ContentParticle processGroup(List<Object> group) {
142142
}
143143
}
144144
if (sep == null) {
145-
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.4"));
146-
throw new IllegalArgumentException(mf.format(new Object[] { group }));
145+
throw new IllegalArgumentException(Messages.getString("ContentModel.4"));
147146
}
148147
ContentParticle result = "|".equals(sep) ? new DTDChoice() : new DTDSecuence();
149148
for (Object obj : group) {
@@ -168,19 +167,19 @@ else if (c == ')')
168167
balance--;
169168
if (balance < 0) {
170169
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.5"));
171-
throw new IllegalArgumentException(mf.format(new Object[] { string }));
170+
throw new IllegalArgumentException(mf.format(new String[] { string }));
172171
}
173172
}
174173
if (balance != 0) {
175174
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.5"));
176-
throw new IllegalArgumentException(mf.format(new Object[] { string }));
175+
throw new IllegalArgumentException(mf.format(new String[] { string }));
177176
}
178177
}
179178

180179
private static void validateToken(String token) {
181180
if (!token.matches("[a-zA-Z0-9#|,?*+()]+")) {
182181
MessageFormat mf = new MessageFormat(Messages.getString("ContentModel.6"));
183-
throw new IllegalArgumentException(mf.format(new Object[] { token }));
182+
throw new IllegalArgumentException(mf.format(new String[] { token }));
184183
}
185184
}
186185

0 commit comments

Comments
 (0)