xmlcatalog Manual

2001
2004
John Fleck

    jfleck@inkstain.net

This is release 0.3 of the xmlcatalog Manual.
xmlcatalog 1
xmlcatalog Command line tool to parse and manipulate XML or SGML catalog files.
`xmlcatalog` --shell --create --add type orig replace --del values --noout --verbose `catalogfile` `entities`

## Introduction

xmlcatalog is a command line application allowing users to monitor and manipulate XML and SGML catalogs. It is included in libxml2.

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.

## Command Line Options

`--shell` filename

  Run a shell allowing interactive queries on catalog file filename.

`--create` filename

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

`--add` 'type' 'orig' 'replace' filename

  Add an entry to catalog file `filename`. type indicates the type of entry. Possible types are 'public', 'system', 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem', and '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 filename, 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.

  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.

`--del` 'values' filename

  Remove entries from the catalog file filename matching 'values'. The `--del` option will not overwrite filename, outputting to stdout, unless `--noout` is used.

`--noout`

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

`--sgml`

  Uses SGML Super catalogs for --add and --del options

`-v` or `--verbose`

  output debugging information.

## Shell Commands

Invoking xmlcatalog with the `--shell` filename option opens a command line shell allowing interactive access to the catalog file identified by filename. Invoking the shell provides a command line prompt after which commands can be entered.

`public` 'PublicID'

  Execute a public identifier lookup of the catalog entry for 'PublicID'. The corresponding entry will be output to the command line.

`system` 'SystemID'

  Execute a public identifier lookup of the catalog entry for 'SystemID'. The corresponding entry will be output to the command line.

`add` 'type' 'orig' 'replace'

  Add an entry to the catalog file. type indicates the type of entry. Possible types are 'public', 'system', 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem', and 'nextCatalog'. 'orig' is the original reference to be replaced, and 'replace' is the URI of the replacement entity to be used.

`del` 'values'

  Remove the catalog entry corresponding to 'values'.

`dump`

  Print the current catalog.

`debug`

  Print debugging statements showing the steps xmlcatalog is executing.

`quiet`

  Stop printing debugging statements.

`exit`

  Quit the shell.

## Return values

xmlcatalog's return codes provide information that can be used when calling it from scripts.

0: normal

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 lookup and entry in the catalog

## Catalogs

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 list of catalogs. An empty one should deactivate loading the default `/etc/xml/catalog` default catalog.

## References

libxml web page

libxml catalog support web page

James Clark's SGML catalog page

OASIS XML catalog specification