# xmlcatalog Manual

libxml2 2001 2004 John Fleck

    				jfleck@inkstain.net

$Date$
xmlcatalog
1

# xmlcatalog

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

    	xmlcatalog

    		--sgml
    		--shell
    		--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.

`--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.

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