<syntaxdiagram>
A syntax diagram represents the syntax of a command, function call, or programming language statement.
Rendering expectations
Traditionally, the syntax diagram is formatted with "railroad tracks" that connect the units of the syntax together, but the presentation might vary depending on the output media.
Specialization hierarchy
The <syntaxdiagram>
element is specialized from
<fig>
. It is defined in the syntax-diagram domain module, which is
a specialization of the programming domain module.
Content model
<title>
?, (
<fragment>
|
<fragref>
|
<groupchoice>
|
<groupcomp>
|
<groupseq>
|
<synblk>
|
<synnote>
|
<synnoteref>
)*
- Optional
<title>
- Zero or more
Attributes
The following attributes are available on this element: display attributes and universal attributes.
The following attributes are available on this element: universal attributes and the attributes defined below.
@expanse
(display attributes)- Specifies the horizontal placement of the element. The
following values are valid:
- column
- Indicates that the element is aligned with the current column margin.
- page
- Indicates that the element is placed on the left page margin for left-to-right presentation or the right page margin for right-to-left presentation.
- spread
- Indicates that the object is rendered across a multi-page spread. If the output format does not have anything that corresponds to spreads, then spread has the same meaning as page.
- textline
- Indicates that the element is aligned with the left (for left-to-right presentation) or right (for right-to-left presentation) margin of the current text line and takes indentation into account.
- -dita-use-conref-target
- See Using the -dita-use-conref-target value for more information.
For
<table>
, in place of the@expanse
attribute that is used by other DITA elements, the@pgwide
attribute is used in order to conform to the OASIS Exchange Table Model.Some processors or output formats might not support all values.
@frame
(display attributes)- Specifies which portion of a border surrounds the element.
The following values are valid:
- all
- Indicates that a line is rendered at the top, bottom, left, and right of the containing element.
- bottom
- Indicates that a line is rendered at the bottom of the containing element.
- none
- Indicates that no lines are rendered.
- sides
- Indicates that a line is rendered at the left and right of the containing element.
- top
- Indicates that a line is rendered at the top of the containing element.
- topbot
- Indicates that a line is rendered at the top and bottom of the containing element.
- -dita-use-conref-target
- See Using the -dita-use-conref-target value for more information.
Some processors or output formats might not support all values.
@scale
(display attributes)- Specifies the percentage by which fonts are resized in
relation to the normal text size. The value of this attribute
is a positive integer. When used on
<table>
or<simpletable>
, the following values are valid: 50, 60, 70, 80, 90, 100, 110, 120, 140, 160, 180, 200, and -dita-use-conref-target.This attribute is primarily useful for print-oriented display. Some processors might not support all values.
If the
@scale
attribute is specified on an element that contains an image, the image is not scaled. The image is scaled only if a scaling property is explicitly specified for the<image>
element.
Example
This section is non-normative.
The following code sample shows how a
<syntaxdiagram>
can be used to illustrate
the syntax of a basic file-copy command. The initial
COPYF
command is followed by the input directory
and file name. The input is followed by a choice of either an
output directory (and optional file name) or a file name.
<syntaxdiagram>
<title>CopyFile</title>
<groupseq><kwd>COPYF</kwd></groupseq>
<groupcomp><var>input-directory</var><kwd>*INFILE</kwd></groupcomp>
<groupchoice>
<groupcomp><var>output-directory</var><kwd importance="optional">*OUTFILE</kwd></groupcomp>
<groupcomp><kwd>*OUTFILE</kwd></groupcomp>
</groupchoice>
</syntaxdiagram>