Install a new document type without using Document Architect?

Ed Benton gives an introduction to the manual installation process Last Updated: 2006-09-11

In order to use an outside DTD and FOSI, it helps to know if it is SGML or XML. Assuming you have a document instance, you can usually tell if it is XML by whether or not the document instance has the XML Processing Instruction at the beginning, such as . If it doesn't have this, it is probably SGML.

If it is SGML, you need to put an entry in a catalog file somewhere and then tell Epic where this catalog file is located by setting the catalog path by either setting the catalog path in your Epic preferences (your epicprefs.acl file in your Windows home directory) or by setting the APTCATPATH environmental variable to the absolute path where the catalog resides. Look for catalog path or APTCATPATH in Epic Help.

The catalog file should just be named catalog with no file extension. The entry in the catalog should look similar to the entries in the catalog file in the doctypes directory. Such as this one:

PUBLIC "-//ArborText::dist//DTD Business Document::19970707//EN" "document/document.dtd"

The first entry inside the first pair of double-quotes is the PUBLIC name of the doctype, which should also appear at the top in the doctype declaration of any document instance conforming to this DTD. The "document/document.dtd" is the path to and name of the DTD for this doctype RELATIVE TO THE CATALOG FILE (or the complete, absolute path).

If the DTD is XML you only need to have the doctype declaration

<!DOCTYPE document PUBLIC "-//ArborText::dist//DTD Business Document::19970707//EN" "document.dtd">

at the top of the document instance and then put the DTD in the same directory as the document instance. (The word "document" after the word DOCTYPE tells Epic what the top-level tag of this particular XML document should be.)

The "document.dtd" is the system identifier and can be the path to the DTD. The system identifier is not required in SGML documents, but it *IS* required in XML documents.

If you prefer to have Epic use the PUBLIC name in the DOCTYPE declaration (which should match the PUBLIC entry in the catalog) instead of the system identifier, you can insert OVERRIDE YES at the beginning of your catalog and Epic will use the PUBLIC name in the catalog instead of the DOCTYPE system identifier, to find the DTD.

Epic will look for the PUBLIC name in whatever catalog the APTCATPATH or epicprefs.acl file tell it to use. It will then look for the DTD in the path following the PUBLIC name in the catalog file. You should probably add %D to the catalog path value so that Epic can find Arbortext DTDs. You can have multiple paths in your catalog path. Delimit them with semi-colons. The %D should also be delimited with a semi-colon.

The FOSI should still go in the same directory as the DTD.

You can use the catalog method for XML if you want to, but you don't have to. Arbortext supports catalogs for XML, but the XML standard does not. Epic should automatically use the FOSI if it is in the same directory as the document instance or DTD. In this case the DTD and FOSI will both be in the same directory as the document instance.