Contraintes
Dans DITA, le mécanisme de contrainte permet de limiter l'utilisation des éléments et des attributs dans un type d'information, sans avoir à créer toute une spécialisation. La contrainte simplifie donc la rédaction en réduisant la complexité des types d'information.
Le mécanisme de contrainte est introduit dans la version DITA 1.2.
Une contrainte définit une série de restrictions conformant aux règles de la spécialisation. (Le mécanisme de contrainte a d'ailleurs été tout d'abord proposé comme un domaine de remplacement.) Les contraintes permettent de simplifier l'environnement de rédaction en réduisant les options de balisage à disposition des rédacteurs DITA qui doivent respecter les règles métier.
Une contrainte permet de supprimer un élément optionnel d'un modèle de contenu, de rendre obligatoire un élément optionnel, et de rendre obligatoires ou de modifier les attributs disponibles sur un élément. Toutefois, il n'est pas possible de rendre un élément obligatoire optionnel, ou de supprimer un élément obligatoire.
Si contraintes et spécialisations ont le même but, la contrainte tente de contourner la difficulté technique perçue de la spécialisation. Les contraintes permettent également de changer les structures non-sémantiques, en évitant les mécanismes de spécialisations, plus adaptés aux changements sémantiques.
Une rubrique contrainte sera toujours valide, car les contraintes se contentent de réduire ce qui est déjà autorisé. Par exemple, lorsque la contrainte supprime les éléments section dans un type concept, le concept contraint est toujours valide, puisqu'il est permis, dans le modèle de base d'un concept, d'avoir un concept sans section.
Le type d'information strict task dans DITA 1.2 est en fait un type d'information general task avec des contraintes.