Customizer's Guide > Custom Applications > Description of the Custom Directory Structure > Subdirectory Structure
  
Subdirectory Structure
The following list describes each custom subdirectory and how it's used. Arbortext Editor and Arbortext Publishing Engine look in these directories for any references that use a relative path or have no specified path.
classes subdirectory
Holds compiled Java .class and .jar files.
TheArbortext Editor and Arbortext Publishing Engine JVM Java class path holds a list of directories and paths to .jar files. Any files matching *.jar are prepended to the JVM Java class path. Then the classes parent directory is prepended, putting it first in the JVM Java class path.
In cases where a class file occurs in more than one .jar file, you can extract the preferred .class file from its .jar file and place it in a subdirectory path of the classes directory to control which one takes precedent.
composer subdirectory
Holds publishing configuration files (.ccf, .ent, and .xml files) and can support a catalog file. Supports one level of subdirectories.
The default path is Arbortext-path\composer. If there are any subdirectories of the custom\composer directory, those subdirectories are prepended to the publishing configuration path. Then the custom\composer parent directory is prepended to the path. If the custom\composer directory contains a catalog file, that directory is also prepended to the catalog path.
datamerge subdirectory
Holds data merge configuration (.dmf) files specifying queries and their components. The .dmf file structure is discussed in the Customizer's Guide.
* 
The capability to merge data is deprecated and not an encouraged best practice supported by PTC.
dialogs subdirectory
Holds dialog files that can be accessed from custom applications, such as one that uses the AOM Application.createDialogFromFile method (documented in the Programmer's Reference).
The Arbortext-path\samples\XUI\preferences\pref_exts.zip contains a sample application that adds a tab to the Preferences window as a way to extend preferences for custom applications. Refer to the readme.txt file for more information.
If there are any subdirectories of the custom\dialogs directory, those subdirectories are prepended to the dialog path. Then the custom\dialogs parent directory is prepended to the dialog path.
ditarefs subdirectory
Holds content referenced by DITA documents when the reference is not specified as either an absolute path name or a path name relative to the current document directory. For example, the ditarefs subdirectory could hold content referenced by topic references, content references, and so forth. Supports one level of subdirectories.
The default DITA reference path is Arbortext-path\ditarefs. The DITA references path can be set in the File Locations category of the Tools > Preferences dialog box. You can also use the set ditapath option or the APTDITAPATH environment variable to set the default path for DITA references. If there are any subdirectories of the custom\ditarefs directory, those subdirectories are prepended to the path. Then the custom\ditarefs parent directory is prepended to the path.
* 
Graphic references from DITA documents are resolved using the graphics path list.
dictionaries subdirectory
Holds user-defined dictionary files that can be used by the spelling checker. Supports one level of subdirectories.
The default path is Arbortext-path\lib\proximity\userdict. If there are any subdirectories of the custom\dictionaries directory, those subdirectories are prepended to the dictionary path. Then the custom\dictionaries parent directory is prepended to the dictionary path.
doctypes subdirectory
Holds a custom catalog file and document type files. Supports one level of subdirectories. Each document type should reside in a uniquely named subdirectory of doctypes. The subdirectory should also contain a catalog file for the custom document type. A doctypes subdirectory can also contain a subset of the complete document type file set. You can place a document type configuration file .dcf or stylesheets in a \custom\doctypes\doctype directory.
You can add a stylesheet to the list of stylesheets that displays when you make a publishing request using one of the File > Publish choices. Arbortext Editor and Arbortext Publishing Engine search each \custom\doctypes\doctype directory and aggregate the list of stylesheets. For example, you can add stylesheets for the asdocbook built-in document type (asdocbook) by placing them in Arbortext-path\custom\doctypes\asdocbook.
If a document does not specify an Editor view stylesheet with a stylesheet association PI, Arbortext Editor will first search first the document directory, then the relevant \custom\doctypes\doctype directory, and finally the original location for the doctype directory.
If the subdirectory contains only a .dcf file, it must conform to a naming convention that expects the subdirectory and .dcf file name to reflect the base document type name. For example, you could customize the default asdocbook asdocbook.dcf file, and put it in Arbortext-path\custom\doctypes\asdocbook\asdocbook.dcf to override the built-in .dcf. Note that the document type subdirectory and file name must be the same as the default document type name for Arbortext Editor and Arbortext Publishing Engine to find all the relevant document type files.
A DCF file can reference other files, such as the .pcf, demo.xml, and template.xml files. Custom versions of these files can be placed with the .dcf in \custom\doctypes\doctype. If Arbortext Editor and Arbortext Publishing Engine find a .dcf in the \custom\doctypes\doctype location, relative path references are resolved by first searching the same directory as the .dcf and then by searching the document type directory in the original location.
The default catalog path is Arbortext-path\doctypes. If there are any subdirectories of the custom\doctypes directory that contain a catalog file, those subdirectories are prepended to the catalog path. Then the custom\doctypes parent directory is prepended to the catalog path.
You can place custom tag template files (.tpl) in a custom\doctypes\doctype\tagtemplates directory. The custom\tagtemplates directory can also be used as a more generally available location for tag templates.
Any document type from the custom\doctypes directory is also added to the list of available document types that are displayed in the File > New dialog box.
entities subdirectory
Holds file entities. Supports one level of subdirectories.
A file entity is any structurally complete document unit saved as a file. File entities commonly have an .xml file extension.
The default entity path is Arbortext-path\entities. If there are any subdirectories of the custom\entities directory, those subdirectories are prepended to the entity path. Then the custom\entities parent directory is prepended to the entities path.
fonts subdirectory
Holds custom AFM or TFM font metric files (.afm and .tfm).
The default fonts path is Arbortext-path\fonts. If there are fonts in custom\fonts, the path is prepended. If the APTTEXFONTS environment variable is set, the custom\fonts directory is prepended to it.
formats subdirectory
Holds custom PubTex format files (.fmt).
The default PubTex format path is Arbortext-path\formats. If there are .fmt files in custom\formats, the path is prepended. If the APTTEXFMTS environment variable is set, the custom\formats directory is prepended to it.
framesets subdirectory
Holds custom framesets for Publish > For Web. Supports one level of subdirectories. Framesets are defined in the document type configuration file.
The default frameset path is Arbortext-path\framesets. If there are any subdirectories of the custom\framesets directory, those subdirectories are prepended to the framesets path. Then the custom\framesets parent directory is prepended to the frameset path.
graphics subdirectory
Holds graphic files. Supports one level of subdirectories.
The default graphics path is Arbortext-path\graphics. If there are any subdirectories of the custom\graphics directory, those subdirectories are prepended to the graphics path. Then the custom\graphics parent directory is prepended to the graphics path.
importexport subdirectory
Holds Arbortext Import/Export Import project files.
inputs subdirectory
Holds source files for custom macros, program fixes, or other customizations in a custom.tmx. Refer to Using .tmx files for more information. Document type and document .tmx files can be placed in the custom\doctypes directory.
Also holds .tex files and source files for hyphenation exception and pattern rules in .exc and .pat files.
The default source path is Arbortext-path\inputs. Then the Arbortext-path\custom\inputs directory is prepended to it.
lib subdirectory
Holds custom versions of the .pdfcf PDF configuration file. The default path for .pdfcf files is Arbortext-path\lib. Then the Arbortext-path\custom\lib directory is prepended to it. For more information on creating .pdfcf files, refer to the Customizer's Guide.
In addition, the lib subdirectory can hold .wcf files for custom window classes. For more information on creating .wcf files for window classes, refer to Creating custom window class preferences files.
The lib subdirectory can also hold custom versions of the following files:
charent.cf
charmap.cf
installprefs.acl
prted.pro
pubview.cf
pubview.fnt
tfmfont.cf
tfmscaling.cf
tfontsub.cf
wcharset.cf
wfontsub.cf
xcharset.cf
xfontsub.cf
You can specify more than one charent.cf file, as the effects are cumulative. Refer to Setting paths for new character set files and the APTCUSTOM environment variable for more information.
The custom\lib directory also has locale\locale-name subdirectories. The default path is the appropriate locale subdirectory of Arbortext-path\lib\locale. The locale-specific subdirectory of the custom\lib\locale directory is prepended to the default locale path.
The locale\locale-name can hold custom versions of the .pdfcf PDF configuration file. For more information on creating .pdfcf files, refer to the Customizer's Guide.
Each locale\locale-name directory can hold custom versions of the following files:
charent.cf
installprefs.acl
ixlang.cf
pubview.cf
pubview.fnt
tfmfont.cf
tfmscaling.cf
tfontsub.cf
wcharset.cf
wfontsub.cf
xcharset.cf
xfontsub.cf
The custom\lib directory also has a subdirectory to hold native shared libraries for platform-specific use:
dll
Holds Windows dynamic link libraries, or DLL files (.dll).
The path to this directory is prepended to the system PATH environment variable.
The custom\lib directory can have an ixlang subdirectory, which holds a custom ixlang.cf file and index mapping files like those found in Arbortext-path\lib\ixlang.
publishingrules subdirectory
Holds publishing rules .prcf files which contain definitions of publishing rules and publishing rule sets.
pubview subdirectory
Holds pubview.cf and pubview.fnt files.
The default path is Arbortext-path\pubview. Then the Arbortext-path\custom\pubview directory is prepended to it.
scripts subdirectory
Holds .acl (Arbortext Command Language), .vbs (VBScript), and .js (JavaScript and JScript) files. Supports one level of subdirectories.
The scripts in this directory can be called from scripts or applications in the custom\init directory, which is processed at startup time. Scripts placed here can be accessed using the source or require ACL commands. A customized menu item or button can call a script in custom\scripts when invoked.
If there are any subdirectories of the custom\scripts directory, those subdirectories are prepended to the load path. Then the custom\scripts parent directory is prepended to the load path.
stylermodules subdirectory
Holds Arbortext Styler stylesheet modules. Any modules stored in this directory are automatically available to Arbortext Styler.
tagtemplates subdirectory
Holds .tpl files. You can also put custom tag templates you want associated with a particular document type into a custom\doctypes\doctype\tagtemplates directory or in the original location of the document type's doctype\tagtemplates directory.
If the user clicks the New button from the Tag Templates dialog box, Arbortext Editor will use the first directory with write access for that user in the tag template path.
If the APTTAGTPLDIR environment variable is set, this path is prepended to it.
init subdirectory
Holds .acl, .js, .class, and .vbs files.
The init subdirectory is processed last at startup time. All files of the supported application types are executed. No nested subdirectories of custom\init are supported. This directory is processed after the other Arbortext-path\custom subdirectories so that its scripts and applications can rely on paths already established during startup.
If you are putting custom applications on the Arbortext PE server, use the init directory for your custom .acl, .js, .class files.
In the startup process, the custom\init directory is processed after _main.acl but before the file. See Startup command files for complete startup processing information.
The supported application types are:
.acl (Arbortext Command Language) files
Errors are reported to Arbortext Editor or recorded by Arbortext Publishing Engine to be sent to its HTTP client.
.js (JavaScript or JScript) files
Errors are reported to Arbortext Editor or recorded by Arbortext Publishing Engine to be sent to its HTTP clients. You need to specify which JavaScript interpreter engine to use in processing .js files.
.class (Java) files
Java .class files in this directory must be compiled Java classes that are not part of a named package. You can also put a .class file in custom\init that calls into a .jar file located in the custom\classes directory.
The Java class must also implement a public static void main(String[] args) method, which will be called with an empty string array. If the .class file does not implement this method, an error is reported to Arbortext Editor or recorded by Arbortext Publishing Engine to be sent to its HTTP client.
.vbs (VBScript) files
Errors are reported to Arbortext Editor.
editinit subdirectory
Holds .acl, .js, .class, and .vbs files. Note that when you run Arbortext Editor with the -c option, any applications in this subdirectory are not executed at startup.
All files of the supported application types are executed each time a non-ASCII document is opened for editing. Files in this directory act on a document opened in the Edit window. File in this directory act on a document opened using ACL when the 0x8000 flag is used with the doc_open function. File in this directory act on a document opened using AOM when the OPEN_EDITINIT flag is used with the Application.openDocument method.
The editinit subdirectory is processed before any document type command files, document type instance command files, and document command files.
The supported application types are:
.acl (Arbortext Command Language) files
Errors will be reported if the interface is running interactively, otherwise they will be suppressed.
.js (JavaScript or JScript) files
Errors will be reported if the interface is running interactively, otherwise they will be suppressed.
.class (Java) files
Java .class files in this directory must be compiled Java classes that are not part of a named package. The Java class must also implement a public static void main(String[] args) method, which is called with an empty string array. You can put a .class file in custom\init that calls into a .jar file located in the custom\classes directory. Errors will be reported if the interface is running interactively, otherwise they will be suppressed.
.vbs (VBScript) files
Errors will be reported if the interface is running interactively, otherwise they will be suppressed.