Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/common/JRReportSaxParserFactory.java @ 9243:da0bdbcd6f09
salix.supraRegional+Regional results
author | gernotbelger |
---|---|
date | Wed, 11 Jul 2018 13:36:18 +0200 |
parents | e3b3ce32c825 |
children |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.common; import java.util.ArrayList; import java.util.Collection; import java.util.List; import net.sf.jasperreports.engine.component.ComponentsBundle; import net.sf.jasperreports.engine.component.ComponentsEnvironment; import net.sf.jasperreports.engine.component.ComponentsXmlParser; import net.sf.jasperreports.engine.xml.BaseSaxParserFactory; import net.sf.jasperreports.engine.xml.JRXmlConstants; /** * Own sax parser factory, because: * - we do not want xml validation (we know it's good) * - xerxes sax parser complains about two schemas with same namespace... * * @author Domenico Nardi Tironi */ public class JRReportSaxParserFactory extends BaseSaxParserFactory { @Override protected boolean isValidating() { return false; } @Override protected List<String> getSchemaLocations() { final List<String> schemas = new ArrayList<>(); schemas.add(getResourceURI(JRXmlConstants.JASPERREPORT_XSD_RESOURCE)); // schemas.add(getResourceURI(JRXmlConstants.JASPERREPORT_XSD_DTD_COMPAT_RESOURCE)); final Collection<ComponentsBundle> components = ComponentsEnvironment.getComponentBundles(); for (final ComponentsBundle componentManager : components) { final ComponentsXmlParser xmlParser = componentManager.getXmlParser(); String schemaURI; final String schemaResource = xmlParser.getInternalSchemaResource(); if (schemaResource != null) { schemaURI = getResourceURI(schemaResource); } else { schemaURI = xmlParser.getPublicSchemaLocation(); } schemas.add(schemaURI); } return schemas; } }