Inasmuch as it’s something that people ask for, I demoed in the DemoJam at XML Prague that I’d been working on a Relax NG schema and Schematron rules for validating XSL-FO. Most of both the schema and the Schematron were generated directly from the XML source for the XSL 1.1 Recommendation. Additionally, the Schematron used a parser written in XSLT for handling the XSL-FO expression language, so the Schematron could evaluate property values rather than just matching on property value strings.
There was also an oXygen add-on framework in the works, and, naturally, the schema and Schematron also covered Antenna House extensions.
If you look at the screenshot, you’ll see:
- Schematron error for the interrelated
- No error for ‘
column-count="-1 - -2"‘ because the value evaluates as a positive integer.
- oXygen ‘tooltip’ information for
fo:block extracted from the XML for the XSL 1.1 Recommendation.
- The ‘neutral’ and ‘out-of-line’ formatting objects, as well as the XSL 1.1 ‘point’
fo:change-bar-end formatting objects that can appear anywhere inside a
fo:flow, are available where they are allowed.
- Schematron error for the invalid
Inasmuch as it’s useful, when editing an Ant build file, to have a list of the targets in the file and the ability to jump to any of them, my Ant mode at email@example.com:tkg/ant-mode.git currently only does two things: make a “Ant” menu that lists all the targets and associates a RELAX NG compact syntax schema with build files. Continue reading
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
`flymake' runs Jing in the background to find syntax errors in your RELAX NG compact syntax files:
(defun flymake-rnc-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
(list "jing" (list "-c" local-file))))
`imenu-generic-expression` makes using Emacs’ “Imenu” simpler, it’s this triennial’s “Obscure Emacs variable of the week“.