Vous pouvez utiliser l'interface XCompilationFactory et ses diverses méthodes de compilation et de chargement pour compiler à l'avance une feuille de style, une requête ou une expression. Vous pouvez charger les classes Java™ pendant l'exécution pour éviter la compilation pendant la phase d'exécution.
Procédure
- Vous pouvez récupérer l'interface XCompilationFactory en appelant la méthode getCompilationFactory sur la classe XFactory.
Une instance de XCompilationFactory est associée à une instance spécifique de XFactory et ces deux instances partagent des schémas enregistrés. Si un nouveau schéma est enregistré dans l'instance XFactory, elle est immédiatement visible pour l'instance XCompilationFactory associée.
- Créez une instance XCompilationParameters en appelant la méthode newCompilationParameters de l'interface XCompilationFactory et en communiquant le nom de classe de base à utiliser pour les classes générées.
Configurez les paramètres en utilisant les méthodes de définition décrites dans le tableau ci-après.
Tableau 1. Méthodes de définition valides. Les méthodes de définition suivantes sont définies dans l'interface XCompilationParameters et permettent de générer un exécutable précompilé.
Méthodes de définition valides pour générer un exécutable précompilé |
Description |
Valeur par défaut |
setPackageName |
Indique le nom de module des classes générées. La
valeur doit correspondre à un nom de module Java valide.
|
Module par défaut Java |
setDirectoryName |
Indique le répertoire d'enregistrement des classes générées. Ce répertoire doit exister préalablement.
|
Répertoire de travail en cours indiqué par un appel à la méthode Java System.getProperty
avec la propriété user.dir. |
La méthode setClassLoader est utilisable uniquement pour charger les classes générées avec l'une des méthodes de chargement. Si le chargeur de classe est défini au moment de la compilation, il est ignoré.
- Pour générer l'exécutable précompilé, utilisez l'une des méthodes de compilation de l'interface XCompilationFactory en entrant les paramètres de l'interface
XCompilationParameters.
Les méthodes de compilation utilisent l'objet XStaticContext
comme les méthodes de préparation de XFactory pour configurer les paramètres de la phase de préparation.
Notez que la compilation est implicite quand vous utilisez les méthodes de compilation. C'est pourquoi modifier le paramètre use-compiler dans la méthode
setUseCompiler de XStaticContext n'a pas d'effet sur ces méthodes. Si aucun contexte statique n'est spécifié, les paramètres par défaut sont appliqués.
Exemple
L'exemple suivant illustre comment précompiler une expression XPath.
// Create the factory
XFactory factory = XFactory.newInstance();
// Get the compilation factory
XCompilationFactory compileFactory = factory.getCompilationFactory();
// Create the compilation parameters
XCompilationParameters params = compileFactory.newCompilationParameters("MyXPath");
params.setPackageName("org.example.myxpath");
// Generate the compiled classes
compileFactory.compileXPath("/doc/item[@id > 3000]", params);
Des méthodes de compilation appropriées sont également disponibles pour XQuery et XSLT.