Syntext Serna and New Trends in XML Content Authoring

Track: Product Presentations

Audience Level: High Level/Technical view

Time: Wednesday, November 16 14:45

Author: Paul Antonov, Syntext, Inc.

Keywords: XML, Authoring, XSL, DITA, Compound Documents, Reuse

Abstract:

Recent trends in XML content authoring demonstrate increasing shift towards advanced reuse patterns and multi-source compound document architectures. This imposes completely new requirements for the XML authoring tools, most of which were originally developed for narrative document authoring and architectures like Docbook or TEI. The key requirement is the ability to provide a single, transparent, directly editable view for such complex documents.

Serna provides several mechanisms for achieving this goal. The most important one is the unique on-the-fly (dynamic) XSL implementation,

which allows to edit multi-source documents in print-like appearance. Various XSLT methods such as document() function, custom XSLT functions defined in plugins, and top-level parameters can be used for merging the multiple data sources. At the same time Serna provides in-line, fragment-level XInclude and entity support with automatic synchronization between the references.

Profiling in Serna is done by changing top-level XSLT stylesheet parameters on the fly. Such parameters can control the whole view or layout of the document, so the Serna profiling abilities are not limited to simple applications like audience profiling.

Another bonus of dynamic XSL is that it allows for non-trivial processing required by architectures like DITA. For example, Serna does class-based matching on the DITA elements while ignoring the element names, thereby eliminating the need to redesign the stylesheet for each new specialization. It also can include topic references in-line, show titles of referenced topics in DITA maps, and can do many other things which are not possible with CSS-driven editor architectures.

Serna includes many other features such as redlining, customizable GUI, C++ and Python scripting APIs, which together provide a compherensive package for the most demanding applications.