Attribute Specialization Step 2: Integrate With Document Type Shell
Step 2 is to integrate the vocabulary module into your local copy of each of your document type shells. The pattern is the same for each shell.
For this tutorial, use a copy of the concept.dtd shell, as for the element domain specialization tutorial.
<!ENTITY % phase-of-moon-d-dec SYSTEM "phase-of-moonAttDomain.ent" > %phase-of-moon-d-dec;
This pulls in the attribute domain module.
Find the comment that reads "DOMAIN ATTRIBUTE EXTENSIONS." Following that comment you
should see a declaration for the %props-attribute-extensions;
parameter
entity. It will probably be declared as an empty string.
%phase-of-moon-d-attribute;
parameter entity: <!ENTITY % props-attribute-extensions "%phase-of-moon-d-attribute;" >
This adds the @phase-of-moon
attribute to the
%selection-atts;
parameter entity, which is then included in the
%univ-atts;
parameter entity, making this new attribute available
on most elements (some elements, such as title, are not selection candidates).
Find the comment that reads "DOMAINS ATTRIBUTE OVERRIDE." Following that you should see
the declaration of the text entity &included-domains;
and it should
include references to a number of "x-d" text entities.
&phase-of-moon-d-att;
text entity: <!ENTITY included-domains "&hi-d-att; &ut-d-att; &phase-of-moon-d-att; " >
This formally declares your @props
attribute specialization so that DITA processors will know that @phase-of-moon
is in fact a conditional attribute and that they should filter on it as appropriate.
That's all there is to it. Now just repeat Step 2 for each document type shell you use and you're done.