Utilisation d'un programme de résolution de source pendant la préparation
Si vous indiquez un programme de résolution de source au moment de la préparation d'un exécutable, vous pouvez indiquer au processeur comment interpréter les URI référencés à cet instant.
Procédure
>Ceci indique au processeur comment interpréter les URI référencés à cet instant, dans les directives xsl:import et xsl:include d'une feuille de style par exemple.
Le comportement par défaut pour résoudre la source consiste à interpréter les URI relatifs par rapport à l'URI de base de l'expression, de la requête ou de la feuille de style, quand cet URI de base est disponible, ou à les interpréter comme des chemins de fichier par rapport au répertoire de travail en cours, dans le cas contraire. Les URI absolus sont utilisés tels quels.
Pour modifier ce comportement, créez une classe Java™ pour implémenter l'interface XSourceResolver et enregistrez celle-ci dans le contexte statique avant de préparer la feuille de style.
XFactory factory = XFactory.newInstance();
// Enregistrer le programme de résolution de source dans le contexte statique
XStaticContext staticContext = factory.newStaticContext();
XSourceResolver sourceResolver=new ASourceResolver(replacementBase);
staticContext.setSourceResolver(sourceResolver);
// Préparer la feuille de style
XSLTExecutable executable = factory.prepareXSLT(new StreamSource(stylesheetFile), staticContext);
XDynamicContext dynamicContext = factory.newDynamicContext();
// Exécuter la feuille de style
XSequenceCursor cursor = executable.execute(new StreamSource(inputFile), dynamicContext);