A structural constraint module defines the constraints for a map or topic element type. A domain constraint module defines the constraints for an element or attribute domain.
All vocabulary and constraint modules must document their
@domains
attribute contribution. The value of the contribution is
constructed according to the rules found in domains attribute rules and syntax. The OASIS grammar files
use a <domainsContribution>
element to document the contribution;
this element is used to help enable generation of DTD and XSD grammar files. An XML comment
or <a:documentation>
element can also be used.
Constraint modules are implemented by importing the constraint module into a document type shell in place of the module that the constraint modifies. The constraint module itself imports the base module to be constrained; within the import, the module redefines patterns as needed to implement the constraint.
<section>
element needs to import the base module
topicMod.rng. Within that import, it will constrain the
section.content
pattern:<include href="topicMod.rng"> <define name="section.content"> <!-- Define constrained model here --> </define> </include>
For a more complete example, see strictTaskbodyConstraintMod.rng, delivered with the DITA 1.3 grammar files.
<section>
and
<shortdesc>
, a single module can
be defined as
follows:<include href="topicMod.rng"> <define name="section.content"> <!-- Constrained model for section --> </define> <define name="shortdesc.content"> <!-- Constrained model for shortdesc --> </define> </include>
<section>
,
<shortdesc>
, and <li>
from the base
vocabulary, the <section>
constraint can import the
<shortdesc>
constraint, which in turn imports the
<li>
constraint, which finally imports
topicMod.rng.@domains
attribute for structural
constraint module@domains
attribute as (topic task
strictTaskbody-c):<moduleDesc> <!-- ... --> <moduleMetadata> <!-- ... --> <domainsContribution>(topic task strictTaskbody-c)</domainsContribution> </moduleMetadata> </moduleDesc>
@domains
attribute for domain constraint
module<moduleDesc> <!-- ... --> <moduleMetadata> <!-- ... --> <domainsContribution>(topic task taskreq-d requiredReqcondsTaskreq-c)</domainsContribution> </moduleMetadata> </moduleDesc>
Return to main page.
dita-v1.3-os-part3-all-inclusive Standards Track Work Product | Copyright © OASIS Open 2015. All Rights Reserved. | 17 December 2015 |