Step 2.7: Define @domains
Attribute Contribution Entity (.ent File)
Both structural and domain modules require a .ent file in addition to the .mod file.
For a
structural domain (map or topic type), the .ent file simply defines the
@domains
attribute contribution for the topic type.
Create a file named faq-question.ent in the faq-question/dtd directory. Add a descriptive comment to the top of it indicating the name of the module and your ownership.
<!ENTITY faq-question-att "(topic concept faq-question)" >
The value of the entity is the list of the ancestor topic types for the new topic type, "topic concept" in this case, followed by the name of the topic type defined by the module itself. If the faq-question topic type required any domains it would list them following its own name.
<!ENTITY % faq-question-dec PUBLIC "faq-question.ent" "faq-question.ent" >%faq-question-dec;
Note that the publid ID is just the filename. This is just for testing purposes. For production use you would use an appropriate URN or public ID.
&included-domains;
text entity and add a reference to the entity &faq-question-att;
to it. It should look like this:<!ENTITY included-domains " &faq-question-att; &hi-d-att; &ut-d-att; " >
Validate the test document again. It should still be valid. Check the root
<faq-question>
element to verify that it has a
@domains
attribute and that its value includes the "(topic concept
faq-question)" component in addition to those for the highlight and utility
domains.
At this point the new topic module is complete. All that remains is to assign appropriate public identifiers to the .mod, .ent, and .dtd files and package it as an Open Toolkit plugin so that the module can be used for production.