<?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="28" subSystemCode="0" subSubSystemCode="0" assyCode="00" disassyCode="00" disassyCodeVariant="A" infoCode="040" infoCodeVariant="A" itemLocationCode="D"/>
       <language languageIsoCode="en" countryIsoCode="CA"/>
       <issueInfo issueNumber="018" inWork="00"/>
     </dmIdent>
     <dmAddressItems>
       <issueDate year="2020" month="09" day="01"/>
       <dmTitle>
         <techName>s1kd-index</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-index</emphasis> tool adds index flags to a data module based on a user-defined set of keywords.</para>
     </levelledPara>
     <levelledPara>
       <title>Usage</title>
       <para>
         <verbatimText verbatimStyle="vs24">s1kd-index -h?
s1kd-index [-I &lt;index&gt;] [-filqv] [&lt;module&gt;...]
s1kd-index -D [-filqv] [&lt;module&gt;...]</verbatimText>
       </para>
     </levelledPara>
     <levelledPara>
       <title>Options</title>
       <para>
         <definitionList>
           <definitionListItem>
             <listItemTerm>-D, --delete</listItemTerm>
             <listItemDefinition>
               <para>Remove the current index flags from a data module.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-f, --overwrite</listItemTerm>
             <listItemDefinition>
               <para>Overwrite input module(s).</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-h, -?, --help</listItemTerm>
             <listItemDefinition>
               <para>Show help/usage message.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-I, --indexflags &lt;index&gt;</listItemTerm>
             <listItemDefinition>
               <para>Flag the terms in the specified &lt;index&gt; XML file instead of the default <verbatimText verbatimStyle="vs02">.indexflags</verbatimText> file.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-i, --ignore-case</listItemTerm>
             <listItemDefinition>
               <para>Ignore case when flagging terms.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-l, --list</listItemTerm>
             <listItemDefinition>
               <para>Treat input (stdin or arguments) as lists of filenames of data modules to add index flags to, rather than data modules themselves.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-q, --quiet</listItemTerm>
             <listItemDefinition>
               <para>Quiet mode. Errors are not printed.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>-v, --verbose</listItemTerm>
             <listItemDefinition>
               <para>Verbose output.</para>
             </listItemDefinition>
           </definitionListItem>
           <definitionListItem>
             <listItemTerm>--version</listItemTerm>
             <listItemDefinition>
               <para>Show version information.</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>
         <title><verbatimText verbatimStyle="vs02">.indexflags</verbatimText> file</title>
         <para>This file specifies the list of indexable keywords for the project and their level. By default, the program will search for a file named <verbatimText verbatimStyle="vs02">.indexflags</verbatimText> in the current directory or parent directories, but any file can be specified using the -I option.</para>
         <para>Exmaple of <verbatimText verbatimStyle="vs02">.indexflags</verbatimText> file format:</para>
         <para>
           <verbatimText verbatimStyle="vs11">&lt;indexFlags&gt;
&lt;indexFlag indexLevelOne="bicycle"/&gt;
&lt;indexFlag indexLevelOne="bicycle" indexLevelTwo="brake system"/&gt;
&lt;/indexFlags&gt;</verbatimText>
         </para>
       </levelledPara>
     </levelledPara>
     <levelledPara>
       <title>Example</title>
       <para>Given the following in a data module:</para>
       <para>
         <verbatimText verbatimStyle="vs11">&lt;levelledPara&gt;
&lt;title&gt;General&lt;/title&gt;
&lt;para&gt;
The s1kd-tools are a set of small tools for manipulating S1000D XML
data.
&lt;/para&gt;
&lt;/levelledPara&gt;</verbatimText>
       </para>
       <para>And the following <verbatimText verbatimStyle="vs02">.indexflags</verbatimText> file:</para>
       <para>
         <verbatimText verbatimStyle="vs11">&lt;indexFlags&gt;
&lt;indexFlag indexLevelOne="S1000D"/&gt;
&lt;indexFlag indexLevelTwo="S10000D" indexLevelTwo="s1kd-tools"/&gt;
&lt;indexFlag indexLevelOne="data"/&gt;
&lt;indexFlag indexLevelOne="data" indexLevelTwo="XML"/&gt;
&lt;/indexFlags&gt;</verbatimText>
       </para>
       <para>Then the s1kd-index command:</para>
       <para>
         <verbatimText verbatimStyle="vs24">$ s1kd-index &lt;DM&gt;.XML</verbatimText>
       </para>
       <para>Would result in the following:</para>
       <para>
         <verbatimText verbatimStyle="vs11">&lt;levelledPara&gt;
&lt;title&gt;General&lt;/title&gt;
&lt;para&gt;
The s1kd-tools&lt;indexFlag indexLevelOne="S1000D"
indexLevelTwo="s1kd-tools"/&gt; are a set of small tools for
manipulating S1000D&lt;indexFlag indexLevelOne="S1000D"/&gt;
XML&lt;indexFlag indexLevelOne="data" indexLevelTwo="XML"/&gt;
data&lt;indexFlag indexLevelOne="data"/&gt;.
&lt;/para&gt;
&lt;/levelledPara&gt;</verbatimText>
       </para>
     </levelledPara>
   </description>
 </content>
</dmodule>