This project provides micro services for XML processing and high-level components for building them.
Services:
- SEED XML Transformer: A RESTful webservice for transforming XML (and even HTML tag soup) with XSLT, XQuery, etc.
- DTS: A RESTful webservice implementing a subset of the endpoints of Distributed Text Services
- SEED XSLT Compiler: Compiles XSLT to SEF (needs a license for the Saxon entreprise edition)
Components:
- SEED API: OpenAPI specs and derived data models and service interfaces, common supporting classes
- SEED XC Transformation Map: compile transformations once ahead of time and make them available for processing subsequent transformation request instantly
- XSLT: a plugin to the SEED XC Transformation Map that provides transformation by XSLT
- XQuery: a plugin similar to the XSLT plugin, but for XQuery
- SPARQL (planned): a plugin similar to XSLT, but for running a SPARQL query against a serialized RDF graph
- ResourceProviders: Plugins for accessing resources (source
documents) from different storage types
- local filesystem: activated per default in dev mode
- URL (planned)
- URN (planned)
- InvenioRDM by DOI (planned)
- RDBMS (planned)
- transformation-info.xsl: XSLT stylesheet for generating configuration files for an XSLT stylesheet or package that is used in an transformation. See documentation.
This project is part of the SEED, which is--choose one--either a recursive acronym for SEED Electronic Editions or a word build from the alphabet D S E (the acronym for digital scholarly editions).
For DTS see dts directory!
Build:
Once after cloning and after each cleanup:
./mvnw -Pdownload-openapi generate-sourcesThen building all components:
./mvnw packageTo run one of the services in dev mode, use -P switch to select a
service profile.
XSLT Compiler:
./mvnw -Pcompiler quarkus:devXML Transformer:
./mvnw -Ptransformer quarkus:devDev-Server will listen on http://localhost:8080
See contributing guide!