Publishing Engine Programmer's Guide > PTC Arbortext Publishing > Server Configuration for Publishing > Content of the Publishing Configuration Document > Document Types > Public ID Lists, URI Lists, and System ID Mappings
  
Public ID Lists, URI Lists, and System ID Mappings
To Arbortext Editor or an Arbortext PE sub-process, a document type is simply a directory containing information about how to process a particular kind of document. The document type directory contains a Document Type Definition (.dtd) file or a Schema (.xsd) file. It also contains stylesheets, framesets, and other information about the document type. The only truly unique identifier for a document type is the absolute path to the directory in which it resides.
An SGML or XML document specifies its document type somewhat indirectly, by specifying a Public ID, a System ID, or a URI. A given document type may be identified by any number of public IDs, System IDs, or URIs. These identifiers are associated with the document type directory by directives in one or more catalog files, which are read by Arbortext Editor and by Arbortext PE sub-processes as they initialize.
An SGML or XML document usually has either a document type declaration or a schema declaration that specifies its document type. A document type declaration specifies a Public ID, a System ID, or possibly both. A schema declaration specifies a URI. A public ID is simply a text string; a system ID is an absolute or relative path to the .dtd or .xsd file. A URI is a URL for locating an .xsd file on the internet.
When Arbortext Editor or an Arbortext PE sub-process initializes, it scans a list of directories for catalog files. Catalog files may contain PUBLIC, URI, or SYSTEM directives (as well as others). A PUBLIC directive maps a Public ID to a System ID, which allows Arbortext Editor or an Arbortext PE sub-process to map a Public ID string to the path to a .dtd or .xsd file. A URI directive maps a schema URI to a System ID, which allows Arbortext Editor or an Arbortext PE sub-process to map a URI to an .xsd file. A SYSTEM directive maps one system ID to another; that is, a directive such as:
SYSTEM a b
directs Arbortext Editor or an Arbortext PE sub-process to look for file b instead of looking for file a.
When Arbortext Editor or an Arbortext PE sub-process opens an SGML or XML document, it finds the relevant document type directory by looking for a document type or schema declaration. If the document contains a schema declaration, Arbortext Editor or an Arbortext PE sub-process looks for the schema-to-directory mapping provided by a URI directive in a catalog file. If the document contains a document type declaration with a Public ID, Arbortext Editor or an Arbortext PE sub-process looks for a public ID-to-directory mapping provided by a PUBLIC directive in a catalog file. If the document contains a document type declaration with only a System ID, Arbortext Editor or an Arbortext PE sub-process uses the System ID directly. In all cases, if a URI or a Public ID can be translated to a System ID, or if a System ID is specified directly, Arbortext Editor or an Arbortext PE sub-process checks to see if the System ID is mapped to another location by a SYSTEM directive.
When the Publishing Configuration document is assembled, the Arbortext PE sub-process looks for PUBLIC, URI, and SYSTEM directives in every installed catalog file; each directive maps a Public ID, a URI, or a System ID to a document type directory. The Arbortext PE sub-process adds the mapping to the appropriate list for the document type.
When a Arbortext Editor client tries to publish a document using an Arbortext PE server, it must be able to locate the document's document type on the Arbortext PE server. To find the server-based document type, it looks in the Publishing Configuration document for a document type with a matching Public ID, URI, or system ID.