File system recommendations for SGML and XML layout
---------------------------------------------------

Introduction
------------

In a normalisation effort, about thirty people, including packagers
of some Linux distributions, and developers of SGML related tools such
as the SGML-Tools and DocBook Tools project, discussed informally and
agreed on a series of recommendations that will be submitted as a draft
to the Linux Standard Base project. A reference implementation will also
be done as part of the DocBook-tools project.

This document addresses the FHS part of the project.

This document makes several references to "catalogs": these files
represent the dorsal spine of a SGML or XML system. They are mainly used
to map things (that are called "entities" in SGML or XML terminology)
into real file names. A catalog can reference other catalogs through
pointer directives (CATALOG, DELEGATE). For more information, see the
Open Catalogs standard at http://www.oasis-open.org.

/etc/sgml/
----------

In /etc/sgml one can find configuration files that describe the installed
components of a SGML or XML system.

Files found there include:

	*.conf: generic configuration files
	*.cat: DTD-specific centralized catalogs
	catalog: the super catalog

The generic configuration files define high-level parameters of the SGML
or XML system.

The "centralized catalogs" are catalogs that reference through pointers
all the other catalogs that are needed to use a given DTD. The referenced
files include the DTD's catalog, style sheets catalogs, character entities
sets catalogs, etc. All the files that are referenced reside somewhere
under /usr/share/sgml.

The "super catalog" references through pointers all the centralized
catalogs. Unlike the centralized catalogs, it does not guarantee the
absence of definition conflicts between referenced catalogs.

At least for the present, all XML documents are also SGML documents,
so it seems unnecessary to create /etc/xml.

/usr/share/sgml/
----------------

In /usr/share/sgml reside architecture-independent files used by SGML
or XML applications: ordinary catalogs (not the centralized ones), DTDs,
entities, style sheets, and other declarative files, if any.

It is organized at top-level into DTD-specific subdirectories, when
applicable:
	docbook/
	tei/
	html/
	mathml/
	...

Other files that are not specific to a given DTD may reside in their own
directory. When we say "specific to a DTD", it does not mean that those
files describe a DTD, but only that they are to be used with this DTD.

At least for the present, all XML documents are also SGML documents,
so it seems unnecessary to create /usr/share/xml.
