Topic Constraint Module Step 2: Declare The @domains
Attribute Text Entity
Like vocabulary modules, constraint modules must be declared in the @domains
attribute of each top-level map or topic file that uses the constraint.
Constraint modules are indicated by names of the form "moduleName-c,"
for example, "highlightOnlyTopic-c." As for vocabulary modules, you declare a text
entity that holds the @domains
attribute contribution. This entity is
named "tagname-constraints," reflecting the fact that there can
be at most one constraint module for a given element type in a given document type
shell.
<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================== Constraint Domain: Paragraphs with only highlight domain elements. Copyright (c) 2011 Your Name Here ====================================== --> <!ENTITY topic-constraints "(topic highlightOnlyTopic-c)" > <!-- ============ End of constraint module -->
What do you do if you have multiple constraint modules for a given element type that you want to use together?
In that case you must create a new constraint module that combines the multiple constraint modules. For example, if someone gave you another topic constraint module that constrained a different element type, you would combine those declarations with the declarations in the highlight-only topic constraint module.
When the two constraints constrain different element types, then combining them is easy: just copy all the declarations from one constraint module into the other and save the result as a new file with a new module name.
If the constraints constrain the same element types, then you must work out how the constraints should be combined in order to create a new constraint module.