<%@ jet package="org.geotools.maven.xmlcodegen.templates" imports="java.util.* java.io.* org.eclipse.xsd.* org.geotools.xml.*" class="SchemaLocationResolverTemplate" %> <% Object[] args = (Object[])argument; XSDSchema schema = (XSDSchema)args[0] ; List includes = (List)args[1]; List namespaces = (List)args[2]; String ns = schema.getTargetNamespace(); String prefix = Schemas.getTargetPrefix( schema ); %> import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.util.XSDSchemaLocationResolver; /** * * @generated */ public class <%=prefix.toUpperCase()%>SchemaLocationResolver implements XSDSchemaLocationResolver { /** * * * * @generated modifiable */ public String resolveSchemaLocation(XSDSchema xsdSchema, String namespaceURI, String schemaLocationURI) { if (schemaLocationURI == null) return null; //if no namespace given, assume default for the current schema if ((namespaceURI == null || "".equals(namespaceURI)) && xsdSchema != null) { namespaceURI = xsdSchema.getTargetNamespace(); } <% for (int i = 0; i < includes.size(); i++) { File include = (File)includes.get(i); String namespace = (String)namespaces.get(i); %> if ("<%=namespace%>".equals(namespaceURI)) { if (schemaLocationURI.endsWith("<%=include.getName()%>")) { return getClass().getResource("<%=include.getName()%>").toString(); } } <% } %> return null; } }