The NIEM Naming and Design Rules (NDR) describes the architecture of the NIEM data model and its representation in XML. It specifies principles and enforceable rules for NIEM data components and schemas.
These rules are intended to establish and, more importantly, enforce a degree of standardization across a broad set of users in order to improve precision and interoperability across the NIEM community.
See the NIEM-NDR GitHub repo for the issue tracker and latest draft updates.
The NDR describes and defines rules for four different kinds of documents:
In addition to the list above, the NDR defines a
Instance document - An XML instance that is valid to a Schema document set.
The REF vs EXT page is a very handy guide to compare the differences between the two primary rule sets.
While some rules in the NDR require subjective judgment (like determining if component names and definitions are semantically meaningful), other rules are capable of being automated. Starting with NDR version 3.0, such rules have been written as Schematron rules. Schematron is an ISO specification that describes a validation language for assertions about XML documents.
Schematron representations of NDR rules provide several key benefits. There is a single, normative interpretation of each rule. This eliminates the possibility that different users might read read a free-text rule description and apply it in different ways.
Schematron rules can also be used to validate XML documents. This makes it substantially easier for users to test NIEM REF and EXT XML schemas against the NDR to see if those schemas conform to the given NDR conformance target.
Refer to the NDR for the full set of rules. Descriptions, principles, and/or examples often accompany each rule. The NDR Table of Contents and the rules index in the Appendix can be used to jump directly to particular topics.
XML sub-pages in the Concepts section to a collection of rules relating to particular topics. For example, the Namespaces XML page contains a list of NDR rules related to a namespace and its representation in NIEM XML (a XML schema).
The image below shows a small excerpt from the NDR.
Rule 10-47is a descriptive, free-text rule. Conformance for this rule must be checked manually.
Rule 10-48is written in Schematron and can be tested via ConTesA or Oxygen.