ODS MARKUP Statement

Opens, manages, or closes the MARKUP destination, which produces SAS output that is formatted using one of many different markup languages.
Valid in: Anywhere
Category: ODS: Third-Party Formatted
Interactions: The output type is determined by the TAGSET | TYPE= option, which specifies the type of markup language that is applied to the output.

By default, when you execute a procedure that uses the FORMCHAR system option (for example, PROC PLOT or PROC CHART), ODS formats the output in SAS Monospace font. If you are creating output that will be viewed in an operating environment where SAS software is not installed, this output will not display correctly. This is because without SAS, the SAS Monospace font is not recognized. To make your document display correctly, include the following statement before your SAS program:

OPTIONS FORMCHAR="|----|+|---+=|-/\<>*"; 

Syntax

ODS MARKUP <(<ID=> identifier)> < action> ;

Summary of Optional Arguments

Send output directly to a Web server instead of writing it to a file
Open multiple instances of the same destination at the same time
Specify that no ending markup language source code be added to the output file.
Specify that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Insert into the metadata of a file, the text string that you specify as the text to appear in the browser window title bar.
Specify a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Specify a unique base name for the anchor tag that identifies each output object in the current body file
Specify which applet to use to view ODS HTML output
Specify attributes to write between the tags that generate dynamic graphics output
Specify text to use as the first part of all links and references that ODS creates in output files
Open a markup family destination and specify the file that contains the primary output that is created by the ODS statement
Specify the character set to be generated in the META declaration for the HTML output
Close the destination and the file that is associated with it
Open the HTML destination and specify the file that contains relevant style information
Create a file path that can be used by the GOPTIONS devices
Open the HTML destination and specify the file that contains a table of contents for the output
Specify a cascading style sheet to apply to your output
Specify a device for the output destination
Override the encoding for input or output processing (transcodes) of external files
Specify an event and the value for event variables that is associated with the event
Exclude output objects from the destination
Specify the file that integrates the table of contents, the page contents, and the body file
Control the location where footnotes are printed in the graphics output
Specify the location for all graphics output that is generated while the destination is open
Control the location where titles are printed in the graphics output
Specify HTML tags to place between the < HEAD> and < /HEAD> tags in all the files that the destination writes to
Specify the image resolution for graphical output
Specify HTML code to use as the <META> tag between the <HEAD> and </HEAD> tags in all the HTML files that the destination writes to
Create a new body file at the specified starting point
Specify tagset-specific suboptions and a named value
Specify that the output from the destination be added to an ODS package
Open the HTML destination and specify the file that contains a description of each page of the body file, and contains links to the body file
Write the specified parameters between the tags that generate dynamic graphics output
Specify the location of an aggregate storage location or a SAS catalog for all markup files
Specify an alternative character or string to separate lines in the output files
Select output objects for the destination
Write to the SAS log the current selection or exclusion list for the destination
Specify a style definition to use in writing output files
Open the HTML destination and place style information for output into an external file, or read style sheet information from an existing file
Specify a keyword value for a tagset. A tagset is a template that defines how to create a markup language output type from a SAS format.
Insert text into your document
Specify a translation table to use when transcoding a file for output

Actions

CLOSE
closes the destination and any files that are associated with it. For Printer destinations, you cannot print the file until you close the destination.
Tip:When an ODS destination is closed, ODS does not send output to that destination. Closing an unneeded destination conserves system resources.
EXCLUDE exclusion(s)| ALL | NONE
excludes one or more output objects from the destination.
Default:NONE
Restriction:A destination must be open for this action to take effect.
SELECT selection(s) | ALL | NONE
selects output objects for the specified destination.
Default:ALL
Restriction:A destination must be open for this action to take effect.
SHOW
writes the current selection list or exclusion list for the destination to the SAS log.
Restriction:The destination must be open for this action to take effect.
Tip:If the selection or exclusion list is the default list (SELECT ALL), then SHOW also writes the entire selection or exclusion list. For information about selection and exclusion lists, see Selection and Exclusion Lists.

Optional Arguments

ANCHOR= 'anchor-name'
specifies a unique base name for the anchor tag that identifies each output object in the current body file.
Each output object has an anchor tag for the contents, page, and frame files to reference. The links and references, which are automatically created by ODS, point to the name of an anchor. Therefore, each anchor name in a file must be unique.
anchor-name
is the base name for the anchor tag that identifies each output object in the current body file.
ODS creates unique anchor names by incrementing the name that you specify. For example, if you specify ANCHOR= 'TABULATE', then ODS names the first anchor tabulate. The second anchor is named tabulate1; the third is named tabulate2, and so on.
Restriction:Each anchor name in a file must be unique.
Requirement:You must enclose anchor-name in quotation marks.
Interaction:If you open a file to append to it, be sure to specify a new anchor name to prevent writing the same anchors to the file again. ODS does not recognize anchors that are already in a file when it opens the file.
Tips:You can change anchor names as often as you want by specifying the ANCHOR= option in a markup family statement anywhere in your program. After you have specified an anchor name, it remains in effect until you specify a new one.

Specifying new anchor names at various points in your program is useful when you want other Web pages to link to specific parts of your markup language output. Because you can control where the anchor name changes, you know in advance what the anchor name will be at those points.

ARCHIVE='string'
specifies which applet to use to view the ODS HTML output. The ARCHIVE= option is valid only for the GOPTIONS java device.
The string must be one that the browser can interpret. For example, if the archive file is local to the computer that you are running SAS on, you can use the FILE protocol to identify the file. If you want to point to an archive file that is on a Web server, use the HTTP protocol.
Default:If you do not specify ARCHIVE= and you are using the JAVA device driver, ODS uses the value of the SAS system option APPLETOC=. There is no default if you are using the ACTIVEX device driver.
Requirements:You must enclose string in quotation marks.

The ARCHIVE attribute is a feature of Java 1.1. Therefore, if you are using the Java device driver, your browser must support this version of Java. Both Internet Explorer 4.01 and Netscape 4.05 support Java 1.1.

Interaction:Use ARCHIVE= in conjunction with SAS/GRAPH procedures and the DEVICE=JAVA or DEVICE=ACTIVEX option in the GOPTIONS statement.
Tips:Typically, this option should not be used, because the SAS server automatically determines the correct SAS/GRAPH applets to view the ODS HTML output. However, if you have renamed the JAR files, or have other applets with which to view the ODS HTML output, this option enables you to access these applets.

Use the CODEBASE= option to specify the file path. It is recommended that you do not put a file path in your ARCHIVE= option.

The value of APPLETOC= points to the location of the Java archive files that ship with the SAS system. To find out what the value of this option is, you can either look in the Options window in the Files folder under Environment Control, or you can submit the following procedure step:

proc options option=appletloc;
run;

