Things We're Thinking About

BREX Data Module: What, Why, Who, When, Where & How


The Business Rules Exchange Data Module (BREX DM) is used to programmatically enforce business rules that govern what can and cannot appear in an S1000D data module’s content. The BREX DM uses XPath statements that verify that authored content conforms to the project’s business rules. For example: to ensure consistency in the units of measurement used in a program a BREX rule could specify and enforce the use of only metric values.

Note: There are business rules that are defined by a project that cannot be enforced programmatically. Business rules that cover general policy (such as publishing to an IETM environment) are dictated in a Business Rule document, but are not part of the BREX.


BREX validation is an additional layer of validation beyond the basic validation provided by the S1000D XML Schemas. The S1000D XML Schemas have hundreds of elements and attributes that are optional. The BREX DM specifies which of these are optional or required for your project. While you could author S1000D content without using BREX validation, you would certainly wind up with lots of information incorrectly marked up in your documents.


Analysts define the BREX DM.

Technical writers use the BREX DM.


BREX generation occurs during the Business Rules stage of the S1000D Process and BREX validation happens during Authoring.

S1000D Lifecycle Stages

BREX Generation

BREX DMs are defined during the Business Rules phase of an S1000D project.  There are 2 ways to generate BREX DMs: 1) Manually or 2) Automated


BREX DMs can be created by reading business rules from a spreadsheet and then hand-coding XML. This is a tedious and error prone process that is very difficult to maintain over time.


BREX DMs can be created, managed, and maintained over time using an automated tool.

BREX Validation

BREX validating may occur during the authoring process or post-edit. Rules that forbid elements or provide an enumerated list of attributes can be enforced in real-time.  Rules that define required elements can only be enforced post-edit. BREX occurs during editing requires integration with your XML editor. Post-edit validation occurs outside an XML editor.


BREX DMs are used by XML authoring tools and S1000D Common Store Databases (CSDB). If your tool supports BREX validation then business rules are enforced by the CSDB.


  1. Create BREX DM
  2. Load BREX DM (into authoring tool or CSDB)
  3. Load S1000D Content
  4. Validate S1000D Content against BREX DM
  5. If violations exist, report them to the content author.

Helpful links