Skip to content

Commit bf76d54

Browse files
committed
DoxXmlParser validation
1 parent 213a52f commit bf76d54

File tree

4 files changed

+162
-7
lines changed

4 files changed

+162
-7
lines changed

fj-doc-base/src/main/java/org/fugerit/java/doc/base/xml/DocXmlParser.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
import javax.xml.parsers.SAXParser;
88

99
import org.fugerit.java.core.io.StreamIO;
10-
import org.fugerit.java.core.xml.XMLValidator;
1110
import org.fugerit.java.core.xml.sax.SAXParseResult;
1211
import org.fugerit.java.core.xml.sax.XMLFactorySAX;
13-
import org.fugerit.java.core.xml.sax.XMLValidatorSAX;
1412
import org.fugerit.java.core.xml.sax.dh.DefaultHandlerComp;
1513
import org.fugerit.java.core.xml.sax.er.ByteArrayEntityResolver;
1614
import org.fugerit.java.doc.base.facade.DocFacade;
@@ -89,14 +87,12 @@ protected DocBase parseWorker(Reader reader) throws Exception {
8987

9088
@Override
9189
protected DocValidationResult validateWorker(Reader reader) throws Exception {
92-
ByteArrayEntityResolver er = newEntityResolver( params );
93-
XMLValidator validator = XMLValidatorSAX.newInstance( er );
94-
SAXParseResult result = validator.validateXML( reader );
9590
DocValidationResult docResult = DocValidationResult.newDefaultNotDefiniedResult();
96-
for ( Exception e : result.fatalsAndErrors() ) {
91+
SAXParseResult result = DocValidator.validate( reader );
92+
for ( Exception e : result.fatalsAndErrors() ) {
9793
docResult.getErrorList().add( e.toString() );
9894
}
99-
for ( Exception e : result.warnings() ) {
95+
for ( Exception e : result.warnings() ) {
10096
docResult.getInfoList().add( e.toString() );
10197
}
10298
docResult.evaluateResult();
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package test.org.fugerit.java.doc.base.xml;
2+
3+
import static org.junit.Assert.fail;
4+
5+
import java.io.InputStream;
6+
import java.io.InputStreamReader;
7+
8+
import org.fugerit.java.core.lang.helpers.ClassHelper;
9+
import org.fugerit.java.doc.base.parser.DocValidationResult;
10+
import org.fugerit.java.doc.base.xml.DocXmlParser;
11+
import org.junit.Assert;
12+
import org.junit.Test;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
16+
17+
public class TestDocXmlParser {
18+
19+
private final static Logger logger = LoggerFactory.getLogger( TestDocXmlParser.class );
20+
21+
private void test( String path, boolean valid, boolean exception ) {
22+
try ( InputStream is = ClassHelper.loadFromDefaultClassLoader( path ) ) {
23+
DocXmlParser parser = new DocXmlParser();
24+
DocValidationResult result = parser.validateResult( new InputStreamReader( is ) );
25+
logger.info( "Validation result {}", result.isResultOk() );
26+
for ( String error : result.getErrorList() ) {
27+
logger.info( "Validation error {}", error );
28+
}
29+
Assert.assertEquals( "Validation result" , valid, result.isResultOk() );
30+
} catch (Exception e) {
31+
String message = "Error : "+e.getMessage();
32+
logger.error( message, e );
33+
fail( message );
34+
}
35+
}
36+
37+
@Test
38+
public void testOk01() {
39+
this.test( "sample/doc_test_01.xml", true, false);
40+
}
41+
42+
@Test
43+
public void testKo02() {
44+
this.test( "sample/doc_test_02_ko.xml", false, false);
45+
}
46+
47+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<doc xmlns="http://javacoredoc.fugerit.org"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://javacoredoc.fugerit.org https://www.fugerit.org/data/java/doc/xsd/doc-1-10.xsd">
4+
<metadata>
5+
<info name="margins">10;10;10;30</info>
6+
<info name="excel-table-id">excel-table=print</info>
7+
<info name="excel-width-multiplier">450</info>
8+
<footer-ext>
9+
<para align="center">Page ${currentPage}</para>
10+
</footer-ext>
11+
</metadata>
12+
<body>
13+
<phrase>Test phrase 01</phrase>
14+
<phrase>Test phrase 02</phrase>
15+
<phrase>Test phrase 03</phrase>
16+
<phrase>Test phrase 04</phrase>
17+
<image scaling="100" url="cl://test/img_test_red.png"/>
18+
<image scaling="50" url="cl://test/img_test_green.png"/>
19+
<image scaling="25" url="cl://test/img_test_blue.png"/>
20+
<table columns="3" colwidths="30;30;40" id="excel-table" padding="2" width="100">
21+
<row>
22+
<cell align="center" border-color="#000000" border-width="1">
23+
<para>Name</para>
24+
</cell>
25+
<cell align="center">
26+
<para>Surname</para>
27+
</cell>
28+
<cell align="center">
29+
<para>Title</para>
30+
</cell>
31+
</row>
32+
<row>
33+
<cell>
34+
<para>Luthien</para>
35+
</cell>
36+
<cell>
37+
<para>Tinuviel</para>
38+
</cell>
39+
<cell>
40+
<para>Queen</para>
41+
</cell>
42+
</row>
43+
<row>
44+
<cell>
45+
<para>Thorin</para>
46+
</cell>
47+
<cell>
48+
<para>Oakshield</para>
49+
</cell>
50+
<cell>
51+
<para>King</para>
52+
</cell>
53+
</row>
54+
</table>
55+
</body>
56+
</doc>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<doc xmlns="http://javacoredoc.fugerit.org"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://javacoredoc.fugerit.org https://www.fugerit.org/data/java/doc/xsd/doc-1-10.xsd">
4+
<metadata>
5+
<info name="margins">10;10;10;30</info>
6+
<info name="excel-table-id">excel-table=print</info>
7+
<info name="excel-width-multiplier">450</info>
8+
<footer-ext>
9+
<para align="center">Page ${currentPage}</para>
10+
</footer-ext>
11+
</metadata>
12+
<body>
13+
<phrase><para>Test phrase 01</para></phrase>
14+
<phrase>Test phrase 02</phrase>
15+
<phrase>Test phrase 03</phrase>
16+
<phrase>Test phrase 04</phrase>
17+
<image scaling="100" url="cl://test/img_test_red.png"/>
18+
<image scaling="50" url="cl://test/img_test_green.png"/>
19+
<image scaling="25" url="cl://test/img_test_blue.png"/>
20+
<table columns="3" colwidths="30;30;40" id="excel-table" padding="2" width="100">
21+
<row>
22+
<cell align="center" border-color="#000000" border-width="1">
23+
<para>Name</para>
24+
</cell>
25+
<cell align="center">
26+
<para>Surname</para>
27+
</cell>
28+
<cell align="center">
29+
<para>Title</para>
30+
</cell>
31+
</row>
32+
<row>
33+
<cell>
34+
<para>Luthien</para>
35+
</cell>
36+
<cell>
37+
<para>Tinuviel</para>
38+
</cell>
39+
<cell>
40+
<para>Queen</para>
41+
</cell>
42+
</row>
43+
<row>
44+
<cell>
45+
<para>Thorin</para>
46+
</cell>
47+
<cell>
48+
<para>Oakshield</para>
49+
</cell>
50+
<cell>
51+
<para>King</para>
52+
</cell>
53+
</row>
54+
</table>
55+
</body>
56+
</doc>

0 commit comments

Comments
 (0)