.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "XMLCATALOG" 1 "" "" "xmlcatalog Manual"
.SH NAME
xmlcatalog \- Command line tool to parse and manipulate XML or SGML catalog files.
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 11
\fBxmlcatalog\fR [\fB\-\-shell\fR | \fB\-\-create\fR | \fB\-\-add\ \fItype\fR\ \fIorig\fR\ \fIreplace\fR\fR | \fB\-\-del\ \fIvalues\fR\fR | \fB\-\-noout\fR | \fB\-\-verbose\fR] [\fB\fIcatalogfile\fR\fR] [\fB\fIentities\fR\fR]
.ad
.hy

.SH "INTRODUCTION"

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

.PP
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\&.

.SH "COMMAND LINE OPTIONS"

.TP
\fB\-\-shell\fR \fIfilename\fR
Run a shell allowing interactive queries on catalog file \fIfilename\fR\&.

.TP
\fB\-\-create\fR \fIfilename\fR
Create a new XML catalog\&. Outputs to stdout, ignoring \fIfilename\fR unless \fB\-\-noout\fR is used, in which case it creates a new catalog file \fIfilename\fR\&.

.TP
\fB\-\-add\fR \fI'type'\fR \fI'orig'\fR \fI'replace'\fR \fIfilename\fR
Add an entry to catalog file \fIfilename\fR\&. \fItype\fR indicates the type of entry\&. Possible types are 'public', 'system', 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem', and 'nextCatalog'\&. \fI'orig'\fR is the original reference to be replaced, and \fI'replace'\fR is the URI of the replacement entity to be used\&. The \fB\-\-add\fR option will not overwrite \fIfilename\fR, outputting to stdout, unless \fB\-\-noout\fR is used\&. The \fB\-\-add\fR will always take three parameters even if some of the XML catalog constructs will have only a single argument\&.

If the \fB\-\-add\fR option is used following the \fB\-\-sgml\fR option, only a single argument, a \fIfilename\fR, 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\&.

.TP
\fB\-\-del\fR \fI'values'\fR \fIfilename\fR
Remove entries from the catalog file \fIfilename\fR matching \fI'values'\fR\&. The \fB\-\-del\fR option will not overwrite \fIfilename\fR, outputting to stdout, unless \fB\-\-noout\fR is used\&.

.TP
\fB\-\-noout\fR
Save output to the named file rather than outputting to stdout\&.

.TP
\fB\-\-sgml\fR
Uses SGML Super catalogs for \-\-add and \-\-del options

.TP
\fB\-v\fR or \fB\-\-verbose\fR
output debugging information\&.

.SH "SHELL COMMANDS"

.PP
Invoking xmlcatalog with the \fB\-\-shell\fR  \fIfilename\fR option opens a command line shell allowing interactive access to the catalog file identified by \fIfilename\fR\&. Invoking the shell provides a command line prompt after which commands can be entered\&.

.TP
\fBpublic\fR \fI'PublicID'\fR
Execute a public identifier lookup of the catalog entry for \fI'PublicID'\fR\&. The corresponding entry will be output to the command line\&.

.TP
\fBsystem\fR \fI'SystemID'\fR
Execute a public identifier lookup of the catalog entry for \fI'SystemID'\fR\&. The corresponding entry will be output to the command line\&.

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

.TP
\fBdel\fR \fI'values'\fR
Remove the catalog entry corresponding to \fI'values'\fR\&.

.TP
\fBdump\fR
Print the current catalog\&.

.TP
\fBdebug\fR
Print debugging statements showing the steps xmlcatalog is executing\&.

.TP
\fBquiet\fR
Stop printing debugging statements\&.

.TP
\fBexit\fR
Quit the shell\&.

.SH "RETURN VALUES"

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

.PP
0: normal

.PP
1: Failed to remove an entry from the catalog

.PP
2: Failed to save to the catalog, check file permissions

.PP
3: Failed to add an entry to the catalog

.PP
4: Failed to lookup and entry in the catalog

.SH "CATALOGS"

.PP
Catalog behavior can be changed by redirecting queries to the user's own set of catalogs\&. This can be done by setting the \fIXML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default \fI/etc/xml/catalog\fR default catalog\&.

.SH "REFERENCES"

.PP
libxml web page: \fIhttp://www.xmlsoft.org/\fR

.PP
libxml catalog support web page: \fIhttp://www.xmlsoft.org/catalog.html\fR

.PP
James Clark's SGML catalog page: \fIhttp://www.jclark.com/sp/catalog.htm\fR

.PP
OASIS XML catalog specification: \fIhttp://www.oasis-open.org/committees/entity/spec.html\fR

.SH AUTHOR
John Fleck.
