Update your custom topic shell
These steps assume a plugin name of com.company.dita.dtd and a topic shell name of CompanyDitabase.dtd. The steps also assume that com.company.dita.dtd is in system/plugins.
These steps also assume that your topic shell is essentially a copy of IxiaDitabase.dtd. If you have integrated additional element or attribute domains, you must make appropriate changes to those entity declarations which this procedure cannot anticipate.
In addition to the steps listed here, which apply regardless of the MathML integration you are using, there are additional steps that are specific to the MathML integration (beta or DITA 1.3) you have decided to use. Those steps are in separate procedures.
- Open system/plugins/com.ixiasoft.dita13.dtd/dtd/IxiaDitabase.dtd.
- Check out and open system/plugins/com.company.dita.dtd/dtd/CompanyDitabase.dtd.
-
In CompanyDitabase.dtd, find the TOPIC ENTITY DECLARATIONS section.
Compare each entity in the section to the corresponding entity in the TOPIC ENTITY DECLARATIONS section of IxiaDitabase.dtd. For example:
(CompanyDitabase.dtd) <!ENTITY % concept-dec PUBLIC "-//OASIS//ENTITIES DITA 1.2 Concept//EN" "../../../dtd/technicalContent/dtd/concept.ent" >%concept-dec;
(IxiaDitabase.dtd) <!ENTITY % concept-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Concept//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶concept.ent" >%concept-dec;
Note: The ¶ symbol indicates a manual line break that has been inserted here for formatting. There should be no actual line break in the code.Notice that the public id of the entities in IxiaDitabase.dtd (which uses DITA 1.3) references DITA 1.3. Notice also that the relative path in the system id of the entities in CompanyDitabase.dtd point to the DITA 1.2 DTDs that are in system/dtd while the relative path in the system id of the entities in IxiaDitabase.dtd point to the DITA 1.3 DTDs that are in system/plugins/org.oasis-open.dita.v1_3/dtd.
- Change the public id of each entity in the TOPIC ENTITY DECLARATIONS section of CompanyDitabase.dtd to reference DITA 1.3 rather than DITA 1.2.
-
Change the relative path in the system id of each entity in the TOPIC ENTITY
DECLARATIONS section of CompanyDitabase.dtd to point to the DITA 1.3 DTDs that
are in
system/plugins/org.oasis-open.dita.v1_3/dtd
rather than the DITA 1.2 DTDs that are in system/dtd.
You can select just the
../../../
part of each path and replace it with../../org.oasis-open.dita.v1_3/
. The remainder of the path is always the same.Important:This simple replacement depends on your DTD plugin being in system/plugins
and having exactly this structure:system |_plugins |_com.company.dita.dtd |_dtd |_CompanyDitabase.dtd |_CompanyMap.dtd
If your plugin is in any other location or if the folder structure differs (for example, your DTDs are in a subfolder of the /dtd subfolder, or they are not in a /dtd subfolder at all), you must calculate the correct relative path between CompanyDitabase.dtd and the DTDs in org.oasis-open.dita.v1_3.
-
Add the following to the TOPIC ENTITY DECLARATIONS section of
CompanyDitabase.dtd.
<!ENTITY % troubleshooting-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Troubleshooting//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶troubleshooting.ent" >%troubleshooting-dec;
Note: You can add this anywhere in the TOPIC ENTITY DECLARATIONS section; the order of the declarations does not matter. - Repeat the same comparison and update to public and system id's for each entity in the DOMAIN ENTITY DECLARATIONS section of CompanyDitabase.dtd.
-
Add the following to the DOMAIN ENTITY DECLARATIONS section of
CompanyDitabase.dtd.
<!ENTITY % markup-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Markup Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶markupDomain.ent" >%markup-d-dec; <!ENTITY % relmgmt-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Release Management Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶releaseManagementDomain.ent" >%relmgmt-d-dec; <!ENTITY % svg-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 SVG Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶svgDomain.ent" >%svg-d-dec; <!ENTITY % xml-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 XML Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶xmlDomain.ent" >%xml-d-dec;
Note: You can add these anywhere in the DOMAIN ENTITY DECLARATIONS section; the order of the declarations does not matter. -
When you come to the section that begins
<!-- ================== MathML Integration ======================= -->
, skip it for now. -
In the DOMAIN ATTRIBUTE DECLARATIONS section of CompanyDitabase.dtd, add the
following.
<!ENTITY % deliveryTargetAtt-d-dec PUBLIC "-//OASIS//ENTITIES DITA 1.3 Delivery Target Attribute Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/base/dtd/ ¶deliveryTargetAttDomain.ent" >%deliveryTargetAtt-d-dec;
Note: You can add these anywhere in the DOMAIN ATTRIBUTE DECLARATIONS section; the order of the declarations does not matter. -
For the localization-loc-d-dec entity, change the system id from
../../com.ixiasoft.dita.dtd/dtd/localizationDomain.ent
to
../../com.ixiasoft.dita13.dtd/dtd/localizationDomain.ent
-
In the DOMAIN EXTENSIONS section of CompanyDitabase.dtd, add these
entities.
<!ENTITY % data "data | %ut-d-data; "> <!ENTITY % metadata "metadata | %relmgmt-d-metadata; ">
Note: You can add these anywhere in the DOMAIN EXTENSIONS section; the order of the extensions does not matter. -
Edit the keyword entity as follows.
<!ENTITY % keyword "keyword | %markup-d-keyword; | %pr-d-keyword; | %sw-d-keyword; | %ui-d-keyword; | %xml-d-keyword; ">
-
For now, ignore the remainder of the items that follow the
<!-- ================== MathML Integration ======================= -->
comment. -
In the DOMAIN ATTRIBUTE EXTENSIONS section of CompanyDitabase.dtd,
replace
<!ENTITY % props-attribute-extensions "" >
to
<!ENTITY % props-attribute-extensions "%deliveryTargetAtt-d-attribute;" >
Important: If you have already specialized attributes from @props, simply add%deliveryTargetAtt-d-attribute;
to that list; do not replace the entire entity declaration. -
In the TOPIC NESTING OVERRIDE section of CompanyDitabase.dtd, add the
troubleshooting topic to the end of the info-types entity, as shown.
<!ENTITY % info-types "topic | concept | task | reference | glossentry | glossgroup | troubleshooting">
-
In the DOMAINS ATTRIBUTE OVERRIDE section of CompanyDitabase.dtd, add the
following domains to the list, as shown.
... &troubleshooting-att; &deliveryTargetAtt-d-att; &markup-d-att; &relmgmt-d-att; &svg-d-att; &xml-d-att;
Note: You can add these anywhere in the DOMAINS ATTRIBUTE OVERRIDE section; the order of the overrides in the list does not matter. -
For now, ignore the section that begins
Add the following domains for MathML integration
. -
In the CONTENT CONSTRAINT INTEGRATION section of CompanyDitabase.dtd, change the
public id of the strictTaskbody-c-def entity to refer to DITA 1.3 instead of DITA
1.2.
-//OASIS//ELEMENTS DITA 1.2 Strict Taskbody Constraint//EN
to
-//OASIS//ELEMENTS DITA 1.3 Strict Taskbody Constraint//EN
Even if you are not using this constraint (it is commented out), go ahead and make this change to be sure that if you ever do implement it, it is referring to the public id of the DITA 1.3 content model.
-
Change the system id path of the strictTaskbody-c-def entity from
../../../dtd/technicalContent/dtd/strictTaskbodyConstraint.mod
to
../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶strictTaskbodyConstraint.mod
Even if you are not using this constraint (it is commented out), go ahead and make this change to be sure that if you ever do implement it, the path is pointing to the DITA 1.3 content model.
-
Change the public id's of the strictPara-c-def and strictSection-c-def
entities to refer to DITA 1.3 instead of DITA 1.2.
If the public id's do not refer to a specific DITA version, leave them as-is.
-
Change the name of the plugin in the system id path of the strictPara-c-def
and strictSection-c-def entities from
com.ixiasoft.dita.dtd
tocom.ixiasoft.dita13.dtd
. - In the TOPIC ELEMENT INTEGRATION section of CompanyDitabase.dtd compare the public and system id's of each entity to those of the corresponding entity in the TOPIC ELEMENT INTEGRATION section of IxiaDitabase.dtd.
-
Change the public id of each entity in the TOPIC ELEMENT INTEGRATION section of
CompanyDitabase.dtd to reference DITA 1.3 rather than DITA 1.2.
Note: Do not make this change to the referable-content-typemod entity.
-
Change the relative path in the system id of each entity in the TOPIC ELEMENT
INTEGRATION section of CompanyDitabase.dtd to point to the DITA 1.3 DTDs that are
in
system/plugins/org.oasis-open.dita.v1_3/dtd
rather than the DITA 1.2 DTDs that are in system/dtd.
Note: Do not make this change to the referable-content-typemod entity.
-
Change the name of the plugin in the system id path of the
referable-content-typemod entity from
com.ixiasoft.dita.dtd
tocom.ixiasoft.dita13.dtd
. -
In the TOPIC ELEMENT INTEGRATION section of CompanyDitabase.dtd, add the
following.
<!ENTITY % troubleshooting-typemod PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Troubleshooting//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶troubleshooting.mod" >%troubleshooting-typemod;
Note: You can add this anywhere in the TOPIC ELEMENT INTEGRATION section; the order of the entities does not matter. - In the DOMAIN ELEMENT INTEGRATION section of CompanyDitabase.dtd compare the public and system id's of each entity to those of the corresponding entity in the DOMAIN ELEMENT INTEGRATION section of IxiaDitabase.dtd.
- Change the public id of each entity in the DOMAIN ELEMENT INTEGRATION section of CompanyDitabase.dtd to reference DITA 1.3 rather than DITA 1.2.
- Change the relative path in the system id of each entity in the DOMAIN ELEMENT INTEGRATION section of CompanyDitabase.dtd to point to the DITA 1.3 DTDs that are in system/plugins/org.oasis-open.dita.v1_3/dtd rather than the DITA 1.2 DTDs that are in system/dtd.
-
In the DOMAIN ELEMENT INTEGRATION section of CompanyDitabase.dtd, add the
following.
<!ENTITY % markup-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Markup Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶markupDomain.mod" >%markup-d-def; <!ENTITY % relmgmt-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 Release Management Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶releaseManagementDomain.mod" >%relmgmt-d-def; <!ENTITY % svg-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 SVG Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶svgDomain.mod" >%svg-d-def; <!ENTITY % xml-d-def PUBLIC "-//OASIS//ELEMENTS DITA 1.3 XML Domain//EN" "../../org.oasis-open.dita.v1_3/dtd/technicalContent/dtd/ ¶xmlDomain.mod" >%xml-d-def;
Note: You can add these anywhere in the DOMAIN ELEMENT INTEGRATION section; the order of the entities does not matter. -
When you come to the third section that begins
<!-- ================== MathML Integration ======================= -->
, skip it for now.
You have completed most of the changes needed to your topic shell, but you cannot stop here. You must apply some additional changes based on your implementation of MathML.
- If you are not currently using MathML and do not plan to, proceed to Implementing the DITA 1.3 MathML integration.
- If you are not currently using MathML and want to start using the DITA 1.3 MathML integration, proceed to Implementing the DITA 1.3 MathML integration.
- If you are currently using the beta MathML integration and want to move to the DITA 1.3 MathML integration, proceed to Implementing the DITA 1.3 MathML integration.
- If you are currently using the beta MathML integration and want to continue using it, proceed to Retaining the beta MathML integration.