Skip to content

Technology Stack

FreeXmlToolkit is built using modern Java technologies and libraries to provide a robust, cross-platform XML and JSON processing environment.

Last Updated: March 2026 | Version: 1.6.3

Core Technologies

Java Platform

  • Java Verstemplate-management.mdion: Java 25 with preview features enabled
  • Build System: Gradle 8.x with Kotlin DSL
  • Application Framework: JavaFX 24.0.1 (included in Liberica Full JDK)

UI Framework

  • JavaFX: 24.0.1 for cross-platform desktop GUI (bundled with Liberica Full JDK)
  • FXML: Declarative UI layout with MVC architecture
  • AtlantaFX: 2.1.0 - Modern theme library for enhanced styling
  • RichTextFX: 0.11.7 - Advanced text editing component with syntax highlighting
  • ControlsFX: 11.2.3 - Extended JavaFX controls

Key Libraries

XML Processing

  • Saxon HE: 12.9 - XSLT 3.0, XPath 3.1 and XQuery processing engine
  • Jakarta XML Bind API: 4.0.4 - XML binding and marshalling
  • Apache Xerces: 2.12.2 (exist-db fork) - XSD 1.1 validation with assertions support

JSON Processing

  • Gson: 2.13.2 - JSON parsing and serialization
  • JSONPath: 2.10.0 (Jayway) - JSONPath query language support
  • JSON Schema Validator: 1.5.3 (NetworkNT) - JSON Schema validation (Draft 4-2020-12)

PDF Generation

  • Apache FOP: 2.11 - XSL-FO to PDF transformation
  • Apache PDFBox: 3.0.6 - PDF manipulation
  • Apache Batik: 1.19 - SVG processing and rendering

Digital Signatures

  • Apache Santuario: 4.0.4 - XML Security (XML-DSig)
  • BouncyCastle: 1.83 - Cryptographic operations for XML digital signatures
  • Java Cryptography Architecture (JCA): Native Java crypto support

Office Integration

  • Apache POI: 5.4.1 - Excel export for validation results

Utilities

  • Apache Commons Lang3: 3.20.0 - String manipulation and utilities
  • Apache Commons IO: 2.21.0 - File and IO utilities
  • Apache Commons Text: 1.15.0 - Text algorithms
  • Gson: 2.13.2 - JSON processing

Testing Framework

  • JUnit 5: Unit and integration testing
  • TestFX: 4.0.18 - JavaFX application testing framework
  • Mockito: Mocking framework for unit tests

Logging

  • Log4j2: 2.24.1 - Comprehensive logging framework
  • SLF4J: Logging facade for library compatibility

UI Enhancements

  • Ikonli: 12.4.0 - Icon packs (Bootstrap, FontAwesome, Feather, Win10)
  • CSSFX: 11.5.1 - CSS hot-reloading for development
  • Thymeleaf: 3.1.3 - Template engine for documentation generation

Architecture Components

Model-View-Controller (MVC)

  • Controllers: JavaFX controllers handling UI logic and user interactions
  • Services: Business logic layer for XML operations
  • Domain Models: Data transfer objects and entity representations
  • FXML Views: Declarative UI definitions

XSD Editor V2 Architecture (MVVM Variant)

The XSD Editor V2 uses a sophisticated MVVM variant: - Model Layer: Pure XsdNode tree with PropertyChangeSupport - Command Pattern: All editing operations for undo/redo (24 commands) - Observable Properties: Reactive UI updates without tight coupling - Incremental Rendering: Only changed nodes re-render

Core Services

XmlService

  • XML parsing, validation, and transformation
  • XPath and XQuery execution with context-aware autocomplete
  • Schema validation (XSD 1.0 and 1.1)
  • Document manipulation operations

XsdDocumentationService

  • Schema analysis and documentation generation
  • HTML/SVG documentation output
  • Technical annotation processing (XsdDocInfo)
  • Schema flattening and sample data generation

SchematronService

  • Schematron rule compilation and validation
  • Business rule processing
  • Integration with Saxon XSLT engine

SignatureService

  • XML digital signature creation and validation
  • Certificate management and generation
  • Cryptographic operations using BouncyCastle

IntelliSense System

org.fxt.freexmltoolkit.controls.intellisense/
├── XmlIntelliSenseEngine     # Main orchestrator
├── XsdIntegrationAdapter     # XSD-based suggestions
├── CompletionCache           # Performance caching
├── CompletionContext         # Context-aware completion
└── AttributeValueHelper      # Type-aware attribute editing

org.fxt.freexmltoolkit.controls.v2.editor.intellisense/
├── IntelliSenseEngine        # V2 main engine
├── ContextAnalyzer           # XPath context detection
├── XsdCompletionProvider     # XSD-based completions
└── IntelliSensePopup         # Completion UI

