|
|||||
Marked sections: INCLUDE | |||||
Related Syntax |
SGML comments and ignore
, cdata
, and rcdata
marked sections are all processed similarly. However, include
marked sections require quite a different approach. Instead of having one rule to process an include
marked section, OmniMark provides two: one for processing the start of a marked section and one for the end. This split is necessary because, unlike other types of marked sections, an include
marked section can start in the context of one element and end in another, and so can overlap the hierarchical structure that ties the components of a parsed SGML document together.
This kind of overlapping cannot happen with ignore
, cdata
, and rcdata
marked sections because they inhibit the recognition of other markup, including start and end tags, within their text. An important consequence of this is that the whole of the text of an ignore
, cdata
, or rcdata
marked section is processed with one set of output streams (as used by the output
action and as available using the #current-output
stream set) and inherits the stream destinations and stream modifiers from the element
or data-content
rule that processes the surrounding content.
The contents of an include
marked section, can be part of one or more elements, the element
and data-content
rules for which each may specify different output destinations and stream modifiers. To avoid all the complexity and user confusion that could result from trying to "merge" the specifications of the rules for include
marked sections and the applicable element
and data-content
rules, include
marked section rules only apply to the start and end of an include
marked section. The include
marked section's rules have no direct influence on the processing of the marked section's content. The two rules are the marked-section include-start
and marked-section include-end
rules.
The OmniMark program can influence the processing of the content of an include
marked section by setting global variables and testing them in element
and data-content
rules, so that those rules can detect when they occur in an include
marked section.
This is an example of an INCLUDE marked section overlapping the element structure of a document:
<title>Part of the title. <![INCLUDE[More of the title. <p>The first paragraph. <p>Part of the second paragraph. ]] More of the second paragraph.
Related Syntax marked-section include-end marked-section include-start |
---- |