Posts Tagged‘BREX generation’

Two New S1000D Applications

It’s March already! Where does the time fly? In Texas we decided to skip winter altogether. We have flowers blooming and, at present, I’m typing this with the windows to the office wide open.

Ahead of changes to our website and the various marketing initiatives that businesses must take when rolling out new products, I wanted to let you know that We are going to be rolling out a couple of new applications during March:

BREXCheck™ and S1000D Architect™.

BREXCheck™ – BREXCheck allows for on-the-fly BREX validation while creating S1000D content. It can work in the XML editor of your choice. Technical authors and content creators author their S1000D data modules as normal. BREXCheck operates in the background. If the author attempts to enter an element that is dissallowed, or an incorrect attribute value, BREXCheck will offer a notification. This should greatly speed up and improve the S1000D authoring and the QA processes.

The second is S1000D Architect™, which is a layer of logic that sits on top of an S1000D CSDB (Content Storage Data Base). S1000D Architect allows you to truly control and manage your S1000D project(s). Management of your S1000D project(s) includes:

  • Knowing how many data modules comprise your S1000D project(s).
  • Knowing where these data modules are coming from (your team, vendors, etc.).
  • Managing multiple SNS schemes (yours, your vendors)
  • Managing vendors’ data modules
  • Ability to efficiently build a list of all necessary data modules
  • Tying this list to a ‘stub-out’ of the data modules themselves (i.e., create a rudimentary XML document for each and every data module in your project).

Look for posts, additions to our website, and email notifications in the coming weeks. We are excited about these applications and rolling them out to general availability. If you want a sneak peek, contact us at








How about a little BREX 101 this week?

One of the most common points of confusion I hear about in the S1000D industry is concerning what the BREX data module does and how S1000D business rules are used to generate a BREX data module. It is believed by some that a BREX DM contains all of the business rules for a program, and by handing a BREX to a partner company, you can effectively instruct them on how to develop S1000D to conform to your business rules. 

This is not completely accurate. A BREX document is really only capable of storing rules that are enforceable on the actual S1000D XML content. This is due to the fact that a BREX rule must be enforced via an XPath statement. Decisions pertaining to the use of optional elements are perfect examples of S1000D business rules that exist in, and are enforced by, the BREX.

Rules governing the overall usage of S1000D cannot be enforced or expressed in the BREX data module. Examples of such rules include:

  • the decision to use process data modules instead of the fault isolation data module, or
  • to use an Arial font instead of Times for chapter titles.

Although these are important rules, they cannot be expressed using an XPath statement and, thus, are not included in the BREX document. 

When conducting training classes or when explaining S1000D constructs to our customers, we have found it useful to think of S1000D business rules as consisting of two distinct categories:

  1. Program Rules
  2. Authoring Rules 

A program rule is an S1000D business rule that dictates specific usages of the standard that does not specifically address XML content. Program rules include rules such as graphic formats, CSDB configuration, type of data modules to be used, etc. As program rules are meant solely for human use, these are generally provided as documentation (a Word file, HTML, etc).  

Authoring rules are data oriented and can be expressed as an XPath statement and, as such, can be enforced by a program or software application. The decision to disallow an optional element can be enforced via an XPath statement, and thus should be included in your BREX document. It is then the duty of a BREX-aware processor to read the BREX document and enforce these authoring rules.

So, when exchanging business rules, it is important to not only exchange your BREX data module, but supporting documentation containing program rules as well.

Any questions? Give us a call!

–Eric Lawson

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.

Continue Reading

Using Spreadsheets to Maintain S1000D Business Rules

There’s a trend emerging with respect to creating S1000D Business Rules, and for a couple of solid reasons, I’d like to see it nipped in the bud. The trend I am referring to is storing business rules in an Excel Spreadsheet. Why is this a bad idea you ask? I’ll give you a couple of reasons:

First, storing business rules in an Excel file renders the business rule completely useless if you wish to reuse it for anything else at any point in the future. The OBVIOUS reuse opportunity is the generation of BREX rules. BREX rules are derived directly from your business rules. As such, is it not the most technically and analytically sound decision to have your BREX rules literally derived from your business rules?

If you store your business rules in an application that is capable of reusing them, you immediately gain the following advantages:

  1. You don’t have to write a BREX document…that’s right, you don’t have to write a bunch of XPath statements or pay somebody a boatload of money to do it for you.
  2. You can link business rules to BREX rules. Then, when your business rule changes, your BREX rule is changed and all you have to do is press the “go” button to generate a new BREX document.

My second reason for wanting to do away with maintaining S1000D Business Rules in a spreadsheet has to do with the concept of “layered” Business Rules. Right now, entities such as the Air Force, Army, and Naval Aviation Departments are creating business rules. Individual programs will want to use those rules as a baseline and also create their own rules that further define their policies and guidelines with respect to S1000D. And guess what? They’ll probably want to see and use other programs’ and departments’ rules as well. The more columns that are added to a spreadsheet, the more unreadable it becomes. And, adding a new column does nothing if a group wants to actually use a business rule from another source.

I wrote up a white paper that dives further into this topic. It can be downloaded from White Papers.

-Rick Schochler


Next Blog Entry: Creating a Standardized Means of capturing S1000D Business Rules


Welcome to our new and improved website and our new blog page. We are going to post blogs on a regular basis, and we will try to stick to topics that are essential to us and our customers – that is S1000D, content management, Tech Pubs, document management, etc. As per the norm, this will be informal, and it will include opinions, likes and dislikes. We encourage feedback, regardless of whether you agree or disagree, and we certainly hope you find it useful and informative.


Rick Schochler, COO Crowell Solutions