Puede utilizar la interfaz XCompilationFactory y sus diversos métodos de compilación y carga para compilar una expresión, una consulta o una hoja de estilo de forma avanzada. Las clases Java™ se pueden cargar en el tiempo de ejecución, evitando así el coste de compilación en el tiempo de ejecución de la aplicación.
Procedimiento
- Recupere XCompilationFactory llamando al método getCompilationFactory en la clase XFactory.
Se asocia una instancia XCompilationFactory a una determinada instancia XFactory, por lo que comparten esquemas registrados. Por lo tanto; si se registra un esquema nuevo con una instancia XFactory, estará visible para la instancia
XCompilationFactory asociada.
- Cree una instancia XCompilationParameters nueva llamando al método
XCompilationFactory newCompilationParameters, que pasa el nombre de la clase base para utilizarlo en las clases generadas.
Configure los parámetros más adelante utilizando los métodos Set que se han descrito en esta tabla.
Tabla 1. Métodos Set válidos. Se trata de métodos definidos en la interfaz
XCompilationParameters y son válidos para generar un ejecutable precompilado.
Métodos Set válidos para generar un ejecutable precompilado |
Descripción |
Predeterminado |
setPackageName |
Especifique un nombre de paquete para las clases generadas. El valor deber ser un nombre de paquete
Java válido.
|
Paquete Java predeterminado |
setDirectoryName |
Especifica el directorio al cual se deberían grabar las clases generadas. El directorio debe existir.
|
El directorio de trabajo actual tal como se recupera llamando al método Java System.getProperty con la propiedad user.dir |
El método setClassLoader solamente es válido cuando se cargan las clases generadas utilizando uno de los métodos de carga. Si el cargados de clases se ha establecido en el tiempo de compilación, se ignora.
- Utilice uno de los métodos de compilación en XCompilationFactory, que pasa XCompilationParameters, para compilar el ejecutable precompilado.
Los métodos de compilación utilizan XStaticContext igual que los métodos de preparación
XFactory para configurar valores de tiempo de preparación.
Observe que la compilación está implícita cuando se utilizan los métodos de compilación; por lo que, si se cambia el valor del compilador de utilización a través del método XStaticContext setUseCompiler no tendrá ningún efecto en estos métodos. Si no se especifica ningún contexto estático, se utilizarán los valores predeterminados.
Ejemplo
A continuación encontrará un ejemplo básico de la precompilación de una expresión 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);
Además, también hay disponibles métodos de compilación adecuados para
XQuery y XSLT.