Name
xmlcatalog — Command line tool to parse and manipulate
XML
or
SGML
catalog files.
Synopsis
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', 'delegatePublic', 'delegateSystem'amd
'rewriteURI'.
'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
, outputing 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
, outputing to
stdout, unless
--noout
is used.
--noout
Save output to the named file rather than
outputing 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',
'delegatePublic' and 'delegateSystem'.
'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
http://www.xmlsoft.org/
libxml web page
http://www.xmlsoft.org/catalog.html
libxml
catalog support web page:
http://www.jclark.com/sp/catalog.htm
James Clark's
SGML
catalog page:
http://www.oasis-open.org/committees/entity/spec.html
OASIS
XML
catalog specification:
