Feature: s9api-basierte SaxonWorkerPool-Variante für XSLT 2.0/3.0
Die JAXP-basierte SaxonWorkerPool-Implementierung ist nur für XSLT 1.0 vollständig spezifiziert und kann bei XSLT 2.0/3.0 zu fehlerhaften Ausgaben führen. Änderungen: - Neue SaxonWorkerPoolS9Api-Klasse mit Saxon s9api für XSLT 2.0/3.0 - XsltVersion-Enum in conf.py (XSLT_1_0, XSLT_2_0_3_0) - ComboBox in Performance-Einstellungen zur XSLT-Version-Auswahl - MainWindow wählt automatisch richtige Worker-Pool-Variante - Verbesserte Classpath-Behandlung und Fehlerbehandlung Standard-Einstellung: XSLT 2.0/3.0 (s9api) - empfohlen für moderne Stylesheets Fallback: XSLT 1.0 (JAXP) - verfügbar für Legacy-Stylesheets 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
+14
-1
@@ -10,7 +10,7 @@ from ui.ApacheFopConfigDialog import ApacheFopConfigDialog
|
||||
from ui.XslDirConfigDialog import XslDirConfigDialog
|
||||
from ui.PostgreSqlConfigDialog import PostgreSqlConfigDialog
|
||||
from ui.PdfProject import PdfProjectDlg
|
||||
from conf import AppSettings, JavaVm, DiffPdf, SaxonJar, ApacheFop, XslDir, Project, PostgreSqlDb
|
||||
from conf import AppSettings, JavaVm, DiffPdf, SaxonJar, ApacheFop, XslDir, Project, PostgreSqlDb, XsltVersion
|
||||
|
||||
|
||||
class AppSettingsDlg(QDialog):
|
||||
@@ -282,6 +282,12 @@ class AppSettingsDlg(QDialog):
|
||||
# SaxonWorkerPool-Checkbox setzen
|
||||
self.ui.checkBoxUseSaxonPool.setChecked(self.settings.use_saxon_worker_pool)
|
||||
|
||||
# XSLT-Version ComboBox setzen
|
||||
if self.settings.saxon_xslt_version == XsltVersion.XSLT_1_0:
|
||||
self.ui.comboBoxXsltVersion.setCurrentIndex(0)
|
||||
else: # XSLT_2_0_3_0
|
||||
self.ui.comboBoxXsltVersion.setCurrentIndex(1)
|
||||
|
||||
# FopWorkerPool-Checkbox setzen
|
||||
self.ui.checkBoxUseFopPool.setChecked(self.settings.use_fop_worker_pool)
|
||||
|
||||
@@ -740,6 +746,13 @@ class AppSettingsDlg(QDialog):
|
||||
# Performance-Einstellungen übernehmen
|
||||
self.settings.max_workers = self.ui.spinBoxWorkerCount.value()
|
||||
self.settings.use_saxon_worker_pool = self.ui.checkBoxUseSaxonPool.isChecked()
|
||||
|
||||
# XSLT-Version übernehmen
|
||||
if self.ui.comboBoxXsltVersion.currentIndex() == 0:
|
||||
self.settings.saxon_xslt_version = XsltVersion.XSLT_1_0
|
||||
else:
|
||||
self.settings.saxon_xslt_version = XsltVersion.XSLT_2_0_3_0
|
||||
|
||||
self.settings.use_fop_worker_pool = self.ui.checkBoxUseFopPool.isChecked()
|
||||
|
||||
self.settings.save()
|
||||
|
||||
Reference in New Issue
Block a user