[libxml2]Add libxml2 library

This commit is contained in:
zhoujiale
2026-07-26 16:57:28 +08:00
committed by zhoujiale
parent 0a44ec8a06
commit e841ac915d
3790 changed files with 668244 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
/html/
/xml/
+110
View File
@@ -0,0 +1,110 @@
PROJECT_NAME = libxml2
OUTPUT_DIRECTORY = $(BUILD_ROOT)doc
STRIP_FROM_PATH = $(SOURCE_ROOT)include/libxml \
$(BUILD_ROOT)include/libxml
JAVADOC_AUTOBRIEF = YES
OPTIMIZE_OUTPUT_FOR_C = YES
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = YES
SHOW_INCLUDE_FILES = NO
WARN_NO_PARAMDOC = YES
WARN_AS_ERROR = $(DOXYGEN_WARN_AS_ERROR)
INPUT = $(SOURCE_ROOT)doc/mainpage.md \
$(SOURCE_ROOT)include/libxml/c14n.h \
$(SOURCE_ROOT)include/libxml/catalog.h \
$(SOURCE_ROOT)include/libxml/chvalid.h \
$(SOURCE_ROOT)include/libxml/debugXML.h \
$(SOURCE_ROOT)include/libxml/dict.h \
$(SOURCE_ROOT)include/libxml/encoding.h \
$(SOURCE_ROOT)include/libxml/entities.h \
$(SOURCE_ROOT)include/libxml/hash.h \
$(SOURCE_ROOT)include/libxml/HTMLparser.h \
$(SOURCE_ROOT)include/libxml/HTMLtree.h \
$(SOURCE_ROOT)include/libxml/list.h \
$(SOURCE_ROOT)include/libxml/parser.h \
$(SOURCE_ROOT)include/libxml/parserInternals.h \
$(SOURCE_ROOT)include/libxml/pattern.h \
$(SOURCE_ROOT)include/libxml/relaxng.h \
$(SOURCE_ROOT)include/libxml/SAX2.h \
$(SOURCE_ROOT)include/libxml/schemasInternals.h \
$(SOURCE_ROOT)include/libxml/schematron.h \
$(SOURCE_ROOT)include/libxml/threads.h \
$(SOURCE_ROOT)include/libxml/tree.h \
$(SOURCE_ROOT)include/libxml/uri.h \
$(SOURCE_ROOT)include/libxml/valid.h \
$(SOURCE_ROOT)include/libxml/xinclude.h \
$(SOURCE_ROOT)include/libxml/xlink.h \
$(SOURCE_ROOT)include/libxml/xmlautomata.h \
$(SOURCE_ROOT)include/libxml/xmlerror.h \
$(SOURCE_ROOT)include/libxml/xmlIO.h \
$(SOURCE_ROOT)include/libxml/xmlmemory.h \
$(SOURCE_ROOT)include/libxml/xmlmodule.h \
$(SOURCE_ROOT)include/libxml/xmlreader.h \
$(SOURCE_ROOT)include/libxml/xmlregexp.h \
$(SOURCE_ROOT)include/libxml/xmlsave.h \
$(SOURCE_ROOT)include/libxml/xmlschemas.h \
$(SOURCE_ROOT)include/libxml/xmlschemastypes.h \
$(SOURCE_ROOT)include/libxml/xmlstring.h \
$(BUILD_ROOT)include/libxml/xmlversion.h \
$(SOURCE_ROOT)include/libxml/xmlwriter.h \
$(SOURCE_ROOT)include/libxml/xpath.h \
$(SOURCE_ROOT)include/libxml/xpathInternals.h \
$(SOURCE_ROOT)include/libxml/xpointer.h \
$(SOURCE_ROOT)buf.c \
$(SOURCE_ROOT)c14n.c \
$(SOURCE_ROOT)catalog.c \
$(SOURCE_ROOT)chvalid.c \
$(SOURCE_ROOT)debugXML.c \
$(SOURCE_ROOT)dict.c \
$(SOURCE_ROOT)encoding.c \
$(SOURCE_ROOT)entities.c \
$(SOURCE_ROOT)error.c \
$(SOURCE_ROOT)globals.c \
$(SOURCE_ROOT)hash.c \
$(SOURCE_ROOT)HTMLparser.c \
$(SOURCE_ROOT)HTMLtree.c \
$(SOURCE_ROOT)list.c \
$(SOURCE_ROOT)parser.c \
$(SOURCE_ROOT)parserInternals.c \
$(SOURCE_ROOT)pattern.c \
$(SOURCE_ROOT)relaxng.c \
$(SOURCE_ROOT)SAX2.c \
$(SOURCE_ROOT)schematron.c \
$(SOURCE_ROOT)threads.c \
$(SOURCE_ROOT)tree.c \
$(SOURCE_ROOT)uri.c \
$(SOURCE_ROOT)valid.c \
$(SOURCE_ROOT)xinclude.c \
$(SOURCE_ROOT)xlink.c \
$(SOURCE_ROOT)xmlcatalog.c \
$(SOURCE_ROOT)xmlIO.c \
$(SOURCE_ROOT)xmlmemory.c \
$(SOURCE_ROOT)xmlmodule.c \
$(SOURCE_ROOT)xmlreader.c \
$(SOURCE_ROOT)xmlregexp.c \
$(SOURCE_ROOT)xmlsave.c \
$(SOURCE_ROOT)xmlschemas.c \
$(SOURCE_ROOT)xmlschemastypes.c \
$(SOURCE_ROOT)xmlstring.c \
$(SOURCE_ROOT)xmlwriter.c \
$(SOURCE_ROOT)xpath.c \
$(SOURCE_ROOT)xpointer.c
EXCLUDE_SYMLINKS = YES
USE_MDFILE_AS_MAINPAGE = $(SOURCE_ROOT)doc/mainpage.md
VERBATIM_HEADERS = NO
HTML_EXTRA_STYLESHEET = $(SOURCE_ROOT)doc/libxml2.css
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
ENUM_VALUES_PER_LINE = 0
GENERATE_LATEX = NO
GENERATE_XML = YES
XML_PROGRAMLISTING = NO
MACRO_EXPANSION = YES
INCLUDE_PATH = $(SOURCE_ROOT). \
$(SOURCE_ROOT)include \
$(BUILD_ROOT). \
$(BUILD_ROOT)include
PREDEFINED = XML_TREE_INTERNALS
HAVE_DOT = NO
+56
View File
@@ -0,0 +1,56 @@
## Process this file with automake to produce Makefile.in
EXTRA_DIST = \
Doxyfile \
libxml2.css \
mainpage.md \
meson.build \
xml2-config.1 \
xmlcatalog.xml \
xmllint.xml
all-local: html.stamp
html.stamp: Doxyfile
SOURCE_ROOT=$(top_srcdir)/ BUILD_ROOT=$(top_builddir)/ \
$(DOXYGEN) -q $<
@touch $@
CLEANFILES = html.stamp
clean-local:
rm -rf html xml
if WITH_DOCS
man_MANS = xml2-config.1 xmllint.1
doc_DATA = xmllint.html
CLEANFILES += xmllint.1 xmllint.html
if WITH_CATALOG_SOURCES
if WITH_OUTPUT_SOURCES
man_MANS += xmlcatalog.1
doc_DATA += xmlcatalog.html
CLEANFILES += xmlcatalog.1 xmlcatalog.html
endif
endif
DOCBOOK_MAN = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
DOCBOOK_HTML = http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
.xml.1:
$(XSLTPROC) --nonet --novalid --param man.output.quietly 1 \
-o $@ $(DOCBOOK_MAN) $<
.xml.html:
$(XSLTPROC) --nonet --novalid -o $@ $(DOCBOOK_HTML) $<
install-data-local:
$(MKDIR_P) "$(DESTDIR)$(docdir)/html/search"
$(INSTALL_DATA) html/*.* "$(DESTDIR)$(docdir)/html"
$(INSTALL_DATA) html/search/*.* "$(DESTDIR)$(docdir)/html/search"
uninstall-local:
-rm -rf "$(DESTDIR)$(docdir)/html"
endif
+50
View File
@@ -0,0 +1,50 @@
# Redirects for GitLab pages
# Start page
/libxml2/ /libxml2/html/index.html 302
# Old documentation
/libxml2/devhelp/libxml2-c14n.html /libxml2/html/c14n_8h.html
/libxml2/devhelp/libxml2-catalog.html /libxml2/html/catalog_8h.html
/libxml2/devhelp/libxml2-chvalid.html /libxml2/html/chvalid_8h.html
/libxml2/devhelp/libxml2-debugXML.html /libxml2/html/debugXML_8h.html
/libxml2/devhelp/libxml2-dict.html /libxml2/html/dict_8h.html
/libxml2/devhelp/libxml2-encoding.html /libxml2/html/encoding_8h.html
/libxml2/devhelp/libxml2-entities.html /libxml2/html/entities_8h.html
/libxml2/devhelp/libxml2-hash.html /libxml2/html/hash_8h.html
/libxml2/devhelp/libxml2-HTMLparser.html /libxml2/html/HTMLparser_8h.html
/libxml2/devhelp/libxml2-HTMLtree.html /libxml2/html/HTMLtree_8h.html
/libxml2/devhelp/libxml2-list.html /libxml2/html/list_8h.html
/libxml2/devhelp/libxml2-parser.html /libxml2/html/parser_8h.html
/libxml2/devhelp/libxml2-parserInternals.html /libxml2/html/parserInternals_8h.html
/libxml2/devhelp/libxml2-pattern.html /libxml2/html/pattern_8h.html
/libxml2/devhelp/libxml2-relaxng.html /libxml2/html/relaxng_8h.html
/libxml2/devhelp/libxml2-SAX2.html /libxml2/html/SAX2_8h.html
/libxml2/devhelp/libxml2-schemasInternals.html /libxml2/html/schemasInternals_8h.html
/libxml2/devhelp/libxml2-schematron.html /libxml2/html/schematron_8h.html
/libxml2/devhelp/libxml2-threads.html /libxml2/html/threads_8h.html
/libxml2/devhelp/libxml2-tree.html /libxml2/html/tree_8h.html
/libxml2/devhelp/libxml2-uri.html /libxml2/html/uri_8h.html
/libxml2/devhelp/libxml2-valid.html /libxml2/html/valid_8h.html
/libxml2/devhelp/libxml2-xinclude.html /libxml2/html/xinclude_8h.html
/libxml2/devhelp/libxml2-xlink.html /libxml2/html/xlink_8h.html
/libxml2/devhelp/libxml2-xmlautomata.html /libxml2/html/xmlautomata_8h.html
/libxml2/devhelp/libxml2-xmlerror.html /libxml2/html/xmlerror_8h.html
/libxml2/devhelp/libxml2-xmlIO.html /libxml2/html/xmlIO_8h.html
/libxml2/devhelp/libxml2-xmlmemory.html /libxml2/html/xmlmemory_8h.html
/libxml2/devhelp/libxml2-xmlmodule.html /libxml2/html/xmlmodule_8h.html
/libxml2/devhelp/libxml2-xmlreader.html /libxml2/html/xmlreader_8h.html
/libxml2/devhelp/libxml2-xmlregexp.html /libxml2/html/xmlregexp_8h.html
/libxml2/devhelp/libxml2-xmlsave.html /libxml2/html/xmlsave_8h.html
/libxml2/devhelp/libxml2-xmlschemas.html /libxml2/html/xmlschemas_8h.html
/libxml2/devhelp/libxml2-xmlschemastypes.html /libxml2/html/xmlschemastypes_8h.html
/libxml2/devhelp/libxml2-xmlstring.html /libxml2/html/xmlstring_8h.html
/libxml2/devhelp/libxml2-xmlversion.html /libxml2/html/xmlversion_8h.html
/libxml2/devhelp/libxml2-xmlwriter.html /libxml2/html/xmlwriter_8h.html
/libxml2/devhelp/libxml2-xpath.html /libxml2/html/xpath_8h.html
/libxml2/devhelp/libxml2-xpathInternals.html /libxml2/html/xpathInternals_8h.html
/libxml2/devhelp/libxml2-xpointer.html /libxml2/html/xpointer_8h.html
/libxml2/devhelp/general.html /libxml2/html/files.html
/libxml2/devhelp/* /libxml2/html/index.html
+9
View File
@@ -0,0 +1,9 @@
div.contents {
max-width: 60em;
}
h1 {
font-size: 1.5em;
}
h2 {
font-size: 1.25em;
}
+25
View File
@@ -0,0 +1,25 @@
# API Documentation
See [File List](files.html) for API documentation sorted by
public header files.
## About
libxml2 is an XML toolkit implemented in C, originally developed for
the GNOME Project.
Official releases can be downloaded from
<https://download.gnome.org/sources/libxml2/>
The git repository is hosted on GNOME's GitLab server:
<https://gitlab.gnome.org/GNOME/libxml2>
Bugs should be reported at
<https://gitlab.gnome.org/GNOME/libxml2/-/issues>
Other documentation is available at
<https://gitlab.gnome.org/GNOME/libxml2/-/wikis>
## License
This code is released under the MIT License, see the Copyright file.
+67
View File
@@ -0,0 +1,67 @@
# Doxygen
doxygen = find_program('doxygen')
# TODO: To make the xml directory work as dependency of the
# Python target, we must make sure that its timestamp changes
# whenever the docs are rebuilt. Either delete the directory
# before generating, or touch it afterward?
doxygen_docs = custom_target(
'Doxygen documentation',
input: [
xml_src_files, libxml_headers,
files('libxml2.css', 'mainpage.md'),
],
output: [ 'html', 'xml' ],
command: [ doxygen, '-q', files('Doxyfile') ],
env: {
'SOURCE_ROOT': meson.project_source_root() + '/',
'BUILD_ROOT': meson.project_build_root() + '/',
},
install: true,
install_dir: [ want_docs ? dir_doc : false, false ],
)
if want_docs
# xml2-config
install_man('xml2-config.1')
# Docbook
xsltproc = find_program('xsltproc')
types = [
[ 'manpages', '.1', dir_man / 'man1' ],
[ 'html', '.html', dir_doc ],
]
programs = [ 'xmllint' ]
if want_catalog and want_output
programs += 'xmlcatalog'
endif
foreach prog : programs
foreach type : types
format = type[0]
ext = type[1]
install_dir = type[2]
xsl = 'http://docbook.sourceforge.net' + \
f'/release/xsl/current/@format@/docbook.xsl'
output = prog + ext
custom_target(
output,
input: prog + '.xml',
output: output,
command: [xsltproc,
'--nonet', '--novalid',
'--param', 'man.output.quietly', '1',
'-o', '@OUTPUT@',
xsl, '@INPUT@'
],
install: true,
install_dir: install_dir
)
endforeach
endforeach
endif
+32
View File
@@ -0,0 +1,32 @@
.TH xml2-config 1 "3 April 2022" Version 1.2.0
.SH NAME
xml2-config - script to get information about the installed version of libxml2
.SH SYNOPSIS
.B xml2-config
[\-\-prefix\fI[=DIR]\fP] [\-\-libs] [\-\-cflags] [\-\-version] [\-\-help]
.SH DESCRIPTION
\fIxml2-config\fP is a tool that is used to determine the compile and
linker flags that should be used to compile and link programs that use
\fIlibxml2\fP.
.SH OPTIONS
\fIxml2-config\fP accepts the following options:
.TP 8
.B \-\-version
Print the currently installed version of \fIlibxml2\fP on the standard output.
.TP 8
.B \-\-libs
Print the linker flags that are necessary to link a \fIlibxml2\fP program.
Add \-\-dynamic after \-\-libs to print only shared library linking
information.
.TP 8
.B \-\-cflags
Print the compiler flags that are necessary to compile a \fIlibxml2\fP program.
.TP 8
.B \-\-prefix=PREFIX
If specified, use PREFIX instead of the installation prefix that
\fIlibxml2\fP was built with when computing the output for the
\-\-cflags and \-\-libs options. This option must be specified before
any \-\-libs or \-\-cflags options.
.SH AUTHOR
This manual page was written by Fredrik Hallenberg <hallon@lysator.liu.se>,
for the Debian GNU/linux system (but may be used by others).
+476
View File
@@ -0,0 +1,476 @@
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"
href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY xmlcatalog "<command>xmlcatalog</command>">
]>
<refentry>
<refentryinfo>
<title>xmlcatalog Manual</title>
<productname>libxml2</productname>
<copyright>
<year>2001</year>
<year>2004</year>
</copyright>
<author>
<firstname>John</firstname>
<surname>Fleck</surname>
<contrib></contrib>
<affiliation>
<address>
<email>jfleck@inkstain.net</email>
</address>
</affiliation>
</author>
<!-- still a bit buggy output, will talk to docbook-xsl upstream to fix this -->
<!-- <releaseinfo>This is release 0.3 of the xmlcatalog Manual.</releaseinfo> -->
<!-- <edition>0.3</edition> -->
</refentryinfo>
<refmeta>
<refentrytitle>xmlcatalog</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>xmlcatalog</refname>
<refpurpose>
Command line tool to parse and manipulate <acronym>XML</acronym>
or <acronym>SGML</acronym> catalog files.
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>xmlcatalog</command>
<group choice="opt">
<arg choice="plain"><option>--sgml</option></arg>
<arg choice="plain"><option>--shell</option></arg>
<arg choice="plain"><option>--convert</option></arg>
<arg choice="plain"><option>--create</option></arg>
<arg choice="plain"><option>--del <replaceable>VALUE(S)</replaceable></option></arg>
<arg choice="plain">
<group choice="opt">
<arg choice="plain">
<option>--add
<replaceable>TYPE</replaceable>
<replaceable>ORIG</replaceable>
<replaceable>REPLACE</replaceable>
</option>
</arg>
<arg choice="plain"><option>--add <replaceable>FILENAME</replaceable></option></arg>
</group>
</arg>
<arg choice="plain"><option>--noout</option></arg>
<arg choice="plain"><option>--no-super-update</option></arg>
<arg choice="plain">
<group choice="opt">
<arg choice="plain"><option>-v</option></arg>
<arg choice="plain"><option>--verbose</option></arg>
</group>
</arg>
</group>
<arg choice="req" rep="norepeat"><replaceable>CATALOGFILE</replaceable></arg>
<arg choice="req" rep="repeat"><replaceable>ENTITIES</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="description">
<title>DESCRIPTION</title>
<para>
&xmlcatalog; is a command line application allowing users to monitor and
manipulate <acronym>XML</acronym> and <acronym>SGML</acronym> catalogs. It
is included in <citerefentry>
<refentrytitle>libxml</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry>.
</para>
<para>
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>XML</acronym> and <acronym>SGML</acronym> files.
</para>
</refsect1>
<refsect1 id="options">
<title>OPTIONS</title>
<para>
&xmlcatalog; accepts the following options (in alphabetical order):
</para>
<variablelist>
<varlistentry>
<term>
<option>--add
<replaceable>TYPE</replaceable>
<replaceable>ORIG</replaceable>
<replaceable>REPLACE</replaceable>
</option>
</term>
<listitem>
<para>
Add an entry to <filename>CATALOGFILE</filename>. <replaceable>TYPE</replaceable>
indicates the type of entry. Possible types are: <simplelist type="inline">
<member><parameter>public</parameter></member>
<member><parameter>system</parameter></member>
<member><parameter>uri</parameter></member>
<member><parameter>rewriteSystem</parameter></member>
<member><parameter>rewriteURI</parameter></member>
<member><parameter>delegatePublic</parameter></member>
<member><parameter>delegateSystem</parameter></member>
<member><parameter>delegateURI</parameter></member>
<member><parameter>nextCatalog</parameter></member>
</simplelist>. <replaceable>ORIG</replaceable> is the original
reference to be replaced, and <replaceable>REPLACE</replaceable>
is the <acronym>URI</acronym> of the replacement entity to be
used. The <option>--add</option> option will not overwrite
<filename>CATALOGFILE</filename>, outputting
to <filename class="devicefile">stdout</filename>, unless
<option>--noout</option> is used. The <option>--add</option> will
always take three parameters even if some of the <acronym>XML</acronym>
catalog constructs will have only a single argument.
</para>
<!--
FIXME - Is my list of possible types correct? Are SGML types the same?
-->
</listitem>
</varlistentry>
<varlistentry>
<term><option>--add <replaceable>FILENAME</replaceable></option></term>
<listitem>
<para>
If the <option>--add</option> option is used following
the <option>--sgml</option> option, only a single argument,
a <replaceable>FILENAME</replaceable>, is used. This is used to add
the name of a catalog file to an <acronym>SGML</acronym> supercatalog,
a file that contains references to other included <acronym>SGML</acronym>
catalog files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--convert</option></term>
<listitem>
<para>
Convert SGML catalog to XML.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--create</option></term>
<listitem>
<para>
Create a new <acronym>XML</acronym> catalog. Outputs
to <filename class="devicefile">stdout</filename>,
ignoring <replaceable>filename</replaceable> unless <option>--noout</option> is
used, in which case it creates a new catalog
file <replaceable>filename</replaceable>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--del <replaceable>VALUE(S)</replaceable></option></term>
<listitem>
<para>
Remove entries from <replaceable>CATALOGFILE</replaceable>
matching <replaceable>VALUE(S)</replaceable>. The <option>--del</option>
option will not overwrite <replaceable>CATALOGFILE</replaceable>,
outputting to <filename class="devicefile">stdout</filename>,
unless <option>--noout</option> is used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--noout</option></term>
<listitem>
<para>
Save output to the named file rather than outputting
to <filename class="devicefile">stdout</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--no-super-update</option></term>
<listitem>
<para>
Do not update the <acronym>SGML</acronym> super catalog.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--shell</option></term>
<listitem>
<para>
Run a shell allowing interactive queries on catalog
file <replaceable>CATALOGFILE</replaceable>. For the set of available
commands see <xref linkend="shell"/>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--sgml</option></term>
<listitem>
<para>
Uses <acronym>SGML</acronym> super catalogs for <option>--add</option>
and <option>--del</option> options.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<term><option>--verbose</option></term>
<listitem>
<para>Output debugging information.</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Invoking &xmlcatalog; non-interactively without a designated action
(imposed with options like <option>--add</option>) will result in a lookup
of the catalog entry for <replaceable>ENTITIES</replaceable> in the
catalog denoted with <replaceable>CATALOGFILE</replaceable>. The
corresponding entries will be output to the command line. This mode of
operation, together with <option>--shell</option> mode and non-modifying
(i.e. without <option>--noout</option>) direct actions, allows for
a special shortcut of the void <replaceable>CATALOGFILE</replaceable>
specification (possibly expressed as &quot;&quot; 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.
</para>
</refsect1>
<refsect1 id="shell">
<title>SHELL COMMANDS</title>
<para>
Invoking &xmlcatalog; with
the <option>--shell <replaceable>CATALOGFILE</replaceable></option> option opens
a command line shell allowing interactive access to the catalog file
identified by <replaceable>CATALOGFILE</replaceable>. Invoking the shell
provides a command line prompt after which the following commands (described in
alphabetical order) can be entered.
</para>
<variablelist>
<varlistentry>
<term>
<option>add
<replaceable>TYPE</replaceable>
<replaceable>ORIG</replaceable>
<replaceable>REPLACE</replaceable>
</option>
</term>
<listitem>
<para>
Add an entry to the catalog file. <replaceable>TYPE</replaceable>
indicates the type of entry. Possible types are: <simplelist type="inline">
<member><parameter>public</parameter></member>
<member><parameter>system</parameter></member>
<member><parameter>uri</parameter></member>
<member><parameter>rewriteSystem</parameter></member>
<member><parameter>rewriteURI</parameter></member>
<member><parameter>delegatePublic</parameter></member>
<member><parameter>delegateSystem</parameter></member>
<member><parameter>delegateURI</parameter></member>
<member><parameter>nextCatalog</parameter></member>
</simplelist>. <replaceable>ORIG</replaceable> is the original
reference to be replaced, and <replaceable>REPLACE</replaceable>
is the <acronym>URI</acronym> of the replacement entity to be
used. The <option>--add</option> option will not overwrite
<filename>CATALOGFILE</filename>, outputting
to <filename class="devicefile">stdout</filename>, unless
<option>--noout</option> is used. The <option>--add</option> will
always take three parameters even if some of the <acronym>XML</acronym>
catalog constructs will have only a single argument.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>debug</option></term>
<listitem>
<para>
Print debugging statements showing the steps &xmlcatalog; is executing.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>del <replaceable>VALUE(S)</replaceable></option></term>
<listitem>
<para>
Remove the catalog entry corresponding to <replaceable>VALUE(S)</replaceable>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>dump</option></term>
<listitem>
<para>Print the current catalog.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>exit</option></term>
<listitem>
<para>Quit the shell.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>public <replaceable>PUBLIC-ID</replaceable></option></term>
<listitem>
<para>
Execute a Formal Public Identifier lookup of the catalog entry
for <replaceable>PUBLIC-ID</replaceable>. The corresponding entry will be
output to the command line.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>quiet</option></term>
<listitem>
<para>Stop printing debugging statements.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>system <replaceable>SYSTEM-ID</replaceable></option></term>
<listitem>
<para>
Execute a Formal Public Identifier lookup of the catalog entry
for <replaceable>SYSTEM-ID</replaceable>. The corresponding entry will be
output to the command line.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="environment">
<title>ENVIRONMENT</title>
<variablelist>
<varlistentry>
<term><envar>XML_CATALOG_FILES</envar></term>
<listitem>
<para><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 <envar>XML_CATALOG_FILES</envar> environment variable to a space-separated
list of catalogs. Use percent-encoding to escape spaces or other characters.
An empty variable should deactivate loading the default catalog from
<filename>/etc/xml/catalog</filename> or, more specifically,
<filename>${sysconfdir}/xml/catalog</filename>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="diagnostics">
<title>DIAGNOSTICS</title>
<para>
&xmlcatalog; return codes provide information that can be used when
calling it from scripts.
</para>
<variablelist>
<varlistentry>
<term><errorcode>0</errorcode></term>
<listitem>
<para>No error</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>1</errorcode></term>
<listitem>
<para>Failed to remove an entry from the catalog</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>2</errorcode></term>
<listitem>
<para>Failed to save to the catalog, check file permissions</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>3</errorcode></term>
<listitem>
<para>Failed to add an entry to the catalog</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>4</errorcode></term>
<listitem>
<para>Failed to look up an entry in the catalog</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="seealso">
<title>SEE ALSO</title>
<para><citerefentry>
<refentrytitle>libxml</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry>
</para>
<para>
More information can be found at
<itemizedlist>
<listitem>
<para><citerefentry>
<refentrytitle>libxml</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry> web page <ulink url="https://gitlab.gnome.org/GNOME/libxml2"/>
</para>
</listitem>
<listitem>
<para><citerefentry>
<refentrytitle>libxml</refentrytitle>
<manvolnum>3</manvolnum>
</citerefentry> catalog support web page
at <ulink url="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/Catalog-support"/>
</para>
</listitem>
<listitem>
<para>James Clark's <acronym>SGML</acronym> catalog
page <ulink url="http://www.jclark.com/sp/catalog.htm"/>
</para>
</listitem>
<listitem>
<para><acronym>OASIS</acronym> <acronym>XML</acronym> catalog specification
<ulink url="http://www.oasis-open.org/committees/entity/spec.html"/>
</para>
</listitem>
</itemizedlist>
</para>
</refsect1>
</refentry>
File diff suppressed because it is too large Load Diff