Was this helpful?
File naming conventions
The DITA OASIS Technical Committee uses certain conventions for the names of XML grammar files. We suggest using these conventions as a best practice to facilitate interchange of grammar files.
Globally unique identifiers
Vocabulary modules that are intended for use outside of a narrowly-restricted context should have one or more associated, globally-unique names by which the modules can be referenced without regard to their local storage location. The globally-unique names can be public identifiers, URNs, or absolute URLs.
Document type shells
Document type shells should be given a name that distinguishes their name, owner, or purpose; for example, acme-concept.dtd. The document type shells that are provided by the DITA Technical Committee use the root element of the primary specialization as the basis for the file name.
Module names
Each vocabulary module has a short name that is used to construct entity names and other names that are used in associated declarations. Modules also can have abbreviated names that further shorten the short name, for example "sw-d" for the "software" domain, where "software" is the short name and "sw-d" is the abbreviated name.
For structural modules, the module name should be the element type name of the top-level topic or map type defined by the module, such as "concept" or "bookmap".
For element domain modules, the module name should be a name that reflects the subject domain to which the domain applies, such as "highlight" or "software". Domain module names should be sufficiently unique that they are unlikely to conflict with any other domains.
DTD-based specialization modules
Use the following file-naming conventions for DTD-based specialization modules.
Module type
File name (entities)
File name (elements)
Example
Structural
ModuleName.ent
ModuleName.mod
concept.ent or concept.mod
Element domain
DomainNameDomain.ent
DomainNameDomain.mod
highlightDomain.ent or highlightDomain.mod
Attribute domain
AttributeNameAttDomain.ent
Not applicable
deliveryTargetAttDomain.ent
where:
ModuleName is the name of the element type, such as "concept" or "glossentry".
DomainName is the name of the domain, for example, "highlight" or "utilities".
AttributeName is the name of the specialized attribute, for example, "deliveryTarget".
RELAX NG-based specialization modules
Use the following file-naming conventions for RELAX NG-based specialization modules.
Module type
File name
Example
Structural
ModuleNameMod.rng
conceptMod.rng
Element domain
DomainNameDomainMod.rng
highlightDomainMod.rng
Attribute domain
AttributeNameAttDomain.rng
deliveryTargetAttDomainMod.rng
where:
ModuleName is the name of the element type, such as "concept" or "glossentry".
DomainName is the name of the domain, for example, "highlight" or "utilities".
AttributeName is the name of the specialized attribute, for example, "deliveryTarget".
XSD-based specialization modules
Use the following file-naming conventions for XSD-based specialization modules.
Module
File name
Example
Structural modules: Element groups
ModuleNameGrp.xsd
conceptGrp.xsd
Structural modules: All other declarations
ModuleNameMod.xsd
conceptMod.xsd
Domain modules
DomainName.xsd
highlightDomain.xsd
Attribute domain
AttributeNameAttDomain.xsd
deliveryTargetAttDomain.xsd
where:
ModuleName is the name of the element type, such as "concept" or "glossentry".
DomainName is the name of the domain, for example, "highlight" or "utilities".
AttributeName is the name of the specialized attribute, for example, "deliveryTarget".
Constraint modules
Use the following file-naming conventions for constraint modules.
Structural modules
Structural constraint modules should be named using the following format:
DTD
qualifierTagnameConstraint.mod
RELAX NG
qualifierTagnameConstraintMod.rng
XSD
qualifierTagnameConstraintMod.xsd
where:
qualifier is a string that is specific to the constraints module and characterizes it, for example, "strict" or "requiredTitle" or "myCompany-".
Tagname is the element type name with an initial capital, for example, "Taskbody" or "Topic".
For example, the file names for the constraint that is applied to the general task to create the strict task are strictTaskbodyConstraint.mod, strictTaskbodyConstraintMod.rng, or strictTaskbodyConstraintMod.xsd.
Domain modules
Domain constraint modules should be named using the following format:
DTD
qualifierdomainDomainConstraint.ent
RELAX NG
qualifierdomainDomainConstraintMod.rng
XSD
qualifierdomainDomainConstraintMod.xsd
where:
qualifier is a string that is specific to the constraints module and characterizes it, for example, "noSyntaxDiagram" or "myCompany-".
domain is the name of the domain to which the constraints apply, for example, "Highlighting" or "Programming".
For example, the file name for a constraint module that removes the syntax diagram from the programming domain might be noSyntaxDiagramProgrammingDomainConstraint.ent.
Because of restrictions on the redefine feature of XML Schema, it is sometimes necessary to use an intermediate level of redefinition, which requires a separate XSD document. In that case, the intermediate XSD document should be named qualifierdomainDomainConstraintsInt.xsd.