Un document XML étant susceptible de contenir des ressources externes pointées par des adresses URI, un objet URIResolver peut permettre de résoudre de telles adresses URI, c'est-à-dire, de retourner à l'application l'objet Source pointée par l'adresse URI présente dans les instructions XSLT document(), xsl:import et xsl:include.

import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;

public class GestionnaireURI implements URIResolver {
  private URL baseDefaut;
  public GestionnaireURI() {
    this("http://www.laltruiste.com/");
  }
  public GestionnaireURI(String URIBase) {
    try {
      this.baseDefaut = new URL(URIBase);
    }
    catch (MalformedURLException e) {
      System.out.println("L'adresse URL (" 
                        + URIBase
                        + ") soumise n'est pas correcte !");
    }
  }
  public Source resolve(String href, String base) 
                                         throws TransformerException {
    try {
      URL adresseURL = null;
      if (!href.matches("^[a-z]+://.+$")) {
        if (base == null || base.matches("^[\\s]*$")) {
          adresseURL = new URL(this.baseDefaut, href);
        }
        else {
          URL baseURL = new URL(base);
          adresseURL = new URL(baseURL, href);
        }
      }
      else {
        adresseURL = new URL(href);
      }
      return new StreamSource(adresseURL.openStream());
    }
    catch (Exception e) {
      return null;
    }
  }
}

transformeur.setURIResolver(new GestionnaireURI());

<!-- Feuille de style -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns="http://www.w3.org/TR/xhtml1/strict">
  <xsl:template match="/">
  <html>
    <xsl:include href="meta_description.inc"/>
      <xsl:apply-templates/>
  </html>
  </xsl:template>
  <!-- ... -->
</xsl:stylesheet>

L'objet URIResolver peut être obtenu par une invocation de la méthode getURIResolver().

URIResolver gestURI = transformeur.getURIResolver();

Les objets TransformerFactory peuvent aussi définir un gestionnaire d'URI URIResolver qui servira pour résoudre les adresses URI spécifiées dans les instructions de transformation.

transformeur.setURIResolver(new GestionnaireURI());