<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlcatalog</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm1"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmlcatalog &#8212; 
		Command line tool to parse and manipulate <acronym class="acronym">XML</acronym>
		or <acronym class="acronym">SGML</acronym> catalog files.
	</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmlcatalog</code>  [ <code class="option">--sgml</code>  |   <code class="option">--shell</code>  |   <code class="option">--create</code>  |   <code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code>  |   
			[ 
					<code class="option">--add
					 <em class="replaceable"><code>TYPE</code></em>
					 <em class="replaceable"><code>ORIG</code></em>
					 <em class="replaceable"><code>REPLACE</code></em>
					</code>
				  |   <code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code> ]		
		  |   <code class="option">--noout</code>  |   <code class="option">--no-super-update</code>  |   
			[ <code class="option">-v</code>  |   <code class="option">--verbose</code> ]
		 ] {<em class="replaceable"><code>CATALOGFILE</code></em>} {<em class="replaceable"><code>ENTITIES</code></em>...}</p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
		<span class="command"><strong>xmlcatalog</strong></span> is a command line application allowing users to monitor and
		manipulate <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> catalogs. It
		is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.
	</p><p>
		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 <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> files.
	</p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
		<span class="command"><strong>xmlcatalog</strong></span> accepts the following options (in alphabetical order):
	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
		<code class="option">--add
		 <em class="replaceable"><code>TYPE</code></em>
		 <em class="replaceable"><code>ORIG</code></em>
		 <em class="replaceable"><code>REPLACE</code></em>
		</code>
	</span></dt><dd><p>
			Add an entry to <code class="filename">CATALOGFILE</code>. <em class="replaceable"><code>TYPE</code></em>
			indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
			reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
			is the <acronym class="acronym">URI</acronym> of the replacement entity to be
			used. The <code class="option">--add</code> option will not overwrite
			<code class="filename">CATALOGFILE</code>, outputting
			to <code class="filename">stdout</code>, unless
			<code class="option">--noout</code> is used. The <code class="option">--add</code> will
			always take three parameters even if some of the <acronym class="acronym">XML</acronym>
			catalog constructs will have only a single argument.
		</p></dd><dt><span class="term"><code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code></span></dt><dd><p>
			If the <code class="option">--add</code> option is used following
			the <code class="option">--sgml</code> option, only a single argument,
			a <em class="replaceable"><code>FILENAME</code></em>, is used. This is used to add
			the name of a catalog file to an <acronym class="acronym">SGML</acronym> supercatalog,
			a file that contains references to other included <acronym class="acronym">SGML</acronym>
			catalog files.
		</p></dd><dt><span class="term"><code class="option">--create</code></span></dt><dd><p>
			Create a new <acronym class="acronym">XML</acronym> catalog. Outputs
			to <code class="filename">stdout</code>,
			ignoring <em class="replaceable"><code>filename</code></em> unless <code class="option">--noout</code> is
			used, in which case it creates a new catalog
			file <em class="replaceable"><code>filename</code></em>.
		</p></dd><dt><span class="term"><code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
			Remove entries from <em class="replaceable"><code>CATALOGFILE</code></em>
			matching <em class="replaceable"><code>VALUE(S)</code></em>. The <code class="option">--del</code>
			option will not overwrite <em class="replaceable"><code>CATALOGFILE</code></em>,
			outputting to <code class="filename">stdout</code>,
			unless <code class="option">--noout</code> is used.
		</p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
			Save output to the named file rather than outputting
			to <code class="filename">stdout</code>.
		</p></dd><dt><span class="term"><code class="option">--no-super-update</code></span></dt><dd><p>
			Do not update the <acronym class="acronym">SGML</acronym> super catalog.
		</p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
			Run a shell allowing interactive queries on catalog
			file <em class="replaceable"><code>CATALOGFILE</code></em>. For the set of available
			commands see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called &#8220;SHELL COMMANDS&#8221;</a>.
		</p></dd><dt><span class="term"><code class="option">--sgml</code></span></dt><dd><p>
			Uses <acronym class="acronym">SGML</acronym> super catalogs for <code class="option">--add</code>
			and <code class="option">--del</code> options.
		</p></dd><dt><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span></dt><dd><p>Output debugging information.</p></dd></dl></div><p>
		Invoking <span class="command"><strong>xmlcatalog</strong></span> non-interactively without a designated action
		(imposed with options like <code class="option">--add</code>) will result in a lookup
		of the catalog entry for <em class="replaceable"><code>ENTITIES</code></em> in the
		catalog denoted with <em class="replaceable"><code>CATALOGFILE</code></em>. The
		corresponding entries will be output to the command line. This mode of
		operation, together with <code class="option">--shell</code> mode and non-modifying
		(i.e. without <code class="option">--noout</code>) direct actions, allows for
		a special shortcut of the void <em class="replaceable"><code>CATALOGFILE</code></em>
		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.
	</p></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
		Invoking <span class="command"><strong>xmlcatalog</strong></span> with
		the <code class="option">--shell <em class="replaceable"><code>CATALOGFILE</code></em></code> option opens
		a command line shell allowing interactive access to the catalog file
		identified by <em class="replaceable"><code>CATALOGFILE</code></em>. Invoking the shell
		provides a command line prompt after which the following commands (described in
		alphabetical order) can be entered.
	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
		<code class="option">add
		 <em class="replaceable"><code>TYPE</code></em>
		 <em class="replaceable"><code>ORIG</code></em>
		 <em class="replaceable"><code>REPLACE</code></em>
		</code>
	</span></dt><dd><p>
			Add an entry to the catalog file. <em class="replaceable"><code>TYPE</code></em>
			indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
			reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
			is the <acronym class="acronym">URI</acronym> of the replacement entity to be
			used. The <code class="option">--add</code> option will not overwrite
			<code class="filename">CATALOGFILE</code>, outputting
			to <code class="filename">stdout</code>, unless
			<code class="option">--noout</code> is used. The <code class="option">--add</code> will
			always take three parameters even if some of the <acronym class="acronym">XML</acronym>
			catalog constructs will have only a single argument.
		</p></dd><dt><span class="term"><code class="option">debug</code></span></dt><dd><p>
			Print debugging statements showing the steps <span class="command"><strong>xmlcatalog</strong></span> is executing.
		</p></dd><dt><span class="term"><code class="option">del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
			Remove the catalog entry corresponding to <em class="replaceable"><code>VALUE(S)</code></em>.
		</p></dd><dt><span class="term"><code class="option">dump</code></span></dt><dd><p>Print the current catalog.</p></dd><dt><span class="term"><code class="option">exit</code></span></dt><dd><p>Quit the shell.</p></dd><dt><span class="term"><code class="option">public <em class="replaceable"><code>PUBLIC-ID</code></em></code></span></dt><dd><p>
			Execute a Formal Public Identifier lookup of the catalog entry
			for <em class="replaceable"><code>PUBLIC-ID</code></em>. The corresponding entry will be
			output to the command line.
		</p></dd><dt><span class="term"><code class="option">quiet</code></span></dt><dd><p>Stop printing debugging statements.</p></dd><dt><span class="term"><code class="option">system <em class="replaceable"><code>SYSTEM-ID</code></em></code></span></dt><dd><p>
			Execute a Formal Public Identifier lookup of the catalog entry
			for <em class="replaceable"><code>SYSTEM-ID</code></em>. The corresponding entry will be
			output to the command line.
		</p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
			queries to the user's own set of catalogs. This can be done by setting
			the <code class="envar">XML_CATALOG_FILES</code> environment variable to a list
			of catalogs. An empty one should deactivate loading the
			default <code class="filename">/etc/xml/catalog</code> catalog.
		</p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
		<span class="command"><strong>xmlcatalog</strong></span> return codes provide information that can be used when
		calling it from scripts.
	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Failed to remove an entry from the catalog</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Failed to save to the catalog, check file permissions</p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Failed to add an entry to the catalog</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Failed to look up an entry in the catalog</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
	</p><p>
		More information can be found at
		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a>
				</p></li><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> catalog support web page
					at <a class="ulink" href="http://www.xmlsoft.org/catalog.html" target="_top">http://www.xmlsoft.org/catalog.html</a>
				</p></li><li class="listitem"><p>James Clark's <acronym class="acronym">SGML</acronym> catalog
					page <a class="ulink" href="http://www.jclark.com/sp/catalog.htm" target="_top">http://www.jclark.com/sp/catalog.htm</a>
				</p></li><li class="listitem"><p><acronym class="acronym">OASIS</acronym> <acronym class="acronym">XML</acronym> catalog specification
					<a class="ulink" href="http://www.oasis-open.org/committees/entity/spec.html" target="_top">http://www.oasis-open.org/committees/entity/spec.html</a>
				</p></li></ul></div><p>
	</p></div></div></body></html>
