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.

  1. Open system/plugins/com.ixiasoft.dita13.dtd/dtd/IxiaDitabase.dtd.
  2. Check out and open system/plugins/com.company.dita.dtd/dtd/CompanyDitabase.dtd.
  3. 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.

  4. 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.
  5. 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.

  6. 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.
  7. Repeat the same comparison and update to public and system id's for each entity in the DOMAIN ENTITY DECLARATIONS section of CompanyDitabase.dtd.
  8. 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.
  9. When you come to the section that begins <!-- ================== MathML Integration ======================= -->, skip it for now.
  10. 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.
  11. 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
  12. 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.
  13. Edit the keyword entity as follows.
    <!ENTITY % keyword      "keyword | 
                             %markup-d-keyword; |
                             %pr-d-keyword; | 
                             %sw-d-keyword; | 
                             %ui-d-keyword; |
                             %xml-d-keyword;
                            ">
  14. For now, ignore the remainder of the items that follow the <!-- ================== MathML Integration ======================= --> comment.
  15. 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.
  16. 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">
  17. 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.
  18. For now, ignore the section that begins Add the following domains for MathML integration.
  19. 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.

  20. 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.

  21. 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.

  22. 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 to com.ixiasoft.dita13.dtd.
  23. 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.
  24. 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.
  25. 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.
  26. Change the name of the plugin in the system id path of the referable-content-typemod entity from com.ixiasoft.dita.dtd to com.ixiasoft.dita13.dtd.
  27. 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.
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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.