Tag omission

From The Right Wiki
Jump to navigationJump to search

Tag omission is an optional feature to minimize an SGML document. Whenever a tag can be implicitly anticipated by the parser from the structure of the document, the tag can be omitted.[1] The tag omission feature can be generally enabled or disabled in the SGML Declaration. The Document Type Definition is used to enable or disable the tag for a specific tag. Tag omission is one of the main features of SGML which was removed from XML to simplify parsing.

Example

In this example the <document> tag has a distinct order of the tags. The information that <title> needs to come first and is followed by <p> can be used to omit the title start and end tag. Furthermore, the end tag of <p> can also be omitted, because it will be delimited by the next <p> tag or the document end.

<!ELEMENT document - O  (title, p+) >
<!ELEMENT title O O  (#PCDATA)>
<!ELEMENT p     - O  (#PCDATA)>

In this DTD specification, the behavior of the tag omission feature is specified for each element by the two characters following the element name. The values can be - or O for disabling and enabling the features. The first character specifies the behavior of the start tag and the second the behavior of the end tag. A valid document not using tag omission:

<document>
<title>Tag Omission</title>
<p>first paragraph</p>
<p>second paragraph</p>
<p>third paragraph</p>
</document>

A valid document simplified by using tag omission:

<document>
Tag Omission
<p>first paragraph
<p>second paragraph
<p>third paragraph

References