S1000D Business Rules and BREX- By Alan Finucane, Integrated Product Support Consultant
Introduction
This article provides basic information on the S1000D Business Rules and BREX. For details refer to S1000D International Specification for technical publications using a common source database.
Business Rules
The S1000D specification states that:
“Business rules are decisions that are made by a project or an organization on how to implement S1000D. Business rules cover all aspects of S1000D and are not limited to authoring or illustrating. They can also address issues that are not defined in S1000D such as rules related to how S1000D interfaces with other standards, specifications and business processes that are related to its implementation.”
S1000D provide a list of Business Rules (BRs) called the Business Rules Decision Points (BRDPs) Index that can be used to develop the BRs. The BRDP index is included in the S1000D files that can be freely downloaded from the S1000D website, S1000D. Use the BRDPs from the S1000D issue relevant to the project or organisation.
Example BRDPs from S1000D issue 5.0.

There must be a decision made on all BRDPs, these can include but are not limited to:
- A statement that the BRDP shall be used.
- Specific details and examples,
- References to project and organisation processes and documents. For example, security, verification and validation, and data transfer processes.
- Annotation for another stakeholder to propose. For example, Contractor to propose, organisation/project to agree.
- Annotation “Not Used” for BRDP not needed for the project.
When needed business rules decisions are not in the S1000D BRDPs index, a project or organisation can create their own. Refer to Chapter 2.5.3 of the S1000D specification.
Business Rules are not a static document and are often updated as the organisation and project evolves. When completing the Business Rules:
- Involve as many stake holders as you can from the beginning.
- Take the time to document your business rules even if it’s just a simple Excel spreadsheet or bulleted list in Word.
- Review and update BRs as the organisation and project evolves.
- Use Chapter 2.5 of the S1000D specification for guidance.
BREX
The Business Rules Exchange (BREX) is an S1000D data module (XML file) that contains the Business Rules decisions that can be used to programmatically validate a data module. Business rules decisions are in plain language and are written into XML using BREX Schema to allow the computer software to understand the decisions.
Only the Business Rules that are suited to programmatic validation are included in the BREX file. Examples are:
Business Rule: Project X will use ASD Simplified Technical English
BREX: <objectPath allowedObjectFlag=”2″>//@languageIsoCode</objectPath>
<objectValue valueForm=”single” valueAllowed=”SX”></objectValue>
Business Rule: All data modules must use the United States as the Country Iso Code.
BREX: <objectPath allowedObjectFlag=”2″>//@countryIsoCode</objectPath>
<objectValue valueForm=”single” valueAllowed=”US”></objectValue>
Note: An XML schema file in the XML authoring environment gives the document structure rules that an author must follow when developing a Data Module.
All Data Modules including the BREX must reference a BREX file. The BREX must be included in the Common Source Data Base (CSDB) and is usually placed in the relevant Management folder.
A project can use one or multiple BREX files. Where multiple BREX are used, they form layers based on the level of hierarchy. An example of a three-layer model based on hierarchy is shown below.
- S1000D Default BREX (References itself)
- Organisation BREX (References S1000D Default BREX)
- Project BREX (References Organisation BREX)
Note: The S1000D default BREX file is supplied with the downloads from the S1000D website, S1000D.
For more information refer to Chapter 2.5.1 of the S1000D Specification.
Difference between Business Rules and the BREX
Business rules are the decisions that are made for companies and projects working in S1000D that are documented in plain English. A BREX is the translation of those plain English business rules into computer language so software and applications can validate S1000D content to the business rules.
The three main blocks of BREX rules
There are three main blocks of BREX rules in the BREX Data Module:
- SNS Rules (snsRules),
- Context Related Rules (contextRules)
- Context Independent Rules (nonContextRules).
SNS Rules and Context Independent Rules are written in plain English and Context Related Rules are written in XPath (along with plain English descriptions to aid in understanding the rule).
SNS Rules
SNS Rules in the snsRules element have a formal structure but are written in plain English. The SNS rules contain descriptions of one or many SNS systems that relate to the project. To prevent duplication and added work updating SNS information, a decision needs to be made whether to include SNS information in the SNS Rules or the Context Related Rules.
Note: If a formal SNS Rule structure with XPath is required, it should be documented in the Context Related Rules.
Refer to Chapter 4.10.2.1 of the S1000D Specification.
Below is a sample SNS Rule that documents the definition of SNS System 25 with the title Equipment/Furnishings along with its subsystem of 1 with the title Subsystem 1.
<snsSystem>
<snsCode>25</snsCode>
<snsTitle>Equipment/Furnishings</snsTitle>
<snsSubSystem>
<snsCode>1</snsCode>
<snsTitle>Subsystem 1</snsTitle>
</snsSubSystem>
</snsSystem>
Context Related Rules
Context Related Rules are where the XPath BREX rules are stored. These rules are machine readable and are used to validate a data module. Context rules can capture and define:
- SNS structure
- Elements and attributes that must or must not be used
- Values that are allowed and used in specified elements and/or attributes
- Plain English descriptions of the business rules.
Refer to Chapter 4.10.2.2 of the S1000D Specification.
Context rules are complicated.It is recommended to review sample BREX data modules and learn XPath, before authoring the BREX Data Module. Below is sample code to illustrate complexity.
- BREX rules that apply to the procedural schema are put into this element:
<contextRules rulesContext=”http://www.s1000d.org/S1000D_4-1/xml_schema_flat/proced.xsd”></contextRules>
- BREX rules that apply to the entire project are put into this element:
<contextRules ></contextRules>
- BREX rule that documents the answers to BRDP-S1-00047 requires two separate decisions in the BREX, what Language ISO code to be used and what Country ISO code to be used.
The following example shows the:
- objectPath provides the context of where the rule will be applied,
- objectUse provides the plain English description, and
- objectValue provides the value that is allowed.
<structureObjectRule>
<objectPath allowedObjectFlag=”2″>//@languageIsoCode</objectPath>
<objectUse>BRDP-S1-00047. All data modules must use the languageIsoCode ‘en’. countryIsoCode must be ‘US'</objectUse>
<objectValue valueForm=”single” valueAllowed=”en”>English to be used.</objectValue>
</structureObjectRule>
<structureObjectRule>
<objectPath allowedObjectFlag=”2″>//@countryIsoCode</objectPath>
<objectUse> BRDP-S1-00047. All data modules must use the languageIsoCode ‘en’. countryIsoCode must be ‘US'</objectUse>
<objectValue valueForm=”single” valueAllowed=”US”>U.S.</objectValue>
</structureObjectRule>
Context Independent Rules
Context Independent Rules are written in plain English and are captured in the element simplePara. The element nonContextRule contains rules that are not related to a schema, schema element or attribute.
Refer to Chapter 4.10.2.3 of the S1000D specification.
Below is a sample Context Independent Rule that documents the text of BRDP-S1-00009 along with the business rule decision for the project.
<nonContextRule>
<brDecisionRef brDecisionIdentNumber=” BRDP-S1-00009″ />
<simplePara> Frequency of data exchanges will occur every 3 months (Chap 2.5.1 Para 2.7.1)</simplePara>
</nonContextRule>
WANT TO KNOW MORE ABOUT ILS & IPS?