Step 1 is to create the attribute domain declaration as follows.
First, create a file named "phase-of-moonAttDomain.ent".
moonPhasePropsDomain.ent", create these two declarations:
<!ENTITY % phase-of-moon-d-attribute
"phase-of-moon
CDATA
#IMPLIED
"
>
<!ENTITY phase-of-moon-d-att
"a(props phase-of-moon)"
>
The first declaration declares the @phase-of-moon attribute and puts it in a parameter entity so we can add it to the DITA-defined %selection-atts; parameter entity via the %props-attribute-extensions; configuration parameter entity in document type shells.
The second declaration is the domain declaration string for the attribute domain. It will be added to the value of the @domains attribute declared for each topic or map element type. In the value, the "props" keyword indicates that the attribute is a @props attribute specialization and not a @base attribute specialization.
You should of course add an appropriate descriptive header to the file as well as a little documentation for the attribute itself.
This is all that is required for the attribute domain module (there is no separate .mod file, as there is for element domains).