Skip to main content
ShakewellContact

Checklist

Free S1000D DMRL Template (CSV)

A starter spreadsheet for the list of data modules an S1000D project owes: one column for each part of the data module code, one for each DML entry field, and a short guide to filling it in.

The Download

A DMRL Starter You Can Edit

The template is one CSV file. Each row is one planned data module. The columns follow the data module code and the entry fields of the S1000D data management list schema, so a row maps to one entry in the real list. The DMRL explainer covers what the list is; this page is the file.

Download s1000d-dmrl-template.csv

It holds a header row and four example rows for a fictitious product with the model identification code EXAMPLE. Delete the examples before you start. The file is free, ungated, and yours to reuse.

The Columns

What Each Column Holds

Sixteen columns come from the schema, read from its dml.xsd for Issues 5.0 and 7. The last three are project additions, marked project_ in the header, that help you plan but are not part of any DML entry.

Columns of the DMRL template
ColumnOriginWhat goes in it
model_ident_codedmCode attribute modelIdentCodeThe product or project code, 2 to 14 capital letters or digits. The same value on every row.
system_diff_codedmCode attribute systemDiffCodeThe system difference code, 1 to 4 capital letters or digits. Separates variant lineages of the product.
system_codedmCode attribute systemCodeThe first SNS segment, 2 or 3 characters. Comes from your chosen SNS.
sub_system_codedmCode attribute subSystemCodeOne character.
sub_sub_system_codedmCode attribute subSubSystemCodeOne character.
assy_codedmCode attribute assyCodeThe assembly code, 2 or 4 characters.
disassy_codedmCode attribute disassyCodeTwo characters. Use 00 where the module covers the item as a whole.
disassy_code_variantdmCode attribute disassyCodeVariant1 to 3 characters.
info_codedmCode attribute infoCodeThree characters: what kind of information the module is, such as 040 for description or 520 for a remove procedure.
info_code_variantdmCode attribute infoCodeVariantOne character.
item_location_codedmCode attribute itemLocationCodeOne of A, B, C, D or T. Read the specification's definition of each before choosing.
tech_namedmTitle element techNameRequired in the schema. The name of the thing the module is about.
info_namedmTitle element infoNameOptional in the schema. The kind of information, such as Description or Remove procedure.
security_classificationsecurity element, attribute securityClassificationA two-digit code. 01 is the lowest level, for example unclassified. Your project business rules decide which values are allowed.
responsible_partner_companyresponsiblePartnerCompany element, child enterpriseNameRequired in the schema as an element; the company name inside it is optional. Name the partner who owes the module.
remarksremarks elementOptional free text for the entry.
project_dmc_assembledProject additionThe full data module code written out, for sorting, searching and spotting duplicates. Not a schema field; rebuild it from the columns above if you change them.
project_statusProject additionNot started, in work, in review, and so on. Not a DML field. Once the data module exists in the CSDB, its status lives there.
project_due_dateProject additionA planning date. Not a DML field.

The template leaves out some optional fields. A real entry can also carry an entry type, an issue type, an answer, and learning codes. Add columns for them if your project uses them. The segments of the code are explained in the data module code, decoded, and the three-character values in the information codes guide.

How To Use It

From the SNS to the DML in the CSDB

  1. 1.

    Fix the breakdown first

    Choose the SNS and the model identification code before you add rows. Every row after that is a choice from the breakdown, not an invention.

  2. 2.

    Add one row per module

    For each system and assembly, add a row for each information code your business rules call for: a description, the procedures, the fault isolation. Delete the four example rows.

  3. 3.

    Check the codes

    Sort on project_dmc_assembled. Two identical codes are one module, not two. Check the segment lengths against the column guide above.

  4. 4.

    Agree owners and classification

    Every row needs a responsible partner company. Settle security classification with the customer now; changing it later touches every module.

  5. 5.

    Turn rows into the DML

    The contract DMRL is an XML data management list in the CSDB, with one dmlEntry per row. Load the rows with your CSDB's import function or a short script, then create a stub data module for each entry. The entry for the third example row looks like the snippet below.

<dmlEntry>
  <dmRef>
    <dmRefIdent>
      <dmCode modelIdentCode="EXAMPLE" systemDiffCode="AAA"
              systemCode="SY2" subSystemCode="1" subSubSystemCode="0"
              assyCode="00" disassyCode="00" disassyCodeVariant="AA"
              infoCode="520" infoCodeVariant="A" itemLocationCode="A"/>
    </dmRefIdent>
    <dmRefAddressItems>
      <dmTitle>
        <techName>Example pump assembly</techName>
        <infoName>Remove procedure</infoName>
      </dmTitle>
    </dmRefAddressItems>
  </dmRef>
  <security securityClassification="01"/>
  <responsiblePartnerCompany>
    <enterpriseName>Example Partner Two</enterpriseName>
  </responsiblePartnerCompany>
  <remarks>
    <simplePara>Needs a task analysis first.</simplePara>
  </remarks>
</dmlEntry>

The SNS guide covers step one, and the startup checklist puts the DMRL in sequence with the other early decisions. Some open tools can generate or convert lists; see free S1000D tools.

The Limits

A Spreadsheet Is a Planning Tool

The DMRL that a program works from is an XML data management list stored in the CSDB, under the same control as the content it lists. A CSV has none of that. It does not validate against the schema, it cannot be checked against the project BREX, and it does not know which modules have been written.

So use the file to plan, to agree scope with partners, and to count. Once the list is in the CSDB, make the CSDB copy the source and stop editing the spreadsheet. Two live copies of a DMRL drift apart within weeks. If your contract calls for a DMRL, read its text and the data item description it cites; the template does not replace either.

FAQ

Questions About the Template

Is the template really free?

Yes. It is a plain CSV file with no sign-up and no form. Edit it in any spreadsheet program and reuse it on any project.

Does it work with any S1000D issue?

The data module code patterns in the schema's dml.xsd are identical in Issue 5.0 and Issue 7, and the columns follow them. Read the Chapter 4.5 text and the business rules of the issue your contract names before you rely on any column.

Why are there no issue number columns?

A DMRL says what must exist, not which issue of it exists today, and DMRL entries normally omit issue information. The issue numbers belong in the CSDB status list (CSL).

Can I import the CSV straight into my CSDB?

That depends on the CSDB. The file is a planning table, not a DML. Check whether your tool imports CSV, or write a short script that emits one dmlEntry per row.

Is this the DMRL my contract requires?

Not by itself. If your contract calls for a DMRL, read its data item description and the text of the contract. What is delivered is normally the data management list in the CSDB, not a spreadsheet.