Key Features: - XPath-aware enumeration lookup: Correctly identifies enumeration values based on full XPath context - Context-sensitive suggestions: Different suggestions for elements, attributes, and text content - XSD constraint awareness: Shows only valid options based on schema

Template Engine

org.fxt.freexmltoolkit.service/
├── TemplateEngine            # Template processing
├── SchemaGenerationEngine    # Schema-based generation
├── XPathSnippetRepository    # XPath expression library
└── TransformationProfile     # XSLT transformation profiles

Thread Pool Architecture

Centralized thread management with 5 specialized pools: - CPU Pool: CPU-intensive operations (XSLT, validation) - IO Pool: File operations, network requests - UI Pool: JavaFX Application Thread operations - Scheduled Pool: Periodic tasks (memory monitoring) - Single Pool: Serial task execution

Build Configuration

Gradle Features

  • Java Toolchain: Configured for Java 25
  • Native Packaging: Cross-platform executable generation (jpackage)
  • Dependency Updates: Automated dependency update checking
  • Test Heap: 16GB max configured for large schema tests

Repository Configuration

repositories {
    mavenCentral()
    gradlePluginPortal()
}

Key Dependencies

dependencies {
    // XML Processing
    implementation("net.sf.saxon:Saxon-HE:12.9")
    implementation("jakarta.xml.bind:jakarta.xml.bind-api:4.0.4")
    implementation("org.exist-db.thirdparty.xerces:xercesImpl:2.12.2")

    // PDF Generation
    implementation("org.apache.xmlgraphics:fop:2.11")

    // UI Components
    implementation("org.fxmisc.richtext:richtextfx:0.11.7")
    implementation("io.github.mkpaz:atlantafx-base:2.1.0")
    implementation("org.controlsfx:controlsfx:11.2.3")

    // Security
    implementation("org.apache.santuario:xmlsec:4.0.4")
    implementation("org.bouncycastle:bcpkix-jdk18on:1.83")

    // Testing
    testImplementation("org.junit.jupiter:junit-jupiter:5.x")
    testImplementation("org.testfx:testfx-junit5:4.0.18")
}

Performance Optimizations

Memory Management

  • ExecutorService: Centralized thread pool for heavy operations
  • Memory Monitoring: Built-in memory usage tracking with configurable thresholds
  • Caching Systems: Intelligent caching for schemas, templates, and completion data
  • Lazy Loading: On-demand loading of resources and components

Processing Optimizations

  • Saxon HE Configuration: Optimized XSLT 3.0 and XQuery processing
  • Document Streaming: Memory-efficient XML processing for large files
  • Background Processing: Non-blocking operations to maintain UI responsiveness
  • Incremental Updates: Efficient handling of document changes

Cross-Platform Support

Native Packaging

  • jpackage: Java native packaging tool for platform-specific installers
  • JLink: Custom runtime images for reduced distribution size
  • Platform-Specific Builds: Windows (.exe), macOS (.dmg), and Linux (AppImage)

JavaFX Runtime

JavaFX 24.0.1 is bundled with Liberica Full JDK, providing: - Cross-platform GUI consistency - Hardware-accelerated graphics with automatic fallback to software rendering for maximum compatibility - Web content rendering (WebView) - Swing interoperability

Security Features

For detailed information about security protections, see the Security Features documentation.

Digital Signatures

  • XML-DSig: W3C XML Digital Signature support
  • Certificate Validation: X.509 certificate chain validation
  • Cryptographic Algorithms: Support for RSA, DSA, and ECDSA signatures
  • Key Generation: RSA 2048/4096-bit key pair generation

Input Validation & Attack Prevention

  • XXE Protection: Secure XML parser configuration prevents external entity attacks
  • SSRF Protection: URL validation blocks access to internal networks and metadata endpoints
  • XSLT Extension Security: Java extensions disabled by default to prevent code execution
  • Path Traversal Prevention: File access restricted to prevent directory escape
  • XPath Injection Prevention: Proper parameter escaping in XPath queries
  • Schema Validation: Strict validation against XSD 1.0/1.1 schemas

Development Environment

  • IntelliJ IDEA: Primary development environment
  • JavaFX Scene Builder: Visual FXML design tool
  • Git: Version control system

Code Quality

  • Static Analysis: Built-in code analysis and inspection
  • Unit Testing: Comprehensive test coverage with JUnit 5
  • UI Testing: TestFX for JavaFX component testing
  • Documentation: Javadoc generation for API documentation

Previous Home Next
Templates Home Security

All Pages: XML Editor | XML Features | XSD Tools | XSD Validation | XSLT | FOP/PDF | Signatures | IntelliSense | Schematron | Favorites | Templates | Tech Stack | Security | Licenses