annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/JRReportSaxParserFactory.java @ 8999:e3b3ce32c825

Work on uinfo
author gernotbelger
date Thu, 12 Apr 2018 19:15:42 +0200
parents
children
rev   line source
8999
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
2 * Software engineering by
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
5 *
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
9 */
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.common;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
11
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
12 import java.util.ArrayList;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
13 import java.util.Collection;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
14 import java.util.List;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
15
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
16 import net.sf.jasperreports.engine.component.ComponentsBundle;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
17 import net.sf.jasperreports.engine.component.ComponentsEnvironment;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
18 import net.sf.jasperreports.engine.component.ComponentsXmlParser;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
19 import net.sf.jasperreports.engine.xml.BaseSaxParserFactory;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
20 import net.sf.jasperreports.engine.xml.JRXmlConstants;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
21
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
22 /**
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
23 * Own sax parser factory, because:
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
24 * - we do not want xml validation (we know it's good)
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
25 * - xerxes sax parser complains about two schemas with same namespace...
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
26 *
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
27 * @author Domenico Nardi Tironi
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
28 */
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
29 public class JRReportSaxParserFactory extends BaseSaxParserFactory {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
30
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
31 @Override
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
32 protected boolean isValidating() {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
33 return false;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
34 }
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
35
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
36 @Override
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
37 protected List<String> getSchemaLocations() {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
38 final List<String> schemas = new ArrayList<>();
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
39
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
40 schemas.add(getResourceURI(JRXmlConstants.JASPERREPORT_XSD_RESOURCE));
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
41 // schemas.add(getResourceURI(JRXmlConstants.JASPERREPORT_XSD_DTD_COMPAT_RESOURCE));
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
42
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
43 final Collection<ComponentsBundle> components = ComponentsEnvironment.getComponentBundles();
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
44 for (final ComponentsBundle componentManager : components) {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
45 final ComponentsXmlParser xmlParser = componentManager.getXmlParser();
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
46
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
47 String schemaURI;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
48 final String schemaResource = xmlParser.getInternalSchemaResource();
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
49 if (schemaResource != null) {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
50 schemaURI = getResourceURI(schemaResource);
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
51 } else {
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
52 schemaURI = xmlParser.getPublicSchemaLocation();
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
53 }
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
54
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
55 schemas.add(schemaURI);
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
56 }
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
57 return schemas;
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
58 }
e3b3ce32c825 Work on uinfo
gernotbelger
parents:
diff changeset
59 }

http://dive4elements.wald.intevation.org