rule
processing-instruction pattern condition? action* processing-instruction (named pattern)? (valued pattern)? condition? action*
A rule selected when a processing instruction occurs whose entire text matches the specified pattern and the
specified condition is satisfied. As with other rules, OmniMark performs processing-instruction
rules in the order in which they occur in the program.
processing-instruction
rules are not permitted in cross-translations.
Suppose an SGML document contained "<?newpage>
" processing instructions. An
OmniMark down-translation that processes these processing instructions could contain the following rule:
processing-instruction "newpage" output "\newpage{}"
A corresponding XML document would contain "<?newpage?>
" processing
instructions. An OmniMark down-translation that processes these processing instructions could contain the same
rule as the one we used for SGML, because OmniMark processes XML and SGML with the same syntax.
The following example illustrates recreating the original processing instruction entity reference if a
processing instruction was entered with such a reference, and recreating the processing instruction itself in
all other cases:
processing-instruction named any* => pi-entity-name output "&%g(pi-entity-name);" processing-instruction valued any* => pi-text output "<?%g(pi-text)>"
The pattern following the keyword valued
does not need to match the entire processing instruction
text, only its prefix.