# xmlcatalog Manual

libxml2 2001 2004 John Fleck

                    jfleck@inkstain.net

xmlcatalog
1

# xmlcatalog

Command line tool to parse and manipulate XML or SGML catalog files.

        xmlcatalog

            --sgml
            --shell
            --convert
            --create
            --del VALUE(S)

                        --add
                         TYPE
                         ORIG
                         REPLACE

                    --add FILENAME

            --noout
            --no-super-update

                    -v
                    --verbose

        CATALOGFILE
        ENTITIES

## DESCRIPTION

&xmlcatalog; is a command line application allowing users to monitor and manipulate XML and SGML catalogs. It is included in libxml 3 .

Its functions can be invoked from a single command from the command line, or it can perform multiple functions in interactive mode. It can operate on both XML and SGML files.

## OPTIONS

&xmlcatalog; accepts the following options (in alphabetical order):

`--add TYPE ORIG REPLACE`

  Add an entry to `CATALOGFILE`. TYPE indicates the type of entry. Possible types are:

  - `public`
  - `system`
  - `uri`
  - `rewriteSystem`
  - `rewriteURI`
  - `delegatePublic`
  - `delegateSystem`
  - `delegateURI`
  - `nextCatalog`
  . ORIG is the original reference to be replaced, and REPLACE is the URI of the replacement entity to be used. The `--add` option will not overwrite `CATALOGFILE`, outputting to `stdout`, unless `--noout` is used. The `--add` will always take three parameters even if some of the XML catalog constructs will have only a single argument.
`--add FILENAME`

  If the `--add` option is used following the `--sgml` option, only a single argument, a FILENAME, is used. This is used to add the name of a catalog file to an SGML supercatalog, a file that contains references to other included SGML catalog files.

`--convert`

  Convert SGML catalog to XML.

`--create`

  Create a new XML catalog. Outputs to `stdout`, ignoring filename unless `--noout` is used, in which case it creates a new catalog file filename.

`--del VALUE(S)`

  Remove entries from CATALOGFILE matching VALUE(S). The `--del` option will not overwrite CATALOGFILE, outputting to `stdout`, unless `--noout` is used.

`--noout`

  Save output to the named file rather than outputting to `stdout`.

`--no-super-update`

  Do not update the SGML super catalog.

`--shell`

  Run a shell allowing interactive queries on catalog file CATALOGFILE. For the set of available commands see .

`--sgml`

  Uses SGML super catalogs for `--add` and `--del` options.

`-v`
`--verbose`

  Output debugging information.

Invoking &xmlcatalog; non-interactively without a designated action (imposed with options like `--add`) will result in a lookup of the catalog entry for ENTITIES in the catalog denoted with CATALOGFILE. The corresponding entries will be output to the command line. This mode of operation, together with `--shell` mode and non-modifying (i.e. without `--noout`) direct actions, allows for a special shortcut of the void CATALOGFILE specification (possibly expressed as "" in the shell environment) appointing the default system catalog. That simplifies the handling when its exact location is irrelevant but the respective built-in still needs to be consulted.

## SHELL COMMANDS

Invoking &xmlcatalog; with the `--shell CATALOGFILE` option opens a command line shell allowing interactive access to the catalog file identified by CATALOGFILE. Invoking the shell provides a command line prompt after which the following commands (described in alphabetical order) can be entered.

`add TYPE ORIG REPLACE`

  Add an entry to the catalog file. TYPE indicates the type of entry. Possible types are:

  - `public`
  - `system`
  - `uri`
  - `rewriteSystem`
  - `rewriteURI`
  - `delegatePublic`
  - `delegateSystem`
  - `delegateURI`
  - `nextCatalog`
  . ORIG is the original reference to be replaced, and REPLACE is the URI of the replacement entity to be used. The `--add` option will not overwrite `CATALOGFILE`, outputting to `stdout`, unless `--noout` is used. The `--add` will always take three parameters even if some of the XML catalog constructs will have only a single argument.
`debug`

  Print debugging statements showing the steps &xmlcatalog; is executing.

`del VALUE(S)`

  Remove the catalog entry corresponding to VALUE(S).

`dump`

  Print the current catalog.

`exit`

  Quit the shell.

`public PUBLIC-ID`

  Execute a Formal Public Identifier lookup of the catalog entry for PUBLIC-ID. The corresponding entry will be output to the command line.

`quiet`

  Stop printing debugging statements.

`system SYSTEM-ID`

  Execute a Formal Public Identifier lookup of the catalog entry for SYSTEM-ID. The corresponding entry will be output to the command line.

## ENVIRONMENT

`XML_CATALOG_FILES`

  XML catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the `XML_CATALOG_FILES` environment variable to a space-separated list of catalogs. Use percent-encoding to escape spaces or other characters. An empty variable should deactivate loading the default catalog from `/etc/xml/catalog` or, more specifically, `${sysconfdir}/xml/catalog`.

## DIAGNOSTICS

&xmlcatalog; return codes provide information that can be used when calling it from scripts.

0

  No error

1

  Failed to remove an entry from the catalog

2

  Failed to save to the catalog, check file permissions

3

  Failed to add an entry to the catalog

4

  Failed to look up an entry in the catalog

## SEE ALSO

libxml 3

More information can be found at

- libxml 3 web page

- libxml 3 catalog support web page at

- James Clark's SGML catalog page

- OASIS XML catalog specification