Two useful XSLT runtime declarative techniques for XSL-FO
XSLT is designed on the use of compile-time declarative techniques. These oblige the stylesheet writer to declare a-priori what the XSLT processor assembles into a state machine. This machine reflexively acts on data according to an expected vocabulary that is pushed at the stylesheet. Designed with features such as declared attribute sets and named templates that are helpful when producing XSL-FO, there are requirements in the real world needing more flexibility than such provides.
NISO STS XML is an XML vocabulary used by multiple Standards Development Organizations (SDOs), each expecting a particular formatted result. National Bodies (NBs) publishing adoptions using XML need to publish the amalgam use of the NISO STS XML of their own and that obtained separately from different SDOs, while preserving each NB's and SDO's appearance for their data found in the result document.
This technical presentation is a case study of useful declarative techniques using applied templates in a novel manner and using tunnel parameters allowing a core reusable stylesheet library to create different XSL-FO effects in a single XSL-FO result produced by a single execution of an XSLT stylesheet.
G. Ken Holman is the XML technical lead at https://RealtaOnline.com, an online provider of purpose-built for standards publishing services supporting NISO XML and its derivatives, STS and JATS, and DocBook XML. The founder of Crane Softwrights Ltd., Ken has contributed to the community for decades sharing his XML, XSLT, and XSL-FO experiences solving real-world problems using open standards.