XProc Visualizer / alpha
XProc pipeline as Mermaid flowchart
An XSLT 1.0 transformation can be applied to your XProc 1.0 to create either of two forms of Mermaid notation, representing the pipeline as a flowchart or as a state diagram. The code can be adjusted in place, rendered dynamically on the page, and copied out into your Mermaid-aware application, wiki or site.
Feedback on this demonstration may be directed to the public Github Issues board. Currently the application does only some basics: examples of real-life XProc illustrating requirements are especially welcome.
flowchart TB xproc[(XPROC)]
About XProc
XProc is An XML Pipeline Language, a declarative syntax for describing and architecting data processing pipelines. Currently this application is coded to (a subset of) W3C XProc 1.0 -- with apologies, as XProc 3.0 is still on our horizon.
Also note this is early and many pipeline features (steps) have not yet been tested or coded. There has been testing on some basic examples but there is more to be done.
Information on XProc can be found at XProc.org, a web presence maintained by the current organizers and developers.
About Mermaid
Mermaid is an award-winning open source project providing diagramming and charting tools in Javascript for use in web-based applications. Inspired by Markdown, the basic concept is to design and deploy a text-based syntax to represent the conceptual structures or abstractions that constitute elements for a formal visual representation, such as a flowchart, entity relationship diagram, or state diagram. In this demonstration, an XProc pipeline is translated into Mermaid flowchart syntax.
For best results
In both renderings, the syntax written to the screen is a simple, if partial, reflection of the XProc source, with no additional information. Consequently some of the graphics it makes can easily be improved with one or two touches to the code. See the Mermaid documentation on either flowchart or state diagram renditions. Try adjusting:
- For example, in the flowchart, the relative order of instructions: by moving a line item up or down relative to others you can affect its placement.
- If you have two paths crossing, try lengthening one of them, for example by changing
-->
to--->
in your Mermaid. Every extra hyphen adds a 'step' of vertical space to a node in the diagram.---->
will indicate a path should take two extra steps, etc. Often, one or two of these correctly placed in your diagram will untangle paths.
Is this site a demonstration, a service or both?
This application is maintained on Github, with documentation. Like other applications on this site, this resource is provided by NIST primarily as an educational demonstration of how a service can be created, not as a fully operational service.
No guarantees or warranties are provided by NIST that the demo service will be maintained, updated, upgraded, or always available. While NIST intends to keep the demonstration running, NIST also reserves the right to stop supporting it, or to remove or rework it, without prior warning.
The best way to ensure access to the application over the long term is to replicate it. See the project wiki page on Maintenance and Support for more details on how these projects are designed to be standards-based, accessible, portable, adaptable over time and unhindered by practical impediments to wide deployment, either technical or legal.