/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2010-2011, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.xml; /** * XML encoder {@link Configuration} that uses {@link AppSchemaResolver} to obtain schemas. * * <p> * * Because we do not know the dependent GML {@link Configuration} when an instance is constructed, * it must be added later using {@link #addDependency(Configuration)}. Failure to do this will * result in bindings not being found at encode time. * * @author Ben Caradoc-Davies (CSIRO Earth Science and Resource Engineering) * * * @source $URL$ */ public class AppSchemaConfiguration extends Configuration { /** * Original (unresolved) schema location. */ private final String originalSchemaLocation; /** * Because we do not know the dependent GML {@link Configuration} until runtime, it must be * specified as a constructor argument. * * @param namespace * the namespace URI * @param schemaLocation * URL giving canonical schema location * @param resolver */ public AppSchemaConfiguration(String namespace, String schemaLocation, AppSchemaResolver resolver) { super(new AppSchemaXSD(namespace, schemaLocation, resolver)); originalSchemaLocation = schemaLocation; ((AppSchemaXSD) getXSD()).setConfiguration(this); } /** * Get the original (unresolved) schema location. * * @return the schema location */ public String getSchemaLocation() { return originalSchemaLocation; } /** * Allow late addition of a dependency such as GML. * * @see org.geotools.xml.Configuration#addDependency(org.geotools.xml.Configuration) */ @Override public void addDependency(Configuration dependency) { super.addDependency(dependency); } }