Mit dem Interface XCompilationFactory und seinen diversen Kompilierungs- und Lademethoden können Sie vorab einen Ausdruck, eine
Abfrage oder ein Style-Sheet kompilieren. Die Java™-Klassen können während der Ausführung
geladen werden, sodass die Kosten für die Kompilierung in der Laufzeit der Anwendung vermieden werden.
Vorgehensweise
- Rufen Sie die Methode getCompilationFactory
für die Klasse XFactory auf, um die XCompilationFactory abzurufen.
Einer bestimmten XFactory-Instanz wird eine XCompilationFactory-Instanz zugeordnet. Beide
Instanzen verwenden gemeinsame registrierte Schemata. Wenn in der XFactory-Instanz ein neues Schema registriert wird, ist es
für die zugeordnete XCompilationFactory-Instanz sichtbar.
- Erstellen Sie eine neue XCompilationParameters-Instanz, indem Sie die
XCompilationFactory-Methode newCompilationParameters aufrufen und die Basisklassennamen für die generierten Klassen übergeben.
Verwenden Sie für die weitere Konfiguration der Parameter die in der folgenden Tabelle beschriebenen set-Methoden.
Tabelle 1. Gültige set-Methoden. Diese set-Methoden sind im Interface
XCompilationParameters definiert und für die Generierung eines vorkompilierten ausführbaren Objekts
gültig.
Gültige set-Methoden für Generierung eines vorkompilierten ausführbaren Objekts |
Beschreibung |
Standardeinstellung |
setPackageName |
Gibt den Paketnamen für die generierten Klassen an. Der Wert muss ein gültiger Name für
ein Java-Paket sein.
|
Java-Standardpaket |
setDirectoryName |
Gibt das Verzeichnis an, in das die generierten Klassen geschrieben werden sollen Das Verzeichnis muss vorhanden sein.
|
Das aktuelle Arbeitsverzeichnis, wie es durch Aufrufen der
Java-Methode System.getProperty
mit der Eigenschaft user.dir abgerufen wird |
Die Methode setClassLoader ist nur gültig, wenn die generierten Klassen mit einer
der Lademethoden geladen werden. Wenn der Klassenlader in der Kompilierzeit gesetzt wird, wird er ignoriert.
- Verwenden Sie eine der Kompilierungsmethoden der XCompilationFactory und übergeben Sie die
XCompilationParameters, um das vorkompilierte ausführbare Objekt zu generieren.
Die Kompilierungsmethoden verwenden den XStaticContext
genau wie die XFactory-prepare-Methoden, um Einstellungen für die Vorbereitungszeit zu konfigurieren.
Denken Sie daran, dass die Kompilierung bei Verwendung der Kompilierungsmethoden implizit ist.
Die Änderung der Einstellung use-compiler mit der XStaticContext-Methode
setUseCompiler hat daher bei diesen Methoden keinen Effekt. Wenn kein statischer Kontext angegeben ist,
werden die Standardeinstellungen verwendet.
Beispiel
Das folgende Basisbeispiel zeigt die Vorkompilierung eines XPath-Ausdrucks.
// Factory erstellen
XFactory factory = XFactory.newInstance();
// Kompilierungsfactory abrufen
XCompilationFactory compileFactory = factory.getCompilationFactory();
// Kompilierungsparameter erstellen
XCompilationParameters params = compileFactory.newCompilationParameters("MyXPath");
params.setPackageName("org.example.myxpath");
// Kompilierte Klassen generieren
compileFactory.compileXPath("/doc/item[@id > 3000]", params);
Geeignete Kompilierungsmethoden
sind auch für XQuery und XSLT verfügbar.