# OSX

#### An SGML System Conforming to International Standard ISO 8879 -- Standard Generalized Markup Language

#### An SGML Extended Facilities system conforming to Annex A of International Standard ISO/IEC 10744 -- Hypermedia/Time-based Structuring Language

## SYNOPSIS

`osx` [ `option...` ] `sysid...`

## DESCRIPTION

Osx converts SGML to XML. Osx parses and validates the SGML document contained in `sysid...` and writes an equivalent XML document to the standard output. Osx will warn about SGML constructs which have no XML equivalent.

## OPTIONS

The following options are available:

`-bname`, `--encoding=name`
  Use the BCTF name for output. By default osx uses UTF-8.
`-csysid`, `--catalog=sysid`
  Map public identifiers and entity names to system identifiers using the catalog entry file whose system identifier is sysid. This has the same effect as in onsgmls.
`-C`, `--catalogs`
  This has the same effect as in onsgmls.
`-ddirectory`
  Place output files in `directory`.
`-Ddirectory`, `--directory=directory`
  Search `directory` for files specified in system identifiers. This has the same effect as in onsgmls.
`-e`, `--open-entities`
  Describe open entities in error messages.
`-ffile`, `--error-file=file`
  Redirect errors to `file`. This is useful mainly with shells that do not support redirection of stderr.
`-iname`, `--include=name`
  This has the same effect as in onsgmls.
`-ldtd_file`
  Specify that the resulting XML file should conform to the DTD in `dtd_file`.
`-R`, `--restricted`
  This has the same effect as in onsgmls.
`-v`, `--version`
  Print the version number.
`-wtype`, `--warning=type`
  Control warnings and errors according to `type`. This has the same effect as in onsgmls.
`-xoption`, `--xml-output-option=option`
  Control the XML output according to the value of `option` as follows:
  `no-nl-in-tag`
    Don't use newlines inside start-tags. Usually osx uses newlines inside start-tags so as to reduce the probability of excessively long lines.
  `id`
    Output attribute declarations for ID attributes.
  `notation`
    Output declarations for notations.
  `ndata`
    Output declarations for external data entities. XML requires these to be NDATA. Osx will warn about CDATA and SDATA external data entities and output them as NDATA entities.
  `cdata`
    Use XML CDATA sections for CDATA marked sections and for elements with a declared content of CDATA.
  `comment`
    Output comment declarations. Comment declarations in the DTD will not be output.
  `lower`
    Prefer lower case. Names that were subjected to upper-case substitution by SGML will be folded to lower case. This does not include reserved names; XML requires these to be in upper-case.
  `pi-escape`
    Escape `&<>` in the contents of processing instructions using the `amp`, `lt` and `gt` entities. This allows processing instructions to contain the string `>?`, but requires that applications handle the escapes.
  `empty`
    Use the `<e/>` syntax for element types `e` declared as EMPTY.
  `attlist`
    Output a ATTLIST declaration for every element specifying the type of all attributes. The default will always be `#IMPLIED`.
  `report-input-sources`
    Output a processing instruction to report when an input source other than the main file is opened or closed in the instance. Do not report any input source changes in the DTD.
  `report-entities`
    Output a processing instruction to report when an external entity reference has been resolved in the instance. Do not report any entity resolutions in the DTD.
  `no-expand-external`
    Preserve external entities (producing a new output file for each input file processed), write a declaration driver file named "extEntities.dtf", and include that file in the instance's internal subset.
  `no-expand-internal`
    Preserve internal entities, write a declaration driver file named "intEntities.dtf", and include that file in the instance's internal subset.
  `preserve-case`
    Preserve casing as specified in the DTD for element names; attribute names; attribute values which are token lists.
  `no-external-decl`
    Do not include the external entities declaration driver file in the instance's internal subset.
  `no-internal-decl`
    Do not include the internal entities declaration driver file in the instance's internal subset.
  `sdata-as-pis`
    When translating SDATA entities (whether expanding them or providing a definition for them in the output's internal subset), express them as processing instructions instead of as general internal entities.
  `no-output-outside-outdir`
    When preserving external entities, do not write output files outside the specified output directory ("." by default). In other words, if an external entity's system identifier includes enough instances of ".." to cause osx to write a file outside (above) the output directory, exit. (By default, osx will issue a warning but will write the file and continue.)
  `no-overwrite`
    When preserving internal or external entities, multiple output files will be written. If this option is specified, do not overwrite existing files; instead, attempt to append a number to the end of the original filename to create a unique filename. Exit with an error if too many (100) such files already exist.

  Multiple `-x` options are allowed.