ATTRIBUTES= (attribute-pair-1 ... attribute-pair-n)
writes the specified attributes between the tags that generate dynamic graphics output.
attribute-pair
specifies the name and value of each attribute. attribute-pair has the following form:
'attribute-name'= 'attribute-value'
attribute-name
is the name of the attribute.
attribute-value
is the value of the attribute.
Requirement:You must enclose attribute-name and attribute-value in quotation marks.
Interaction:Use the ATTRIBUTES= option in conjunction with SAS/GRAPH procedures and with the DEVICE=JAVA, JAVAMETA, or ACTIVEX options in the GOPTIONS statement.
See:SAS/GRAPH: Reference for valid attributes for the Graph Applet, the Map Applet, the Contour Applet, and the MetaView Applet.
BASE= 'base-text'
specifies the text to use as the first part of all links and references that ODS creates in the output files.
base-text
is the text that ODS uses as the first part of all links and references that ODS creates in the file.
Consider this specification:
BASE= 'http://www.your-company.com/local-url/'
In this case, ODS creates links that begin with the string http://www.your-company.com/local-url/. The appropriate anchor-name completes the link.
Requirement:You must enclose base-text in quotation marks.
BODY= 'file-specification' (suboption(s))
opens a markup family destination and specifies the file that contains the primary output that is created by the ODS statement. These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
Restriction:The BODY=fileref option cannot be used in conjunction with the NEWFILE= option.
See:For more information, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
(suboption(s))
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

Alias:FILE=
Interaction:Using the BODY= option in an ODS markup family statement that refers to an open ODS markup destination forces ODS to close the destination and all associated files, and then to open a new instance of the destination. For more information see Opening and Closing the MARKUP Destination .
Note:For some values of TAGSET=, this output will be an HTML file, for other TAGSET= values, the output will be an XML file, and so on.
CHARSET= character-set
specifies the character set to be generated in the META declaration for the HTML output.
See:For more information, see CHARSET= Option in SAS National Language Support (NLS): Reference Guide.
CODE= 'file-specification' <(suboption(s))>
opens a markup family destination and specifies the file that contains relevant style information, such as XSL (Extensible Stylesheet Language). These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:Fore more information, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
suboption(s)
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

CODEBASE='string'
specifies the location of the executable Java applet or the ActiveX control file. string is specified as a pathname or as a URL. The CODEBASE file path option has two definitions, depending on the GOPTIONS device used.
When you generate Web presentations with the JAVA and ActiveX device drivers, SAS generates HTML pages that automatically look for the JAVA archive files or the ActiveX control file in the default installation location.
For the ActiveX device:
If you use the ActiveX device driver with ODS to generate output containing an ActiveX control, then specify the CODEBASE= option in the ODS statement. The value of the CODEBASE= option should include the location and the version of the EXE file.
Tip:You do not need to specify the CODEBASE= option with the DEVICE=ACTIVEX option unless the users that view your output do not have the ActiveX control installed on their machine. When users that do not have the control installed view your output, they are prompted to download the control.
See:SAS/GRAPH: Reference for information about specifying the location of control and applet files using the CODEBASE= and ARCHIVE= options.
For the Java device:
If you use the Java device driver with ODS to generate output containing a SAS/GRAPH applet, specify the path to the JAR file with the CODEBASE= option in the ODS statement.
When you specify DEVICE=JAVA, the users that view your output must have access to the appropriate Java applet. By default, SAS sets the value of CODEBASE= to refer to the executable file for the applet that is automatically installed with SAS. The default location of the SAS Java archive files is specified by the APPLETLOC= system option. You do not need to specify the CODEBASE= option if both of the following conditions are true.
  • The default location is accessible by users who will be viewing your Web presentation.
  • The SAS Java archive is installed at that location.
Tip:Specify only the directory of the JAR file. The CODEBASE= location can be specified as a pathname or as a URL
See:SAS/GRAPH: Reference for information about specifying the location of control and applet files using the CODEBASE= and ARCHIVE= options.
CONTENTS= 'file-specification' <(suboption(s))>
opens a markup family destination and specifies the file that contains a table of contents for the output. These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:For more information, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
suboption(s)
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

CSSSTYLE= 'file-specification'<(media-type-1<…media-type-10>)>
specifies a cascading style sheet to apply to your output.
file-specification
specifies a file, fileref, or URL that contains CSS code..
file-specification is one of the following:
"external-file"
is the name of the external file.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:For more information, see FILENAME Statement in SAS Statements: Reference.
"URL"
is a URL to an external file.
Requirement:You must enclose external-file in quotation marks.
(media-type-1<.. media-type-10>)
specifies one or more media blocks that corresponds to the type of media that your output will be rendered on. CSS uses media type blocks to specify how a document is to be presented on different media: on the screen, on paper, with a speech synthesizer, with a braille device, and so on.
The media block is added to your output in addition to the CSS code that is not contained in any media blocks. By using the media-type suboption, in addition to the general CSS code, you can import the section of a CSS file intended only for a specific media type.
Default:If no media-type is specified in your ODS statement, but you do have media types specified in your CSS file, then ODS uses the Screen media type.
Range:You can specify up to ten different media types.
Requirements:You must enclose media-type in parentheses.

You must specify media-type next to the file-specification specified by the CSSSTYLE= option.

Tip:If you specify multiple media types, all of the style information in all of the media types is applied to your output. However, if there is duplicate style information in different media blocks, then the styles from the last media block are used.
Restriction:The CSSSTYLE= option does not affect SAS/GRAPH output.
Requirement:CSS files must be written in the same type of CSS produced by the ODS HTML statement. Only class names are supported, with no IDs and no context-based selectors. To view the CSS code that ODS creates, you can do one of the following:
  • Specify the STYLESHEET= option.
  • View the source of an HTML file and look at the code between the <STYLE> </STYLE> tags at the top of the file.
