The delivery format of XMLPaper is a self-service project template. This project template does not only contain an outline of a paper to be filled in, but also configuration files for all the required tools and services so that authors can start working on the conference paper right away.
In order to create an affordable solution we reused off-the-shelf tools and services and made them work together without having the author set every up thing. To make it easy to create a portable configuration that works without any software requirements for authors XMLPaper uses mostly cloud services.
XMLPaper allows authors, just by clicking a button, to copy the project template to their Git account and deploy a web-based dashboard for working on the paper.
The Dashboard contains buttons to perform the following tasks:
Preview the latest committed version of the paper in PDF format.
A link that can be used to edit the paper in Oxygen XML Web Author.
The project includes conference-specific editor configuration:
It validates the paper source "as-you-type" according to the conference-specific constraints expressed as Schematron rules.
It includes inline actions and hints to help authors create the correct XML structure
The change tracking and commenting features help co-authors collaborate. They can also be used to send document for review before submission.
View the XML source code in the Git repository. Most repository hosting services can be used for collaboration between co-authors - they offer version tracking, issue management, and other collaboration features.
In this repository, users can find an .xpr
project file for Oxygen XML Editor which configures the editor to match
the conference requirements similar with the web editor. It also
includes a Transformation Scenario that generates a PDF preview. Using
this editor authors can edit and generate a PDF preview of their paper
while offline.
Download the paper in XML format and all supporting resources
(xi:include
d files, images, etc.)
The back-end of the solution is composed of several services as depicted in the diagram below:
The Dashboard is a static web page with hyperlinks to the web interfaces of the other services. It is generated during the initial setup since the links depend on the location of the Git repository.
The Git repository stores the source of the paper together with configuration files and build scripts.
The web-based editor can be opened using a link on the Dashboard. It connects to the Git repository to read the paper source and to commit it every time the users saves.
Every time an user commits a file in the Git repository, a git hook triggers a new job on the build server. This job connects back to the Git repository to pull the entire repository and then performs the following tasks:
Generates the PDF preview.
This task involves downloading several tools such as Saxon 6.5, DocBook XSL, XSLT-HL (for syntax highlight in code-blocks), and Apache FOP. It also involves applying some custom XSLT and configuring the above-mentioned tools.
Example 1. PDF Generation configuration
java -cp "bin/saxon.jar:bin/docbook/xsl/extensions/xslthl.jar" \ com.icl.saxon.StyleSheet processed_paper.xml \ bin/docbook/xsl/fo/docbook_custom.xsl \ admon.graphics=1 \ admon.graphics.extension=.png \ admon.graphics.path=bin/docbook/css/img/ \ "body.font.family=Times New Roman, Tahoma, Batang, serif" \ callout.graphics.path=bin/docbook/xsl/images/callouts/ \ draft.mode="no" \ fop.extensions=0 \ fop1.extensions=0 \ highlight.source=1 \ highlight.xslthl.config=\ file://`pwd`/bin/docbook/xsl/hl/xslthl-config.xml \ "monospace.font.family=monospace, Courier New, Consolas, Arial" \ paper.type=A4 \ "title.font.family=Arial, Tahoma, Batang, sans-serif" \ > out/paper.fo
However, configuring the publishing pipeline is
the job of the conference organizers. Authors just save in
the editor and then a build starts which in turn uploads the
generated PDF to the web server.
Generates the deliverable archive containing the XML source and all its referenced files, for example images.
Generates the Dashboard web page. This page is static and does not change over time. However, its links depend on the URL of the Git repository, so it has to be generated during the first build.
Pushes everything on the web hosting service. In the current implementation the web hosting and build server services are part of the same product.