About project files
Project files may be defined in one of three formats: XML,
, or
. The XML format can be validated with a RELAX NG schema provided in the
resources folder of the DITA-OT installation (project.rnc).
The XML project file format is the normative version provided for interoperability with existing XML-based
toolchains. The JSON and YAML versions are alternative compact formats that are easier to read and write, but
otherwise equivalent to the XML syntax.
Whereas .properties files can only be used to set parameters,
project files go further, allowing you to define multiple deliverables with separate input files and output
folders and formats for each publication. A project file can also refer to other project files, so you can
re-use common configuration structures across projects.
Another advantage of project files over .properties files is that
they allow you to specify paths relative to the project file, even for parameters that require absolute paths,
such as:
- args.cssroot
- args.ftr
- args.hdf
- args.hdr
Though the exact syntax differs slightly, the basic structure of project files is
similar in all supported formats.
-
You can link to other project files with include(s)
-
Projects can define multiple deliverables, which consist of:
- Use href for web addresses and other resources that should resolve to an absolute
URI.
- Use path for parameters that require an absolute value, like
args.cssroot. Paths may be defined relative to the project file, but are always
expanded to an absolute system path.
- Use value to define strings and relative values for properties like
args.csspath, which is used to describe a relative path in the output folder.