For an example of a valid ODS CSS file, see Applying a CSS File to ODS Output.
Interaction:If both the STYLE= option and the CSSSTYLE= option are specified on an ODS statement, the option specified last is the option that is used.
DEVICE= device-driver
specifies the name of a device driver. ODS automatically selects an optimal default device for each open output destination.
The following table lists the default devices for the most common ODS output destinations. These default devices are used when graphics are created using SAS/GRAPH or ODS Graphics. For a complete list of supported devices and file types, see Supported File Types for Output Destinations.
Default Devices for ODS Output Destinations
Output Destination
Default Device
HTML
PNG
LISTING
PNG
Measured RTF
PNG
RTF
PNG
PCL
Scalable Vector Graphics (SVG)
PDF
Scalable Vector Graphics (SVG)
POSTSCRIPT
PNG
PRINTER
Host Specific Default Printer
Markup Tagsets
All markup family tagsets have the default value built in.
Restriction:When you specify a device in an ODS destination statement, do not specify the ACTIVEX, ACTXIMG, JAVA, or JAVAIMG devices.
Tip:Specifying a device on the ODS DEVICE= option takes precedence over the SAS global option and the graphics option.
See:DEVICE= System Option in SAS System Options: Reference. For information about selecting device drivers, see Using Graphics Devices in SAS/GRAPH: Reference.
ENCODING= local-character-set-encoding
overrides the encoding for input or output processing (transcodes) of external files.
See:For information about the ENCODING= option, see ENCODING System Option: UNIX, Windows, and z/OS in SAS National Language Support (NLS): Reference Guide.
EVENT=event-name (FILE= | FINISH | LABEL= | NAME= | START | STYLE= |TARGET= | TEXT= | URL= )
specifies an event and the value for event variables that are associated with the event.
(FILE= BODY | CODE | CONTENTS | DATA | FRAME | PAGES | STYLESHEET);
triggers one of the known types of output files that correspond to the BODY=, CODE=, CONTENTS=, FRAME=, PAGES=, and STYLESHEET= options.
(FINISH)
triggers the finish section of an event.
See:For information about events, see Understanding Events.
(LABEL='variable-value')
specifies the value for the LABEL event variable.
Requirement:variable-value must be enclosed in quotation marks.
See:For information about the LABEL event variable, see Event Variables.
(NAME='variable-value')
specifies the value for the NAME event variable.
Requirement:variable-value must be enclosed in quotation marks.
See:For information about the NAME event variable, see Event Variables.
(START)
triggers the start section of an event.
See:For information about events, see Understanding Events.
(STYLE=style-element)
specifies a style element.
See:For information about style elements, see Style Attributes Overview.
(TARGET='variable-value')
specifies the value for the TARGET event variable.
Requirement:variable-value must be enclosed in quotation marks.
See:For information about the TARGET event variable, see Event Variables.
(TEXT='variable-value')
specifies the value for the TEXT event variable.
Requirement:variable-value must be enclosed in quotation marks.
See:For information about the TEXT event variable, see Event Variables.
(URL='variable-value')
specifies the value for the URL event variable.
Requirement:variable-value must be enclosed in quotation marks.
See:For information about the URL event variable, see Event Variables.
Default:(FILE='BODY')
Requirement:The EVENT= option's suboptions must be enclosed in parentheses.
FRAME= 'file-specification' <(suboption(s))>
opens a markup family destination and, for HTML output, specifies the file that integrates the table of contents, the page contents, and the body file. If you open the frame file, then you see a table of contents, a table of pages, or both, as well as the body file. For XLM output, FRAME= specifies the file that contains the DTD. These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:For more information, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
suboption(s)
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

Restriction:If you specify the FRAME= option, then you must also specify the CONTENTS= option, the PAGE= option, or both.
GFOOTNOTE | NOGFOOTNOTE
controls the location where footnotes are printed in the graphics output.
GFOOTNOTE
prints footnotes that are created by SAS/GRAPH, the SGPLOT procedure, the SGPANEL procedure, or the SGSCATTER procedure. The footnotes appear inside the graph borders.
NOGFOOTNOTE
prints footnotes that are created by ODS, which appears outside the graph borders.
Default:GFOOTNOTE
Restrictions:Footnotes that are displayed by a markup language statement support all SAS/GRAPH FOOTNOTE statement options. The font must be valid for the browser. Options that ODS cannot handle, such as text angle specifications, are ignored. For details about the SAS/GRAPH FOOTNOTE statement, see FOOTNOTE Statement in SAS/GRAPH: Reference.

This option applies only to SAS programs that produce one or more device-based graphics, or graphics created by the SGPLOT procedure, the SGPANEL procedure, or the SGSCATTER procedure.

GPATH= 'aggregate-file-storage-specification' | fileref | libref.catalog (URL= 'Uniform-Resource-Locator' | NONE)
specifies the location for all graphics output that is generated while the destination is open. Use this option when you want to write graphics output files to a location different that specified by the PATH= option for markup files. If you specify an invalid filename, the ActiveX and Java devices send output to the default filename. Other devices create the file as a directory and write output to that directory using the default filename. For more information about how ODS names catalog entries and external files, see SAS/GRAPH: Reference.
'aggregate-file-storage-location'
specifies an aggregate storage location such as directory, folder, or partitioned data set.
Requirement:You must enclose aggregate-file-storage-location in quotation marks.
fileref
is a file reference that has been assigned to an aggregate storage location. Use the FILENAME statement to assign a fileref.
Interaction:If you specify a fileref in the GPATH= option, then ODS does not use information from the GPATH= option when it constructs links.
See:For information about the FILENAME statement, see FILENAME Statement in SAS Statements: Reference.
libref.catalog
specifies a SAS catalog to write to.
URL= 'Uniform-Resource-Locator' | NONE
specifies a URL for file-specification.
Uniform-Resource-Locator
is the URL that you specify. ODS uses this URL instead of the filename in all the links and references that it creates to the file.
Requirement:You must enclose Uniform-Resource-Locator in quotation marks.
NONE
specifies that no information from the GPATH= option appears in the links or references.
Tip:This option is useful for building output files that can be moved from one location to another. If the links from the contents and page files are constructed with a simple URL (one name), then they will resolve, as long as the contents, page, and body files are all in the same location.
Default:If you omit the GPATH= option, then ODS stores graphics in the location that is specified by the PATH= option. If you do not specify the PATH= option, then ODS stores the graphics in the current directory. For more information, see the PATH= option.
GTITLE | NOGTITLE
controls the location where titles are printed in the graphics output.
GTITLE
prints the title that is created by SAS/GRAPH, the SGPLOT procedure, the SGPANEL procedure, or the SGSCATTER procedure. The title appears inside the graph borders.
NOGTITLE
prints the title that is created by ODS, which appears outside of the graph borders.
Default:GTITLE
Restrictions:Titles that are displayed by any markup language statement support most SAS/GRAPH TITLE statement options. The font must be valid for the browser. Options that ODS cannot handle, such as text angle specifications, are ignored. For details about the SAS/GRAPH TITLE statement, see TITLE statement.

This option applies only to SAS programs that produce one or more device-based graphics, or graphics created by the SGPLOT procedure, the SGPANEL procedure, or the SGSCATTER procedure.

HEADTEXT= 'markup-document-head'
specifies markup tags to place between the < HEAD> and < /HEAD> tags in all the files that the destination writes to.
markup-document-head
specifies the markup tags to place between the < HEAD> and < /HEAD> tags.
Restriction:HEADTEXT= cannot exceed 256 characters.
Requirement:You must enclose markup-document-head in quotation marks.
Tips:ODS cannot parse the markup that you supply. It should be well-formed markup that is correct in the context of the <HEAD> and </HEAD> tags.

Use the HEADTEXT= option to define programs (such as JavaScript) that you can use later in the file.

