Add a new output type

New output types are defined in the %OutputGenDir%/conf/client/outputtypes.xml file in an <outputtype> element, as shown below:

<outputtype name="PDF" timeout="60000" system="false">
   <preprocessing>
      <preprocessor name="PDF" />
   </preprocessing>
   <renderer/>
</outputtype>

For each output type, you define the following information:

Table 1. Output type definition
Field Description
name attribute Name of the output type. If the output type is visible to the user, this name will be displayed in the Generate Output dialog.
Important: If you are customizing a CCMS transformation scenario (e.g., Dita2RedlinePdf), you *must* keep the output type name as is. You cannot modify it; for example, you cannot rename the Dita2RedlinePdf output type to acme.Dita2RedlinePdf, otherwise the CCMS will not be able to use it. The CCMS expects the system output types to be named as follows:
  • Dita2RedlinePdf: For redlining
  • Dita2ReviewPdf: For PDF reviews
  • Dita2TranslationPdf: For the localization
  • Dita2xhtml.preview: For the snapshot feature
timeout attribute Amount of time, in milliseconds, that the system allows for a completely rendered version to be returned to the user. If generating the output takes longer than this value, the IXIASOFT Output Generator aborts the job.
system attribute Specifies whether the output type is internal to the system or visible to the user. Valid values are:
  • false – The output is available as an option in the Generate Output dialog.
  • true – The output is used by the system and is not available to users. For example, the Dita2TranslationPdf output is defined as system-only, because the system generates the PDFs automatically when the localization kit is prepared.
Note: You may want to set the system attribute to false when debugging a new system preprocessor so that you can generate and test the output directly from the Generate Output dialog box.
One or more <preprocessor> element Preprocessors to call when this output type is selected. The preprocessor that contains the instructions to execute the output must be the last one in the list.
<renderer/> element Not used. However, this element must be present (and empty), otherwise the build will fail.

To define an output type:

  1. Open the %OutputGenDir%/conf/client/outputtypes.xml file.
    Note: If this is the first time that you are modifying the outputtypes.xml file, open the outputtypes.xml.orig file and save it as outputtypes.xml (remove the .orig suffix).
    Important: Do not update the outputtypes.xml file that is in the conf directory; always update the file in the conf/client directory. This separation ensures that your customization does not get overwritten when you update the IXIASOFT Output Generator.

    When an output type is invoked, the IXIASOFT Output Generator looks first for the output types defined in the conf/ directory and then adds any additional output types that it finds in the conf/client directory. If you define an output type with the same name as an output type defined in conf/outputtypes.xml, the output type in conf/client overrides that in conf.

  2. Create an <outputtype> element and define the name, timeout, and system attributes for the output type.

    For example, the following code shows how to create an output type that allows users to generate HTML output:

    <!-- DITA Open Toolkit Output Types -->
    
       <outputtype name="acme.dita2xHtml" timeout="60000" system="false">
  3. Create a <preprocessing> element and add a <processor> element for each processor to execute when the output type is called.

    For example, the acme.dita2xHTML preprocessor is defined for the acme.dita2xHtml output type:

    <preprocessing>
       <preprocessor name="acme.dita2xHTML" />
    </preprocessing>
    This preprocessor will contain instructions for calling the appropriate target in the conductor file. If multiple preprocessors are defined, the preprocessor that contains the instructions to execute the transformation must be the last one in the list.
    Note: The preprocessors specified in the name attribute must also be defined in the preprocessors.xml file.
    The final output type definition for acme.dita2xHtml should be similar to the following:
    <outputtype name="acme.dita2xHtml" timeout="60000" system="false">
       <preprocessing>
          <preprocessor name="acme.dita2xHTML" />
       </preprocessing>
       <renderer/>
    </outputtype>
  4. Save and close outputtypes.xml.
  5. Restart the IXIASOFT Output Generator service to apply your changes.