sgml-comment
Full Description
swirl
Syntax
  sgml-comment condition?
     action+


Purpose

A rule that is performed whenever an SGML comment is found in an SGML or XML document and the condition (if any) is met. Note that this rule is deprecated, and the markup-comment rule has been introduced to replace it.

The following statements apply to sgml-comment rules:

  • If no sgml-comment rule is performed for an SGML comment, then the comment text is discarded.
  • If an OmniMark program contains no sgml-comment rules, then all comments are discarded.
  • Only one sgml-comment rule may be selected for an SGML comment. That is, either there must only be one sgml-comment rule or, if there is more than one, each rule must have a condition so that only one rule applies to any given comment. It is an error for more than one sgml-comment rule to be selected for an SGML comment.
  • There may be zero, one, or more than one SGML comment in any declaration in an SGML document, including in a comment declaration.
  • The %c operator captures the text of a comment. Either %c or suppress must be used exactly once in an sgml-comment rule. The "u", "l", "s", "h", and "z" format modifiers can be used on a %c operator in an sgml-comment rule.
  • The text of a comment consists of all the characters between, but not including, the two comment delimiters ("--" and "--") and including any record ends or white space within the comment.
  • SGML comments in the SGML Declaration are always ignored, whether or not there are any sgml-comment rules in the OmniMark program. All comments in the document prolog (containing the DTD) and document instance are available for processing.
  • The setting of the sgml-out action determines what happens to record ends in comment text.
  • The presence of sgml-comment rules affects how translate rules match text around a comment in the following fashion:
    1. Any translate rules in progress when the SGML comment is encountered are terminated, and translate rule processing is suspended until the comment is processed.
    2. The comment is processed if one of the sgml-comment rules apply to the comment (that is there is a rule in the currently active groups either with no condition or a condition that succeeds)
    3. The comment is ignored if no sgml-comment rules apply
    4. translate rule processing is resumed.

It is an error for more than one sgml-comment rule to be selected for an SGML comment. This means that:

  • there must be only one rule, or
  • if there is more than one rule, each must have a condition or conditions that, when collectively evaluated, allow only one rule to be selected.

This is an example of sgml-comment rules with conditions:

  sgml-comment when element is p
     output " (note: %c)"
  sgml-comment when element isnt p
     output "   note: %c%n"

Copyright © OmniMark Technologies Corporation, 1988-1998.