Step 2-3. Create New .mod File and Integrate Into Shell
Find the file concept.mod in the regular DITA DTD distribution and copy it to faq-question.mod in your faq-questions/dtd directory.
- Delete the header comments and replace them with comments that indicate this module DTD is owned by you and contains the DTD declarations for the FAQ question module.
- Find the declaration for the
%concept-typemod;
entity declaration. - After this declaration, add the following declaration and reference to the
faq-question topic type module:
<!ENTITY % faq-question-typemod SYSTEM "faq-question.mod" > %faq-question-typemod;
<!-- ============================================================= --> <!-- TOPIC ELEMENT INTEGRATION --> <!-- ============================================================= --> <!-- Embed topic to get generic elements --> <!ENTITY % topic-type PUBLIC "-//OASIS//ELEMENTS DITA Topic//EN" "topic.mod" > %topic-type; <!-- Embed concept to get specific elements --> <!ENTITY % concept-typemod PUBLIC "-//OASIS//ELEMENTS DITA Concept//EN" "concept.mod" > %concept-typemod; <!ENTITY % faq-question-typemod SYSTEM "faq-question.mod" > %faq-question-typemod;
Note that I didn't bother to define either a public identifier or a URN for the
%faq-question-typemod;
parameter entity. This is to keep things
simple. Later, once we've got everything working, we can replace the relative URL
with a
URN and set up the necessary catalog mappings.
Trying validating your test document again. Now you should get errors to the effect that the "concept" element type is declared multiple times, as well as the same messages about the FAQ-specific element types not being declared. This indicates that we've got the module integrated with the shell correctly.