org.expath.pkg.repo.resolver.PkgLSResourceResolver Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pkg-java Show documentation
Show all versions of pkg-java Show documentation
Java Library implementing the core EXPath Packaging features
/****************************************************************************/
/* File: PkgLSResourceResolver.java */
/* Author: F. Georges */
/* Company: H2O Consulting */
/* Date: 2009-10-19 */
/* Tags: */
/* Copyright (c) 2009 Florent Georges (see end of file.) */
/* ------------------------------------------------------------------------ */
package org.expath.pkg.repo.resolver;
import java.io.IOException;
import org.expath.pkg.repo.URISpace;
import org.expath.pkg.repo.Universe;
import org.w3c.dom.ls.LSInput;
import org.w3c.dom.ls.LSResourceResolver;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* Implementation of {@link LSResourceResolver} based on a repository and a URI space.
*
* @author Florent Georges
*/
public class PkgLSResourceResolver
implements LSResourceResolver
{
public PkgLSResourceResolver(Universe universe, URISpace space)
{
myResolver = new PkgEntityResolver(universe, space);
}
@Override
public LSInput resolveResource(String type, String ns, String pub, String sys, String base)
{
try {
InputSource src = null;
// first try @namespace if any
if (ns != null) {
src = myResolver.resolveEntity(null, ns);
}
// then @schemaLocation if any (and @namespace failed)
if (src == null && sys != null) {
src = myResolver.resolveEntity(null, sys);
}
// if not resolved, return null, or return a DOM input
if (src == null) {
return null;
}
else {
return new PkgLSInput(src);
}
}
catch (SAXException ex) {
// TODO: ...
System.err.println("TODO: Error management. Something wrong in DOM resolver...");
ex.printStackTrace();
return null;
}
catch (IOException ex) {
// TODO: ...
System.err.println("TODO: Error management. Something wrong in DOM resolver...");
ex.printStackTrace();
return null;
}
}
private EntityResolver myResolver;
}
/* ------------------------------------------------------------------------ */
/* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS COMMENT. */
/* */
/* The contents of this file are subject to the Mozilla Public License */
/* Version 1.0 (the "License"); you may not use this file except in */
/* compliance with the License. You may obtain a copy of the License at */
/* http://www.mozilla.org/MPL/. */
/* */
/* Software distributed under the License is distributed on an "AS IS" */
/* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See */
/* the License for the specific language governing rights and limitations */
/* under the License. */
/* */
/* The Original Code is: all this file. */
/* */
/* The Initial Developer of the Original Code is Florent Georges. */
/* */
/* Contributor(s): none. */
/* ------------------------------------------------------------------------ */
© 2015 - 2024 Weber Informatics LLC | Privacy Policy