OpenJade 1.4.2
See the version list below for details.
dotnet add package OpenJade --version 1.4.2
NuGet\Install-Package OpenJade -Version 1.4.2
<PackageReference Include="OpenJade" Version="1.4.2" />
<PackageVersion Include="OpenJade" Version="1.4.2" />
<PackageReference Include="OpenJade" />
paket add OpenJade --version 1.4.2
#r "nuget: OpenJade, 1.4.2"
#:package OpenJade@1.4.2
#addin nuget:?package=OpenJade&version=1.4.2
#tool nuget:?package=OpenJade&version=1.4.2
OpenJade and OpenSP for .NET
A port of James Clark's OpenJade and OpenSP from C++ to C#.
OpenSP is the SGML parser, OpenJade the DSSSL style engine built on it: it
reads an SGML or XML document, applies a DSSSL stylesheet
(ISO/IEC 10179), and writes the result through one of its backends. This
port keeps the names, the algorithms and the structure of the original —
one C# file for each pair of .h and .cxx — so that the C++ sources
remain the reference for how it behaves. They are in upstream/
(OpenJade 1.3.2, OpenSP 1.5.2).
Packages
| Package | What it is |
|---|---|
| OpenSP | the SGML/XML parser |
| OpenJade | the DSSSL engine with the backends of the original: RTF, HTML, TeX, MIF, and the SGML/XML transformation backend |
Both target .NET 10.
Command line
The repository also builds the two programs of the original:
dotnet run --project src/Jade -- -t rtf -d stylesheet.dsl document.xml
dotnet run --project src/Nsgmls -- document.sgm
-t selects the backend: rtf, html, tex, mif, sgml, xml, or
fot for the flow object tree.
What is added to the original
One addition lives in this port itself, because the parser has to take it:
a part of the full page model of ISO/IEC 10179 (12.6.4, 12.6.5). The
original reads define-page-model and define-column-set-model and skips
them, and has no page-sequence or column-set-sequence. Here they are
taken in the features page and multi-column, restricted: a page model has
one region filled top to bottom, a column-set model one column subset with
its columns and balance?; page-sequence takes initial-page-models and
repeat-page-models, column-set-sequence takes column-set-model and the
display characteristics. Everything else of the page model is an error where
it is written, and a characteristic outside the subset is allowed with its
initial value only. It is all in src/OpenJade/Style/PageModel.cs; the
backends get the models through FOTBuilder. The original's backends do not
set them.
Messages of the style engine go to the messenger with their location, as in the original; an error in a stylesheet fails the run.
The other additions live in a project of their own, dazzle-net, which builds on these packages:
- The
directoryflow object class. The transformation backend of the original writes files (entity);directorycreates a directory and makes the entities inside it relative to it, so that a stylesheet can lay out a whole tree of generated files — which is what makes the engine usable as a code generator. - A PDF backend, still rudimentary: paragraphs, headings, lists and tables, enough for a book set with the DocBook stylesheets.
License
The license of the original, see LICENSE.
Copyright © 1994–1998 James Clark, © 1999, 2002 the OpenJade Project,
© 2025 Ralf Schleitzer for the port.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- OpenSP (>= 1.5.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on OpenJade:
| Package | Downloads |
|---|---|
|
Dazzle.Pdf
DSSSL-to-PDF processor using OpenJade: sets the pages itself and writes them with PDFsharp. Includes table support and a clean DssslProcessor API. |
|
|
Dazzle
A library for processing DSSSL stylesheets using the OpenJade style engine |
GitHub repositories
This package is not used by any popular GitHub repositories.