Integrating your own DTDs

You might have your own DTD shells that define custom topic or map types, as well as additional domains or constraints. To integrate these into the CCMS, there are two possible methods:

  1. Create your own DTD plugin that includes each of these custom files and a catalog file that references each of them. Then add that DTD plugin to the CCMS system configuration and reference it in the master-catalog.

    To follow this method, refer to Method 1: Create a custom plugin for your own shells for DITA 1.3 or Method 1: Create a custom plugin for your own shells for DITA 1.2, depending on the version of DITA you are using.

  2. The same as method one, but taken a step further: integrate each of your custom DTDs into the CompanyDitabase.dtd and CompanyMap.dtd shells.

    To follow this method, refer to Method 2: Integrate your DTDs into your custom topic and map shells for DITA 1.3 or Method 2: Integrate your DTDs into your custom topic and map shells for DITA 1.2, depending on the version of DITA you are using.

Method 1 details

If you follow this method, then you likely need to integrate the IXIASOFT localization domain into each of your custom topic and map DTDs. In addition, if you are using DRM, you need to integrate the IXIASOFT containerref domain into each of your custom map DTDs. If you have a lot of custom DTDs, this could take a while. If you maintain these DTDs yourself, this might not be an issue, since once you integrate those domains, you can use those updated files as the basis for ongoing edits so that you don't lose that work.

However, if a consultant maintains those DTDs for you, there is always the possibility that he or she might work from a different set of base DTDs and provide you with an updated set of files that do not include the IXIASOFT domains, requiring you to do that integration all over again. You have an ongoing responsibility to keep your local changes and the consultant's files in sync. The second integration method largely relieves you of this responsibility.

Another thing to consider for method one is importing content. When you import content, the CCMS can do one of two things:

  • Keep the content's doctypes as-is
  • Refactor all imported topics to a single doctype and all imported maps to a single doctype

If you plan to import content on an ongoing basis and that content will not already have the correct doctype (for example, maybe it uses the generic OASIS doctypes) then you will need to import your content in batches...set systemid.xml to use doctypeA as the topic default, import all the content using doctypeA first, then edit systemid.xml to use doctypeB as the topic default, and import all the content using doctypeB, etc.

If there are dependencies (xrefs, conrefs, etc.) between topics using different doctypes, you must import them together so this batch import approach will not work for you. The second integration method solves this problem.

Note that this limitation is only an issue if the content does not already have the appropriate doctype. If your content for import always has the appropriate doctype, you do not need to worry about refactoring it upon import.

Method Two details

If you integrate your custom DTDs into your CompanyDitabase.dtd and CompanyMap.dtd, then those are the only two files you have to maintain. If a consultant delivers you updated DTDs, you don't have to integrate the IXIASOFT domains into them because those are already integrated into CompanyDitabase.dtd and CompanyMap.dtd. It's a one-stop shop.

In addition, the doctypes for CompanyDitabase.dtd and CompanyMap.dtd are the only two that you ever have to list in systemid.xml. Upon import, all topics are refactored to the CompanyDitabase.dtd doctype and all maps are refactored to the CompanyMap.dtd doctype. You can easily import a large set of content in one fell swoop.

Each topic and map still has a unique type so even though they all reference CompanyDitabase.dtd and CompanyMap.dtd, the topic and map type determine what elements, attributes, and structures are available for that type so you still maintain your content specifications.