Khmer pagination

Inasmuch as Khmer – more specifically, my lack of knowledge about how to best format Khmer – made up a slide in my “XSL-FO meets the Tower of Babel” talk at the MultilingualWeb workshop in Luxembourg last week, Richard Ishida directed me to his page about Khmer, from which I found Franklin Huffman’s “Cambodian System of Writing“, and in the 153-page book, I found half a page on page numbering and section numbering in Khmer. Continue reading “Khmer pagination”

Flymake for RELAX NG compact syntax

Inasmuch as the Wisent parsing and other CEDET/Speedbar/Semantic goodness for RELAX NG compact syntax files that I’m currently working on may not be ready for prime time for a while, here’s something to add to your .emacs so `flymake' runs Jing in the background to find syntax errors in your RELAX NG compact syntax files:

(require 'flymake)
(defun flymake-rnc-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
     	 (local-file (file-relative-name
		      (file-name-directory buffer-file-name))))
    (list "jing" (list "-c" local-file))))
(add-to-list 'flymake-allowed-file-name-masks
(add-hook 'rnc-mode-hook

Schematron Testing Framework poster

Inasmuch as it exists as a PDF file, you, too, can have your own copy of my “Schematron Testing Framework” (stf) poster from XML Prague 2012. I’m happy to say that I received constructive comments about stf from people at XML Prague 2012 who read the poster, and I’ll be looking at incorporating the feedback in the near future.

One suggestion, from George Bina, was to make a single “framework” file for running the tests – and including the test files in the framework file either directly or by using XInclude to refer to external test files – rather than the current decentralised approach. A single framework file would make it easier to make a report of the results, unlike the the current approach where the idea is that the only report you really want to see is “<errors/>” when there are no more errors. A single framework file could also become very large and hard to navigate when there’s lots of very similar tests in it. What do you think?

Schematron Testing Framework

Inasmuch as a suite of Schematron tests contains many contexts where a bug in a document will make a Schematron assert fail or a report succeed, it follows that for any new test suite and any reasonably sized but buggy document set, there will straight away be many assert and report messages produced by the tests. When that happens, how can you be sure your Schematron tests all worked as expected? How can you separate the expected results from the unexpected? What’s needed is a way to characterise the Schematron tests before you start as reporting only what they should, no more, and no less.

stf ( is a XProc pipeline that runs a Schematron test suite on test documents (that you create) and winnows out the expected results and report just the unexpected. stf uses a processing instruction (PI) in each of a set of (typically, small) test documents to indicate the test’s expected asserts and reports: the expected results are ignored, and all you see is what’s extra or missing. And when you have no more unexpected results from your test documents, you’re ready to use the Schematron on your real documents. Continue reading “Schematron Testing Framework”

XSL-FO Meetup at XML Prague 2012

Inasmuch as XML Prague 2012 includes “Pre-conference Friday“, the W3C XML Print and Page Layout Working Group is looking to host a XSL-FO meetup before XML Prague on Friday, 10 February 2012. The format and content will depend on your feedback. Possible ideas include:

  • Update on the XSL-FO 2.0 work
  • ‘Ignite’ lightning talks on XSL-FO
  • XSL-FO tutorial

If you use Twitter, register your interest at the “XSL-FO meetup @ XML Prague 2012” page on, otherwise send me email. If you have suggestions for the format or content, likewise add something to the Lanyrd page or send me email.

Page Regions in XSL-FO

Inasmuch as I used this new sequence of images in my recent XSLT and XSL-FO talk at XML Summer School 2011, here’s an outline of page regions in XSL-FO.

The fo:simple-page-master FO in XSL 1.1 defines the dimensions of a page. A document may have more than one fo:simple-page-master, and the same fo:simple-page-master may be used in multiple contexts. A fo:simple-page-master has up to five regions: fo:region-body, fo:region-start, fo:region-end, fo:region-start, and fo:region-end. Only fo:region-body is required. The adjacent figure shows one arrangement of the regions. Continue reading “Page Regions in XSL-FO”