PageSourceSearch

https://www.techwriter.ai/assets/js/ef279904.d010edd7.js

js techwriter.ai collected 2026-10-05 15:18:11 UTC 13,708 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkshowcase=self.webpackChunkshowcase||[]).push([["6994"],{24(e,n,t){t.r(n),t.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>a,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"core-concepts/data-module-types","title":"Data module types","description":"A survey of the S1000D data module types \u2014 descriptive, procedural, fault, IPD, and more \u2014 with the five most common explained in plain English.","source":"@site/content/s1000d/core-concepts/data-module-types.md","sourceDirName":"core-concepts","slug":"/core-concepts/data-module-types","permalink":"/s1000d/core-concepts/data-module-types","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1782864000000,"sidebarPosition":5,"frontMatter":{"sidebar_position":5,"title":"Data module types","description":"A survey of the S1000D data module types \u2014 descriptive, procedural, fault, IPD, and more \u2014 with the five most common explained in plain English.","autoscribe_synced":"2026-08-09","last_update":{"date":"2026-07-01T00:00:00.000Z"}},"sidebar":"s1000dSidebar","previous":{"title":"Information codes","permalink":"/s1000d/core-concepts/information-codes"},"next":{"title":"The Common Source Database (CSDB)","permalink":"/s1000d/core-concepts/common-source-database"}}'),r=t(4848),i=t(8453);let d={sidebar_position:5,title:"Data module types",description:"A survey of the S1000D data module types \u2014 descriptive, procedural, fault, IPD, and more \u2014 with the five most common explained in plain English.",autoscribe_synced:"2026-08-09",last_update:{date:new Date("2026-07-01T00:00:00.000Z")}},a="Data module types",o={},c=[{value:"The common types",id:"the-common-types",level:2},{value:"The full set",id:"the-full-set",level:2},{value:"How the type fits the content",id:"how-the-type-fits-the-content",level:2},{value:"Sources",id:"sources",level:2}];function l(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"data-module-types",children:"Data module types"})}),"\n",(0,r.jsxs)(n.p,{children:["Every data module holds one kind of information. S1000D gives each kind its own\n",(0,r.jsx)(n.strong,{children:"schema"}),", so the structure matches the content. A removal procedure uses a\ndifferent schema from a parts list, and a parts list uses a different schema from\na fault chart. The schema you choose is recorded in the data module's metadata\nand drives validation."]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["The data module type is set by the ",(0,r.jsx)(n.strong,{children:"schema"})," the module conforms to, not by the\ninformation code in the ",(0,r.jsx)(n.a,{href:"./data-module-code",children:"Data Module Code"}),". The two should\nagree \u2014 a procedural module should carry a procedural information code (for\nexample a ",(0,r.jsx)(n.code,{children:"500"}),"-family code for a removal) \u2014 but they are separate fields."]})}),"\n",(0,r.jsx)(n.h2,{id:"the-common-types",children:"The common types"}),"\n",(0,r.jsx)(n.p,{children:"The five types below cover most of the content in a typical technical\npublication. Each is explained in one sentence."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Descriptive"})," \u2014 a general-purpose module for descriptive text; it tells the\nreader what something is and how it works."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Procedural"})," \u2014 a step-based module that tells the reader how to do a task,\nsuch as a removal, an installation, or a servicing job."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Fault"})," \u2014 a dedicated structure for fault isolation, including charts that\nguide the reader from a symptom to its cause."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Illustrated parts data (IPD)"})," \u2014 the building block for an illustrated parts\ncatalogue; it links a figure to a parts list so each item can be identified\nand ordered."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Process"})," \u2014 a module that integrated systems use to deliver maintenance\ninformation dynamically, driven by the state of the equipment."]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{type:"tip",children:(0,r.jsxs)(n.p,{children:["If you are unsure which type to use, start with ",(0,r.jsx)(n.strong,{children:"descriptive"}
1),' for "what it is"\ncontent and ',(0,r.jsx)(n.strong,{children:"procedural"}),' for "how to do it" content. These two carry most of a\nmanual.']})}),"\n",(0,r.jsx)(n.h2,{id:"the-full-set",children:"The full set"}),"\n",(0,r.jsxs)(n.p,{children:["S1000D defines many more types beyond the common five. The table below lists the\nmain ones and what each is for. Schema names are shown as examples; the exact\nfile names change between ",(0,r.jsx)(n.a,{href:"../introduction/issue-history",children:"issues"}),"."]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Schema (example)"}),(0,r.jsx)(n.th,{children:"Purpose"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Descriptive"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"descript"})}),(0,r.jsx)(n.td,{children:"General descriptive text."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Procedural"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"proced"})}),(0,r.jsx)(n.td,{children:"Step-based task procedures."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Fault"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"fault"})}),(0,r.jsx)(n.td,{children:"Fault isolation, including fault charts."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Illustrated parts data"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"ipd"})}),(0,r.jsx)(n.td,{children:"Parts catalogue linked to figures."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Process"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"process"})}),(0,r.jsx)(n.td,{children:"Dynamic, system-driven maintenance delivery."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Wiring data"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"wrngdata"})}),(0,r.jsx)(n.td,{children:"Wire, harness, equipment, and standard-part data."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Wiring data description"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"wrngflds"})}),(0,r.jsx)(n.td,{children:"Project-specific field descriptions for the elements in a wiring-data module."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Maintenance planning (schedule)"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"schedul"})}),(0,r.jsx)(n.td,{children:"Maintenance planning and scheduled-task information."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Checklist"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"checklist"})}),(0,r.jsx)(n.td,{children:"Maintenance checklist content."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Crew / operator"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"crew"})}),(0,r.jsx)(n.td,{children:"Operational checklists and related descriptive information."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Container"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"container"})}),(0,r.jsx)(n.td,{children:"A wrapper that holds alternative modules for the same result."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Learning"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"learning"})}),(0,r.jsx)(n.td,{children:"Technical training content (added in Issue 4.0, which also defined the S1000D\u2013SCORM relationship)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Business Rules Exchange (BREX)"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"brex"})}),(0,r.jsx)(n.td,{children:"A project's business rules in machine-checkable form."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Applicability cross-reference table"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"appliccrossreftable"})}),(0,r.jsx)(n.td,{children:"The hub of applicability handling."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Condition cross-reference table"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"condcrossreftable"})}),(0,r.jsx)(n.td,{children:"Common applicability conditions."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Product cross-reference table"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"prdcrossreftable"})}),(0,r.jsx)(n.td,{children:"Product and condition attributes per instance."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Common information repository (CIR)"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"comrep"})}),(0,r.jsxs)(n.td,{children:["A shared repository data module that holds common, reusable objects \u2014 such as functional items, parts, tools, supplies, zones, access points, warnings, cautions, and externalized applicability \u2014 so other modules can reference them instead of repeating them. (Called the technical information repository, schema ",(0,r.jsx)(n.code,{children:"techrep"}),", before Issue 4.1.)"]})]})]})]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"BREX is a data module too."})," The Business Rules Exchange is not a separate file\nformat. It is a data module with its own schema that encodes the rules every\nother module must follow. Each data module references a BREX, and validation\nchecks the module against it. See ",(0,r.jsx)(n.a,{href:"./business-rules-brex",children:"Business rules & BREX"}),"."]})}),"\n",(0,r.jsx)(n.h2,{id:"how-the-type-fits-the-content",children:"How the type fits the content"}),"\n",(0,r.jsx)(n.p,{children:"A few notes that explain why the list is shaped this way:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Fault"})," modules can present fault isolation as a chart, so the reader follows\nbranches instead of reading flat text. A plain procedure cannot do this, which\nis why fault has its own schema."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"IPD"})," modules separate the catalogue structure (figure plus item list) from\nthe descriptive and procedural content around them. This keeps parts data\nconsistent and reusable."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Cross-reference tables"})," (applicability, condition, product) are not\nreader-facing pages. They hold the data that decides which content applies to\nwhich version of the product."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Container"})," modules do not hold content of their own. They wrap two or more\nmodules that offer alternative ways to reach the same result."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The exact set of schemas, and some of their names, has changed across issues. For\na given project, the available types are fixed by the issue you target and\nconstrained further by your BREX."}),"\n",(0,r.jsx)(n.h2,{id:"sources",children:"Sources"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/S1000D",children:"S1000D \u2014 Wikipedia"})," \u2014 data modules as the structured, self-contained, reusable unit of S1000D."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"https://help.adobe.com/en_US/framemaker/s1000d/WS9ad62b8fb4f8a997-4a02f1412e146f7d2a-8000.html",children:"Adobe FrameMaker \u2014 S1000D data module types"})," \u2014 descriptions of each data module type and schema."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"https://medium.com/s1000d-implementation-map/s1000d-schemas-for-issues-1-9-through-6-fd5b948864db",children:"S1000D Schemas for Issues 1.9 through 6 (Medium)"})," \u2014 how schema names and the set of types changed across issues, including the ",(0,r.jsx)(n.code,{children:"learning"})," schema and the ",(0,r.jsx)(n.code,{children:"techrep"})," \u2192 ",(0,r.jsx)(n.code,{children:"comrep"})," rename."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"https://s1000d.wordpress.com/2013/06/05/the-emporers-new-clothes/",children:"The Emperor's New Clothes (S1000D blog)"})," \u2014 Issue 4.1 reworked the technical information repository (TIR) into the common information repository (CIR), and the ",(0,r.jsx)(n.code,{children:"comrep"})," schema's object types (functional items, parts, tools, supplies, zones, warnings, cautions, externalized applicability, and more)."]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453(e,n,t){t.d(n,{R:()=>d,x:()=>a});var s=t(6540);let r={},i=s.createContext(r);function d(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.