Method 2: Integrate your DTDs into your custom topic and map shells for DITA 1.3
These steps assume you have created a plugin for your custom DTDs, following the procedure in Method 1: Create a custom plugin for your own shells for DITA 1.3.
These steps use some of the Learning and Training domain files to illustrate the integration process. These files are part of the org.oasis-open.dita.v1_3 plugin. Your exact process may vary depending on the nature of your custom DTDs, but the idea is the same...to reference the individual files in a separate DTD plugin within your topic and map shells.
- Open CompanyDitabase.dtd (your topic shell in com.company.dtd).
- Open the first custom DTD you want to integrate into CompanyDitabase.dtd.
For this example, we'll choose learningSummary.dtd (in DITA-OT\plugins\org.oasis-open.dita.v1_3\dtd\learning\dtd).
- In learningSummary.dtd, scroll to the TOPIC ENTITY DECLARATIONS section.
There are two entities there:
<!ENTITY % learningBase-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Base//EN" "learningBase.ent" >%learningBase-dec; <!ENTITY % learningSummary-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Summary//EN" "learningSummary.ent" >%learningSummary-dec;
- Copy and paste these two entities into the TOPIC ENTITY DECLARATIONS section of CompanyDitabase.dtd, at the end of the list.
- Change the paths of both entities to correctly point to the locations of the learningBase.ent and learningSummary.ent files relative to CompanyDitabase.dtd.
If both plugins are located in the system/plugins folder of the CCMS system configuration, the correct paths are:
<!ENTITY % learningBase-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Base//EN" "../../org.oasis-open.dita.v1_3/dtd/learning/dtd/learningBase.ent" >%learningBase-dec; <!ENTITY % learningSummary-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Summary//EN" "../../org.oasis-open.dita.v1_3/dtd/learning/dtd/learningSummary.ent" >%learningSummary-dec;
It is critical to get these paths correct.
- In learningSummary.dtd, scroll to the DOMAIN ENTITY DECLARATIONS section.
- Look for any entities that are unique to learningSummary.dtd.
There are five unique entities there:
<!ENTITY % learningInteractionBase-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Interaction Base Domain//EN" "learningInteractionBaseDomain.ent" >%learningInteractionBase-d-dec; <!ENTITY % learningInteractionBase2-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Interaction Base 2 Domain//EN" "learningInteractionBase2Domain.ent" >%learningInteractionBase2-d-dec; <!ENTITY % learning-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Domain//EN" "learningDomain.ent" >%learning-d-dec; <!ENTITY % learning2-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning 2 Domain//EN" "learning2Domain.ent" >%learning2-d-dec; <!ENTITY % learningmeta-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Learning Metadata Domain//EN" "learningMetadataDomain.ent" >%learningmeta-d-dec;
The other entities in this section are not unique to learningSummary.dtd and are already integrated into CompanyDitabase.dtd. You don't need to integrate them again.
- Copy and paste these five entities into the DOMAIN ENTITY DECLARATIONS section of CompanyDitabase.dtd, at the end of the list.
- Change the paths of all entities to correctly point to the locations of these files relative to CompanyDitabase.dtd.
- In learningSummary.dtd, scroll to the DOMAIN EXTENSIONS section.
- Look through each of the entities defined there to spot any extensions that are specific to the learningSummary.dtd.
In this case, there are quite a few:
<!ENTITY % index-base "index-base | %indexing-d-index-base; "> <!ENTITY % ph "ph | %hi-d-ph; "> <!ENTITY % fig "fig | %ut-d-fig; | %learningInteractionBase-d-fig; | %learning-d-fig; "> <!ENTITY % data "data | %ut-d-data; "> <!ENTITY % metadata "metadata | %relmgmt-d-metadata; | %learningmeta-d-metadata; "> <!ENTITY % div "div | %learningInteractionBase2-d-div; | %learning2-d-div; "> <!ENTITY % note "note | %learning-d-note; | %learning2-d-note; "> <!ENTITY % lcInteractionBase "lcInteractionBase | %learning-d-lcInteractionBase; "> <!ENTITY % lcInteractionBase2 "lcInteractionBase2 | %learning2-d-lcInteractionBase2; ">
As you can see, some are additional extensions within existing entities (fig, metadata, div, note) and some are entirely new entities (
lcInteractionBase
,lcInteractionBase2
). You treat these slightly differently. - Copy and paste the additional extensions within the existing entities and paste them into the same entity in CompanyDitabase.dtd.
For example, copy
%learningInteractionBase-d-fig;
and and paste it into the existing fig entity in CompanyDitabase.dtd:<!ENTITY % fig "fig | %pr-d-fig; | %ut-d-fig; | %equation-d-fig; | %learningInteractionBase-d-fig; | %learning-d-fig; ">
Be sure to add the | after
%equation-d-fig;
and%learningInteractionBase-d-fig;
. - Repeat step 11 to add the remaining extensions to the existing entities (metadata, div, note).
- Copy the
lcInteractionBase
andlcInteractionBase2
entities as-is from learningSummary.dtd to CompanyDitabase.dtd. - In learningSummary.dtd, scroll to the DOMAIN ATTRIBUTE OVERRIDE section.
- Look through the list for any domains that are unique to learningSummary.dtd.
In this case, there are six unique included domains
<!ENTITY included-domains "&learningBase-att; &learningSummary-att; &deliveryTargetAtt-d-att; &hi-d-att; &indexing-d-att; &relmgmt-d-att; &ut-d-att; &learningInteractionBase-d-att; &learningInteractionBase2-d-att; &learning-d-att; &learning2-d-att; &learningmeta-d-att; " >
- Copy these six domains and paste them into the DOMAIN ATTRIBUTE OVERRIDE section in CompanyDitabase.dtd.
- In learningSummary.dtd, scroll to the TOPIC ELEMENT INTEGRATION section.
There are two unique three entities there:
<!ENTITY % learningBase-type PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Base//EN" "learningBase.mod" >%learningBase-type; <!ENTITY % learningSummary-type PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Summary//EN" "learningSummary.mod" >%learningSummary-type;
The other entities in this section are not unique to learningSummary.dtd and are already integrated into CompanyDitabase.dtd. You don't need to integrate them again.
- Copy and paste the last two entities (
learningBase-type
andlearning-Summary-type
) into the TOPIC ELEMENT INTEGRATION section of CompanyDitabase.dtd, at the end of the list. - Change the paths of both entities to correctly point to the locations of the learningBase.mod and learningSummary.mod files relative to CompanyDitabase.dtd.
- In learningSummary.dtd, scroll to the DOMAIN ELEMENT INTEGRATION section.
- Look for any entities that are unique to learningSummary.dtd.
There are five unique entities there:
<!ENTITY % learningInteractionBase-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Interaction Base Domain//EN" "learningInteractionBaseDomain.mod" >%learningInteractionBase-d-def; <!ENTITY % learningInteractionBase2-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Interaction Base 2 Domain//EN" "learningInteractionBase2Domain.mod" >%learningInteractionBase2-d-def; <!ENTITY % learning-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Domain//EN" "learningDomain.mod" >%learning-d-def; <!ENTITY % learning2-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning 2 Domain//EN" "learning2Domain.mod" >%learning2-d-def; <!ENTITY % learningmeta-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Learning Metadata Domain//EN" "learningMetadataDomain.mod" >%learningmeta-d-def;
The other entities in this section are not unique to learningSummary.dtd and are already integrated into CompanyDitabase.dtd. You don't need to integrate them again.
- Copy and paste these five entities into the DOMAIN ELEMENT INTEGRATION section of CompanyDitabase.dtd, at the end of the list.
- Change the paths of all entities to correctly point to the locations of these files relative to CompanyDitabase.dtd.
- Save CompanyDitabase.dtd.
Follow this same general procedure to integrate additional individual topic DTDs into your CompanyDitabase.dtd shell and to integrate additional individual map DTDs into your CompanyMap.dtd shell.