programlisting

programlisting — A literal listing of all or part of a program.

Synopsis

programlisting ::=

Attributes

Common attributes and common linking attributes.

Additional attributes:

  • All of:
    • continuation (enumeration)
      • “continues”
      • “restarts”
    • linenumbering (enumeration)
      • “numbered”
      • “unnumbered”
    • startinglinenumber (integer)
    • xml:space (enumeration)
      • “preserve”
    • language
  • width (nonNegativeInteger)

Additional Constraints

  • If this element is the root element, it must have a version attribute.

Description

A programlisting is a verbatim environment for program source or source fragment listings. The programlistings are often placed in examples or figures so that they can be cross-referenced from the text.

Processing expectations

Formatted as a displayed block. This element is displayed “verbatim”; whitespace and line breaks within this element are significant. The programlistings are usually displayed in a fixed-width font.

Other markup within a programlisting is recognized. Contrast this with systems like LaTeX, in which verbatim environments disable markup recognition. If you want to disable markup recognition, you must use a CDATA section:

1 |<programlisting><![CDATA[This is a programlisting so white       space and line
  |breaks are significant.  But it is also a CDATA
  |section so <emphasis>tags</emphasis> and &entities;
  |are not recognized.  The only markup that is recognized
5 |is the end-of-section marker, which is two
  |"]"'s in a row followed by a >.
  |]]></programlisting>

Two markup tags have special significance in programlistings: co and lineannotation. A co identifies the location of a callout. A lineannotation is a comment, added by the documentor—not the programmer.

Attributes

Common attributes and common linking attributes.

any attribute

Any attribute in any other explicit namespace

continuation

Determines whether line numbering continues from the previous element or restarts

Enumerated values:
“continues”

Line numbering continues from the immediately preceding element with the same name.

“restarts”

Line numbering restarts (begins at 1, usually).

language

Identifies the language (i.e. programming language) of the verbatim content

linenumbering

Determines whether lines are numbered

Enumerated values:
“numbered”

Lines are numbered.

“unnumbered”

Lines are not numbered.

startinglinenumber

Specifies the initial line number

width

Specifies the width (in characters) of the element

xml:space

Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not

Enumerated values:
“preserve”

Whitespace must be preserved.

Parents

These elements contain programlisting: abstract, acknowledgements, annotation, answer, appendix, article, bibliodiv, bibliography, bibliolist, blockquote, callout, calloutlist, caption (db.caption), caution, chapter, colophon, constraintdef, cover, danger, dedication, entry, example, figure, footnote, glossary, glossdef, glossdiv, glosslist, important, index, indexdiv, informalexample, informalfigure, itemizedlist, legalnotice, listitem, meta (db.meta.content), msgexplan, msgtext, note, orderedlist, para, partintro, preface, procedure, programlistingco, qandadiv, qandaset, question, refsect1, refsect2, refsect3, refsection, refsynopsisdiv, result, revdescription, sect1, sect2, sect3, sect4, sect5, section, setindex, sidebar, simplesect, step, taskprerequisites, taskrelated, tasksummary, td, textobject, th, tip, toc, tocdiv, topic, variablelist, warning.

Children

The following elements occur in programlisting: text, abbrev, accel, acronym, alt, anchor, annotation, application, author, biblioref, buildtarget, citation, citebiblioid, citerefentry, citetitle, classname, co, code, command, computeroutput, constant, coref, database, date, editor, email, emphasis (db._emphasis), emphasis (db.emphasis), enumidentifier, enumname, enumvalue, envar, errorcode, errorname, errortext, errortype, exceptionname, filename, firstterm (db._firstterm), firstterm (db.firstterm), footnote, footnoteref, foreignphrase (db._foreignphrase), foreignphrase (db.foreignphrase), function, glossterm (db._glossterm), glossterm (db.glossterm), guibutton, guiicon, guilabel, guimenu, guimenuitem, guisubmenu, hardware, indexterm (db.indexterm.endofrange), indexterm (db.indexterm.singular), indexterm (db.indexterm.startofrange), info (db.titleforbidden.info), initializer, inlineequation, inlinemediaobject, interfacename, jobtitle, keycap, keycode, keycombo, keysym, lineannotation, link, literal, macroname, markup, menuchoice, methodname, modifier, mousebutton, nonterminal, olink, ooclass, ooexception, oointerface, option, optional, org, orgname, package, parameter, person, personname, phrase (db._phrase), phrase (db.phrase), productname, productnumber, prompt, property, quote (db._quote), quote (db.quote), remark, replaceable, returnvalue, revnumber, shortcut, subscript, superscript, symbol, systemitem, tag, templatename, termdef, textobject, token, trademark, type, typedefname, unionname, uri, userinput, varname, wordasword, xref.

See Also

Related elements: computeroutput, lineannotation, literallayout, screen, screenshot, synopsis, userinput.