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.
concept.dtd
and find the comment that reads "DOMAIN ATTRIBUTE DECLARATIONS". Following that comment, add this declaration: <!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.