<?xml version="1.0"?>
<dmodule xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.s1000d.org/S1000D_5-0/xml_schema_flat/descript.xsd">
 <identAndStatusSection>
   <dmAddress>
     <dmIdent>
       <dmCode modelIdentCode="S1KDTOOLS" systemDiffCode="A" systemCode="34" subSystemCode="0" subSubSystemCode="0" assyCode="00" disassyCode="00" disassyCodeVariant="A" infoCode="040" infoCodeVariant="A" itemLocationCode="D"/>
       <language languageIsoCode="en" countryIsoCode="CA"/>
       <issueInfo issueNumber="012" inWork="00"/>
     </dmIdent>
     <dmAddressItems>
       <issueDate year="2020" month="09" day="01"/>
       <dmTitle>
         <techName>s1kd-sns</techName>
         <infoName>Description</infoName>
       </dmTitle>
     </dmAddressItems>
   </dmAddress>
   <dmStatus issueType="changed">
     <security securityClassification="01"/>
     <responsiblePartnerCompany>
       <enterpriseName>khzae.net</enterpriseName>
     </responsiblePartnerCompany>
     <originator>
       <enterpriseName>khzae.net</enterpriseName>
     </originator>
     <applic>
       <displayText>
         <simplePara>All</simplePara>
       </displayText>
     </applic>
     <brexDmRef>
       <dmRef>
         <dmRefIdent>
           <dmCode modelIdentCode="S1KDTOOLS" systemDiffCode="A" systemCode="00" subSystemCode="0" subSubSystemCode="0" assyCode="00" disassyCode="00" disassyCodeVariant="A" infoCode="022" infoCodeVariant="A" itemLocationCode="D"/>
         </dmRefIdent>
       </dmRef>
     </brexDmRef>
     <qualityAssurance>
       <unverified/>
     </qualityAssurance>
     <reasonForUpdate id="rfu-xml-catalog" updateHighlight="1" updateReasonType="urt02">
       <simplePara>Add --xml-catalog parser option.</simplePara>
     </reasonForUpdate>
   </dmStatus>
 </identAndStatusSection>
 <content>
   <description>
     <levelledPara>
       <title>General</title>
       <para>The <emphasis>s1kd-sns</emphasis> tool can be used to automatically organize data modules in a CSDB in to a directory hierarchy based on a specified SNS structure. It may also be used to simply print an indented text version of an SNS structure.</para>
     </levelledPara>
     <levelledPara>
       <title>Usage</title>
       <para>
         <verbatimText verbatimStyle="vs24">s1kd-sns [-D &lt;dir&gt;] [-d &lt;dir&gt;] [-cmnpsh?] [&lt;BREX&gt; ...]</verbatimText>
       </para>
     </levelledPara>
     <levelledPara>
       <title>Options</title>
       <para>
         <definitionList>
           <definitionListItem>
             <listItemTerm>-c, --copy</listItemTerm>
             <listItemDefinition>
               <para>Copy files in to the SNS subfolders instead of linking them.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-D, --srcdir &lt;dir&gt;</listItemTerm>
             <listItemDefinition>
               <para>The flat directory containing the data modules to organize. By default, the current directory is used.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-d, --outdir &lt;dir&gt;</listItemTerm>
             <listItemDefinition>
               <para>The root directory of the new SNS structure. By default, the tool will use the name "SNS" in the current directory.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-h, -?, --help</listItemTerm>
             <listItemDefinition>
               <para>Show usage message.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-m, --move</listItemTerm>
             <listItemDefinition>
               <para>Move files in to the SNS subfolders instead of linking them.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-n, --only-code</listItemTerm>
             <listItemDefinition>
               <para>Use only the SNS codes when naming directories. By default, each directory will be named in the form of "snsCode - snsTitle".</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-p, --print</listItemTerm>
             <listItemDefinition>
               <para>Print the SNS structure only.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-s, --symlink</listItemTerm>
             <listItemDefinition>
               <para>Use symbolic links to organize the SNS instead of the default hard links.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>--version</listItemTerm>
             <listItemDefinition>
               <para>Show version information.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>&lt;BREX&gt;</listItemTerm>
             <listItemDefinition>
               <para>Read the SNS structure from the specified BREX data module. If none is specified, the tool will read from stdin.</para>
             </listItemDefinition>
           </definitionListItem>
         </definitionList>
       </para>
       <para>
         In addition, the following options allow configuration of the XML parser:
         <definitionList><definitionListItem><listItemTerm>--dtdload</listItemTerm><listItemDefinition><para>Load the external DTD.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--huge</listItemTerm><listItemDefinition><para>Remove any internal arbitrary parser limits.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--net</listItemTerm><listItemDefinition><para>Allow network access to load external DTD and entities.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--noent</listItemTerm><listItemDefinition><para>Resolve entities.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--parser-errors</listItemTerm><listItemDefinition><para>Emit errors from parser.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--parser-warnings</listItemTerm><listItemDefinition><para>Emit warnings from parser.</para></listItemDefinition></definitionListItem><definitionListItem><listItemTerm>--xinclude</listItemTerm><listItemDefinition><para>Do XInclude processing.</para></listItemDefinition></definitionListItem><definitionListItem changeMark="1" changeType="add" reasonForUpdateRefIds="rfu-xml-catalog"><listItemTerm>--xml-catalog &lt;file&gt;</listItemTerm><listItemDefinition><para>Use an XML catalog when resolving entities. Multiple catalogs may be loaded by specifying this option multiple times.</para></listItemDefinition></definitionListItem></definitionList>
       </para>
     </levelledPara>
     <levelledPara>
       <title>Example</title>
       <para>
         <verbatimText verbatimStyle="vs24">$ s1kd-sns DMC-S1000D-A-08-02-0100-00A-022A-D_EN-US.XML
$ tree SNS
SNS
|_ 00 - Product, General
  |_ 0 - Product, General
  |_ 1 - Product, General maintenance
  |_ 2 - Product, Safety
  |
..
|_ 04 - Worthiness (fit for purpose) limitations
  |_ 0 - General
  |_ 1 - Fatigue index calculations
  |_ 2 - Operating spectrums
|_ 05 - Scheduled/unscheduled maintenance
  |_ 0 - General
  |_ 1 - Time limits
  |_ 2 - Scheduled maintenance check lists
..
|_ 18 - Vibration and noise analysis and attenuation</verbatimText>
       </para>
     </levelledPara>
   </description>
 </content>
</dmodule>