(ID= identifier)
enables you to run multiple instances of the same destination at the same time. Each instance can have different options.
identifier
specifies another instance of the destination that is already open. identifier is numeric or a series of characters that begin with a letter or an underscore. Subsequent characters can include letters, underscores, and numeric characters.
Restriction:If identifier is numeric, it must be a positive integer.
Requirement:The ID= option must be specified immediately after the ODS MARKUP/TAGSET statement keywords.
Tip:You can omit the ID= option, and instead use a name or a number to identify the instance.
IMAGE_DPI=
specifies the image resolution for graphical output.
Default:96
METATEXT= 'metatext-for-document-head'
specifies HTML code to use as the <META> tag between the <HEAD> and </HEAD> tags of all the HTML files that the destination writes to.
'metatext-for-document-head'
specifies the HTML code that provides the browser with information about the document that it is loading. For example, this attribute could specify the content type and the character set to use.
Requirement:You must enclose metatext-for-document-head in quotation marks.
Default:If you do not specify METATEXT=, then ODS writes a simple <META> tag, which includes the content-type of the document and the character set to use, to all the HTML files that it creates.
Restriction:METATEXT= cannot exceed 256 characters.
Tip:ODS cannot parse the HTML code that you supply. It should be well-formed HTML code that is correct in the context of the <HEAD> tags. If you are using METATEXT= as it is intended, then your META tag should look like this:
<META your-metatext-is-here>
NEWFILE= starting-point
creates a new body file at the specified starting-point.
starting-point
is the location in the output where you want to create a new body file.
ODS automatically names new files by incrementing the name of the body file. In the following example, ODS names the first body file REPORT.XML. Additional body files are named REPORT1.XML, REPORT2.XML, and so on.
Example:
BODY= 'REPORT.XML'
starting-point is one of the following:
BYGROUP
starts a new file for the results of each BY group.
NONE
writes all output to the body file that is currently open.
OUTPUT
starts a new body file for each output object. For SAS/GRAPH this means that ODS creates a new file for each SAS/GRAPH output file that the program generates.
Alias:TABLE
PAGE
starts a new body file for each page of output. A page break occurs when a procedure explicitly starts a new page (not because the page size was exceeded) or when you start a new procedure.
PROC
starts a new body file each time you start a new procedure.
Default:NONE
Restriction:The NEWFILE= option cannot be used in conjunction with the BODY=fileref option.
Tips:If you end the filename with a number, then ODS begins incrementing with that number. In the following example, ODS names the first body file MAY5.XML. Additional body files are named MAY6.XML, MAY7.XML, and so on.

Example:

BODY= 'MAY5.XML'

OPTIONS ( DOC= | <suboption(s)> )
specifies tagset-specific suboptions and a named value.
(DOC= 'HELP' |'QUICK' | 'SETTINGS' | ‘CHANGELOG’)
provides information about the specified tagset.
HELP
provides generic help and information with a quick reference.
QUICK
describes the options available for this tagset.
SETTINGS
provides the current option settings.
CHANGELOG
lists a history of changes made to the tagset. This suboption is only supported on the RTF tagset.
Requirement:All values must be enclosed in quotation marks.
suboption(s)
specifies one or more suboptions that are valid for the specified tagset. Suboptions have the following format:
keyword='value'
Specify one of the following options when opening an ODS tagset statement, or at any time after the destination has been opened, to get information about suboptions for the tagset.
  • options(doc='help');
  • options(doc='quick');
  • options(doc='settings');
Requirement:suboption(s) must be enclosed in parentheses.
PACKAGE <package-name>
specifies that the output from the destination be added to a package.
package-name
specifies the name of a package that was created with the ODS PACKAGE statement. If no name is specified, then the output is added to the unnamed package that was opened last.
PAGE= 'file-specification' <(suboption(s))>
opens a markup family destination and specifies the file that contains a description of each page of the body file, and contains links to the body file. ODS produces a new page of output whenever a procedure requests a new page. These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:For information about the FILENAME statement, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
suboption(s)
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

Interaction:The SAS system option PAGESIZE= has no effect on pages in HTML output except when you are creating batch output. For information about the PAGESIZE= option, see PAGESIZE= System Option in SAS System Options: Reference.
PARAMETERS= (parameter-pair-1 ... parameter-pair-n)
writes the specified parameters between the tags that generate dynamic graphics output.
parameter-pair
specifies the name and value of each parameter. parameter-pair has the following form:
'parameter-name'= 'parameter-value'
parameter-name
is the name of the parameter.
parameter-value
is the value of the parameter.
Requirement:You must enclose parameter-name and parameter-value in quotation marks.
Interaction:Use PARAMETERS= in conjunction with SAS/GRAPH procedures and the DEVICE=JAVA, JAVAMETA, or ACTIVEX options in the GOPTIONS statement.
See:SAS/GRAPH: Reference for valid parameters for the Graph Applet, Map Applet, Contour Applet, and the MetaView Applet.
PATH= 'aggregate-file-storage-specification' | fileref | libref.catalog (URL= 'Uniform-Resource-Locator' | NONE)
specifies the location of an aggregate storage location or a SAS catalog for all markup files. If the GPATH= option is not specified, all graphics output files are written to the “aggregate-file-storage-specification” or libref.
'aggregate-file-storage-location'
specifies an aggregate storage location such as directory, folder, or partitioned data set.
Requirement:You must enclose aggregate-file-storage-location in quotation marks.
fileref
is a file reference that has been assigned to an aggregate storage location. Use the FILENAME statement to assign a fileref.
Interaction:If you use a fileref in the PATH= option, then ODS does not use information from PATH= when it constructs links.
See:For information about the FILENAME statement, see FILENAME Statement in SAS Statements: Reference.
libref.catalog
specifies a SAS catalog to write to.
See:For information about the LIBNAME statement, see LIBNAME Statement in SAS Statements: Reference.
URL= 'Uniform-Resource-Locator' | NONE
specifies a URL for the file-specification.
Uniform-Resource-Locator
is the URL that you specify. ODS uses this URL instead of the filename in all the links and references that it creates to the file.
NONE
specifies that no information from the PATH= option appears in the links or references.
Tip:This option is useful for building output files that can be moved from one location to another. The links from the contents and page files must be constructed with a single-name URL, and the contents, page, and body files must be in the same location.
Interaction:If you use the BODY= or FILE= external file option in conjunction with the PATH= option, the external file specification should not include path information.
RECORD_SEPARATOR= 'alternative-separator' | NONE
specifies an alternative character or string that separates lines in the output files.
Different operating environments use different separator characters. If you do not specify a record separator, then the files are formatted for the environment where you run the SAS job. However, if you are generating files for viewing in a different operating environment that uses a different separator character, then you can specify a record separator that is appropriate for the target environment.
alternative-separator
represents one or more characters in hexadecimal or ASCII format. For example, the following option specifies a record separator for a carriage return character and a linefeed character for use with an ASCII file system:
RECORD_SEPARATOR= '0D0A'x
Operating Environment Information: In a mainframe environment, the following option specifies a record separator for a carriage return character and a linefeed character for use with an ASCII file system:
RECORD_SEPARATOR= '0D25'x
Requirement:You must enclose alternative-separator in quotation marks.
NONE
produces the markup language that is appropriate for the environment where you run the SAS job.
Windows Specifics: In a mainframe environment, by default, ODS produces a binary file that contains embedded record separator characters. This binary file is not restricted by the line-length restrictions on ASCII files. However, if you view the binary files in a text editor, then the lines run together. If you want to format the files so that you can read them with a text editor, then use RECORD_SEPARATOR= NONE. In this case, ODS writes one line of markup language at a time to the file. When you use a value of NONE, the logical record length of the file that you are writing to must be at least as long as the longest line that ODS produces. If the logical record length of the file is not long enough, then the markup language might wrap to another line at an inappropriate place.
Aliases:RECSEP=

RS=

STYLE= style-definition
specifies the style definition to use in writing the output files.
style-definition
describes how to display the presentation aspects (color, font face, font size, and so on) of your SAS output. A style definition determines the overall appearance of the documents that use it. Each style definition consists of style elements.
Interaction:The STYLE= option is not valid when you are creating XML output.
See:For a complete discussion of style definitions, see TEMPLATE Procedure: Creating a Style Template.
Default:If you do not specify a style definition, then ODS uses the file that is specified in the SAS registry subkey ODSthen selectDESTINATIONSthen selectMARKUP. By default, this value specifies Default.
Interaction:If you specify the STYLE= option on an ODS HTML4 statement and subsequently need PROC PRINT output to use new style definitions on another ODS HTML4 statement, close the first statement before specifying the second statement.
STYLESHEET= 'file-specification' <(suboption(s))>
opens a markup family destination and places the style information for markup output into an external file, or reads style sheet information from an existing file. These files remain open until you do one of the following:
  • close the destination with either an ODS markup-family-destination CLOSE statement or ODS _ALL_ CLOSE statement.
  • open the same destination with a second markup family statement. This closes the first file and opens the second file.
file-specification
specifies the file, fileref, or SAS catalog to write to.
file-specification is one of the following:
external-file
is the name of an external file to write to.
Requirement:You must enclose external-file in quotation marks.
fileref
is a file reference that has been assigned to an external file. Use the FILENAME statement to assign a fileref.
See:For information about the FILENAME statement, see FILENAME Statement in SAS Statements: Reference.
entry.markup
specifies an entry in a SAS catalog to write to.
Interaction:If you specify an entry name, you must also specify a library and catalog. See the discussion of the PATH= option.
suboption(s)
specifies one or more suboptions in parentheses. Suboptions are instructions for writing the output files. Suboptions can be the following:
(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

Note:By default, if you do not specifically send the information to a separate file, then the style sheet information is included in the specified HTML file.
TAGSET= tagset-name
specifies a keyword value for a tagset. A tagset is a template that defines how to create a markup language output type from a SAS format. Tagsets produce markup output such as Hypertext Markup Language (HTML), Extensible Markup Language (XML), and LaTeX.
An alternate form for specifying a tagset is as follows:
ODS directory.tagset-name file-specification(s)<option(s)> ;
ODS directory.tagset-name action;
A directory can be TAGSET, a user-defined entry, or a libref. By default, the tagsets that SAS supplies are located in the directory TAGSETS, which is within the item store Sasuser.Tmplmst. For more information about user-defined tagsets and item stores, see TEMPLATE Procedure: Overview.
Alias:TYPE=
Default:If you do not specify a TAGSET= value, then the ODS MARKUP statement defaults to XML output.
Interaction: Using the TAGSET= option in an ODS markup family statement that refers to an open ODS markup destination forces ODS to close the destination and all associated files, and then to open a new instance of the destination. For more information, see Opening and Closing the MARKUP Destination .
Tip:SAS provides a set of tagset definitions. To get a list of the tagset names that SAS supplies, plus any tagsets that you created and stored in the Sasuser.Tmplmst template store, submit the following SAS statements:
proc template;
   list tagsets;
run;  
See:For a list of valid tagsets and their descriptions, see ODS Tagset Statement.

For additional information about specifying tagsets, see TEMPLATE Procedure: Creating Markup Language Tagsets.

TEXT=text-string
inserts text into your document by triggering the paragraph event and specifying a text string to be assigned to the VALUE event variable.
Default:By default the TEXT= option is used in a paragraph event.
Tip:You can specify a text-string for a specific event by using the TEXT= option with the EVENT= option by using the following syntax:
EVENT=event-name (TEXT=text-string)
See:For information about events and event variables, see TEMPLATE Procedure: Creating Markup Language Tagsets.
TRANTAB= 'translation-table'
specifies the translation table to use when transcoding a file for output.
See:For information about the TRANTAB= option, see TRANTAB= System Option in SAS National Language Support (NLS): Reference Guide.

Suboptions

The following suboptions can be used with these options: BODY= , CODE= , CONTENTS= , FRAME= , PAGE= , and STYLESHEET=.

(DYNAMIC)
enables you to send output directly to a Web server instead of writing it to a file. This option sets the value of the CONTENTTYPE= style attribute. For more information, see CONTENTTYPE= in PROC TEMPLATE.
Default:If you do not specify DYNAMIC, then ODS sets the value of HTMLCONTENTTYPE= for writing to a file.
Restriction:If you specify the DYNAMIC suboption with one of the following options in the ODS HTML statement, then you must specify it for all of these options in that statement.
  • BODY=
  • CONTENTS=
  • PAGE=
  • FRAME=
  • STYLESHEET=
  • TAGSET=
Requirements:You must enclose DYNAMIC in parentheses.

You must specify DYNAMIC next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

(NO_BOTTOM_MATTER)
specifies that no ending markup language source code be added to the output file.
Alias:NOBOT
Requirements:You must enclose NO_BOTTOM_MATTER in parentheses.

You must specify NO_BOTTOM_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_BOTTOM_MATTER suboption, in conjunction with the NO_TOP_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

Tip: If you want to leave a body file in a state that you can append to with ODS, then use NO_BOTTOM_MATTER with the file-specification BODY= option in any markup language statement.
See: The NO_TOP_MATTER suboption
(NO_TOP_MATTER)
specifies that no beginning markup language source code be added to the top of the output file. For HTML 4.0, the NO_TOP_MATTER option removes the style sheet.
Alias:NOTOP
Requirements:You must enclose NO_TOP_MATTER in parentheses.

You must specify NO_TOP_MATTER next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

If you append text to an external file, you must use a FILENAME statement with the appropriate option for the operating environment.

Interactions:The NO_TOP_MATTER suboption, in conjunction with the NO_BOTTOM_MATTER suboption, makes it possible for you to add output to an existing file and then to put your own markup language between output objects in the file.

When you are opening a file that ODS has previously written to, use the ANCHOR= option to specify a new base name for the anchors. This step prevents duplicate anchors.

See: The NO_BOTTOM_MATTER suboption and the ANCHOR= option
(TITLE='title-text')
inserts into the metadata of a file the text string that you specify as the text to appear in the browser window title bar.
title-text
is the text in the metadata of a file that indicates the title.
Requirements:You must enclose TITLE= in parentheses.

You must enclose title-text in quotation marks.

Tip:If you are creating a Web page that uses frames, then it is the TITLE= specification for the frame file that appears in the browser window title bar.
(URL= 'Uniform-Resource-Locator' )
specifies a URL for the file-specification. ODS uses this URL (instead of the filename) in all the links and references that it creates and that point to the file.
Requirements:You must enclose URL= 'Uniform-Resource-Locator' in parentheses.

You must enclose Uniform-Resource-Locator in quotation marks.

You must specify URL= 'Uniform-Resource-Locator' next to the file-specification specified by the BODY=, CONTENTS=, PAGE=, FRAME=, or STYLESHEET= option, or next to the tagset-name specified by the TAGSET= option.

Tips:This option is useful for building HTML files that can be moved from one location to another. The links from the contents and page files must be constructed with a single name URL, and the contents, page, and body files must all be in the same location.

You never need to specify this suboption with the FRAME= option because ODS files do not reference the frame file.

Details

Opening and Closing the MARKUP Destination

You can modify an open MARKUP destination with many ODS MARKUP options. However, the BODY= and TAGSET= options will automatically close the open destination that is specified in the ODS MARKUP statement. These options will also close any files associated with the destination and then open a new instance of the destination. If you use one of these options, it is best if you explicitly close the destination yourself.

Specifying Multiple ODS Destinations

The ODS MARKUP statement opens or closes one destination. Like all single output destinations, you can have only one markup destination open at one time, unless you use the ID= option.
However, you can specify multiple simultaneous ODS destinations to produce multiple markup output by doing both of the following:
  • specifying some of the TAGSET= value keywords as a destination
  • specifying any two-level tagset name, such as TAGSETS.PYX, TAGSETS.STYLE_DISPLAY, or one of your own tagset names

Specifying a Tagset Keyword as an ODS Destination

You can specify some tagset keywords as ODS destinations. The tagset determines the type of markup that you will have in your output file. For example, either of the following sets of statements are acceptable:
  • ods markup body='class.html' tagset=phtml;
    ...more SAS statements...
    ods markup close;
  • ods phtml body='class.html';
    ...more SAS statements...
    ods phtml close;
The ODS statement that you use to close a destination must be in the same form as the ODS statement that you used to open the destination. Therefore, the following is not acceptable, because SAS considers MARKUP and PHTML as separate destinations.
ods markup body='class.html' tagset=phtml;
...more SAS statements...
ods phtml close;
The tagsets that you can specify as both a TAGSET= value for ODS MARKUP or as a separate ODS destination are as follows:
  • CHTML
  • CSV
  • CSVALL
  • DOCBOOK
  • HTML4
  • HTMLCSS
  • IMODE
  • LATEX
  • PHTML
  • SASREPORT
  • TROFF
  • WML
  • WMLOLIST

Specifying a Two-Level Tagset Name as an ODS Destination

You can open a destination by specifying the markup that you want to produce by naming its two-level tagset name. You can specify all tagsets in this manner. For example, the following ODS statements open the SASIOXML and MYTAGSET destinations. The ODS _ALL_ CLOSE statement closes the SASIOXML and MYTAGSET destinations as well as all other open destinations.
ods tagsets.sasioxml body='test1.xml';
ods tagsets.mytagset body='test2.xml';
...more SAS statements...
ods _all_ close;
You can also specify tagset names as follows, using the TYPE= option with a two-level tagset name:
ods markup type=tagsets.sasioxml body='test.xml';

Examples

Example 1: Creating an XML FILE

Features:

ODS LISTING statement action:: CLOSE

ODS MARKUP statement::
Action: CLOSE
Options: BODY=
Other features:

PROC PRINT

Data set: StatePop

Details

The following ODS MARKUP example creates XML markup from PRINT procedure output. The TAGSET= option for the ODS MARKUP statement is not specified, so the ODS MARKUP statement defaults to XML output.

Program

ods markup body='population.xml';
proc print data=statepop;
run;
ods markup close;

Program Description

The ODS MARKUP BODY= statement creates an XML file.
ods markup body='population.xml';
Print the data set.The PRINT procedure prints the data set StatePop.
proc print data=statepop;
run;
Close the MARKUP destination.The ODS MARKUP CLOSE statement closes the MARKUP destination and all the files that are associated with it. If you do not close the destination, then you will not be able to view the files.
ods markup close;

XML Output

The following partial output is tagged with XML (Extensible Markup Language) tags.
XML Markup from PRINT Procedure Output
<?xml version="1.0" encoding="windows-1252"?>
<odsxml>
<head>
<meta operator="user"/>
</head>
<body>
<proc name="Univariate">
<label name="IDX"/>
<title class="SystemTitle" toc-level="1">US Census of Population and Housing</title>
<proc-title class="ProcTitle" toc-level="1">The UNIVARIATE Procedure</proc-title>
<proc-title class="ProcTitle" toc-level="1">Variable:  CityPop_90  (1990 metropolitan pop in millions)</proc-title>
<branch name="Univariate" label="The Univariate Procedure" class="ContentProcName" toc-level="1">
<branch name="CityPop_90" label="CityPop_90" class="ContentFolder" toc-level="2">
<leaf name="Moments" label="Moments" class="ContentItem" toc-level="3">
<output name="Moments" label="Moments" clabel="Moments">
<output-object type="table" class="Table">
  <style>
    <border spacing="1" padding="7" rules="groups" frame="box"/>
  </style>
<colspecs columns="4">
<colgroup>
<colspec name="1" width="15" type="string"/>
<colspec name="2" width="10" align="right" type="string"/>
<colspec name="3" width="16" type="string"/>
<colspec name="4" width="10" align="right" type="string"/>
</colgroup>
</colspecs>
... more tagged output ...
</output-object>
</output>
</leaf>
</branch>
</branch>
<footnote class="SystemFooter" toc-level="1">^{super *}This is a  ^S={foreground=black}footnote.</footnote>
</proc>
</body>
</odsxml>

Example 2: Creating an XML File and a DTD

Features:

ODS LISTING statement action:: CLOSE

ODS MARKUP statement action:: CLOSE

ODS MARKUP statement options::
BODY=
FRAME=
TAGSET=
Other features:

PROC UNIVARIATE

TITLE statement

Data set: StatePop

Details

The following ODS MARKUP example creates an XML file and its Document Type Definition (DTD) from PROC UNIVARIATE output.

Program

ods html close;
ods markup body='statepop.xml'
           frame='statepop.dtd' tagset=default;
proc univariate data=statepop;
   var citypop_90 citypop_80;
title 'US Census of Population and Housing';
run;
ods markup close;

Program Description

Close the HTML destination so that no HTML output is produced. The HTML destination is open by default. The ODS HTML statement closes the HTML destination to conserve resources.
ods html close;
Create XML output and a DTD.The ODS MARKUP BODY= statement creates an XML file. The FRAME= option specifies that you want the DTD in a frame file, and the TAGSET= option specifies that you want the default tagset, which is XML.
ods markup body='statepop.xml'
           frame='statepop.dtd' tagset=default;
Generate the statistical tables for the analysis variables.The UNIVARIATE procedure calculates univariate statistics for numeric variables in the StatePop data set. The VAR statement specifies the analysis variables and their order in the output. The TITLE statement specifies a title for the output object.
proc univariate data=statepop;
   var citypop_90 citypop_80;
title 'US Census of Population and Housing';
run;
Close the MARKUP destination.The ODS MARKUP CLOSE statement closes the MARKUP destination and all the files that are associated with it. If you do not close the destination, then you will not be able to view the files.
ods markup close;

Output

This DTD specifies how the markup tags in a group of SGML or XML documents should be interpreted by an application that displays, prints, or otherwise processes the documents.
DTD Created by the ODS MARKUP Statement
<!ELEMENT odsxml (head?,body)>
<!ELEMENT head (meta|css)*>
<!ELEMENT body ((label|page)*|proc)+>
<!ELEMENT meta EMPTY>
<!ATTLIST meta
          operator  CDATA  #IMPLIED
          author    CDATA  #IMPLIED>
<!ELEMENT css EMPTY>
<!ATTLIST css
          file  CDATA  #IMPLIED>
<!ELEMENT label EMPTY>
<!ATTLIST label
          name      ID    #IMPLIED>
<!ELEMENT proc (title|proc-title|note|page|label|style|branch|output)*>
<!ATTLIST proc
          class    CDATA    #IMPLIED>
... more tagged output ...
<!ELEMENT br EMPTY>
<!ELEMENT page EMPTY>
<!ELEMENT b (#PCDATA|it|b|ul)*>
<!ELEMENT ul (#PCDATA|it|b|ul)*>
<!ELEMENT it (#PCDATA|it|b|ul)*>
<!ELEMENT style (span|align|border)*>
<!ELEMENT span EMPTY>
<!ATTLIST span
          columns    CDATA    #IMPLIED
          rows       CDATA    #IMPLIED>
<!ELEMENT align EMPTY>
<!ATTLIST align
          horiz  (left|center|right|justify)    "left">
<!ELEMENT border EMPTY>
<!ATTLIST border
          rules    (none|groups|rows|cols|all)    #IMPLIED
          frame    (void|above|below|hsides|lhs|rhs|vsides|box|border) #IMPLIED
          padding  CDATA                          #IMPLIED
          spacing  CDATA                          #IMPLIED>

Example 3: Creating Multiple Markup Output

Features:

ODS LISTING statement action:: CLOSE

ODS CVSALL statement option:: BODY=

ODS MARKUP statement options::
BODY=
TAGSET=
TITLE=
Other features:

OPTIONS statement

PROC PRINT

TITLE statement

Data set: Grain_Production

Details

The following ODS example creates two different types of markup output from the same procedure output. To create two markup outputs requires two ODS destinations. Because ODS MARKUP is considered one destination, you cannot specify two tagsets without the use of the ID= option. However, you can specify one output using ODS MARKUP. You can then specify the other output using ODS syntax in which the tagset is the destination.

Program

ods html close;
options obs=15;
ods csvall body='procprintcsvall.csv';
ods markup tagset=chtml body='procprintchtml.html'
   (title= 'This Text Identifies Your Content.');
title 'Leading Grain-Producing Countries';
proc print data=grain_production;
run;
ods csvall close;
ods markup tagset=chtml close;

Program Description

Close the HTML destination so that no HTML output is produced.The HTML destination is open by default. The ODS HTML statement closes the HTML destination to conserve resources. The OPTIONS statement specifies that only fifteen observations be used.
ods html close;
options obs=15;
Create tabular output.The ODS CSVALL statement produces tabular output with titles that contain columns of data values that are separated by commas.
ods csvall body='procprintcsvall.csv';
Create CHTML output.The ODS MARKUP TAGSET=CHTML statement produces compact, minimal HTML output that does not use style information, and a hierarchical table of contents. The TITLE= option specifies the text that will appear in the browser window title bar.
ods markup tagset=chtml body='procprintchtml.html'
   (title= 'This Text Identifies Your Content.');
Print the data set.The PRINT procedure prints the data set Grain_Production. The TITLE statement specifies the title.
title 'Leading Grain-Producing Countries';
proc print data=grain_production;
run;
Close the open destinations so that you can view or print the output.The ODS CSVALL CLOSE statement closes the CSVALL destination and all of the files that are associated with it. The ODS MARKUP TAGSET=CHTML CLOSE statement closes the MARKUP destination and all of the files that are associated with it. You must close the destinations before you can view the output with a browser or before you can send the output to a physical printer.
ods csvall close;
ods markup tagset=chtml close;

Output

The following output was created by specifying the MARKUP TAGSET=CHTML statement. The text “This Text Identifies Your Content.” was specified by the TITLE= option.
CHTML Output
Output Created by the MARKUP TAGSET=CHTML Statement
The following output was created by specifying the ODS CSVALL statement. Note that you cannot specify ODS MARKUP TAGSET=CSVALL and ODS MARKUP TAGSET=CHTML together, or ODS CSVALL and ODS CHTML together.
CSVALL Output Viewed in Microsoft Excel
Output Created by Specifying the ODS CSVALL Statement

Example 4: Specifying Tagset Names as ODS Destinations

When you specify tagsets and two-level tagset names as destinations, you can open and close multiple destinations, producing multiple markup output. Here is an example:
ods htmlcss body='test1.html';
ods phtml body='test2.html';
ods chtml body='test3.html';
ods markup body='test1.xml';
ods tagsets.event_map  body='test2.xml';
...more SAS statements...
ods htmlcss close;
...more SAS statements...
ods chtml close;
...more SAS statements...
ods _all_ close; 

Example 5: Including Multiple Cascading Style Sheets in One HTML Document

Features:

ODS LISTING statement action:: CLOSE

ODS HTML statement action:: CLOSE

ODS HTML statement options::
BODY=
STYLESHEET=
URL=suboption
Other features:

OPTIONS statement

PROC PRINT

TITLE statement

Data set: Grain_Production

Details

The following example creates one HTML document and two style sheets, which are included in the HTML document. The URLs are created in the order specified by the URL= suboption.

Program

ods html close;
options obs=15;
ods html body='StylesheetExample.html'
   stylesheet=(url='/css/file1.css /css/file2.css'); 
proc print data=grain_production;
title 'Leading Grain-Producing Countries';
run;
ods html close;

Program Description

Close the HTML destination so that no HTML output is produced.The HTML destination is open by default. The ODS HTML statement closes the HTML destination to conserve resources. The OPTIONS statement specifies that only fifteen observations be used.
ods html close;
options obs=15;
Create the HTML output and two style sheets. The ODS HTML statements opens the HTML destination and creates HTML output. The STYLESHEET= option places the style information for the HTML output into two external files. The URL= suboption specifies a URL for the two files, File1.css and File2.css. ODS uses these URLs (instead of the filename) in all the links and references that it creates and that point to those files.
ods html body='StylesheetExample.html'
   stylesheet=(url='/css/file1.css /css/file2.css'); 
Print the data set.The PRINT procedure prints the data set Grain_Production. The TITLE statement specifies the title.
proc print data=grain_production;
title 'Leading Grain-Producing Countries';
run;
Close the HTML destination.The ODS HTML CLOSE statement closes the HTML destination and all the files that are associated with it. If you do not close the destination, then you will not be able to view the files.
ods html close;

Output

The two links to the style sheets that the STYLESHEET= option creates are at the bottom of the partial output. The links are created in the order in which they were specified by the URL= suboption.
HTML Code
Links to the style sheets created by the STYLESHEET= option

Example 6: Applying a CSS File to ODS Output

Features:
ODS HTML statement options::
BODY=
CSSSTYLE=media-type
TEXT=
ODS PDF statement options::
BODY=
CSSSTYLE=media-type
STARTPAGE=
TEXT=
ODS RTF statement options::
BODY=
CSSSTYLE=media-type
TEXT=
Other features:

PROC CONTENTS

Details

The following program applies a style sheet created in a CSS file to HTML, PDF, and RTF output. Because the CSS file has media blocks with additional information for screen and print media types, you can specify that each output destination use the additional style information for a specific media type.
The following code is an example of the external CSS file StyleSheet.css. There are two media types specified in this program, Print and Screen. Copy and paste this code into a text editor and save it as StyleSheet.css.
.body {
    background-color: white;
    color: black;
    font-family: times, serif;
}
.header, .rowheader, .footer, .rowfooter, .data {
    border: 1px black solid;
    color: black;
    padding: 5px;
    font-family: times, serif;
}
.header, .rowheader, .footer, .rowfooter {
    background-color: #a0a0a0;
}
.table {
    background-color: #dddddd;
    border-spacing: 0;
    border: 1px black solid;
}
.proctitle {
    font-family: helvetica, sans-serif;
    font-size: x-large;
    font-weight: normal;
}
@media screen {
.header, .rowheader, .footer, .rowfooter,{
    color: white;
    background-color: green;}
.table {
    background-color: yellow;
    border-spacing: 0;
    font-size: small
    border: 1px black solid;
}
}
@media print {
.header, .rowheader, .footer, .rowfooter,{
    color: white;
    background-color: blue;
    padding: 5px;
}
.data {
    font-size: small;
}
}

Program

options nodate pageno=1 linesize=80 pagesize=40 obs=10;
ods html file="StyleSheet.html" cssstyle='stylesheet.css'(screen) 
               text="Style Sheet Using Screen Media Type";
ods rtf file="StyleSheet.rtf" cssstyle='stylesheet.css'(print) 
              text="Style Sheet Using Print Media Type";
ods pdf file="StyleSheet.pdf" cssstyle='stylesheet.css'(print screen) STARTPAGE=no 
              text="Style Sheet Using Both Media Types";
proc contents data=sashelp.class;
run;
ods _all_ close;

Program Description

Apply the CSS file to your output.The CSSSTYLE= option on the ODS HTML, ODS RTF, and ODS PDF statements applies the CSS file StyleSheet.css to the output for each destination. In the ODS HTML statement, specifying the CSSSTYLE= option for the media-type Screen applies the style information in the Screen media type block, in addition to style information outside of any media blocks, to the HTML output. Similarly, the RTF output uses the additional information from the Print media block. The PDF output uses all of the code in the CSS file, because both Print and Screen are specified.
options nodate pageno=1 linesize=80 pagesize=40 obs=10;
ods html file="StyleSheet.html" cssstyle='stylesheet.css'(screen) 
               text="Style Sheet Using Screen Media Type";
ods rtf file="StyleSheet.rtf" cssstyle='stylesheet.css'(print) 
              text="Style Sheet Using Print Media Type";
ods pdf file="StyleSheet.pdf" cssstyle='stylesheet.css'(print screen) STARTPAGE=no 
              text="Style Sheet Using Both Media Types";
View the contents of the SAS data set.The CONTENTS procedure shows the contents of the SAS data set SasHelp.Class.
proc contents data=sashelp.class;
run;
Close the open destinations.The ODS _ALL_ CLOSE statement closes all open destinations and the files that are associated with them. If you do not close the destinations, then you will not be able to view the files.
ods _all_ close;

Output

The yellow and green background colors, the white font color, the font size, and border information all come from the Screen media block. All other style information comes from the code outside of the media blocks. No information from the Print media block is used.
HTML Output Using Both a Style Sheet with Screen Media Type
HTML Output Using Both a Style Sheet with Screen Media Type
The white font, small font size, cell padding, and the blue background color all come from the Print media block. All other style information comes from the code outside of the media blocks. No information from the Screen media block is used.
RTF Output Using a Style Sheet with Print Media Type
RTF Output Using a Style Sheet with Print Media Type
The PDF output uses all of the style information in the CSS file, including the information from both media types. However, both the Print and Screen media blocks have a background color specified for row and column headings. The blue background color is picked up because it is specified last.
PDF Output Using Both a Style Sheet with Both Print and Screen Media Types
PDF Output Using Both a Style Sheet with both Print and Screen Media Types

Example 7: Using the DOC Suboption to Get ODS TAGSETS.HTMLPANEL Information

Features:

ODS TAGSETS.HTMLPANEL statement action:: CLOSE

ODS TAGSETS.HTMLPANEL statement options::
OPTIONS (DOC=”HELP”)
FILE=
Other features:

PROC PRINT

Details

The following example prints to the SAS log the OPTIONS suboptions and a description of each available suboption.

Program

ods tagsets.panel file='Help.html' options (doc="help");
proc print data=Sashelp.Class;
run;
ods _all_ close;

Program Description

Print information about the OPTIONS suboptions to the SAS log file.Specifying the OPTIONS suboption (DOC='HELP') prints Help for the ODS TAGSETS.HTMLPANEL statement suboptions to the SAS log file. The FILE= option prints the data results to an RTF file named Help.rtf.
ods tagsets.panel file='Help.html' options (doc="help");
Print the data set Sashelp.Class.The PROC PRINT statement prints the Sashelp.Class data set.
proc print data=Sashelp.Class;
run;
Close all destinations.Close the ODS TAGSETS.HTMLPANEL destination and any other open destinations. This statement also closes all the files that are associated with each open destination. If you do not close a destination, then you cannot view the files in a browser window.
ods _all_ close;

SAS Log Output

Specify the “DOC='HELP' suboption to print all of the OPTIONS suboptions and information about each of the suboptions to the SAS log.