<?xml version="1.0" encoding="UTF-8"?>
<d:book xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:xi="http://www.w3.org/2001/XInclude"
        xmlns:sch="http://purl.oclc.org/dsdl/schematron"
        xmlns:d="http://docbook.org/ns/docbook"
        xmlns:xl="http://www.w3.org/1999/xlink"
        version="5.0"
        xml:lang="en">
   <d:info>
      <d:author>
         <d:personname>
            <d:surname>Joint Chiefs of Staff Pub 2.0: Appendix B - Intelligence Disciplines -  http://www.dtic.mil/doctrine/new_pubs/jp2_0.pdf IC-CIO</d:surname>
         </d:personname>
      </d:author>
      <d:releaseinfo>
         <block text-align="center" font-weight="bold" font-size="12pt">UNCLASSIFIED</block>
      </d:releaseinfo>
      <d:mediaobject xml:id="image_odni">
         <d:imageobject>
            <d:imagedata fileref="../common/images/odni.jpg" width="1.59in" align="center"/>
         </d:imageobject>
      </d:mediaobject>
      <d:title>ISM Schematron Guide</d:title>
      <d:subtitle>Guide to Schematron Rules and Patterns</d:subtitle>
      <d:productname>ISM Schematron Guide 
				   		 </d:productname>
      <d:edition>Version 9</d:edition>
      <d:author>
         <d:orgname>Prepared by the Joint Chiefs of Staff Pub 2.0: Appendix B - Intelligence Disciplines -  http://www.dtic.mil/doctrine/new_pubs/jp2_0.pdf IC-CIO</d:orgname>
      </d:author>
      <d:pubdate>21 August 2012</d:pubdate>
      <d:date>17 July 2012</d:date>
      <d:address>Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       </d:address>
      <d:releaseinfo>
           This document has been approved for Public Release by the Office of the Director of National Intelligence. See 'Distribution Notice' for details.
       </d:releaseinfo>
   </d:info>
   <d:chapter>
      <d:title>Introduction</d:title>
      <d:sect1>
         <d:title>Purpose</d:title>
         <d:para>(U) The following documentation is informative. The actual Schematron files are the
								normative record. This documentation is generated from the Schematron files via XSLT
								it may be missing some file or pieces of a file but whatever is here other than titles
								came from the original file.</d:para>
         <d:para>(U) It is envisioned that this will be a useful resource to search and read but for
								questions and debates the source files should be consulted.</d:para>
         <d:para>(U) Rules identifiers are all of the format ISM-ID-XXXXX, with
				        		rule files named ISM_ID_XXXXX.sch. Any other heading indicates a supporting file
								that may strongly influence a rule but is not actually a numbered rule.</d:para>
      </d:sect1>
   </d:chapter>
   <d:chapter>
      <d:title>Rules</d:title>
      <d:para>All of the numbered Rules for ISM are listed in this section. 
					These rules may	depend strongly on patterns defined in the Abstract Patterns section or on 
					variables defined in the Schematron Schema section.</d:para>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00002.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00002
    
        [ISM-ID-00002][Error] For every attribute in the ISM namespace that is
        used in a document a non-null value must be present.
    </d:para>
         <d:para>Code Description: 
        For each element which defines an attribute in the ISM namespace, we 
        make sure that each attribute in the ISM namespace is specified with 
        a non-whitespace value.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00002">
         
         
                  <sch:rule context="*[@ism:*]">
                     <sch:assert test="every $attribute in @ism:* satisfies                     normalize-space(string($attribute))"
                                 flag="error">
        	[ISM-ID-00002][Error] For every attribute that is used in a 
        	document a non-null value must be present.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00012.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00012
    
        [ISM-ID-00012][Error] If any of the attributes defined in 
        this DES other than DESVersion, unregisteredNoticeType, or pocType 
        are specified for an element, then attributes classification and 
        ownerProducer must be specified for the element.
    </d:para>
         <d:para>Code Description: 
    	For each element which defines an attribute in the ISM namespace other
    	than ism:pocTyp, ism:DESVersion, or ism:unregisteredNoticeType we make
    	sure that attributes ism:classification and ism:ownerProducer are
    	specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00012">
         
         
                  <sch:rule context="*[@ism:* except (@ism:pocType | @ism:DESVersion | @ism:unregisteredNoticeType)]">
                     <sch:assert test="@ism:ownerProducer and @ism:classification" flag="error">
        	[ISM-ID-00012][Error] If any of the attributes defined in 
        	this DES other than DESVersion, unregisteredNoticeType, or pocType 
        	are specified for an element, then attributes classification and 
        	ownerProducer must be specified for the element.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00013.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00013
    
        [ISM-ID-00013][Error] If ISM_NSI_EO_APPLIES then either attribute classifiedBy or 
        derivedFrom must be specified on the ISM_RESOURCE_ELEMENT. 
        
        Human Readable: Documents under E.O. 13526 must have classification authority block information.
    </d:para>
         <d:para>Code Description: 
      If ISM_NSI_EO_APPLIES, we make sure that the ISM_RESOURCE_ELEMENT specifies
      attribute ism:classifiedBy or attribute ism:derivedFrom.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00013">
         
         
                  <sch:rule context="*[$ISM_NSI_EO_APPLIES                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="@ism:classifiedBy or @ism:derivedFrom" flag="error">
            [ISM-ID-00013][Error] Documents under E.O. 13526 must have classification authority block information.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00014.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00014
    
        [ISM-ID-00014][Error] If ISM_NSI_EO_APPLIES then one or more of the following 
        attributes: declassDate, declassEvent, or declassException must be specified on the ISM_RESOURCE_ELEMENT.
        
        Human Readable: Documents under E.O. 13526 must have declassification instructions included in the 
        classification authority block information.
    </d:para>
         <d:para>Code Description: 
      If ISM_NSI_EO_APPLIES, we make sure that the ISM_RESOURCE_ELEMENT specifies
      one of the following attributes: ism:declassDate, ism:declassEvent, ism:declassException.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00014">
         
         
                  <sch:rule context="*[$ISM_NSI_EO_APPLIES                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="@ism:declassDate or @ism:declassEvent or @ism:declassException"
                                 flag="error">
            [ISM-ID-00014][Error] If ISM_NSI_EO_APPLIES then one or more of the following 
            attributes: declassDate, declassEvent, or declassException must be specified on the ISM_RESOURCE_ELEMENT.
            
            Human Readable: Documents under E.O. 13526 must have declassification instructions included in the 
            classification authority block information.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/classification/ISM_ID_00016.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00016
    
        [ISM-ID-00016][Error] If ISM_CAPCO_RESOURCE and attribute 
        classification has a value of [U], then attributes classificationReason,
        classifiedBy, derivativelyClassifiedBy, declassDate, declassEvent, 
        declassException, derivedFrom, SARIdentifier, atomicEnergyMarkings or 
        SCIcontrols must not be specified.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:classification specified with a value of [U] we make
    	sure that NONE of the following attributes are specified:
    	ism:classifiedBy, ism:declassDate, ism:declassEvent, ism:declassException,
    	ism:derivativelyClassifiedBy, ism:derivedFrom, 
    	ism:SARIdentifier, ism:atomicEnergyMarkings, or ism:SCIcontrols. 
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00016">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:classification='U']">
                     <sch:assert test="not(                     @ism:classificationReason                  or @ism:classifiedBy                  or @ism:declassDate                  or @ism:declassEvent                  or @ism:declassException                  or @ism:derivativelyClassifiedBy                  or @ism:derivedFrom                  or @ism:SARIdentifier                 or @ism:SCIcontrols                 )"
                                 flag="error">
          [ISM-ID-00016][Error] If ISM_CAPCO_RESOURCE and attribute 
          classification has a value of [U], then attributes classificationReason,
          classifiedBy, derivativelyClassifiedBy, declassDate, declassEvent, 
          declassException, derivedFrom, SARIdentifier, atomicEnergyMarkings, or 
          SCIcontrols must not be specified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/classifiedBy/ISM_ID_00017.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00017
    
        [ISM-ID-00017][Error] If ISM_NSI_EO_APPLIES and attribute 
        classifiedBy is specified, then attribute classificationReason must 
        be specified. 
        
        Human Readable: Documents under E.O. 13526 containing 
        Originally Classified data require a classification reason to be
        identified.
    </d:para>
         <d:para>Code Description: 
    	If ISM_NSI_EO_APPLIES, for each element which specifies attribute
    	ism:classifiedBy we make sure that attribute ism:classificationReason
    	is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00017">
         
         
	                 <sch:rule context="*[$ISM_NSI_EO_APPLIES and @ism:classifiedBy]">
                     <sch:assert test="@ism:classificationReason" flag="error">
        	[ISM-ID-00017][Error] If ISM_NSI_EO_APPLIES and attribute 
        	classifiedBy is specified, then attribute classificationReason must 
        	be specified. 
        	
        	Human Readable: Documents under E.O. 13526 containing 
        	Originally Classified data require a classification reason to be
        	identified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00026.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00026
    
    [ISM-ID-00026][Error] If ISM_CAPCO_RESOURCE and attribute disseminationControls
    is specified, then each of its values must be ordered in accordance with 
    CVEnumISMDissem.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00026" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:disseminationControls)), ' ')"/>
                  <sch:param name="cveTermList" value="$disseminationControlsList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00026][Error] If ISM_CAPCO_RESOURCE and attribute disseminationControls     is specified, then each of its values must be ordered in accordance with      CVEnumISMDissem.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00028.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00028
    
      [ISM-ID-00028][Error] If ISM_CAPCO_RESOURCE and attribute 
      disseminationControls contains the name token [OC] or [EYES],
      then attribute classification must have a value of [TS], [S], or [C].
      
      Human Readable: Portions marked for ORCON or EYES ONLY dissemination 
      in a USA document must be CONFIDENTIAL, SECRET, or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [OC] or [EYES] we make sure that attribute
    	ism:classification is specified with a value of [C], [S], or [TS].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00028">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:disseminationControls, ('OC', 'EYES'))]">
                     <sch:assert test="@ism:classification=('TS', 'S', 'C')" flag="error">
            [ISM-ID-00028][Error] If ISM_CAPCO_RESOURCE and attribute 
            disseminationControls contains the name token [OC] or [EYES], 
            then attribute classification must have a value of [TS], [S], or [C].
            
            Human Readable: Portions marked for ORCON or EYES ONLY dissemination 
            in a USA document must be CONFIDENTIAL, SECRET, or TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00030.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00030
    
        [ISM-ID-00030][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls contains the name token [FOUO], then attribute
        classification must have a value of [U].
        
        Human Readable: Portions marked for FOUO dissemination in a USA document
        must be classified UNCLASSIFIED.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [FOUO] we make sure that attribute ism:classification is 
    	specified with a value of [U].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00030">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:disseminationControls, ('FOUO'))]">
                     <sch:assert test="@ism:classification='U'" flag="error">
        	[ISM-ID-00030][Error] If ISM_CAPCO_RESOURCE and attribute 
        	disseminationControls contains the name token [FOUO], then attribute
        	classification must have a value of [U].
        	
        	Human Readable: Portions marked for FOUO dissemination in a USA document
        	must be classified UNCLASSIFIED.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00031.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00031
    
        [ISM-ID-00031][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls contains the name token [REL] or [EYES], then 
        attribute releasableTo must be specified.
        
        Human Readable: USA documents containing REL TO or EYES ONLY 
        dissemination must specify to which countries the document is releasable.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [REL] or [EYES] we make sure that attribute ism:releasableTo
    	is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00031">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:disseminationControls, ('REL', 'EYES'))]">
                     <sch:assert test="@ism:releasableTo" flag="error">
        	[ISM-ID-00031][Error] If ISM_CAPCO_RESOURCE and attribute 
        	disseminationControls contains the name token [REL] or [EYES], then 
        	attribute releasableTo must be specified.
        	
        	Human Readable: USA documents containing REL TO or EYES ONLY 
        	dissemination must specify to which countries the document is releasable.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/releasableTo/ISM_ID_00032.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00032
    
        [ISM-ID-00032][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls is not specified, or is specified and does not 
        contain the name token [REL] or [EYES], then attribute releasableTo 
        must not be specified.
        
        Human Readable: USA documents must only specify to which countries it is 
        authorized for release if dissemination information contains 
        REL TO or EYES ONLY data. 
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        does not specify attribute disseminationControls or specifies attribute
        ism:disseminationControls with a value containing the token 
        [REL] or [EYES] we make sure that attribute ism:releasableTo is not 
        specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00032">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and not(util:containsAnyOfTheTokens(@ism:disseminationControls, ('REL', 'EYES')))]">
                     <sch:assert test="not(@ism:releasableTo)" flag="error">
            [ISM-ID-00032][Error] If ISM_CAPCO_RESOURCE and attribute 
            disseminationControls is not specified, or is specified and does not 
            contain the name token [REL] or [EYES], then attribute releasableTo 
            must not be specified.
            
            Human Readable: USA documents must only specify to which countries it is 
            authorized for release if dissemination information contains 
            REL TO or EYES ONLY data. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00033.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00033
    
        [ISM-ID-00033][Error] If ISM_CAPCO_RESOURCE, then tokens [REL], [EYES] 
        and [NF] are mutually exclusive for attribute disseminationControls.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which 
		has attribute ism:disseminationControls specified with a value 
		containing the token [REL], [EYES] or [NF], we make sure that attribute
		ism:disseminationControls is specified with a value containing only 
		one of the tokens [REL], [EYES] or [NF].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00033" is-a="MutuallyExclusiveAttributeValues">
         
	        
	
	                 <sch:param name="context"
                             value="*[$ISM_CAPCO_RESOURCE                                    and util:containsAnyOfTheTokens(@ism:disseminationControls, ('REL', 'EYES', 'NF'))]"/>
	                 <sch:param name="attrValue" value="@ism:disseminationControls"/>
	                 <sch:param name="mutuallyExclusiveTokenList" value="('REL', 'EYES', 'NF')"/>
	                 <sch:param name="errMsg"
                             value="'   [ISM-ID-00033][Error] If ISM_CAPCO_RESOURCE, then tokens [REL], [EYES]    and [NF] are mutually exclusive for attribute disseminationControls.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00035.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00035
    
    [ISM-ID-00035][Error] If ISM_CAPCO_RESOURCE and attribute nonICmarkings is 
    specified, then each of its values must be ordered in accordance with CVEnumISMNonIC.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00035" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:nonICmarkings)), ' ')"/>
                  <sch:param name="cveTermList" value="$nonICmarkingsList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00035][Error] If ISM_CAPCO_RESOURCE and attribute nonICmarkings is      specified, then each of its values must be ordered in accordance with CVEnumISMNonIC.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00037.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00037
    
        [ISM-ID-00037][Error] If ISM_CAPCO_RESOURCE and attribute nonICmarkings
        contains the name token [SBU], [SBU-NF] then attribute
        classification must have a value of [U].
        
        Human Readable: SBU, SBU-NF data must be marked UNCLASSIFIED
        in USA documents.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which 
    	has attribute ism:nonICmarkings specified with a value containing
    	the token [SBU], [SBU-NF] we make sure that attribute
    	ism:classification is specified with a value of [U].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00037">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                 and util:containsAnyOfTheTokens(@ism:nonICmarkings, ('SBU', 'SBU-NF'))]">
                     <sch:assert test="@ism:classification='U'" flag="error">
          [ISM-ID-00037][Error] If ISM_CAPCO_RESOURCE and attribute nonICmarkings
          contains the name token [SBU], [SBU-NF] then attribute
          classification must have a value of [U].
          
          Human Readable: SBU, SBU-NF data must be marked UNCLASSIFIED
          in USA documents.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00038.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00038
    
        [ISM-ID-00038][Error] If ISM_CAPCO_RESOURCE, then Name tokens [XD] and [ND] are mutually 
        exclusive for attribute nonICmarkings.
        
        Human Readable: USA documents must not specify both XD and ND on a single element.
    </d:para>
         <d:para>Code Description: 
    	This rule uses an abstract pattern to consolidate logic.
    	If the document is an ISM-CAPCO-RESOURCE, for each element which 
    	has attribute ism:nonICmarkings specified with a value containing
    	the token [XD] or [ND], we make sure that attribute ism:nonICmarkings
    	is not specified with a value containing both tokens [XD] and [ND].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00038" is-a="MutuallyExclusiveAttributeValues">
         
         
	
	                 <sch:param name="context"
                             value="*[$ISM_CAPCO_RESOURCE           and util:containsAnyOfTheTokens(@ism:nonICmarkings, ('XD', 'ND'))]"/>
	                 <sch:param name="attrValue" value="@ism:nonICmarkings"/>
	                 <sch:param name="mutuallyExclusiveTokenList" value="('XD', 'ND')"/>
	                 <sch:param name="errMsg"
                             value="'   [ISM-ID-00038][Error] If ISM_CAPCO_RESOURCE, then Name tokens    [XD] and [ND] are mutually exclusive for attribute nonICmarkings.      Human Readable: USA documents must not specify both XD and ND on a    single element.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/classification/ISM_ID_00040.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00040
    
        [ISM-ID-00040][Error] If ISM_CAPCO_RESOURCE and attribute 
        ownerProducer contains [USA] then attribute classification must have a
        value in CVEnumISMClassificationUS.xml.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic. It checks that the
		value in parameter $searchTerm is contained in the parameter $list. The parameter
		$searchTerm is relative in scope to the parameter $context. The value for the parameter 
		$list is a variable defined in the main document (ISM_XML.sch), which reads 
		values from a specific CVE file.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00040" is-a="ValidateValueExistenceInList">
         

	        
	
	                 <sch:param name="context"
                             value="*[$ISM_CAPCO_RESOURCE                                      and util:containsAnyOfTheTokens(@ism:ownerProducer, ('USA'))]"/>
	                 <sch:param name="searchTerm" value="@ism:classification"/>
	                 <sch:param name="list" value="$classificationUSList"/>
	                 <sch:param name="errMsg"
                             value="'   [ISM-ID-00040][Error] If ISM_CAPCO_RESOURCE and attribute    ownerProducer contains [USA] then attribute classification must have a   value in CVEnumISMClassificationUS.xml.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/releasableTo/ISM_ID_00041.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00041
    
    [ISM-ID-00041][Error] If ISM_CAPCO_RESOURCE and attribute releasableTo is specified, 
    then each of its values must be ordered in accordance with CVEnumISMRelTo.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00041" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="releasableTo"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:releasableTo)), ' ')"/>
                  <sch:param name="cveTermList" value="$releasableToList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00041][Error] If ISM_CAPCO_RESOURCE and attribute releasableTo is specified,      then each of its values must be ordered in accordance with CVEnumISMRelTo.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00042.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00042
    
    [ISM-ID-00042][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols 
    is specified, each of its values must be ordered in accordance with
    CVEnumISMSCIControls.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00042" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:SCIcontrols)), ' ')"/>
                  <sch:param name="cveTermList" value="$SCIcontrolsList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00042][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols      is specified, each of its values must be ordered in accordance with     CVEnumISMSCIControls.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00043.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00043
    
        [ISM-ID-00043][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [SI], then attribute classification must have
        a value of [TS], [S], or [C].
        
        Human Readable: A USA document containing Special Intelligence (SI) 
        data must be classified CONFIDENTIAL, SECRET, or TOP SECRET.  
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [SI] we make sure that attribute ism:classification is specified with
        a value containing the token [TS], [S], or [C].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00043">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('SI'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS', 'S', 'C'))"
                                 flag="error">
            [ISM-ID-00043][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [SI], then attribute classification must have
            a value of [TS], [S], or [C].
            
            Human Readable: A USA document containing Special Intelligence (SI) 
            data must be classified CONFIDENTIAL, SECRET, or TOP SECRET. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00044.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00044
    
        [ISM-ID-00044][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains a name token starting with [SI-G], then attribute
        classification must have a value of [TS].
        
        Human Readable: A USA document containing Special Intelligence (SI)
        GAMMA compartment data must be classified TOP SECRET.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing a token
        starting with [SI-G] we make sure that attribute ism:classification
        is specified with a value containing the token [TS].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00044">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyTokenMatching(@ism:SCIcontrols, ('^SI-G'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS'))" flag="error">
            [ISM-ID-00044][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains a name token starting with [SI-G], then attribute
            classification must have a value of [TS].
            
            Human Readable: A USA document containing Special Intelligence (SI)
            GAMMA compartment data must be classified TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00045.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00045
    
        [ISM-ID-00045][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains a name token starting with [SI-G], then attribute
        disseminationControls must contain the name token [OC].
        
        Human Readable: A USA document containing Special Intelligence (SI)
        GAMMA compartment data must be marked for ORIGINATOR CONTROLLED 
        dissemination.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing a token
        starting with [SI-G] we make sure that attribute
        ism:disseminationControls is specified with a value containing the
        token [OC].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00045">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyTokenMatching(@ism:SCIcontrols, ('^SI-G'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:disseminationControls, ('OC'))"
                                 flag="error">
            [ISM-ID-00045][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains a name token starting with [SI-G], then attribute
            disseminationControls must contain the name token [OC].
            
            Human Readable: A USA document containing Special Intelligence (SI)
            GAMMA compartment data must be marked for ORIGINATOR CONTROLLED 
            dissemination.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00047.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00047
    
        [ISM-ID-00047][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [TK], then attribute classification must have
        a value of [TS] or [S].
        
        Human Readable: A USA document containing TALENT KEYHOLE data must
        be classified SECRET or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [TK] we make sure that attribute ism:classification is 
        specified with a value containing the token [TS] or [S].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00047">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('TK'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS', 'S'))"
                                 flag="error">
            [ISM-ID-00047][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [TK], then attribute classification must have
            a value of [TS] or [S].
            
            Human Readable: A USA document containing TALENT KEYHOLE data must
            be classified SECRET or TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00048.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00048
    
        [ISM-ID-00048][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [HCS], then attribute classification must have
        a value of [TS], [S], or [C].
        
        Human Readable: A USA document containing HCS data must be classified
        CONFIDENTIAL, SECRET, or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [HCS] we make sure that attribute ism:classification is 
        specified with a value containing the token [TS], [S], or [C].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00048">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('HCS'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS', 'S', 'C'))"
                                 flag="error">
            [ISM-ID-00048][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [HCS], then attribute classification must have
            a value of [TS], [S], or [C].
            
            Human Readable: A USA document containing HCS data must be classified
            CONFIDENTIAL, SECRET, or TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00049.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00049
    
        [ISM-ID-00049][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [HCS], then attribute disseminationControls
        must contain the name token [NF].
        
        Human Readable: A USA document containing HCS data must be marked
        for NO FOREIGN dissemination.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [HCS] we make sure that attribute ism:disseminationControls is 
        specified with a value containing the token [NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00049">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('HCS'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:disseminationControls, ('NF'))"
                                 flag="error">
            [ISM-ID-00049][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [HCS], then attribute disseminationControls
            must contain the name token [NF].
            
            Human Readable: A USA document containing HCS data must be marked
            for NO FOREIGN dissemination.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00056.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00056
    
        [ISM-ID-00056][Error] If ISM_CAPCO_RESOURCE and attribute classification of 
        ISM_RESOURCE_ELEMENT has a value of [U] then no element meeting ISM_CONTRIBUTES_USA in the document may have 
        a classification attribute of [C], [S], [TS], or [R].
        
        Human Readable: USA UNCLASSIFIED documents can't have portion markings with the classification TOP SECRET, SECRET, CONFIDENTIAL, or RESTRICTED data.    
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM-CAPCO-RESOURCE and attribute ism:classification
      on $ISM_RESOURCE_ELEMENT has a value of [U], then we make sure that
      no element meeting ISM_CONRIBUTES_USA has attribute ism:classification with
      value [C], [S], [TS], [R].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00056">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and normalize-space(string(@ism:classification))='U']">
                     <sch:assert test="every $ele in $partTags satisfies                     not(util:containsAnyOfTheTokens($ele/@ism:classification, ('C', 'S', 'TS', 'R')))"
                                 flag="error">
          [ISM-ID-00056][Error] If ISM_CAPCO_RESOURCE and attribute classification of 
          ISM_RESOURCE_ELEMENT has a value of [U] then no element meeting ISM_CONTRIBUTES_USA in the document may have 
          a classification attribute of [C], [S], [TS], or [R].
          
          Human Readable: USA UNCLASSIFIED documents can't have portion markings with the classification TOP SECRET, SECRET, CONFIDENTIAL, or RESTRICTED data.  
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00058.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00058
    
        [ISM-ID-00058][Error] If ISM_CAPCO_RESOURCE and attribute classification of ISM_RESOURCE_ELEMENT 
        has a value of [C] then no element meeting ISM_CONTRIBUTES_USA in the document may have a classification attribute of [S] or [TS].
        
        Human Readable: USA CONFIDENTIAL documents can't have TOP SECRET or SECRET data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM-CAPCO-RESOURCE and attribute ism:classification
      on $ISM_RESOURCE_ELEMENT has a value of [C], then we make sure that
      no element meeting ISM_CONRIBUTES_USA has attribute ism:classification with
      value [S], [TS]. 
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00058">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and normalize-space(string(@ism:classification))='C']">
                     <sch:assert test="every $ele in $partTags satisfies                 not(util:containsAnyOfTheTokens($ele/@ism:classification, ('S', 'TS')))"
                                 flag="error">
            [ISM-ID-00058][Error] USA CONFIDENTIAL documents can't have TOP SECRET or SECRET data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00059.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00059
    
        [ISM-ID-00059][Error] If ISM_CAPCO_RESOURCE and attribute classification of ISM_RESOURCE_ELEMENT 
        has a value of [S] then no element meeting ISM_CONTRIBUTES_USA in the document may have a classification attribute of [TS].
        
        Human Readable: USA SECRET documents can't have TOP SECRET data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM-CAPCO-RESOURCE and attribute ism:classification
      on $ISM_RESOURCE_ELEMENT has a value of [S], then we make sure that
      no element meeting ISM_CONRIBUTES_USA has attribute ism:classification with
      value [TS].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00059">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and normalize-space(string(@ism:classification))='S']">
                     <sch:assert test="every $ele in $partTags satisfies                 not(util:containsAnyOfTheTokens($ele/@ism:classification, ('TS')))"
                                 flag="error">
            [ISM-ID-00059][Error] USA SECRET documents can't have TOP SECRET data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00060.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00060
    
    [ISM-ID-00060][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
    have the attribute SCIcontrols containing a value of [SI] then the ISM_RESOURCE_ELEMENT element's SCIcontrols must contain [SI].
    
    Human Readable: USA documents having SI data must have SI at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00060" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="SI"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00060][Error] USA documents having SI data must have SI at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00061.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00061
    
    [ISM-ID-00061][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
    have the attribute SCIcontrols containing a value of [SI-G] then the ISM_RESOURCE_ELEMENT element's SCIcontrols must contain [SI-G].
    
    Human Readable: USA documents having SI-G data must have SI-G at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00061" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="SI-G"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00061][Error] USA documents having SI-G data must have SI-G at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00062.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00062
    
    [ISM-ID-00062][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
    have the attribute SCIcontrols containing a value of [TK] then the ISM_RESOURCE_ELEMENT node's SCIcontrols must contain [TK].
    
    Human Readable: USA documents having TK data must have TK at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00062" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="TK"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00062][Error] USA documents having TK data must have TK at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00063.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00063
    
    [ISM-ID-00063][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
    have the attribute SCIcontrols containing a value of [HCS] then the ISM_RESOURCE_ELEMENT node's SCIcontrols must contain [HCS].
    
    Human Readable: USA documents having HCS data must have HCS at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00063" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="HCS"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00063][Error] USA documents having HCS data must have HCS at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00064.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00064
    
        [ISM-ID-00064][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
        have the attribute FGIsourceOpen containing any value then the ISM_RESOURCE_ELEMENT must have either 
        FGIsourceOpen or FGIsourceProtected with a value. 
        
        Human Readable: USA documents having FGI Open data must have FGI Open or FGI Protected at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. If the current element has attribute 
        FGIsourceOpen specified and does not have attribute excludeFromRollup set to true, 
        then we make sure that the resourceElement has one of the following attributes 
        specified: FGIsourceOpen or FGIsourceProtected.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00064">
         
            
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="             if(not($ISM_CAPCO_RESOURCE)) then true() else             if(not(empty($partFGIsourceOpen)))                  then ($bannerFGIsourceOpen                        or $bannerFGIsourceProtected)                  else true()             "
                                 flag="error">
            [ISM-ID-00064][Error] USA documents having FGI Open data must have FGI Open or FGI Protected at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00065.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00065
    
        [ISM-ID-00065][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
        have the attribute FGIsourceProtected containing any value then the ISM_RESOURCE_ELEMENT must have FGIsourceProtected with a value.
        
        Human Readable: USA documents having FGI Protected data must have FGI Protected at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. If any element has attribute FGIsourceProtected specified 
        with a non-empty value and does not have attribute excludeFromRollup set to true, 
        then we make sure that the banner has attribute FGIsourceProtected specified with 
        a non-empty value.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00065">
         
           
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and not(empty($partFGIsourceProtected))]">
                     <sch:assert test="@ism:FGIsourceProtected" flag="error">
            [ISM-ID-00065][Error] USA documents having FGI Protected data must have FGI Protected at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00066.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00066
    
        [ISM-ID-00066][Error] If ISM_CAPCO_RESOURCE and: 
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute disseminationControls containing [FOUO]
        AND
        2. ISM_RESOURCE_ELEMENT has the attribute classification [U]
        AND
        3. No element meeting ISM_CONTRIBUTES in the document has nonICmarkings containing [SBU], [SBU-NF], [LES], [LES-NF]
        
        Then the ISM_RESOURCE_ELEMENT must have disseminationControls containing [FOUO].
        
        Human Readable: USA Unclassified documents having FOUO data and not having SBU, SBU-NF, LES, or LES-NF must have 
        FOUO at the resource level.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM_CAPCO_RESOURCE, the current element is the ISM_RESOURCE_ELEMENT,
        some element meeting ISM_CONTRIBUTES specifies attribute ism:disseminationControls
        with a value containing [FOUO], the ISM_RESOURCE_ELEMENT specifies the attribute
        ism:classification with a value of [U], and no element meeting ISM_CONTRIBUTES
        specifies attribute ism:nonICmarkings with a value containing [SBU], [SBU-NF],
        [LES], or LES-NF], then we make sure that the ISM_RESOURCE_ELEMENT
        specifies attribute ism:disseminationControls with a value containing the
        token [FOUO].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00066">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and index-of($dcTagsFound,'FOUO') &gt; 0                         and util:containsAnyOfTheTokens(@ism:classification, ('U'))                         and not($partNonICmarkings_tok = ('SBU', 'SBU-NF', 'LES', 'LES-NF'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:disseminationControls, ('FOUO'))"
                                 flag="error">
            [ISM-ID-00066][Error] USA Unclassified documents having FOUO data and not having SBU, SBU-NF, LES, or LES-NF must have 
            FOUO at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00067.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00067
    
    [ISM-ID-00067][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
    in the document has the attribute disseminationControls containing [OC] then the ISM_RESOURCE_ELEMENT must have 
    disseminationControls containing [OC]. 
    
    Human Readable: USA documents having ORCON data must have ORCON at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00067" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="OC"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00067][Error] USA documents having ORCON data must have ORCON at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00068.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00068
    
    [ISM-ID-00068][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
    in the document have the attribute disseminationControls containing [IMC] then the ISM_RESOURCE_ELEMENT must have 
    disseminationControls containing [IMC].
    
    Human Readable: USA documents having IMCON data must have IMCON at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00068" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="IMC"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00068][Error] USA documents having IMCON data must have IMCON at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00070.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00070
    
    [ISM-ID-00070][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
    in the document have the attribute disseminationControls containing [NF] then the ISM_RESOURCE_ELEMENT must have 
    disseminationControls containing [NF].
    
    Human Readable: USA documents having NF data must have NF at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00070" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="NF"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00070][Error] USA documents having NF data must have NF at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00071.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00071
    
        [ISM-ID-00071][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
        in the document have the attribute disseminationControls containing [PR] then the ISM_RESOURCE_ELEMENT must have 
        disseminationControls containing [PR].
        
        Human Readable: USA documents having PROPIN data must have PROPIN at the resource level.
    </d:para>
         <d:para>Code Description: 
      This rule uses an abstract pattern to consolidate logic. If the document
      is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
      specifies $attrLocalName with a value containing the token $value, then 
      we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
      $attrLocalName with a value containing the token $value.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00071" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="PR"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00071][Error] USA documents having PROPIN data must have PROPIN at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00072.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00072
    
    [ISM-ID-00072][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
    in the document have the attribute atomicEnergyMarkings containing [RD] then the ISM_RESOURCE_ELEMENT must have 
    atomicEnergyMarkings containing [RD].
    
    Human Readable: USA documents having Restricted Data (RD) must have RD at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00072" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="value" value="RD"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00072][Error] USA documents having Restricted Data (RD) must have RD at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00073.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00073
    
    [ISM-ID-00073][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
    in the document have the attribute atomicEnergyMarkings containing [RD-CNWDI] then the ISM_RESOURCE_ELEMENT must have 
    atomicEnergyMarkings containing [RD-CNWDI].
    
    Human Readable: USA documents having Restricted CNWDI Data must have Restricted CNWDI Data at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00073" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="value" value="RD-CNWDI"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00073][Error] USA documents having Restricted CNWDI Data must have Restricted CNWDI Data at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00074.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00074
    
        [ISM-ID-00074][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
        in the document has the attribute atomicEnergyMarkings containing [RD-SG-##] then the ISM_RESOURCE_ELEMENT must have 
        atomicEnergyMarkings containing [RD-SG-##]. ## represent digits 1 through 99 the ## must match.
        
        Human Readable: USA documents having Restricted SIGMA-## Data must have the same Restricted SIGMA-## Data at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. We make sure that no element that does not have attribute excludeFromRollup 
        set to true has attribute atomicEnergyMarkings specified
        with a value containing [RD-SG-##], where ## is represented by a regular expression matching
        numbers 1 through 99, unless the resourceElement also has attribute
        atomicEnergyMarkings specified with a value containing [RD-SG-##].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00074">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:let name="matchingTokens"
                              value="         for $token in $partAtomicEnergyMarkings_tok return           if(matches($token,'^RD-SG-[1-9][0-9]?$'))           then $token           else null         "/>    
                     <sch:assert test="every $token in $matchingTokens satisfies                             index-of($bannerAtomicEnergyMarkings_tok, $token) &gt; 0"
                                 flag="error">
            [ISM-ID-00074][Error] USA documents having Restricted SIGMA-## Data must have the same Restricted SIGMA-## Data at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00075.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00075
    
    [ISM-ID-00075][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the 
    document have the attribute atomicEnergyMarkings containing [FRD] then the ISM_RESOURCE_ELEMENT must have atomicEnergyMarkings 
    containing [FRD].
    
    Human Readable: USA documents having Formerly Restricted Data (FRD) must have FRD at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00075" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="value" value="FRD"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00075][Error] USA documents having Formerly Restricted Data (FRD) must have FRD at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00077.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00077
    
        [ISM-ID-00077][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the 
        document has the attribute atomicEnergyMarkings containing [FRD-SG-##] then the ISM_RESOURCE_ELEMENT must have 
        atomicEnergyMarkings containing [FRD-SG-##]. ## represent digits 1 through 99 the ## must match.
        
        Human Readable: USA documents having Formerly Restricted SIGMA-## Data must have the same Formerly Restricted SIGMA-## Data at 
        the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. We make sure that no element that does not have attribute excludeFromRollup 
        set to true has attribute atomicEnergyMarkings specified
        with a value containing [FRD-SG-##], where ## is represented by a regular expression matching
        numbers 1 through 99, unless the resourceElement also has attribute
        atomicEnergyMarkings specified with a value containing [FRD-SG-##].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00077">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:let name="matchingTokens"
                              value="           for $token in $partAtomicEnergyMarkings_tok return             if(matches($token,'^FRD-SG-[1-9][0-9]?$'))             then $token             else null           "/>
                     <sch:assert test="every $token in $matchingTokens satisfies                     index-of($bannerAtomicEnergyMarkings_tok, $token) &gt; 0"
                                 flag="error">
            [ISM-ID-00077][Error] USA documents having Formerly Restricted SIGMA-## Data must have the same Formerly Restricted SIGMA-## Data at 
            the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00078.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00078
    
    [ISM-ID-00078][Error] If ISM_CAPCO_RESOURCE and the ISM_RESOURCE_ELEMENT node's 
    classification has the value of [U] and any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings 
    containing [DCNI] then the ISM_RESOURCE_ELEMENT must have atomicEnergyMarkings containing [DCNI].
    
    Human Readable: Unclassified USA documents having DCNI Data must have DCNI at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE, the ISM_RESOURCE_ELEMENT spcifies attribute 
    ism:classification with a value of $resourceElementClassification, and an 
    element meeting ISM_CONTRIBUTES specifies $attrLocalName with a value
    containing the token $value, then we make sure that the ISM_RESOURCE_ELEMENT
    specifies the attribute $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00078" is-a="AttributeContributesToRollupWithClassification">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="value" value="DCNI"/>
                  <sch:param name="resourceElementClassification" value="U"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00078][Error] Unclassified USA documents having DCNI Data must have DCNI at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00079.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00079
    
    [ISM-ID-00079][Error] If ISM_CAPCO_RESOURCE and ISM_RESOURCE_ELEMENT element's classification 
    has the value of [U] and any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing 
    [UCNI] then the ISM_RESOURCE_ELEMENT must have atomicEnergyMarkings containing [UCNI].
    
    Human Readable: Unclassified USA documents having UCNI Data must have UCNI at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE, the ISM_RESOURCE_ELEMENT spcifies attribute 
    ism:classification with a value of $resourceElementClassification, and an 
    element meeting ISM_CONTRIBUTES specifies $attrLocalName with a value
    containing the token $value, then we make sure that the ISM_RESOURCE_ELEMENT
    specifies the attribute $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00079" is-a="AttributeContributesToRollupWithClassification">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="value" value="UCNI"/>
                  <sch:param name="resourceElementClassification" value="U"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00079][Error] Unclassified USA documents having UCNI Data must have UCNI at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00080.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00080
    
    [ISM-ID-00080][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the 
    document have the attribute disseminationControls containing [DSEN] then the ISM_RESOURCE_ELEMENT must have disseminationControls 
    containing [DSEN].
    
    Human Readable: USA documents having DSEN Data must have DSEN at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00080" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="DSEN"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00080][Error] USA documents having DSEN Data must have DSEN at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00081.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00081
    
    [ISM-ID-00081][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the 
    document have the attribute disseminationControls containing [FISA] then the ISM_RESOURCE_ELEMENT must have disseminationControls 
    containing [FISA].
    
    Human Readable: USA documents having FISA Data must have FISA at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00081" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="FISA"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00081][Error] USA documents having FISA Data must have FISA at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00084.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00084
    
    [ISM-ID-00084][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
    have the attribute nonICmarkings containing [DS] then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [DS]. 
    
    Human Readable: USA documents having DS Data must have DS at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00084" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="value" value="DS"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00084][Error] USA documents having DS Data must have DS at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00085.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00085
    
        [ISM-ID-00085][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the document 
        has the attribute nonICmarkings containing [XD] and does not have any element meeting ISM_CONTRIBUTES in the document having the 
        attribute nonICmarkings containing [ND] then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [XD].
        
        Human Readable: USA documents having XD Data and not having ND must have XD at the resource level.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the ISM_CAPCO_RESOURCE,
      any element meeting ISM_CONTRIBUTES specifies attribute ism:nonICmarkings with a value
      containing the token [XD], and no element meeting ISM_CONTRIBUTES specifies the
      attribute ism:nonICmarkings with a value containing the token [ND], then we make sure
      that the ISM_RESOURCE_ELEMENT specifies attribute ism:nonICmarkings with a value
      containing the token [XD].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00085">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and index-of($partNonICmarkings_tok, 'XD') &gt; 0                         and not(index-of($partNonICmarkings_tok, 'ND')&gt;0)]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:nonICmarkings, ('XD'))" flag="error">
            [ISM-ID-00085][Error] USA documents having XD Data and not having ND must have XD at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00086.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00086
    
    [ISM-ID-00086][Error] If ISM_CAPCO_RESOURCE and any element in the document:
    1. Meets ISM_CONTRIBUTES
    AND
    2. Has the attribute nonICmarkings containing [ND]
    Then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [ND].
    
    Human Readable: USA documents having ND Data must have ND at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00086" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="value" value="ND"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00086][Error] USA documents having ND Data must have ND at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00087.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00087
    
        [ISM-ID-00087][Error] If ISM_CAPCO_RESOURCE and there exist at least 2 elements in the document:
        1. Each element: Meets ISM_CONTRIBUTES
        AND
        2. One of the elements: Has the attribute nonICmarkings containing [SBU-NF]
        AND
        3. One of the elements: Has the attribute classification NOT having a value of [U]
        Then the ISM_RESOURCE_ELEMENT must have disseminationControls containing [NF].
        
        Human Readable: Classified USA documents having SBU-NF Data must have NF at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. If any element has attribute nonICmarkings specified
        with a value containing [SBU-NF], does not have attribute excludeFromRollup set to 
        true, and the resourceElement has attribute classification
        specified with a value other than [U], then we make sure that the resourceElement 
        has attribute disseminationControls specified with a value containing [NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00087">
         
         
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="             if(not($ISM_CAPCO_RESOURCE)) then true() else                 if(index-of($partNonICmarkings_tok, 'SBU-NF') &gt; 0 and not($bannerClassification='U'))                      then (index-of($bannerDisseminationControls_tok, 'NF') &gt; 0)                     else true()             "
                                 flag="error">
            [ISM-ID-00087][Error] Classified USA documents having SBU-NF Data must have NF at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00088.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00088
    
        [ISM-ID-00088][Error] If ISM_CAPCO_RESOURCE and releasableTo is specified on 
        the resource element then all classified portions must specify releasableTo.
        
        Human Readable: USA documents having any classified portion that is not 
        RELEASABLE (REL) cannot be REL at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules apply to the document, we verify that all portions either have 
        the attribute classification specified with a value of [U] or classified portions 
        of the document have the attribute releasableTo. 
        
        Attribute releasableTo is only valid on an element if attribute 
        disseminationControls is specified with a value containing [REL] or [EYES], 
        as [REL] supersedes [EYES] in the banner.
                
        If any elements do not meet either of the two requirements stated above, 
        then the assertion fails since attribute releasableTo appears on 
        the banner but is not present on all classified portions.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00088">
         
         

                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                          and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                          and @ism:releasableTo]">
                     <sch:assert test="every $portion in $partTags satisfies             (                 ($portion/@ism:classification='U' and                     not(util:containsAnyOfTheTokens($portion/@ism:disseminationControls, ('NF','DISPLAYONLY', 'RELIDO')) )                 )                 or $portion/@ism:releasableTo[normalize-space()]                 or not($portion/@ism:classification)              )"
                                 flag="error">
            [ISM-ID-00088][Error] USA documents having any classified portion that is not 
            Releasable cannot be REL at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00090.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00090
    
        [ISM-ID-00090][Error] If ISM_CAPCO_RESOURCE and any element: 
        1. Meets ISM_CONTRIBUTES
        AND
        2. Has the attribute disseminationControls containing [REL]
        Then the ISM_RESOURCE_ELEMENT must not have attribute disseminationControls containing [EYES]. 
        
        Human Readable: USA documents with any portion that is REL must not be EYES at the resource level.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM_CAPO_RESOURCE, the current element is the 
        ISM_RESOURCE_ELEMENT, and some element meeting ISM_CONTRIBUTES specifies
        attribute ism:disseminationControls with a value containing [REL], then
        we make sure that ISM_RESOURCE_ELEMENT does not specify attribute
        ism:disseminationControls or specifies the attribute with a value
        that does not contain the token [EYES].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00090">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and index-of($partDisseminationControls_tok, 'REL') &gt; 0]">
                     <sch:assert test="not(util:containsAnyOfTheTokens(@ism:disseminationControls, ('EYES')))"
                                 flag="error">
            [ISM-ID-00090][Error] USA documents with any portion that is REL must not be EYES at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00095.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00095
    
    [ISM-ID-00095][Error] If ISM_CAPCO_RESOURCE and attribute FGIsourceOpen is 
    specified then each of its values must be ordered in accordance with CVEnumISMFGIOpen.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00095" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="FGIsourceOpen"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:FGIsourceOpen)), ' ')"/>
                  <sch:param name="cveTermList" value="$FGIsourceOpenList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00095][Error] If ISM_CAPCO_RESOURCE and attribute FGIsourceOpen is      specified then each of its values must be ordered in accordance with CVEnumISMFGIOpen.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00096.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00096
    
    [ISM-ID-00096][Error] If ISM_CAPCO_RESOURCE and attribute FGIsourceProtected is specified 
    then each of its values must be ordered in accordance with CVEnumISMFGIProtected.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00096" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="FGIsourceProtected"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:FGIsourceProtected)), ' ')"/>
                  <sch:param name="cveTermList" value="$FGIsourceProtectedList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00096][Error] If ISM_CAPCO_RESOURCE and attribute FGIsourceProtected is specified      then each of its values must be ordered in accordance with CVEnumISMFGIProtected.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00097.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00097
    
        [ISM-ID-00097][Warning] If ISM_CAPCO_RESOURCE and attribute FGIsourceProtected is 
        specified with a value other than [FGI] then the value(s) must not be discoverable in IC shared spaces.
        
        Human Readable: FGI Protected should rarely if ever be seen outside of an agency's internal systems.    
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which specifies
    	the attribute ism:FGIsourceProtected, we make sure that attribute
    	ism:FGIsourceProtected contains only the token [FGI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00097">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:FGIsourceProtected]">
                     <sch:assert test="normalize-space(string(./@ism:FGIsourceProtected))='FGI'" flag="warning">
        	[ISM-ID-00097][Warning] If ISM_CAPCO_RESOURCE and attribute FGIsourceProtected is 
        	specified with a value other than [FGI] then the value(s) must not be discoverable in IC shared spaces.
        	
        	Human Readable: FGI Protected should rarely if ever be seen outside of an agency's internal systems.  
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00099.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00099
    
        [ISM-ID-00099][Error] If ISM_CAPCO_RESOURCE and attribute ownerProducer
        contains the token [FGI], then the token [FGI] must be the only value 
        in attribute ownerProducer.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribtue ism:ownerProducer with a value containing the token
        [FGI] we make sure that attribute ism:ownerProducer only contains a 
        single token.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00099">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:ownerProducer, ('FGI'))]">
                     <sch:assert test="             count(                 tokenize(normalize-space(string(@ism:ownerProducer)), ' ')             ) = 1"
                                 flag="error">
            [ISM-ID-00099][Error] If ISM_CAPCO_RESOURCE and attribute ownerProducer
            contains the token [FGI], then the token [FGI] must be the only value 
            in attribute ownerProducer.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00100.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00100
    
    [ISM-ID-00100][Error] If ISM_CAPCO_RESOURCE and attribute ownerProducer is specified, 
    then each of its values must be ordered in accordance with CVEnumISMOwnerProducer.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00100" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="ownerProducer"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:ownerProducer)), ' ')"/>
                  <sch:param name="cveTermList" value="$ownerProducerList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00100][Error] If ISM_CAPCO_RESOURCE and attribute ownerProducer is specified,      then each of its values must be ordered in accordance with CVEnumISMOwnerProducer.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00102.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00102
    
        [ISM-ID-00102][Error] The attribute 
        DESVersion in the namespace urn:us:gov:ic:ism must be specified.
        
        Human Readable: The data encoding specification version must
        be specified.
    </d:para>
         <d:para>Code Description: 
        Make sure that the attribute edh:DESVersion 
        is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00102">
         
         
                  <sch:rule context="/">
                     <sch:assert test="some $element in descendant-or-self::node() satisfies $element/@ism:DESVersion"
                                 flag="error">
            [ISM-ID-00102][Error] The attribute 
            DESVersion in the namespace urn:us:gov:ic:ism must be specified.
            
            Human Readable: The data encoding specification version must 
            be specified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00103.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00103
    
        [ISM-ID-00103][Error] At least one element must have attribute 
        resourceElement specified with a value of [true].
    </d:para>
         <d:para>Code Description: 
        For the document, we make sure that at least one element specifies 
        attribute ism:resourceElement with a value of [true].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00103">
         
         
                  <sch:rule context="/*">
                     <sch:assert test="some $token in //*[(@ism:*)] satisfies               $token/@ism:resourceElement=true()"
                                 flag="error">
        	[ISM-ID-00103][Error] At least one element must have attribute 
        	resourceElement specified with a value of [true].
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00104.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00104
    
    [ISM-ID-00104][Error] If ISM_CAPCO_RESOURCE and any element in the document:
    1. Meets ISM_CONTRIBUTES
    AND
    2. Has the attribute nonICmarkings containing [SBU-NF]
    AND
    3. The ISM_RESOURCE_ELEMENT has attribute classification equal to [U]
    Then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [SBU-NF].
    
    Human Readable: Unclassified USA documents having SBU-NF must have SBU-NF at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE, the ISM_RESOURCE_ELEMENT spcifies attribute 
    ism:classification with a value of $resourceElementClassification, and an 
    element meeting ISM_CONTRIBUTES specifies $attrLocalName with a value
    containing the token $value, then we make sure that the ISM_RESOURCE_ELEMENT
    specifies the attribute $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00104" is-a="AttributeContributesToRollupWithClassification">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="value" value="SBU-NF"/>
                  <sch:param name="resourceElementClassification" value="U"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00104][Error] Unclassified USA documents having SBU-NF must have SBU-NF at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00105.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00105
    
    [ISM-ID-00105][Error] If ISM_CAPCO_RESOURCE and any element in the document: 
    1. Meets ISM_CONTRIBUTES
    AND
    2. Has the attribute nonICmarkings containing [SBU]
    AND
    3. The ISM_RESOURCE_ELEMENT has attribute classification equal to [U]
    Then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [SBU].
    
    Human Readable: Unclassified USA documents having SBU must have SBU at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE, the ISM_RESOURCE_ELEMENT spcifies attribute 
    ism:classification with a value of $resourceElementClassification, and an 
    element meeting ISM_CONTRIBUTES specifies $attrLocalName with a value
    containing the token $value, then we make sure that the ISM_RESOURCE_ELEMENT
    specifies the attribute $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00105" is-a="AttributeContributesToRollupWithClassification">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="value" value="SBU"/>
                  <sch:param name="resourceElementClassification" value="U"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00105][Error] Unclassified USA documents having SBU must have SBU at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00107.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00107
    
        [ISM-ID-00107][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls contains the name token [IMC] then attribute 
        classification must have a value of [TS] or [S].
        
        Human Readable:  IMCON data is SECRET (S), but may appear with 
        S or TOP SECRET data.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [IMC] we make sure that attribute ism:classification is not
    	specified with a value of [TS] or [S].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00107">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:disseminationControls, ('IMC'))]">
                     <sch:assert test="@ism:classification=('TS', 'S')" flag="error">
        	[ISM-ID-00107][Error] If ISM_CAPCO_RESOURCE and attribute 
        	disseminationControls contains the name token [IMC] then attribute 
        	classification must have a value of [TS] or [S].
        	
        	Human Readable:  IMCON data is SECRET (S), but may appear with 
        	S or TOP SECRET data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00108.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00108
    
        [ISM-ID-00108][Error] If ISM_CAPCO_RESOURCE and attribute classification 
        of ISM_RESOURCE_ELEMENT has a value of [TS] and attribute compilationReason does not have a value then at least 
        one element meeting ISM_CONTRIBUTES in the document must have a classification attribute of [TS]. 
        
        Human Readable: USA TS documents not using compilation must have TS data.
    </d:para>
         <d:para>Code Description: 
      This rule uses an abstract pattern to consolidate logic. If the document
      is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
      has a value of [$value] and attribute ism:compilationReason does not have a 
      value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
      specifies attribute $attrLocalName with a value of [$value].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00108" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="classification"/>
                  <sch:param name="value" value="TS"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00108][Error] USA TS documents not using compilation must have TS data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00109.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00109
    
    [ISM-ID-00109][Error] If ISM_CAPCO_RESOURCE and attribute classification
    of ISM_RESOURCE_ELEMENT has a value of [S] and attribute compilationReason does not have a value then at least
    one element meeting ISM_CONTRIBUTES in the document must have a classification attribute of [S].
    
    Human Readable: USA S documents not using compilation must have S data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00109" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="classification"/>
                  <sch:param name="value" value="S"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00109][Error] USA S documents not using compilation must have S data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00110.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00110
    
    [ISM-ID-00110][Error] If ISM_CAPCO_RESOURCE and attribute classification of ISM_RESOURCE_ELEMENT 
    has a value of [C] and attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES in the 
    document must have a classification attribute of [C]. 
    
    Human Readable: USA C documents not using compilation must have C data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00110" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="classification"/>
                  <sch:param name="value" value="C"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00110][Error] USA C documents not using compilation must have C data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00111.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00111
    
    [ISM-ID-00111][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols of ISM_RESOURCE_ELEMENT contains 
    [SI] and attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES in the document must have a 
    SCIcontrols attribute containing [SI].
    
    Human Readable: USA SI documents not using compilation must have SI data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00111" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="SI"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00111][Error] USA SI documents not using compilation must have SI data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00112.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00112
    
    [ISM-ID-00112][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols of ISM_RESOURCE_ELEMENT contains 
    [SI-G] and attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES in the document must have 
    a SCIcontrols attribute containing [SI-G].
    
    Human Readable: USA SI-G documents not using compilation must have SI-G data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00112" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="SI-G"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00112][Error] USA SI-G documents not using compilation must have SI-G data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00113.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00113
    
    [ISM-ID-00113][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols of ISM_RESOURCE_ELEMENT contains 
    [TK] and attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES in the document must have a 
    SCIcontrols attribute containing [TK].
    
    Human Readable: USA TK documents not using compilation must have TK data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00113" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="TK"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00113][Error] USA TK documents not using compilation must have TK data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00116.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00116
    
    [ISM-ID-00116][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols of ISM_RESOURCE_ELEMENT contains 
    [HCS] and attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES in the document must have a 
    SCIcontrols attribute containing [HCS].
    
    Human Readable: USA HCS documents not using compilation must have HCS data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00116" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="SCIcontrols"/>
                  <sch:param name="value" value="HCS"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00116][Error] USA HCS documents not using compilation must have HCS data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00118.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00118
    
        [ISM-ID-00118][Error] The first element in document order having 
        resourceElement true must have createDate specified.
    </d:para>
         <d:para>Code Description: 
        We make sure that the resourceElement has attribute createDate specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00118">
         
         
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)][1]">
                     <sch:assert test="@ism:createDate" flag="error">
            [ISM-ID-00118][Error] The first element in document order having 
            resourceElement true must have createDate specified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00119.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00119
    
        [ISM-ID-00119][Error] If ISM_CAPCO_RESOURCE and 
        1. attribute classification is not [U]
        AND
        2. ISM_ICDOCUMENT_APPLIES
        AND
        3. attribute excludeFromRollup is not true
        AND
        4. Attribute disseminationControls must contain one or more of 
            [DISPLAYONLY], [REL], [RELIDO], [EYES], or [NF]

        Human Readable: All classified NSI that claims compliance with 
        ICD 710 must have an appropriate foreign disclosure or release marking.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document, or ICDocument does not apply to the document,
        or the resource is unclassified, or  excludeFromRollup is true, then the rule does not apply. 
        Otherwise, we make sure that the attribute disseminationControls contains at least
        one of the values [DISPLAYONLY], [RELIDO], [REL], [EYES], or [NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00119">
         
         
                  <sch:rule context="*[@ism:* except (@ism:pocType | @ism:DESVersion | @ism:unregisteredNoticeType)                              and $ISM_CAPCO_RESOURCE                              and $ISM_ICDOCUMENT_APPLIES                              and not(@ism:excludeFromRollup=true())                             and not(@ism:classification='U')]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:disseminationControls, ('DISPLAYONLY', 'RELIDO','REL','EYES', 'NF'))"
                                 flag="error">
        	[ISM-ID-00119][Error] If ISM_CAPCO_RESOURCE and ISM_ICDOCUMENT_APPLIES
        	and attribute classification is specified with a value other than [U],
        	then attribute disseminationControls must contain one or more of the
        	following named tokens: [DISPLAYONLY], [REL], [RELIDO], [EYES], or [NF].
        	
        	Human Readable: All classified NSI that claims compliance with 
        	ICD 710 must have an appropriate foreign disclosure or release marking.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SARIdentifier/ISM_ID_00121.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00121
    
    [ISM-ID-00121][Error] If ISM_CAPCO_RESOURCE and attribute SARIdentifier 
    is specified, then each of its values must be ordered in accordance 
    with CVEnumISMSAR.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00121" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="SARIdentifier"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:SARIdentifier)), ' ')"/>
                  <sch:param name="cveTermList" value="$SARIdentifierList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00121][Error] If ISM_CAPCO_RESOURCE and attribute SARIdentifier      is specified, then each of its values must be ordered in accordance      with CVEnumISMSAR.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00122.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00122
    
        [ISM-ID-00122][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [KDK], then attribute classification must have
        a value of [TS] or [S].
        
        Human Readable: A USA document with KLONDIKE data must be 
        classified SECRET or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [KDK] we make sure that attribute ism:classification is 
        specified with a value containing the token [TS] or [S].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00122">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('KDK'))]">  
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS', 'S'))"
                                 flag="error">
            [ISM-ID-00122][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [KDK], then attribute classification must have
            a value of [TS] or [S].
            
            Human Readable: A USA document with KLONDIKE data must be 
            classified SECRET or TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00123.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00123
    
        [ISM-ID-00123][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
        contains the name token [KDK], then attribute disseminationControls
        must contain the name token [NF].
        
        Human Readable: A USA document containing KLONDIKE data must also be
        marked for NO FOREIGN dissemination.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:SCIcontrols with a value containing the token
        [KDK] we make sure that attribute ism:disseminationControls is 
        specified with a value containing the token [NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00123">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('KDK'))]">  
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:disseminationControls, ('NF'))"
                                 flag="error">
            [ISM-ID-00123][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols
            contains the name token [KDK], then attribute disseminationControls
            must contain the name token [NF].
            
            Human Readable: A USA document containing KLONDIKE data must also be
            marked for NO FOREIGN dissemination.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00124.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00124
    
      [ISM-ID-00124][Warning] If ISM_CAPCO_RESOURCE and
      1. Attribute ownerProducer does not contain [USA].
      AND
      2. Attribute disseminationControls contains [RELIDO]
      
      Human Readable: RELIDO is not authorized for non-US portions.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [RELIDO] we make sure that attribute ism:ownerProducer is
    	specified with a value containing [USA].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00124">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:disseminationControls, ('RELIDO'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:ownerProducer, ('USA'))" flag="warning">
          [ISM-ID-00124][Warning] If ISM_CAPCO_RESOURCE and
          1. Attribute ownerProducer does not contain [USA].
          AND
          2. Attribute disseminationControls contains [RELIDO]
          
          Human Readable: RELIDO is not authorized for non-US portions.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00125.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00125
    
    [ISM-ID-00125][Error] If any attributes in namespace 
    urn:us:gov:ic:ism exist, the local name must exist in CVEnumISMAttributes.xml. 
    
    Human Readable: Ensure that attributes in the ISM namespace are defined by ISM.XML.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It checks that the
    value in parameter $searchTerm is contained in the parameter $list. The parameter
    $searchTerm is relative in scope to the parameter $context. The value for the parameter 
    $list is a variable defined in the main document (ISM_XML.sch), which reads 
    values from a specific CVE file.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00125">
  
         
         
                  <sch:rule context="*[@ism:*]"> 
                     <sch:assert test="every $attr in @ism:* satisfies               $attr[local-name() = $validAttributeList]"
                                 flag="error">
                        <sch:value-of select="'         [ISM-ID-00125][Error] If any attributes in namespace          urn:us:gov:ic:ism exist, the local name must exist in CVEnumISMAttributes.xml.                   Human Readable: Ensure that attributes in the ISM namespace are defined by ISM.XML.         '"/>
                     </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00126.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00126
    
        [ISM-ID-00126][Error] Attributes with namespace urn:us:gov:ic:ism must 
        not appear with attribute @xs:any. 
        
        Human Readable: Ensure that no attributes that appear to be in the 
        ISM namespace, but are not defined by ISM.XML, are used in a schema
        that might have an xs:any.
    </d:para>
         <d:para>Code Description: 
        For any element which specifies an attribute in the ISM namespace, we
        make sure that the attribute xs:any is NOT specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00126">
         
         
                  <sch:rule context="*[@ism:*]">
                     <sch:assert test="not(./@xs:any)" flag="error">
        	[ISM-ID-00126][Error] Attributes with namespace urn:us:gov:ic:ism must 
        	not appear with attribute @xs:any. 
        	
        	Human Readable: Ensure that no attributes that appear to be in the 
        	ISM namespace, but are not defined by ISM.XML, are used in a schema
        	that might have an xs:any.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00127.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00127
    
        [ISM-ID-00127][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing [RD]
        AND
        2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [RD]
        and does not have attribute externalNotice with a value of [true].
        Human Readable: USA documents containing RD data must also have an non-external RD notice.
    </d:para>
         <d:para>Code Description: 
    	This rule uses an abstract pattern to consolidate logic.
    	If the document is an ISM-CAPCO-RESOURCE, for each element which
    	meets ISM_CONTRIBUTES and specifies attribute ism:atomicEnergyMarkings
    	with a value containing the token [RD], we make sure that an element
    	meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
    	containing the token [RD] and does not specifiy attribute ism:externalNotice with a 
    	value of [true].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00127" is-a="DataHasCorrespondingNotice">
         
         
	                 <sch:param name="ruleId" value="'ISM-ID-00127'"/>
	                 <sch:param name="attrName" value="'atomicEnergyMarkings'"/>
	                 <sch:param name="attrValue" value="@ism:atomicEnergyMarkings"/>
	                 <sch:param name="noticeType" value="'RD'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00128.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00128
    
        [ISM-ID-00128][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing [FRD]
        AND
        2. No element meeting ISM_CONTRIBUTES 
        in the document has the attribute noticeType containing [FRD] 
        and does not have attribute externalNotice with a value of [true]
        Human Readable: USA documents containing FRD data must also have a non-external FRD notice.
    </d:para>
         <d:para>Code Description: 
    	This rule uses an abstract pattern to consolidate logic.
    	If the document is an ISM-CAPCO-RESOURCE, for each element which
    	meets ISM_CONTRIBUTES and specifies attribute ism:atomicEnergyMarkings
    	with a value containing the token [FRD], we make sure that an element
    	meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
    	containing the token [FRD] and does not specifiy attribute ism:externalNotice with a 
    	value of [true].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00128" is-a="DataHasCorrespondingNotice">
         
         
	                 <sch:param name="ruleId" value="'ISM-ID-00128'"/>
	                 <sch:param name="attrName" value="'atomicEnergyMarkings'"/>
	                 <sch:param name="attrValue" value="@ism:atomicEnergyMarkings"/>
	                 <sch:param name="noticeType" value="'FRD'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00129.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00129
    
        [ISM-ID-00129][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute disseminationControls containing [IMC]
        AND
        2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [IMC]
        and does not have attribute externalNotice with a value of [true]
        Human Readable: USA documents containing IMC data must also have a non-external IMC notice.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which
		meets ISM_CONTRIBUTES and specifies attribute ism:disseminationControls
		with a value containing the token [IMC], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
		containing the token [IMC] and does not specifiy attribute ism:externalNotice with a 
		value of [true].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00129" is-a="DataHasCorrespondingNotice">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00129'"/>
	                 <sch:param name="attrName" value="'disseminationControls'"/>
	                 <sch:param name="attrValue" value="@ism:disseminationControls"/>
	                 <sch:param name="noticeType" value="'IMC'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00130.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00130
    
        [ISM-ID-00130][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute disseminationControls containing [FISA]
        AND
        2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [FISA]
        and does not have attribute externalNotice with a value of [true]
        Human Readable: USA documents containing FISA data must also have a non-external FISA notice.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which
		meets ISM_CONTRIBUTES and specifies attribute ism:disseminationControls
		with a value containing the token [FISA], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
		containing the token [FISA] and does not specifiy attribute ism:externalNotice with a 
		value of [true].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00130" is-a="DataHasCorrespondingNotice">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00130'"/>
	                 <sch:param name="attrName" value="'disseminationControls'"/>
	                 <sch:param name="attrValue" value="@ism:disseminationControls"/>
	                 <sch:param name="noticeType" value="'FISA'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00132.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00132
    
        [ISM-ID-00132][Error] If ISM_CAPCO_RESOURCE and the ISM_RESOURCE_ELEMENT has the 
        attribute disseminationControls containing [RELIDO] then every element meeting 
        ISM_CONTRIBUTES_CLASSIFIED in the document must have the attribute 
        disseminationControls containing [RELIDO].
        
        Human Readable: USA documents having RELIDO at the resource level must have every classified portion having RELIDO and on any U portions that have explicit Release specified must have RELIDO.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM_CAPCO_RESOURCE, the current element is the
        ISM_RESOURCE_ELEMENT, and the ISM_RESOURCE_ELEMENT specifies the attribute
        ism:disseminationControls with a value containing the token [RELIDO],
        then we make sure that every element meeting ISM_CONTRIBUTES_CLASSIFIED
        speficies attribute ism:disseminationControls with a value containing
        the token [RELIDO].
        
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00132">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and util:containsAnyOfTheTokens(@ism:disseminationControls, ('RELIDO'))]">
                     <sch:assert test="every $ele in $partTags satisfies             if  ($ele/@ism:classification[normalize-space()='U'] and not(util:containsAnyOfTheTokens($ele/@ism:disseminationControls, ('REL','NF','DISPLAYONLY')))                        or not($ele/@ism:classification)                  )                     then true()                     else                       util:containsAnyOfTheTokens($ele/@ism:disseminationControls, ('RELIDO'))"
                                 flag="error">
            [ISM-ID-00132][Error] USA documents having RELIDO at the resource level must have every classified portion having RELIDO and on any U portions that have explicit Release specified must have RELIDO.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/declassException/ISM_ID_00133.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00133
    
        [ISM-ID-00133][Error] If ISM_NSI_EO_APPLIES and attribute 
        declassException is specified and contains the tokens 
        [50X1-HUM], or [50X2-WMD], then attribute declassDate or declassEvent must NOT be specified.
        
        Human Readable: Documents under E.O. 13526 must not specify declassDate or declassEvent if 
        a declassException of 50X1-HUM or 50X2-WMD is specified.
    </d:para>
         <d:para>Code Description: 
    	If ISM_NSI_EO_APPLIES, for each element which specifies 
    	ism:declassException with a value containing token 
    	[50X1-HUM], or [50X2-WMD] we make sure that attributes ism:declassDate
    	and ism:declassEvent are NOT specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00133">
         
         
	                 <sch:rule context="*[$ISM_NSI_EO_APPLIES                      and util:containsAnyOfTheTokens(@ism:declassException, ('50X1-HUM', '50X2-WMD'))]">
                     <sch:assert test="not(@ism:declassDate or @ism:declassEvent)" flag="error">
        	[ISM-ID-00133][Error] If ISM_NSI_EO_APPLIES and attribute 
        	declassException is specified and contains the tokens 
        	[50X1-HUM], or [50X2-WMD], then attribute declassDate or declassEvent 
        	must NOT be specified.
        	
        	Human Readable: Documents under E.O. 13526 must not specify declassDate
        	or declassEvent if a declassException of 50X1-HUM or 50X2-WMD is specified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00134.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00134
    
        [ISM-ID-00134][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute nonICmarkings containing [DS]
        AND
        2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [DS]
        and does not have attribute externalNotice with a value of [true]
        Human Readable: USA documents containing DS data must also have a non-external DS notice.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which
		meets ISM_CONTRIBUTES and specifies attribute ism:nonICmarkings
		with a value containing the token [DS], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
		containing the token [DS] and does not specifiy attribute ism:externalNotice with a 
		value of [true].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00134" is-a="DataHasCorrespondingNotice">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00134'"/>
	                 <sch:param name="attrName" value="'nonICmarkings'"/>
	                 <sch:param name="attrValue" value="@ism:nonICmarkings"/>
	                 <sch:param name="noticeType" value="'DS'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00135.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00135
    
        [ISM-ID-00135][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing [RD]
        AND
        2. Any element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [RD]
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        Human Readable: USA documents containing an non-external RD notice must also have RD data.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE and any element meets
		ISM_CONTRIBUTES and specifies attribute ism:noticeType
		with a value containing the token [RD] and does not specifiy attribute ism:externalNotice with a 
		value of [true], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
		with a value containing the token [RD].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00135" is-a="NoticeHasCorrespondingData">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00135'"/>
	                 <sch:param name="attrName" value="'atomicEnergyMarkings'"/>
	                 <sch:param name="dataType" value="'RD'"/>
	                 <sch:param name="dataTokenList" value="$partAtomicEnergyMarkings_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00136.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00136
    
        [ISM-ID-00136][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute atomicEnergyMarkings containing [FRD]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [FRD]
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        
        Human Readable: USA documents containing a non-external FRD notice must also have FRD data.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE and any element meets
		ISM_CONTRIBUTES and specifies attribute ism:noticeType
		with a value containing the token [FRD] and does not specifiy attribute ism:externalNotice with a 
		value of [true], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
		with a value containing the token [FRD].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00136" is-a="NoticeHasCorrespondingData">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00136'"/>
	                 <sch:param name="attrName" value="'atomicEnergyMarkings'"/>
	                 <sch:param name="dataType" value="'FRD'"/>
	                 <sch:param name="dataTokenList" value="$partAtomicEnergyMarkings_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00137.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00137
    
        [ISM-ID-00137][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute disseminationControls containing [IMC]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [IMC]
        and not specifiying attribute ism:externalNotice with a value of [true]
        Human Readable: USA documents containing a non-external IMC notice must also have IMC data.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE and any element meets
		ISM_CONTRIBUTES and specifies attribute ism:noticeType
		with a value containing the token [IMC] and not specifiying attribute ism:externalNotice with a 
		value of [true], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:disseminationControls
		with a value containing the token [IMC].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00137" is-a="NoticeHasCorrespondingData">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00137'"/>
	                 <sch:param name="attrName" value="'disseminationControls'"/>
	                 <sch:param name="dataType" value="'IMC'"/>
	                 <sch:param name="dataTokenList" value="$partDisseminationControls_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00138.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00138
    
        [ISM-ID-00138][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute nonICmarkings containing [DS]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [DS]
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        Human Readable: USA documents containing a non-external DS notice must also have DS data. 
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE and any element meets
		ISM_CONTRIBUTES and specifies attribute ism:noticeType
		with a value containing the token [DS] and does not specifiy attribute ism:externalNotice with a 
		value of [true], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:nonICmarkings
		with a value containing the token [DS].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00138" is-a="NoticeHasCorrespondingData">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00138'"/>
	                 <sch:param name="attrName" value="'nonICmarkings'"/>
	                 <sch:param name="dataType" value="'DS'"/>
	                 <sch:param name="dataTokenList" value="$partNonICmarkings_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00139.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00139
    
        [ISM-ID-00139][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute disseminationControls containing [FISA]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [FISA]
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        Human Readable: USA documents containing a non-external FISA notice must also have FISA data. 
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE and any element meets
		ISM_CONTRIBUTES and specifies attribute ism:noticeType
		with a value containing the token [FISA] and does not specifiy attribute ism:externalNotice with a 
		value of [true], we make sure that an element
		meeting ISM_CONTRIBUTES specifies attribute ism:disseminationControls
		with a value containing the token [FISA].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00139" is-a="NoticeHasCorrespondingData">
         
	        
	                 <sch:param name="ruleId" value="'ISM-ID-00139'"/>
	                 <sch:param name="attrName" value="'disseminationControls'"/>
	                 <sch:param name="dataType" value="'FISA'"/>
	                 <sch:param name="dataTokenList" value="$partDisseminationControls_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00141.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00141
    
        [ISM-ID-00141][Error] If ISM_NSI_EO_APPLIES and 
        1. ISM_RESOURCE_ELEMENT attribute declassException does not have a value of [50X1-HUM], or [50X2-WMD]
        AND
        2. ISM_RESOURCE_ELEMENT attribute declassDate is not specified
        AND
        3. ISM_RESOURCE_ELEMENT attribute declassEvent is not specified
        AND
        4. ISM_RESOURCE_ELEMENT attribute atomicEnergyMarkings is not specified
           with a value of [RD] or [FRD]
            
        Human Readable: Documents under E.O. 13526 require declassDate or declassEvent unless 
        50X1-HUM, 50X2-WMD, RD, or FRD is specified.
    </d:para>
         <d:para>Code Description: 
        If ISM_NSI_EO_APPLIES, the current element is the ISM_RESOURCE_ELEMENT,
        and attribtue ism:declassExeption is not specified with a value
        containing the token [50X1-HUM], or [50X2-WMD] OR attribute
        ism:atomicEnergyMarkings is not specified with a value containing the token
        [RD] or [FRD], then we make sure that attribute ism:declassDate is 
        specified or attribute ism:declassEvent is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00141">
         
         
                  <sch:rule context="*[$ISM_NSI_EO_APPLIES                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and not(util:containsAnyOfTheTokens(@ism:declassException, ('50X1-HUM', '50X2-WMD')))                         and not(util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD', 'FRD')))]">
                     <sch:assert test="@ism:declassDate or @ism:declassEvent" flag="error">
            [ISM-ID-00141][Error] Documents under E.O. 13526 require declassDate or declassEvent unless  
            50X1-HUM, 50X2-WMD, RD, or FRD is specified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/classification/ISM_ID_00142.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00142
    
        [ISM-ID-00142][Error] If ISM_NSI_EO_APPLIES and attribute classification
        has a value other than [U], then attribute classifiedBy or 
        derivativelyClassifiedBy must be specified on the ISM_RESOURCE_ELEMENT.
        
        Human Readable: Classified data including DOE data requires either an 
        original classifier or a derivative classifier be identified.
    </d:para>
         <d:para>Code Description: 
    	If ISM_NSI_EO_APPLIES, for each element which specified attribute
    	ism:classification with a value other than [U], we make sure that
    	the ISM_RESOURCE_ELEMENT specifies attribute ism:classifiedBy or 
    	ism:derivativelyClassifiedBy.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00142">
         
         
	                 <sch:rule context="*[$ISM_NSI_EO_APPLIES and @ism:classification!='U']">
                     <sch:assert test="$ISM_RESOURCE_ELEMENT/@ism:classifiedBy               or $ISM_RESOURCE_ELEMENT/@ism:derivativelyClassifiedBy"
                                 flag="error">
            [ISM-ID-00142][Error] Classified data including DOE data requires 
            either an original classifier or a derivative classifier be identified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/derivativelyClassifiedBy/ISM_ID_00143.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00143
    
        [ISM-ID-00143][Error] If ISM_CAPCO_RESOURCE and attribute 
        derivativelyClassifiedBy is specified, then attribute derivedFrom must
        be specified. 
        
        Human Readable: Derivatively Classified data including DOE data requires
        a derived from value to be identified.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which 
    	specifies attribute ism:derivativelyClassifiedBy we make sure that
    	attribute ism:derivedFrom is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00143">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:derivativelyClassifiedBy]">
                     <sch:assert test="@ism:derivedFrom" flag="error">
        	[ISM-ID-00143][Error] If ISM_CAPCO_RESOURCE and attribute 
        	derivativelyClassifiedBy is specified, then attribute derivedFrom must
        	be specified. 
        	
        	Human Readable: Derivatively Classified data including DOE data requires
        	a derived from value to be identified.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00145.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00145
    
        [ISM-ID-00145][Error] If ISM_CAPCO_RESOURCE and any element in the document: 
        1. Meets ISM_CONTRIBUTES
        AND
        2. Has the attribute nonICmarkings containing [LES]
        AND
        3. No element meeting ISM_CONTRIBUTES in the document has nonICmarkings containing any of [LES-NF]
        Then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [LES].
        
        Human Readable: USA documents having LES and not having LES-NF must have LES at the resource level.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the 
      ISM_RESOURCE_ELEMENT, some element meeting ISM_CONTIBUTES specifies
      attribute ism:nonICmarkings with a value containing the token [LES], and
      no element meeting ISM_CONTRIBUTES specifies attribute ism:nonICmarkings
      with a value containing the token [LES-NF], then we make sure that
      ISM_RESOURCE_ELEMENT sepcifies attribute ism:nonICmarkings with a value
      containing the token [LES].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00145">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and index-of($partNonICmarkings_tok, 'LES') &gt; 0                         and not(index-of($partNonICmarkings_tok, 'LES-NF') &gt; 0)]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:nonICmarkings, ('LES'))" flag="error">
            [ISM-ID-00145][Error] USA documents having LES and not having LES-NF must have LES at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00146.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00146
    
        [ISM-ID-00146][Error] If ISM_CAPCO_RESOURCE and there exist at least 2 elements in the document:
        1. Each element: Meets ISM_CONTRIBUTES
        AND
        2. One of the elements: Has the attribute nonICmarkings containing [LES-NF]
        AND
        3. One of the elements: meets ISM_CONTRIBUTES_CLASSIFIED
        Then the ISM_RESOURCE_ELEMENT must have disseminationControls containing [NF].
        
        Human Readable: Classified USA documents having LES-NF Data must have NF at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. If any element has attribute nonICmarkings specified 
        with a value containing [LES-NF] and the resourceElement has attribute classification specified 
        with a value other than [U], then we make sure that the resourceElement has attribute 
        disseminationControls specified with a value containing [NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00146">
         
         
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="             if(not($ISM_CAPCO_RESOURCE)) then true() else                 if(index-of($partNonICmarkings_tok, 'LES-NF') &gt; 0 and not($bannerClassification='U'))                  then (index-of($bannerDisseminationControls_tok, 'NF') &gt; 0)                 else true()             "
                                 flag="error">
            [ISM-ID-00146][Error] Classified USA documents having LES-NF Data must have NF at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00147.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00147
    
        [ISM-ID-00147][Error] If ISM_CAPCO_RESOURCE and there exist at least 2 elements in the document:
        1. Each element: Meets ISM_CONTRIBUTES
        AND
        2. One of the elements: Has the attribute nonICmarkings containing [LES-NF]
        AND
        3. One of the elements: meets ISM_CONTRIBUTES_CLASSIFIED
        Then the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [LES].
        
        Human Readable: Classified USA documents having LES-NF Data must have LES at the resource level.
    </d:para>
         <d:para>Code Description: 
        If CAPCO rules do not apply to the document then the rule does not apply
        and we return true. If any element has attribute nonICmarkings specified 
        with a value containing [LES-NF] and the resourceElement has attribute classification specified 
        with a value other than [U], then we make sure that the resourceElement has attribute nonICmarkings
        specified with a value containing [LES].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00147">
         
         
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="             if(not($ISM_CAPCO_RESOURCE)) then true() else                 if(index-of($partNonICmarkings_tok, 'LES-NF') &gt; 0 and not($bannerClassification='U'))                  then (index-of($bannerNonICmarkings_tok, 'LES') &gt; 0)                 else true()             "
                                 flag="error">
            [ISM-ID-00147][Error] Classified USA documents having LES-NF Data must have LES at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00148.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00148
    
        [ISM-ID-00148][Error] If ISM_CAPCO_RESOURCE, then Name tokens [LES] and [LES-NF] are mutually
        exclusive for attribute nonICmarkings.
        
        Human Readable: USA documents must not specify both LES and LES-NF on a single element.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which 
		has attribute ism:nonICmarkings specified with a value containing
		the token [LES] or [LES-NF], we make sure that attribute
		ism:nonICmarkings is not specified with a value containing both tokens
		[LES] and [LES-NF].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00148" is-a="MutuallyExclusiveAttributeValues">
         
	        
	
	                 <sch:param name="context"
                             value="*[$ISM_CAPCO_RESOURCE          and util:containsAnyOfTheTokens(@ism:nonICmarkings, ('LES', 'LES-NF'))]"/>
	                 <sch:param name="attrValue" value="@ism:nonICmarkings"/>
	                 <sch:param name="mutuallyExclusiveTokenList" value="('LES', 'LES-NF')"/>
	                 <sch:param name="errMsg"
                             value="'   [ISM-ID-00148][Error] If ISM_CAPCO_RESOURCE, then Name tokens    [LES] and [LES-NF] are mutually exclusive for attribute nonICmarkings.      Human Readable: USA documents must not specify both LES and LES-NF    on a single element.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00149.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00149
    
    [ISM-ID-00149][Error] If ISM_CAPCO_RESOURCE and 
    1. Any element in the document meets ISM_CONTRIBUTES in the document has 
    the attribute nonICmarkings contain [LES-NF]
    AND
    2. ISM_RESOURCE_ELEMENT has the attribute classification [U]
    THEN the ISM_RESOURCE_ELEMENT must have nonICmarkings containing [LES-NF]
    
    Human Readable: Unclassified USA documents having LES-NF must have LES-NF at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE, the ISM_RESOURCE_ELEMENT spcifies attribute 
    ism:classification with a value of $resourceElementClassification, and an 
    element meeting ISM_CONTRIBUTES specifies $attrLocalName with a value
    containing the token $value, then we make sure that the ISM_RESOURCE_ELEMENT
    specifies the attribute $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00149" is-a="AttributeContributesToRollupWithClassification">
         
         
                  <sch:param name="attrLocalName" value="nonICmarkings"/>
                  <sch:param name="value" value="LES-NF"/>
                  <sch:param name="resourceElementClassification" value="U"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00149][Error] Unclassified USA documents having LES-NF data must have LES-NF at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00150.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00150
    
    [ISM-ID-00150][Error] If ISM_CAPCO_RESOURCE and:
    1. Any element, other than ISM_RESOURCE_ELEMENT, meeting ISM_CONTRIBUTES in the document has the attribute nonICmarkings containing [LES]
    AND
    2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [LES]
    
    Human Readable: USA documents containing LES data must also have an LES notice.
  </d:para>
         <d:para>Code Description: 
    If the document is an ISM-CAPCO-RESOURCE, for each element which
    is not the ISM_RESOURCE_ELEMENT and meets ISM_CONTRIBUTES and specifies 
    attribute ism:nonICmarkings with a value containing the token [LES], we make
    sure that an element meeting ISM_CONTRIBUTES specifies attribute
    ism:noticeType with a value containing the token [LES].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00150">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT))                       and util:containsAnyOfTheTokens(@ism:nonICmarkings, ('LES'))]">
                     <sch:assert test="some $elem in $partTags satisfies          ($elem[@ism:noticeType]          and util:containsAnyOfTheTokens($elem/@ism:noticeType, ('LES'))          and not ($elem/@ism:externalNotice='true'))"
                                 flag="error">
      [ISM-ID-00150][Error] If ISM_CAPCO_RESOURCE and:
      1. Any element, other than ISM_RESOURCE_ELEMENT, meeting ISM_CONTRIBUTES in the document has the attribute nonICmarkings containing [LES]
      AND
      2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [LES]
      
      Human Readable: USA documents containing LES data must also have an LES notice.
    </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00151.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00151
    
        [ISM-ID-00151][Warning] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute nonICmarkings containing [LES]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [LES]    
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        Human Readable: USA documents containing a non-external LES notice must also have LES data. 
    </d:para>
         <d:para>Code Description: 
        This rule uses an abstract pattern to consolidate logic.
        If the document is an ISM-CAPCO-RESOURCE and any element meets
        ISM_CONTRIBUTES and specifies attribute ism:noticeType
        with a value containing the token [LES] and does not specifiy attribute ism:externalNotice with a 
        value of [true], we make sure that an element
        meeting ISM_CONTRIBUTES specifies attribute ism:nonICmarkings
        with a value containing the token [LES].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00151" is-a="NoticeHasCorrespondingData">
         
         
                  <sch:param name="ruleId" value="'ISM-ID-00151'"/>
                  <sch:param name="attrName" value="'nonICmarkings'"/>
                  <sch:param name="dataType" value="'LES'"/>
                  <sch:param name="dataTokenList" value="$partNonICmarkings_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00152.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00152
    
        [ISM-ID-00152][Error] If ISM_CAPCO_RESOURCE and:
        1. Any element meeting ISM_CONTRIBUTES in the document has the attribute nonICmarkings containing [LES-NF]
        AND
        2. No element meeting ISM_CONTRIBUTES in the document has the attribute noticeType containing [LES-NF]
        and does not have attribute externalNotice with a value of [true].
        Human Readable: USA documents containing LES-NF data must also have an LES-NF notice. 
    </d:para>
         <d:para>Code Description: 
        This rule uses an abstract pattern to consolidate logic.
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        meets ISM_CONTRIBUTES and specifies attribute ism:nonICmarkings
        with a value containing the token [LES-NF], we make sure that an element
        meeting ISM_CONTRIBUTES specifies attribute ism:noticeType with a value
        containing the token [LES-NF] and does not specifiy attribute ism:externalNotice with a 
        value of [true].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00152" is-a="DataHasCorrespondingNotice">
         
         
                  <sch:param name="ruleId" value="'ISM-ID-00152'"/>
                  <sch:param name="attrName" value="'nonICmarkings'"/>
                  <sch:param name="attrValue" value="@ism:nonICmarkings"/>
                  <sch:param name="noticeType" value="'LES-NF'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00153.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00153
    
        [ISM-ID-00153][Error] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute nonICmarkings containing [LES-NF]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [LES-NF].
        and does not specifiy attribute ism:externalNotice with a 
        value of [true].
        Human Readable: USA documents containing an LES-NF notice must also have LES-NF data. 
    </d:para>
         <d:para>Code Description: 
        This rule uses an abstract pattern to consolidate logic.
        If the document is an ISM-CAPCO-RESOURCE and any element meets
        ISM_CONTRIBUTES and specifies attribute ism:noticeType
        with a value containing the token [LES-NF] and does not specifiy attribute ism:externalNotice with a 
        value of [true], we make sure that an element
        meeting ISM_CONTRIBUTES specifies attribute ism:nonICmarkings
        with a value containing the token [LES-NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00153" is-a="NoticeHasCorrespondingData">
         
         
                  <sch:param name="ruleId" value="'ISM-ID-00153'"/>
                  <sch:param name="attrName" value="'nonICmarkings'"/>
                  <sch:param name="dataType" value="'LES-NF'"/>
                  <sch:param name="dataTokenList" value="$partNonICmarkings_tok"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00154.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00154
    
    [ISM-ID-00154][Error] If ISM_CAPCO_RESOURCE and 
    1. Attribute disseminationControls of ISM_RESOURCE_ELEMENT contains [FOUO]
    AND
    2. Attribute compilationReason does not have a value then at least one element meeting ISM_CONTRIBUTES
    in the document must have a disseminationControls attribute contain [FOUO].
    
    Human Readable: USA FOUO documents not using compilation must have FOUO data.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and attribute $attrLocalName of ISM_RESOURCE_ELEMENT 
    has a value of [$value] and attribute ism:compilationReason does not have a 
    value, then we make sure that at least one element meeting ISM_CONTRIBUTES 
    specifies attribute $attrLocalName with a value of [$value].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00154" is-a="NonCompilationDocumentRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="FOUO"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00154][Error] USA FOUO documents not using compilation must have FOUO data.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00155.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00155
    
        [ISM-ID-00155][Error] If ISM_CAPCO_RESOURCE and 
        1. ISM_DoD5230_24_Applies
        AND
        2. Attribute noticeType of ISM_RESOURCE_ELEMENT does not contain one of 
        [DoD-Dist-A], [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X]
        
        Human Readable: All USA documents that claim compliance with DoD5230.24 must have a distribution statement
        for the entire document.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, ISM_DOD5230_24_APPLIES, and
      the current element is the ISM_RESOURCE_ELEMENT, we make sure that 
      attribute ism:noticeType is specified with a value containing one of the
      tokens: [DoD-Dist-A], [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D],
      [DoD-Dist-E], [DoD-Dist-F], [DoD-Dist-X].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00155">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and $ISM_DOD5230_24_APPLIES                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:noticeType,                      ('DoD-Dist-A', 'DoD-Dist-B', 'DoD-Dist-C', 'DoD-Dist-D', 'DoD-Dist-E', 'DoD-Dist-F', 'DoD-Dist-X'))"
                                 flag="error">
            [ISM-ID-00155][Error] All USA documents that claim compliance with DoD5230.24 must have a distribution statement
            for the entire document.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00157.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00157
    
        [ISM-ID-00157][Error] If ISM_CAPCO_RESOURCE and:
        1. The attribute notice contains one of the [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], or [DoD-Dist-E]
        AND
        2. The attribute noticeReason is not specified.
        
        Human Readable: DoD distribution statements B, C, D , or E  all require a reason.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute ism:noticeType with a value containing the token
        [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], or [DoD-Dist-E], we make
        sure that attribute ism:noticeReason is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00157">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:noticeType,                         ('DoD-Dist-B', 'DoD-Dist-C', 'DoD-Dist-D', 'DoD-Dist-E'))]">        
                     <sch:assert test="@ism:noticeReason" flag="error"> 
        	[ISM-ID-00157][Error] If ISM_CAPCO_RESOURCE and:
        	1. The attribute notice contains one of the [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], or [DoD-Dist-E]
        	AND
        	2. The attribute noticeReason is not specified.
        	
        	Human Readable: DoD distribution statements B, C, D , or E  all require a reason.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00158.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00158
    
        [ISM-ID-00158][Error] If ISM_CAPCO_RESOURCE and:
        1. ISM_DoD5230_24_Applies
        AND
        2. attribute classification of ISM_RESOURCE_ELEMENT is not [U]
        AND
        3. A resource attribute notice does not contain one of [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], or [DoD-Dist-F].
       
        
        Human Readable: All classified documents that claim compliance with DoD5230.24 must use one of DoD 
        distribution statements B, C, D, E, or F.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE and ISM_DOD5230_24_APPLIES and
        the attribute classification of ISM_RESOURCE_ELEMENT is not [U], then
        we make sure that the resource element specifies attribute
        ism:noticeType with a value containing the token [DoD-Dist-B],
        [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], or [DoD-Dist-F].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00158">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and $ISM_DOD5230_24_APPLIES                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and not(@ism:classification='U')]">
                     <sch:assert test="             util:containsAnyOfTheTokens(@ism:noticeType,               ('DoD-Dist-B', 'DoD-Dist-C', 'DoD-Dist-D', 'DoD-Dist-E', 'DoD-Dist-F'))"
                                 flag="error"> 
        	[ISM-ID-00158][Error] If ISM_CAPCO_RESOURCE and:
        	1. ISM_DoD5230_24_Applies
        	AND
        	2. attribute classification of ISM_RESOURCE_ELEMENT is not [U]
        	AND
        	3. The resource attribute notice does not contain one of [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], or [DoD-Dist-F].
        	
        	Human Readable: All classified documents that claim compliance with DoD5230.24 must use one of DoD 
        	distribution statements B, C, D, E, or F.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00159.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00159
    
        [ISM-ID-00159][Error] If ISM_CAPCO_RESOURCE and:
        1. attribute classification of ISM_RESOURCE_ELEMENT is not [U]
        AND
        2. The attribute notice does contain [DoD-Dist-A] 
        or has attribute externalNotice with a value of [true].
        
        Human Readable: Distribution statement A (Public Release) is forbidden on classified documents.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE and the attribute
        classification of ISM_RESOURCE_ELEMENT is not [U], for each element
        which specifies attribute ism:noticeType we make sure that attribute
        ism:noticeType is not specified with a value containing the token
        [DoD-Dist-A] unless it is an external notice with attribute ism:externalNotice is [true].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00159">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                          and not($ISM_RESOURCE_ELEMENT/@ism:classification = 'U')]">
                     <sch:assert test="not(util:containsAnyOfTheTokens(@ism:noticeType, ('DoD-Dist-A')))                 or (@ism:externalNotice=true())"
                                 flag="error"> 
            [ISM-ID-00159][Error] If ISM_CAPCO_RESOURCE and:
        1. attribute classification of ISM_RESOURCE_ELEMENT is not [U]
        AND
        2. The attribute notice does contains [DoD-Dist-A]
        or has attribute externalNotice with a value of [true].
        Human Readable: Distribution statement A (Public Release) is forbidden on classified documents.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00161.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00161
    
        [ISM-ID-00161][Error] If ISM_CAPCO_RESOURCE and:
        1. The attribute notice of ISM_RESOURCE_ELEMENT does contains [DoD-Dist-A]
        and does not have attribute externalNotice with a value of [true].
        AND
        2. attribute nonICmarkings contains any of [XD], [ND], [SBU], [SBU-NF], [LES], OR [LES-NF].
        
        Human Readable: Distribution statement A (Public Release) is incompatible with [XD], [ND], [SBU], [SBU-NF], [LES], OR [LES-NF].
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE and the attribute
    	noticeType of ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A]
    	and does not have attribute externalNotice with a value of [true], for
    	each element which specifies attribute ism:nonICmarkings we make
    	sure that attribute ism:nonICmarkings does not contain any of the
    	following tokens: [XD], [ND], [SBU], [SBU-NF], [LES], [LES-NF].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00161">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE       and (util:containsAnyOfTheTokens($ISM_RESOURCE_ELEMENT/@ism:noticeType, ('DoD-Dist-A')))       and not (@ism:externalNotice=true())]">
		                   <sch:assert test="not(util:containsAnyOfTheTokens(@ism:nonICmarkings, ('XD', 'ND', 'SBU', 'SBU-NF', 'LES', 'LES-NF')))"
                                 flag="error"> 
            [ISM-ID-00161][Error] Distribution statement A (Public Release) is incompatible with [XD], [ND], [SBU], [SBU-NF], [LES], OR [LES-NF].
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00162.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00162
    
        [ISM-ID-00162][Error] If ISM_CAPCO_RESOURCE and 
        1. ISM_DoD5230_24_Applies
        AND
        2. Attribute noticeType of ISM_RESOURCE_ELEMENT contains more than one of 
        [DoD-Dist-A], [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X]
        
        Human Readable: All USA documents that claim compliance with DoD5230.24 must have only 1 distribution statement
        for the entire document.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, ISM_DOD5230_24_APPLIES, and
      the current element is the ISM_RESOURCE_ELEMENT, we make sure that
      attribute noticeType is specified with a value containing only one of 
      [DoD-Dist-A], [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], 
      [DoD-Dist-F], or [DoD-Dist-X].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00162">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and $ISM_DOD5230_24_APPLIES                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:let name="matchingTokens"
                              value="           for $token in tokenize(normalize-space(string(@ism:noticeType)), ' ') return             if(matches($token,'^DoD-Dist-[ABCDEFX]$'))             then $token             else null           "/>  
                     <sch:assert test="count($matchingTokens) &lt;= 1" flag="error">
            [ISM-ID-00162][Error] All USA documents that claim compliance with DoD5230.24 must have only 1 distribution statement
            for the entire document.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonUSControls/ISM_ID_00163.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00163
    
        [ISM-ID-00163][Error] If attribute nonUSControls exists the attribute 
        ownerProducer must equal [NATO].
        
        Human Readable: NATO is the only owner of classification markings
        for which nonUSControls are currently authorized.
    </d:para>
         <d:para>Code Description: 
        For each element which specifies attribute ism:nonUSControls, we make
        sure that attribute ism:nonUSControls is specified with a value of [NATO].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00163">
         
         
                  <sch:rule context="*[@ism:nonUSControls]">
                     <sch:assert test="normalize-space(string(@ism:ownerProducer))='NATO'" flag="error">
        	[ISM-ID-00163][Error] If attribute nonUSControls exists the attribute 
        	ownerProducer must equal [NATO].
        	
        	Human Readable: NATO is the only owner of classification markings
        	for which nonUSControls are currently authorized.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00164.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00164
    
        [ISM-ID-00164][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls contains the name token [RS],
        then attribute classification must have a value of [TS] or [S].
        
        Human Readable: USA documents with RISK SENSITIVE dissemination must
        be classified SECRET or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [RS] we make sure that attribute ism:classification is not
    	specified with a value of [TS] or [S].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00164">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and util:containsAnyOfTheTokens(@ism:disseminationControls, ('RS'))]">
                     <sch:assert test="@ism:classification=('TS', 'S')" flag="error">
            [ISM-ID-00164][Error] If ISM_CAPCO_RESOURCE and attribute 
            disseminationControls contains the name token [RS],
            then attribute classification must have a value of [TS] or [S].
            
            Human Readable: USA documents with RISK SENSITIVE dissemination must
            be classified SECRET or TOP SECRET.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00165.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00165
    
    [ISM-ID-00165][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES in the
    document have the attribute disseminationControls containing [RS] then the 
    ISM_RESOURCE_ELEMENT must have disseminationControls containing [RS].
    
    Human Readable: USA documents having RISK SENSITIVE (RS) data must have RS at the resource level.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. If the document
    is an ISM_CAPCO_RESOURCE and an element meeting ISM_CONTRIBUTES
    specifies $attrLocalName with a value containing the token $value, then 
    we make sure that the ISM_RESOURCE_ELEMENT specifies the attribute
    $attrLocalName with a value containing the token $value.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00165" is-a="AttributeContributesToRollup">
         
         
                  <sch:param name="attrLocalName" value="disseminationControls"/>
                  <sch:param name="value" value="RS"/>
                  <sch:param name="errorMessage"
                             value="'[ISM-ID-00165][Error] USA documents having RISK SENSITIVE (RS) data must have RS at the resource level.'"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00166.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00166
    
    	[ISM-ID-00166][Warning] Attribute classification should not contain any
    	value which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:classification, we 
    	make sure that the value of ism:classification has not been deprecated
    	(as indicated by ism:deprecated in the CVE file). If the value will be 
    	deprecated in the future, then a deprecation warning will be given. 
    	If the value has already been deprecated, then a deprecation error will
    	be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00166" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00166'"/>
	                 <sch:param name="context" value="*[@ism:classification]"/>
	                 <sch:param name="attrName" value="classification"/>
	                 <sch:param name="cveName" value="CVEnumISMClassificationAll"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/displayOnlyTo/ISM_ID_00167.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00167
    
    [ISM-ID-00167][Error] If ISM_CAPCO_RESOURCE and attribute displayOnlyTo is specified, 
    then each of its values must be ordered in accordance with CVEnumISMRelTo.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00167" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="displayOnlyTo"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:displayOnlyTo)), ' ')"/>
                  <sch:param name="cveTermList" value="$displayOnlyToList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00167][Error] If ISM_CAPCO_RESOURCE and attribute displayOnlyTo is specified,      then each of its values must be ordered in accordance with CVEnumISMRelTo.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/displayOnlyTo/ISM_ID_00168.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00168
    
        [ISM-ID-00168][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls is not specified or is specified and does not contain the name token 
        [DISPLAYONLY], then attribute displayOnlyTo must not be specified.
        
        Human Readable: If a portion in a USA document is not marked for DISPLAY ONLY dissemination, 
        it must not list countries to which it may be disclosed. 
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE and attribute ism:disseminationControls
      	does not contain the token [DISPLAYONLY], we make sure that the attribute 
      	ism:displayOnlyTo is not specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00168">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and not(util:containsAnyOfTheTokens(@ism:disseminationControls, ('DISPLAYONLY')))]">
                     <sch:assert test="not(@ism:displayOnlyTo)" flag="error">
            [ISM-ID-00168][Error] If ISM_CAPCO_RESOURCE and attribute 
            disseminationControls is not specified or is specified and does not contain the name token 
            [DISPLAYONLY], then attribute displayOnlyTo must not be specified.
            
            Human Readable: If a portion in a USA document is not marked for DISPLAY ONLY dissemination, 
            it must not list countries to which it may be disclosed.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00169.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00169
    
        [ISM-ID-00169][Error] If ISM_CAPCO_RESOURCE, then for attribute disseminationControls 
        the name tokens [DISPLAYONLY], [RELIDO] and [NF] are mutually exclusive.
        
        Human Readable: In a USA document, DISPLAY ONLY, RELIDO and NO FOREIGN dissemination are 
        mutually exclusive for a single element.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic.
		If the document is an ISM-CAPCO-RESOURCE, for each element which 
		has attribute ism:disseminationControls specified with a value 
		containing the token [DISPLAYONLY], [RELIDO] or [NF], we make sure that 
		attribute ism:disseminationControls is specified with a value 
		containing only one of the tokens [DISPLAYONLY], [RELIDO] or [NF].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00169" is-a="MutuallyExclusiveAttributeValues">
         
	        
	
	                 <sch:param name="context"
                             value="*[$ISM_CAPCO_RESOURCE                                    and util:containsAnyOfTheTokens(@ism:disseminationControls, ('DISPLAYONLY', 'RELIDO', 'NF'))]"/>
	                 <sch:param name="attrValue" value="@ism:disseminationControls"/>
	                 <sch:param name="mutuallyExclusiveTokenList" value="('DISPLAYONLY', 'RELIDO', 'NF')"/>
	                 <sch:param name="errMsg"
                             value="'    [ISM-ID-00169][Error] If ISM_CAPCO_RESOURCE, then for attribute disseminationControls     the name tokens [DISPLAYONLY], [RELIDO] and [NF] are mutually exclusive.        Human Readable: In a USA document, DISPLAY ONLY, RELIDO and NO FOREIGN dissemination are     mutually exclusive for a single element.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00170.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00170
    
    	[ISM-ID-00170][Error] Attribute classification must not contain any 
    	values which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:classification, we 
    	make sure that the value of ism:classification has not been deprecated
    	(as indicated by ism:deprecated in the CVE file). If the value will be 
    	deprecated in the future, then a deprecation warning will be given. 
    	If the value has already been deprecated, then a deprecation error will
    	be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00170" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00170'"/>
	                 <sch:param name="context" value="*[@ism:classification]"/>
	                 <sch:param name="attrName" value="classification"/>
	                 <sch:param name="cveName" value="CVEnumISMClassificationAll"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00171.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00171
    
        [ISM-ID-00171][Warning] If ISM_CAPCO_RESOURCE and displayOnlyTo is specified on 
        the resource element then all classified portions must specify displayOnlyTo.
        
        Human Readable: USA documents having DISPLAYONLY data at the resource level
        must have all classified portions authorized for DISPLAYONLY.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM_CAPCO_RESOURCE, the current element is the
        ISM_RESOURCE_ELEMENT, and the ISM_RESOURCE_ELEMENT specifies attribute
        ism:displayOnlyTo, then we make sure that all elements which specify
        attribute ism:classification with a value other than [U] also specify
        the attribute ism:displayOnlyTo.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00171">
         
          
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                      and @ism:displayOnlyTo]">       
                     <sch:assert test="every $ele in //* satisfies                     $ele/@ism:classification[normalize-space() = 'U'] or $ele/@ism:displayOnlyTo"
                                 flag="warning">
            [ISM-ID-00171][Warning] If ISM_CAPCO_RESOURCE and displayOnlyTo is specified on 
            the resource element then all classified portions must specify displayOnlyTo.
            
            Human Readable: USA documents having DISPLAYONLY data at the resource level
            must have all classified portions authorized for DISPLAYONLY.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00173.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00173
    
        [ISM-ID-00173][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains a name token starting with 
        [RD-SG] or [FRD-SG], then attribute classification must 
        have a value of [TS], [S], or [C].
        
        Human Readable: Portions in a USA document that contain RD or FRD SIGMA 
        data must be marked CONFIDENTIAL, SECRET, or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing 
		a token starting with [RD-SG] or [FRD-SG], we make sure that the attribute 
		ism:classification has a value of [TS], [S], or [C].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00173">
         
	        
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                          and util:containsAnyTokenMatching(@ism:atomicEnergyMarkings, ('^RD-SG', '^FRD-SG'))]">
		                   <sch:assert test="@ism:classification = ('TS','S','C')" flag="error">
		   [ISM-ID-00173][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains a name token starting with 
        [RD-SG] or [FRD-SG], then attribute classification must 
        have a value of [TS], [S], or [C].
        
        Human Readable: Portions in a USA document that contain RD or FRD SIGMA 
        data must be marked CONFIDENTIAL, SECRET, or TOP SECRET.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00174.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00174
    
        [ISM-ID-00174][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains the name token [RD], [FRD], or [TFNI], 
        then attribute classification must have a value of [TS], [S], or [C].
        
        Human Readable: USA documents with RD, FRD, or TFNI data must be marked CONFIDENTIAL,
        SECRET, or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing 
		the token [RD], [FRD], or [TFNI], we make sure that the attribute 
		ism:classification has a value of [TS], [S], or [C].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00174">
         
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD', 'FRD', 'TFNI'))]">
		                   <sch:assert test="@ism:classification = ('TS','S','C')" flag="error">
			[ISM-ID-00174][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains the name token [RD], [FRD], or [TFNI], 
        then attribute classification must have a value of [TS], [S], or [C].
        
        Human Readable: USA documents with RD, FRD, or TFNI data must be marked CONFIDENTIAL,
        SECRET, or TOP SECRET.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00175.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00175
    
        [ISM-ID-00175][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains the name token [RD-CNWDI], then attribute 
        classification must have a value of [TS] or [S].
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESORUCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing 
		the token [RD-CNWDI], we make sure that the attribute ism:classification
		has a value of [TS] or [S].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00175">
         
	        
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                        and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD-CNWDI'))]">
		                   <sch:assert test="@ism:classification = ('TS','S')" flag="error">
			[ISM-ID-00175][Error] If ISM-CAPCO-RESOURCE and attribute 
			atomicEnergyMarkings contains the name token [RD-CNWDI], then attribute 
			classification must have a value of [TS] or [S].
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00176.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00176
    
        [ISM-ID-00176][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings has a name token containing [RD] or [FRD], 
        then attributes declassDate and declassEvent cannot be specified
        on the resourceElement.
        
        Human Readable: Automatic declassification of documents containing 
        RD or FRD information is prohibited. Attributes declassDate and 
        declassEvent cannot be used in the classification authority block when 
        RD or FRD is present.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which 
    	has attribute ism:atomicEnergyMarkings specified with a value containing
    	the token [RD] or [FRD], we make sure that the resourceElement does not
    	have attributes ism:declassDate or ism:declassEvent specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00176">
         
         
	
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                        and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD', 'FRD'))]">
                     <sch:assert test="not($ISM_RESOURCE_ELEMENT/@ism:declassDate or $ISM_RESOURCE_ELEMENT/@ism:declassEvent)"
                                 flag="error">
        	[ISM-ID-00176][Error] Automatic declassification of documents containing 
        	RD or FRD information is prohibited. Attributes declassDate and 
        	declassEvent cannot be used in the classification authority block when 
        	RD or FRD is present.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00178.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00178
    
      [ISM-ID-00178][Error] If ISM_CAPCO_RESOURCE and attribute 
      atomicEnergyMarkings is specified, then each of its values must be ordered in accordance with 
      CVEnumISMAtomicEnergyMarkings.xml.
  </d:para>
         <d:para>Code Description: 
    This rule uses an abstract pattern to consolidate logic. It verifies that
    the attribute ism:$attrLocalName has values in the same order as the list
    $cveTermList, which is defined in the main schematron file, ISM_XML.sch.
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00178" is-a="ValuesOrderedAccordingToCve">
         
         
                  <sch:param name="attrLocalName" value="atomicEnergyMarkings"/>
                  <sch:param name="attrValueTokens"
                             value="tokenize(normalize-space(string(@ism:atomicEnergyMarkings)), ' ')"/>
                  <sch:param name="cveTermList" value="$atomicEnergyMarkingsList"/>
                  <sch:param name="errorMessage"
                             value="'     [ISM-ID-00178][Error] If ISM_CAPCO_RESOURCE and attribute      atomicEnergyMarkings is specified, then each of its values must be ordered in accordance with      CVEnumISMAtomicEnergyMarkings.xml.     '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00179.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00179
    
    	[ISM-ID-00179][Warning] Attribute disseminationControls should not
    	contain any values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:disseminationControls, 
    	we make sure that the value of ism:disseminationControls has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00179" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00179'"/>
	                 <sch:param name="context" value="*[@ism:disseminationControls]"/>
	                 <sch:param name="attrName" value="disseminationControls"/>
	                 <sch:param name="cveName" value="CVEnumISMDissem"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00180.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00180
    
    	[ISM-ID-00180][Error] Attribute disseminationControls must not contain
    	values which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:disseminationControls, 
    	we make sure that the value of ism:disseminationControls has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00180" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00180'"/>
	                 <sch:param name="context" value="*[@ism:disseminationControls]"/>
	                 <sch:param name="attrName" value="disseminationControls"/>
	                 <sch:param name="cveName" value="CVEnumISMDissem"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00181.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00181
    
        [ISM-ID-00181][Error] If ISM_CAPCO_RESOURCE and element's 
        classification does not have a value of "U" then attribute atomicEnergyMarkings must not 
        contain the name token [UCNI] or [DCNI].
        
        Human Readable: UCNI and DCNI may only be used on UNCLASSIFIED portions.
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified and has attribute 
		ism:classification specified with a value other than [U], we 
		make sure that attribute ism:atomicEnergyMarkings does not contain the 
		token [UCNI] or [DNCI].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00181">
         
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and @ism:atomicEnergyMarkings                      and not(@ism:classification='U')]">
		                   <sch:assert test="not(util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('UCNI', 'DCNI')))"
                                 flag="error">
        [ISM-ID-00181][Error] If ISM_CAPCO_RESOURCE and element's 
        classification does not have a value of "U" then attribute atomicEnergyMarkings must not 
        contain the name token [UCNI] or [DCNI].
        
        Human Readable: UCNI and DCNI may only be used on UNCLASSIFIED portions.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00183.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00183
    
        [ISM-ID-00183][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains a name token starting with [RD-SG],
        then it must also contain the name token [RD].
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing a 
		token starting with [RD-SG], we make sure that attribute 
		ism:atomicEnergyMarkings also contains the token [RD].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00183">
         
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyTokenMatching(@ism:atomicEnergyMarkings, ('^RD-SG'))]">
		                   <sch:assert test="util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD'))"
                                 flag="error">
			[ISM-ID-00183][Error] If ISM_CAPCO_RESOURCE and attribute 
      atomicEnergyMarkings contains a name token starting with [RD-SG],
      then it must also contain the name token [RD].
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00184.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00184
    
        [ISM-ID-00184][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains a name token starting with [FRD-SG],
        then it must also contain the name token [FRD].
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing a 
		token starting with [FRD-SG], we make sure that attribute 
		ism:atomicEnergyMarkings also contains the token [FRD].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00184">
         
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyTokenMatching(@ism:atomicEnergyMarkings, ('^FRD-SG'))]">
		                   <sch:assert test="util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('FRD'))"
                                 flag="error">
			[ISM-ID-00184][Error] If ISM_CAPCO_RESOURCE and attribute 
			atomicEnergyMarkings contains a name token starting with [FRD-SG],
			then it must also contain the name token [FRD].
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00185.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00185
    
        [ISM-ID-00185][Error] If ISM_CAPCO_RESOURCE and attribute 
        atomicEnergyMarkings contains the name token [RD-CNWDI],
        then it must also contain the name token [RD].
    </d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE, for each element which has 
		attribute ism:atomicEnergyMarkings specified with a value containing 
		the token [RD-CNWDI], we make sure that attribute 
		ism:atomicEnergyMarkings also contains the token [RD].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00185">
         
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and util:containsAnyTokenMatching(@ism:atomicEnergyMarkings, ('RD-CNWDI'))]">
		                   <sch:assert test="util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD'))"
                                 flag="error">
			[ISM-ID-00185][Error] If ISM_CAPCO_RESOURCE and attribute 
			atomicEnergyMarkings contains the name token [RD-CNWDI],
			then it must also contain the name token [RD].
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00186.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00186
    
        [ISM-ID-00186][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains a token matching [SI-G-XXXX],
        where X is represented by the regular expression character class [A-Z]{4}, then it must also contain the
        name token [SI-G].
        
        Human Readable: A USA document that contains Special Intelligence (SI) GAMMA sub-compartments must
        also specify that it contains SI-GAMMA compartment data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM-CAPCO-RESOURCE, for each element which
      specifies attribute ism:SCIcontrols with a value containing a token
      matching [SI-G-XXXX], where X is represented by the regular expression
      character class [A-Z]{4}, we make sure that attribute ism:SCIcontrols is 
      specified with a value containing the token [SI-G].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00186">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyTokenMatching(@ism:SCIcontrols, ('^SI-G-[A-Z]{4}'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:SCIcontrols, ('SI-G'))" flag="error">
          [ISM-ID-00186][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains a token matching [SI-G-XXXX],
          where X is represented by the regular expression character class [A-Z]{4}, then it must also contain the
          name token [SI-G].
          
          Human Readable: A USA document that contains Special Intelligence (SI) GAMMA sub-compartments must
          also specify that it contains SI-GAMMA compartment data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00187.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00187
    
        [ISM-ID-00187][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [SI-G],
        then it must also contain the name token [SI].
        
        Human Readable: A USA document that contains Special Intelligence (SI) -GAMMA compartment data must also specify that 
        it contains SI data. 
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM-CAPCO-RESOURCE, for each element which
      specifies attribute ism:SCIcontrols with a value containing the token
      [SI-G] we make sure that attribute ism:SCIcontrols is 
      specified with a value containing the token [SI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00187">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('SI-G'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:SCIcontrols, ('SI'))" flag="error">
          [ISM-ID-00187][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [SI-G],
          then it must also contain the name token [SI].
          
          Human Readable: A USA document that contains Special Intelligence (SI) -GAMMA compartment data must also specify that 
          it contains SI data. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00188.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00188
    
    	[ISM-ID-00188][Warning] Attribute FGIsourceOpen should not contain any
    	value which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:FGIsourceOpen, 
    	we make sure that the value of ism:FGIsourceOpen has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00188" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00188'"/>
	                 <sch:param name="context" value="*[@ism:FGIsourceOpen]"/>
	                 <sch:param name="attrName" value="FGIsourceOpen"/>
	                 <sch:param name="cveName" value="CVEnumISMFGIOpen"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00189.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00189
    
    	[ISM-ID-00189][Error] Attribute FGIsourceOpen must not contain values 
    	that have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:FGIsourceOpen, 
    	we make sure that the value of ism:FGIsourceOpen has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00189" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00189'"/>
	                 <sch:param name="context" value="*[@ism:FGIsourceOpen]"/>
	                 <sch:param name="attrName" value="FGIsourceOpen"/>
	                 <sch:param name="cveName" value="CVEnumISMFGIOpen"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00190.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00190
    
    	[ISM-ID-00190][Warning] Attribute FGIsourceProtected should not contain
    	any values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:FGIsourceProtected, 
    	we make sure that the value of ism:FGIsourceProtected has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00190" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00190'"/>
	                 <sch:param name="context" value="*[@ism:FGIsourceProtected]"/>
	                 <sch:param name="attrName" value="FGIsourceProtected"/>
	                 <sch:param name="cveName" value="CVEnumISMFGIProtected"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00191.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00191
    
    	[ISM-ID-00191][Error] Attribute FGIsourceProtected must not contain any
    	values which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:FGIsourceProtected, 
    	we make sure that the value of ism:FGIsourceProtected has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00191" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00191'"/>
	                 <sch:param name="context" value="*[@ism:FGIsourceProtected]"/>
	                 <sch:param name="attrName" value="FGIsourceProtected"/>
	                 <sch:param name="cveName" value="CVEnumISMFGIProtected"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00192.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00192
    
    	[ISM-ID-00192][Warning] Attribute nonICmarkings should not contain any
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:nonICmarkings, 
    	we make sure that the value of ism:nonICmarkings has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00192" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00192'"/>
	                 <sch:param name="context" value="*[@ism:nonICmarkings]"/>
	                 <sch:param name="attrName" value="nonICmarkings"/>
	                 <sch:param name="cveName" value="CVEnumISMNonIC"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00193.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00193
    
    	[ISM-ID-00193][Error] Attribute nonICmarkings must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:nonICmarkings, 
    	we make sure that the value of ism:nonICmarkings has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00193" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00193'"/>
	                 <sch:param name="context" value="*[@ism:nonICmarkings]"/>
	                 <sch:param name="attrName" value="nonICmarkings"/>
	                 <sch:param name="cveName" value="CVEnumISMNonIC"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00194.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00194
    
    	[ISM-ID-00194][Warning] Attribute noticeType should not contain any values
    	which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:noticeType, 
    	we make sure that the value of ism:noticeType has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00194" is-a="AttributeValueDeprecatedWarning">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00194'"/>
	                 <sch:param name="context" value="*[@ism:noticeType]"/>
	                 <sch:param name="attrName" value="noticeType"/>
	                 <sch:param name="cveName" value="CVEnumISMNotice"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00195.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00195
    
    	[ISM-ID-00195][Error] Attribute noticeType must not contain values which 
    	have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:noticeType, 
    	we make sure that the value of ism:noticeType has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00195" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00195'"/>
	                 <sch:param name="context" value="*[@ism:noticeType]"/>
	                 <sch:param name="attrName" value="noticeType"/>
	                 <sch:param name="cveName" value="CVEnumISMNotice"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00196.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00196
    
    	[ISM-ID-00196][Warning] Attribute ownerProducer should not contain any
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:ownerProducer, 
    	we make sure that the value of ism:ownerProducer has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00196" is-a="AttributeValueDeprecatedWarning">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00196'"/>
	                 <sch:param name="context" value="*[@ism:ownerProducer]"/>
	                 <sch:param name="attrName" value="ownerProducer"/>
	                 <sch:param name="cveName" value="CVEnumISMOwnerProducer"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00197.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00197
    
    	[ISM-ID-00197][Error] Attribute ownerProducer must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:ownerProducer, 
    	we make sure that the value of ism:ownerProducer has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00197" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00197'"/>
	                 <sch:param name="context" value="*[@ism:ownerProducer]"/>
	                 <sch:param name="attrName" value="ownerProducer"/>
	                 <sch:param name="cveName" value="CVEnumISMOwnerProducer"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00198.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00198
    
    	[ISM-ID-00198][Warning] Attribute releasableTo should not contain any 
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:releasableTo, we 
		make sure that the value of ism:releasableTo has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00198" is-a="AttributeValueDeprecatedWarning">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00198'"/>
	                 <sch:param name="context" value="*[@ism:releasableTo]"/>
	                 <sch:param name="attrName" value="releasableTo"/>
	                 <sch:param name="cveName" value="CVEnumISMRelTo"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00199.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00199
    
    	[ISM-ID-00199][Error] Attribute releasableTo must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:releasableTo, 
    	we make sure that the value of ism:releasableTo has not been 
    	deprecated (as indicated by ism:deprecated in the CVE file). If the 
    	value will be deprecated in the future, then a deprecation warning will 
    	be given. If the value has already been deprecated, then a deprecation 
    	error will be given.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00199" is-a="AttributeValueDeprecatedError">
         
         

	                 <sch:param name="ruleId" value="'ISM-ID-00199'"/>
	                 <sch:param name="context" value="*[@ism:releasableTo]"/>
	                 <sch:param name="attrName" value="releasableTo"/>
	                 <sch:param name="cveName" value="CVEnumISMRelTo"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00200.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00200
    
    	[ISM-ID-00200][Warning] Attribute displayOnlyTo should not contain any
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:displayOnlyTo, we 
    	make sure that the value of ism:displayOnlyTo has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00200" is-a="AttributeValueDeprecatedWarning">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00200'"/>
	                 <sch:param name="context" value="*[@ism:displayOnlyTo]"/>
	                 <sch:param name="attrName" value="displayOnlyTo"/>
	                 <sch:param name="cveName" value="CVEnumISMRelTo"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00201.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00201
    
    	[ISM-ID-00201][Error] Attribute displayOnlyTo must not contain values 
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:displayOnlyTo, 
		we make sure that the value of ism:displayOnlyTo has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00201" is-a="AttributeValueDeprecatedError">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00201'"/>
	                 <sch:param name="context" value="*[@ism:displayOnlyTo]"/>
	                 <sch:param name="attrName" value="displayOnlyTo"/>
	                 <sch:param name="cveName" value="CVEnumISMRelTo"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00202.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00202
    
    	[ISM-ID-00202][Warning] Attribute SARIdentifier should not contain any
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:SARIdentifier, we 
		make sure that the value of ism:SARIdentifier has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00202" is-a="AttributeValueDeprecatedWarning">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00202'"/>
	                 <sch:param name="context" value="*[@ism:SARIdentifier]"/>
	                 <sch:param name="attrName" value="SARIdentifier"/>
	                 <sch:param name="cveName" value="CVEnumISMSAR"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00203.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00203
    
    	[ISM-ID-00203][Error] Attribute SARIdentifier must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:SARIdentifier, 
		we make sure that the value of ism:SARIdentifier has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00203" is-a="AttributeValueDeprecatedError">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00203'"/>
	                 <sch:param name="context" value="*[@ism:SARIdentifier]"/>
	                 <sch:param name="attrName" value="SARIdentifier"/>
	                 <sch:param name="cveName" value="CVEnumISMSAR"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00204.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00204
    
    	[ISM-ID-00204][Warning] Attribute SCIcontrols should not contain any 
    	values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:SCIControls, we 
		make sure that the value of ism:SCIControls has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00204" is-a="AttributeValueDeprecatedWarning">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00204'"/>
	                 <sch:param name="context" value="*[@ism:SCIcontrols]"/>
	                 <sch:param name="attrName" value="SCIcontrols"/>
	                 <sch:param name="cveName" value="CVEnumISMSCIControls"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00205.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00205
    
    	[ISM-ID-00205][Error] Attribute SCIcontrols must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:SCIcontrols, 
    	we make sure that the value of ism:SCIcontrols has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00205" is-a="AttributeValueDeprecatedError">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00205'"/>
	                 <sch:param name="context" value="*[@ism:SCIcontrols]"/>
	                 <sch:param name="attrName" value="SCIcontrols"/>
	                 <sch:param name="cveName" value="CVEnumISMSCIControls"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00206.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00206
    
    	[ISM-ID-00206][Warning] Attribute declassException should not contain 
    	any values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
		For each element which specifies attribute ism:declassException, we 
		make sure that the value of ism:declassException has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00206" is-a="AttributeValueDeprecatedWarning">
         
	        
	
	                 <sch:param name="ruleId" value="'ISM-ID-00206'"/>
	                 <sch:param name="context" value="*[@ism:declassException]"/>
	                 <sch:param name="attrName" value="declassException"/>
	                 <sch:param name="cveName" value="CVEnumISM25X"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00207.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00207
    
    	[ISM-ID-00207][Error] Attribute declassException must not contain 
    	values which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:declassException, 
    	we make sure that the value of ism:declassException has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00207" is-a="AttributeValueDeprecatedError">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00207'"/>
	                 <sch:param name="context" value="*[@ism:declassException]"/>
	                 <sch:param name="attrName" value="declassException"/>
	                 <sch:param name="cveName" value="CVEnumISM25X"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00208.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00208
    
    	[ISM-ID-00208][Warning] Attribute atomicEnergyMarkings should not 
    	contain any values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:atomicEnergyMarkings, we 
    	make sure that the value of ism:atomicEnergyMarkings has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00208" is-a="AttributeValueDeprecatedWarning">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00208'"/>
	                 <sch:param name="context" value="*[@ism:atomicEnergyMarkings]"/>
	                 <sch:param name="attrName" value="atomicEnergyMarkings"/>
	                 <sch:param name="cveName" value="CVEnumISMAtomicEnergyMarkings"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00209.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00209
    
    	[ISM-ID-00209][Error] Attribute atomicEnergyMarkings must not contain 
    	values which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:atomicEnergyMarkings, 
    	we make sure that the value of ism:atomicEnergyMarkings has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00209" is-a="AttributeValueDeprecatedError">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00209'"/>
	                 <sch:param name="context" value="*[@ism:atomicEnergyMarkings]"/>
	                 <sch:param name="attrName" value="atomicEnergyMarkings"/>
	                 <sch:param name="cveName" value="CVEnumISMAtomicEnergyMarkings"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00210.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00210
    
    	[ISM-ID-00210][Warning] Attribute nonUSControls should not contain
    	any values which will be deprecated.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:nonUSControls, we 
    	make sure that the value of ism:nonUSControls has not been deprecated
		(as indicated by ism:deprecated in the CVE file). If the value will be 
		deprecated in the future, then a deprecation warning will be given. 
		If the value has already been deprecated, then a deprecation error will
		be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00210" is-a="AttributeValueDeprecatedWarning">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00210'"/>
	                 <sch:param name="context" value="*[@ism:nonUSControls]"/>
	                 <sch:param name="attrName" value="nonUSControls"/>
	                 <sch:param name="cveName" value="CVEnumISMNonUSControls"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00211.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00211
    
    	[ISM-ID-00211][Error] Attribute nonUSControls must not contain values
    	which have passed their deprecation date.
    </d:para>
         <d:para>Code Description: 
    	For each element which specifies attribute ism:nonUSControls, 
    	we make sure that the value of ism:nonUSControls has not been 
		deprecated (as indicated by ism:deprecated in the CVE file). If the 
		value will be deprecated in the future, then a deprecation warning will 
		be given. If the value has already been deprecated, then a deprecation 
		error will be given.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00211" is-a="AttributeValueDeprecatedError">
         
         
	
	                 <sch:param name="ruleId" value="'ISM-ID-00211'"/>
	                 <sch:param name="context" value="*[@ism:nonUSControls]"/>
	                 <sch:param name="attrName" value="nonUSControls"/>
	                 <sch:param name="cveName" value="CVEnumISMNonUSControls"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00213.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00213
    
        [ISM-ID-00213][Error] If ISM_CAPCO_RESOURCE and attribute 
        disseminationControls contains the name token [DISPLAYONLY], then 
        attribute displayOnlyTo must be specified.
        
        Human Readable: A USA document with DISPLAY ONLY dissemination must 
        indicate the countries to which it may be disclosed.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:disseminationControls specified with a value containing
    	the token [DISPLAYONLY] we make sure that attribute ism:displayOnlyTo
    	is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00213">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and util:containsAnyOfTheTokens(@ism:disseminationControls, ('DISPLAYONLY'))]">
                     <sch:assert test="@ism:displayOnlyTo" flag="error">
        	[ISM-ID-00213][Error] If ISM_CAPCO_RESOURCE and attribute 
        	disseminationControls contains the name token [DISPLAYONLY], then 
        	attribute displayOnlyTo must be specified.
        	
        	Human Readable: A USA document with DISPLAY ONLY dissemination must 
        	indicate the countries to which it may be disclosed.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/releasableTo/ISM_ID_00214.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00214
    
        [ISM-ID-00214][Error] If ISM_CAPCO_RESOURCE then attribute 
        releasableTo must start with [USA].
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE, for each element which
        specifies attribute releasableTo we make sure that attribute
        releasableTo is specified with a value that starts with the token [USA].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00214">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:releasableTo]">
                     <sch:assert test="index-of(tokenize(normalize-space(string(@ism:releasableTo)),' '),'USA')=1"
                                 flag="error">
            [ISM-ID-00214][Error] If ISM_CAPCO_RESOURCE then attribute 
            releasableTo must start with [USA].
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00217.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00217
    
        [ISM-ID-00217][Error] If ISM_CAPCO_RESOURCE attribute FGIsourceProtected
        contains [FGI], it must be the only value.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which specifies
    	the attribute ism:FGIsourceProtected, we make sure that attribute
    	ism:FGIsourceProtected contains only the token [FGI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00217">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:FGIsourceProtected]">
		                   <sch:assert test="normalize-space(string(@ism:FGIsourceProtected))='FGI'" flag="error">
        	[ISM-ID-00217][Error] If ISM_CAPCO_RESOURCE attribute FGIsourceProtected
        	contains [FGI], it must be the only value.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00219.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00219
    
        [ISM-ID-00219][Error] If element meets ISM_CONTRIBUTES and attribute
        ownerProducer contains the token [FGI], then attribute 
        FGIsourceProtected must have a value containing the token [FGI].
        
        Human Readable: Any non-resource element that contributes to the 
        document's banner roll-up and has FOREIGN GOVERNMENT INFORMATION (FGI)
        must also specify attribute FGIsourceProtected with token FGI.
    </d:para>
         <d:para>Code Description: 
        For each element which is not the $ISM_RESOURCE_ELEMENT and meets 
        ISM_CONTRIBUTES and specifies attribute ism:ownerProducer with a value
        containing the token [FGI], we make sure that attribute 
        ism:FGIsourceProtected is specified with a value containing the
        token [FGI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00219">
         
         
                  <sch:rule context="*[not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT))                         and not(@ism:excludeFromRollup=true())                         and util:containsAnyOfTheTokens(@ism:ownerProducer, ('FGI'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:FGIsourceProtected, ('FGI'))"
                                 flag="error">
            [ISM-ID-00219][Error] If element meets ISM_CONTRIBUTES and attribute
            ownerProducer contains the token [FGI], then attribute 
            FGIsourceProtected must have a value containing the token [FGI].
            
            Human Readable: Any non-resource element that contributes to the 
            document's banner roll-up and has FOREIGN GOVERNMENT INFORMATION (FGI)
            must also specify attribute FGIsourceProtected with token FGI.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/derivativelyClassifiedBy/ISM_ID_00221.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00221
    
        [ISM-ID-00221][Error] If ISM_CAPCO_RESOURCE and attribute 
        derivativelyClassifiedBy is specified, then attribute classificationReason
        must not be specified.
        
        Human Readable: USA documents that are derivatively classified must not
        specify a classification reason.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which 
    	specifies attribute ism:derivativelyClassifiedBy we make sure that
    	attribute ism:classificationReason is NOT specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00221">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:derivativelyClassifiedBy]">
                     <sch:assert test="not(@ism:classificationReason)" flag="error">
        	[ISM-ID-00221][Error] If ISM_CAPCO_RESOURCE and attribute 
        	derivativelyClassifiedBy is specified, then attribute classificationReason
        	must not be specified.
        	
        	Human Readable: USA documents that are derivatively classified must not
        	specify a classification reason.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/compliesWith/ISM_ID_00222.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00222
    
        [ISM-ID-00222][Error] If ISM_INTELREPORT_APPLIES, then attribute pocType
        must be specified with a value of [ICD-710] on some element in the
        document.
        
        Human Readable: A document claiming compliance with ICD-710 must specify
        a point-of-contact to whom questions about the document can be directed.
    </d:para>
         <d:para>Code Description: 
        If ISM_INTELREPORT_APPLIES, then ensure that some element specifies 
        attribute ism:pocType with a value of [ICD-710].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00222">
         
          
                  <sch:rule context="/*[$ISM_INTELREPORT_APPLIES]">       
                     <sch:assert test="index-of($partPocType_tok, 'ICD-710') &gt; 0" flag="error">
        	[ISM-ID-00222][Error] If ISM_INTELREPORT_APPLIES, then attribute pocType
        	must be specified with a value of [ICD-710] on some element in the
        	document.
        	
        	Human Readable: A document claiming compliance with ICD-710 must specify
        	a point-of-contact to whom questions about the document can be directed.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00223.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00223
    
        [ISM-ID-00223][Error] If any elements in namespace 
        urn:us:gov:ic:ism exist, the local name must exist in CVEnumISMElements.xml. 
        
        Human Readable: Ensure that elements in the ISM namespace are defined by ISM.XML.
    </d:para>
         <d:para>Code Description: 
		This rule uses an abstract pattern to consolidate logic. It checks that the
		value in parameter $searchTerm is contained in the parameter $list. The parameter
		$searchTerm is relative in scope to the parameter $context. The value for the parameter 
		$list is a variable defined in the main document (ISM_XML.sch), which reads 
		values from a specific CVE file.
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00223" is-a="ValidateValueExistenceInList">
    
         
	        
	
	                 <sch:param name="context" value="ism:*"/>
	                 <sch:param name="searchTerm" value="local-name()"/>
	                 <sch:param name="list" value="$validElementList"/>
	                 <sch:param name="errMsg"
                             value="'   [ISM-ID-00223][Error] If any elements in namespace    urn:us:gov:ic:ism exist, the local name must exist in CVEnumISMElements.xml.       Human Readable: Ensure that elements in the ISM namespace are defined by ISM.XML.   '"/>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/pocType/ISM_ID_00224.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00224
    
        [ISM-ID-00224][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
        in the document has the attribute disseminationControls containing [OC], then the 
        attribute @ism:pocType with value [ORCON] must be specified on some element in the document. 

        Human Readable: In accordance with the ORCON Memo dated March 11, 2011, 
        USA documents containing ORIGINATOR CONTROLLED data must specify a 
        point-of-contact to whom adjudication decisions about those data can be
        directed.
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM-CAPCO-RESOURCE and the ISM_RESOURCE_ELEMENT
        specifies attribute disseminationControls with a value containing the
        token [OC] and the ISM_RESOURCE_ELEMENT specifies the attribtue
        createDate with a date equal to or greater than
        the ISM_ORCON_POC_DATE, we make sure that an element meeting 
        ISM_CONTRIBUTES specifies the attribute ism:pocType with a value
        containing the token [ORCON].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00224">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.)=generate-id($ISM_RESOURCE_ELEMENT)                         and $ISM_RESOURCE_CREATE_DATE &gt; $ISM_ORCON_POC_DATE                         and $bannerDisseminationControls_tok='OC']">
                     <sch:assert test="$partPocType_tok='ORCON'" flag="error">
            [ISM-ID-00224][Error] If ISM_CAPCO_RESOURCE and any element meeting ISM_CONTRIBUTES 
            in the document has the attribute disseminationControls containing [OC], then the 
            attribute @ism:pocType with value [ORCON] must be specified on some element in the document. 

            Human Readable: In accordance with the ORCON Memo dated March 11, 2011, 
            USA documents containing ORIGINATOR CONTROLLED data must specify a 
            point-of-contact to whom adjudication decisions about those data can be
            directed.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00225.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00225
    
        [ISM-ID-00225][Error] If ISM-ICDOCUMENT-APPLIES, then attribute 
        nonICmarkings must not be specified with a value containing any name 
        token starting with [ACCM] or [NNPI]. 
        
        Human Readable: ACCM and NNPI tokens are not valid for documents that claim
        compliance with IC rules.
    </d:para>
         <d:para>Code Description: 
    	If ISM_ICDOCUMENT_APPLIES, for each element which has attribute 
    	ism:nonICmarkings specified, we make sure that attribute
    	ism:nonICmarkings is not specified with a value containing a token
    	which starts with [ACCM] or [NNPI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00225">
         
         
	                 <sch:rule context="*[$ISM_ICDOCUMENT_APPLIES and @ism:nonICmarkings]">
                     <sch:assert test="not(util:containsAnyTokenMatching(@ism:nonICmarkings, ('ACCM', 'NNPI')))"
                                 flag="error">
        	[ISM-ID-00225][Error] If ISM-ICDOCUMENT-APPLIES, then attribute 
        	nonICmarkings must not be specified with a value containing any name 
        	token starting with [ACCM] or [NNPI]. 
        	
        	Human Readable: ACCM and NNPI tokens are not valid for documents that claim
        	compliance with IC rules.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00226.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00226
    
        [ISM-ID-00226][Error] Attributes @ism:noticeType and @ism:unregisteredNoticeType
        may not both be used on the same element. 
        
        Human Readable: Ensure that the ISM attributes noticeType and
        unregisteredNoticeType are not used on the same element.
    </d:para>
         <d:para>Code Description: 
        For each element which has attribute ism:noticeType specified, we
        make sure that ism:unregisteredNoticeType is not specified. 
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00226">
    
         
         

                  <sch:rule context="*[@ism:noticeType]">
                     <sch:assert flag="error" test="not(@ism:unregisteredNoticeType)">
            [ISM-ID-00226][Error]
            @ism:noticeType and @ism:unregisteredNoticeType may not both be 
            applied to the same element.
            
            Human Readable: The ISM attributes noticeType and unregisteredNoticeType 
            are mutually exclusive and cannot both be applied to the same element. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00227.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00227
    
        [ISM-ID-00227][Error] Attribute @noticeType may only appear on the 
        resource node when it contains the values [DoD-Dist-A], [DoD-Dist-B], 
        [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X].
        
        Human Readable: Documents may only specify a document-level notice if
        it pertains to DoD Distribution.
    </d:para>
         <d:para>Code Description: 
        For every resource element with the ism:noticeType attribute specified,
        we make sure that attribute's value is one of [DoD-Dist-A], [DoD-Dist-B], 
        [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X]
        by using a regular expression.
        
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00227">
         
          
                  <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                        and @ism:noticeType]">       
                     <sch:assert test="every $noticeToken in tokenize(normalize-space(string(@ism:noticeType)), ' ') satisfies                     matches($noticeToken, '^DoD-Dist-[ABCDEFX]')"
                                 flag="error">
            [ISM-ID-00227][Error] Attribute @noticeType may only appear on the 
            resource node when it contains the values [DoD-Dist-A], [DoD-Dist-B], 
            [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X].
            
            Human Readable: Documents may only specify a document-level notice if
            it pertains to DoD Distribution.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00228.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00228
    
        [ISM-ID-00228][Error] If ISM_CAPCO_RESOURCE and attribute atomicEnergyMarkings of ISM_RESOURCE_ELEMENT contains 
        [FRD] then at least one element meeting ISM_CONTRIBUTES in the document must have a 
        atomicEnergyMarking attribute containing [FRD].
        
        Human Readable: USA documents marked FRD at the resource level must have FRD data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the
      ISM_RESOURCE_ELEMENT, and attribute ism:atomicEnergyMarkings is specified
      with a value containing the value [FRD], then we make sure that some
      element meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
      with a value containing [FRD].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00228">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('FRD'))]">
                     <sch:assert test="index-of($partAtomicEnergyMarkings_tok,'FRD')&gt;0" flag="error">
            [ISM-ID-00228][Error] USA documents marked FRD at the resource level must have FRD data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00229.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00229
    
        [ISM-ID-00229][Error] If ISM_CAPCO_RESOURCE and attribute atomicEnergyMarkings of ISM_RESOURCE_ELEMENT contains 
        [RD] then at least one element meeting ISM_CONTRIBUTES in the document must have a 
        atomicEnergyMarking attribute containing [RD].
        
        Human Readable: USA documents marked RD at the resource level must have RD data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the
      ISM_RESOURCE_ELEMENT, and attribute ism:atomicEnergyMarkings is specified
      with a value containing the value [RD], then we make sure that some
      element meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
      with a value containing [RD].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00229">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD'))]">
                     <sch:assert test="index-of($partAtomicEnergyMarkings_tok,'RD')&gt;0" flag="error">
            [ISM-ID-00229][Error] USA documents marked RD at the resource level must have RD data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00230.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00230
    
        [ISM-ID-00230][Error] If ISM_CAPCO_RESOURCE and attribute atomicEnergyMarkings of ISM_RESOURCE_ELEMENT contains 
        [FRD-SG-##] then at least one element meeting ISM_CONTRIBUTES in the document must have a 
        atomicEnergyMarking attribute containing the same [FRD-SG-##].
        
        Human Readable: USA documents marked FRD-SG-## at the resource level must have FRD-SG-## data, where ## is the same.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the
      ISM_RESOURCE_ELEMENT, and attribute ism:atomicEnergyMarkings is specified
      with a value containing a token matching [FRD-SG-##], then we make sure that some
      element meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
      with a value containing a token matching the same [FRD-SG-##].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00230">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:let name="matchingTokens"
                              value="           for $token in tokenize(normalize-space(string(@ism:atomicEnergyMarkings)), ' ') return             if(matches($token,'^FRD-SG-[1-9][0-9]?$'))             then $token             else null           "/>  
                     <sch:assert test="every $token in $matchingTokens satisfies                             index-of($partAtomicEnergyMarkings_tok, $token) &gt; 0"
                                 flag="error">
          [ISM-ID-00230][Error] USA documents marked FRD-SG-## at the resource level must have FRD-SG-## data, where ## is the same.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00231.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00231
    
        [ISM-ID-00231][Error] If ISM_CAPCO_RESOURCE and attribute atomicEnergyMarkings of ISM_RESOURCE_ELEMENT contains 
        [RD-SG-##] then at least one element meeting ISM_CONTRIBUTES in the document must have a 
        atomicEnergyMarking attribute containing the same [RD-SG-##].
        
        Human Readable: USA documents marked RD-SG-## at the resource level must have RD-SG-## data, where ## is the same.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the
      ISM_RESOURCE_ELEMENT, and attribute ism:atomicEnergyMarkings is specified
      with a value containing a token matching [RD-SG-##], then we make sure that some
      element meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
      with a value containing a token matching the same [RD-SG-##].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00231">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)]">
                     <sch:let name="matchingTokens"
                              value="         for $token in tokenize(normalize-space(string(@ism:atomicEnergyMarkings)), ' ') return           if(matches($token,'^RD-SG-[1-9][0-9]?$'))           then $token           else null         "/>  
                     <sch:assert test="every $token in $matchingTokens satisfies                           index-of($partAtomicEnergyMarkings_tok, $token) &gt; 0"
                                 flag="error">
          [ISM-ID-00231][Error] USA documents marked RD-SG-## at the resource level must have RD-SG-## data, where ## is the same.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00233.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00233
    
        [ISM-ID-00233][Error] If ISM_CAPCO_RESOURCE, then any portion with  
        attribute FGIsourceOpen specified and an ownerProducer containing [USA]
        must not have attribute disseminationControls containing [DISPLAYONLY] 
        or [RELIDO].
        
        Human Readable: DISPLAYONLY and RELIDO are not authorized for use on portions 
        containing Foreign Government Information.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which is not
    	the ISM_RESOURCE_ELEMENT, has attribute ism:FGIsourceOpen specified, has
    	attribute ism:disseminationControls specified, and has attribute 
    	ism:ownerProducer specified with a value containing the
    	token [USA], we make sure that attribute ism:disseminationControls does
    	not contain the token [DISPLAYONLY] or [RELIDO].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00233">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                  and not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT))                 and @ism:FGIsourceOpen                    and util:containsAnyOfTheTokens(@ism:ownerProducer, ('USA'))]">
                     <sch:assert test="not(util:containsAnyOfTheTokens(@ism:disseminationControls, ('DISPLAYONLY', 'RELIDO')))"
                                 flag="error">
        	[ISM-ID-00233][Error] If ISM_CAPCO_RESOURCE, then any portion with  
        	attribute FGIsourceOpen specified and an ownerProducer containing [USA]
        	must not have attribute disseminationControls containing [DISPLAYONLY] 
        	or [RELIDO].
        	
        	Human Readable: DISPLAYONLY and RELIDO are not authorized for use on portions 
        	containing Foreign Government Information.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00234.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00234
    
        [ISM-ID-00234][Error] If ISM_CAPCO_RESOURCE, then any portion with  
        attribute FGIsourceProtected specified and an ownerProducer containing [USA]
        must not have attribute disseminationControls containing token 
        [RELIDO] or [DISPLAYONLY].
        
        Human Readable: RELIDO and DISPLAYONLY are not authorized for use on portions containing
        Foreign Government Information.
    </d:para>
         <d:para>Code Description: 
    If the document is an ISM-CAPCO-RESOURCE, for each element which is not
    the ISM_RESOURCE_ELEMENT, has attribute ism:FGIsourceProtected specified, has
    attribute ism:disseminationControls specified, and has attribute 
    ism:ownerProducer specified with a value containing the
    token [USA], we make sure that attribute ism:disseminationControls does
    not contain the token [DISPLAYONLY] or [DISPLAYONLY].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00234">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                 and not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT))                 and @ism:FGIsourceProtected                       and util:containsAnyOfTheTokens(@ism:ownerProducer,('USA'))  ]">
                     <sch:assert test="not(util:containsAnyOfTheTokens(@ism:disseminationControls,('RELIDO', 'DISPLAYONLY')))"
                                 flag="error">
          [ISM-ID-00234][Error] If ISM_CAPCO_RESOURCE, then any portion with  
          attribute FGIsourceProtected specified and an ownerProducer containing [USA]
          must not have attribute disseminationControls containing token 
          [RELIDO] or [DISPLAYONLY].
          
          Human Readable: RELIDO and DISPLAYONLY are not authorized for use on portions containing
          Foreign Government Information.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00236.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00236
     [ISM-ID-00236][Error] Duplicate tokens are not permitted in ISM
        attributes.</d:para>
         <d:para>Code Description:  To determine the valid values, this rule first retrieves the CVE values
        for the attribute, which in this case is classification. Then, each attribute token is
        converted into a numerical value based on its characters. Next, each attribute token is
        given an order number, which compares its position to that of its value in the CVE file. If
        the token is not found, its order number will be -1. If the document is a CAPCO resource and
        the ownerProducer of this element is 'USA', then the rule will fail if tokens are found with
        order numbers of -1. The rule will also fail if duplicate values are found for the element,
        or when its count is greater than 1. </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00236">
         

         

                  <sch:rule context="*[@ism:*]">
        <!-- Define variables -->
        <sch:let name="errMsg_ValueNotFound"
                              value="'             [ISM-ID-00236][Error] If ISM_CAPCO_RESOURCE and attribute              ownerProducer contains [USA] then attribute classification must have a value in              CVEnumISMClassificationUS.xml.'             "/>

                     <!-- Determine if the list has duplicate values. If and only if it does, figure out which ones are duplicates -->
        <sch:let name="dupAttrs"
                              value="for $attr in ./@ism:* return if(count(distinct-values(tokenize(string($attr),' '))) != count(tokenize(string($attr),' '))) then $attr else null"/>
                     <sch:let name="hasDups" value="count($dupAttrs)&gt;0"/>
                     <sch:let name="dupValues"
                              value="     if ($hasDups) then     distinct-values(     for $attrib in $dupAttrs return     for $each in tokenize(string($attrib),' ') return     if(count(index-of(tokenize(string($attrib),' '), $each))&gt;1)     then concat(string($each),' in attribute ',$attrib/name(),'; ')     else null)     else null     "/>

                     <sch:assert test="not($hasDups)" flag="error"> [ISM-ID-00236][Error] Duplicate tokens
            are not permitted in ISM attributes. Duplicate values found: [<sch:value-of select="$dupValues"/>]</sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00237.sch</d:title>
         <d:para> Rule Description: ISM-ID-00237
    
        [ISM-ID-00237][Error] If ISM-CAPCO-RESOURCE, any element which specifies
        attribute noticeType containing one of the tokens [DoD-Dist-B], 
       	[DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X]
       	must also specify attribute noticeDate.
       	
        Human Readable: DoD distribution statements B, C, D ,E ,F, and X all require a date.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:noticeType specified with a value containing the token
        [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], 
        or [DoD-Dist-X], we make sure that attribute ism:noticeDate is specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><sch:pattern id="ISM-ID-00237">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE          and util:containsAnyOfTheTokens(@ism:noticeType,            ('DoD-Dist-B', 'DoD-Dist-C', 'DoD-Dist-D', 'DoD-Dist-E', 'DoD-Dist-F', 'DoD-Dist-X'))]">
                     <sch:assert test="@ism:noticeDate" flag="error"> 
            [ISM-ID-00237][Error] DoD distribution statements B, C, D ,E ,F, and X all require a date.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00238.sch</d:title>
         <d:para> Rule Description: ISM-ID-00238
    
    	[ISM-ID-00238][Error] If ISM-CAPCO-RESOURCE, if any element specifies
    	attribute noticeType containing one of the tokens [DoD-Dist-B], 
    	[DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], or [DoD-Dist-X],
    	then an element in the document must specify attribute pocType with
    	the same value as attribute noticeType.
    	
        Human Readable: DoD distribution statements B, C, D ,E ,F, and X all 
        require a corresponding point of contact.
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE, for each element which has 
    	attribute ism:noticeType specified with a value containing the token
        [DoD-Dist-B], [DoD-Dist-C], [DoD-Dist-D], [DoD-Dist-E], [DoD-Dist-F], 
        or [DoD-Dist-X], we make sure that some element in the document 
        specifies attribute ism:pocType with the same value as ism:noticeType.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><sch:pattern id="ISM-ID-00238">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE          and util:containsAnyOfTheTokens(@ism:noticeType,            ('DoD-Dist-B', 'DoD-Dist-C', 'DoD-Dist-D', 'DoD-Dist-E', 'DoD-Dist-F', 'DoD-Dist-X'))]">
                     <sch:let name="foundNoticeTokens"
                              value="           for $noticeToken in tokenize(normalize-space(string(@ism:noticeType)), ' ') return                if(matches($noticeToken, '^DoD-Dist-[BCDEFX]'))               then $noticeToken               else null"/>
                     <sch:assert test="every $noticeToken in $foundNoticeTokens satisfies                  index-of($partPocType_tok, $noticeToken)&gt;0"
                                 flag="error"> 
        	[ISM-ID-00238][Error] DoD distribution statements B, C, D ,E ,F, and X all 
        	require a corresponding point of contact.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00239.sch</d:title>
         <d:para> Rule Description: ISM-ID-00239
    
		[ISM-ID-00239][Error] If ISM_CAPCO_RESOURCE and attribute noticeType of
		ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], then any element 
		which contributes to rollup should not have an attribute
		disseminationControls that contains any of the following tokens:
		[FOUO], [PR], [DSEN], or [FISA].
		
		Human Readable: Distribution statement A (Public Release) is incompatible 
		with [FOUO], [PR], [DSEN], and [FISA] for contributing portions.
	</d:para>
         <d:para>Code Description: 
		If the document is an ISM-CAPCO-RESOURCE and the attribute
		noticeType of ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], for
		each element which specifies attribute ism:disseminationControls 
		we make sure that attribute ism:disseminationControls does not contain any of the
		following tokens: [FOUO], [PR], [DSEN], [FISA].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><sch:pattern id="ISM-ID-00239">
	        
	        
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE   and util:containsAnyOfTheTokens($ISM_RESOURCE_ELEMENT/@ism:noticeType, ('DoD-Dist-A'))   and not (@ism:excludeFromRollup='true')]">
		                   <sch:assert test="    not(util:containsAnyOfTheTokens(@ism:disseminationControls, ('FOUO', 'PR', 'DSEN', 'FISA')))"
                                 flag="error"> 
			[ISM-ID-00239][Error] If ISM_CAPCO_RESOURCE and attribute noticeType of
			ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], then any element 
			which contributes to rollup should not have an attribute
			disseminationControls that contains any of the following tokens:
			[FOUO], [PR], [DSEN], or [FISA].
			
			Human Readable: Distribution statement A (Public Release) is incompatible 
			with [FOUO], [PR], [DSEN], and [FISA] for contributing portions.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00240.sch</d:title>
         <d:para> Rule Description: ISM-ID-00240
    
        [ISM-ID-00240][Error] If ISM_CAPCO_RESOURCE and attribute noticeType of
        ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], then any element
        which contributes to rolluop should not have an attribute
        atomicEnergyMarkings that contains any of the following tokens:
        [DCNI], [UCNI].
        
        Human Readable: Distribution statement A (Public Release) is incompatible 
        with [DCNI] and [UCNI].
    </d:para>
         <d:para>Code Description: 
    	If the document is an ISM-CAPCO-RESOURCE and the attribute
    	noticeType of ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], for
    	each element which specifies attribute ism:atomicEnergyMarkings we make
    	sure that attribute ism:atomicEnergyMarkings does not contain any of the
    	following tokens: [DCNI], [UCNI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><sch:pattern id="ISM-ID-00240">
         
         
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                 and util:containsAnyOfTheTokens($ISM_RESOURCE_ELEMENT/@ism:noticeType, ('DoD-Dist-A'))                 and not (@ism:excludeFromRollup='true')]">
                     <sch:assert test="not(util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('DCNI', 'UCNI')))"
                                 flag="error"> 
            [ISM-ID-00240][Error] If ISM_CAPCO_RESOURCE and attribute noticeType of
            ISM_RESOURCE_ELEMENT contains the token [DoD-Dist-A], then any element
            which contributes to rolluop should not have an attribute
            atomicEnergyMarkings that contains any of the following tokens:
            [DCNI], [UCNI].
            
            Human Readable: Distribution statement A (Public Release) is incompatible 
            with [DCNI] and [UCNI].
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00241.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00241
    
        [ISM-ID-00241][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV-XXX],
        then it must also contain the name token [RSV].
        
        Human Readable: A USA document that contains RESEVERE data (RSV) compartment data must also specify that 
        it contains RSV data. 
    </d:para>
         <d:para>Code Description: 
        If the document is an ISM_CAPCO_RESOURCE, for each element which specifies
        attribute ism:SCIcontrols with a value containing a token matching
        the regular expression "RSV-[A-Z0-9]{3}", we make sure that attribute
        ism:SCIcontrols is specified with a value containing the token [RSV].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00241">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and util:containsAnyTokenMatching(@ism:SCIcontrols, ('RSV-[A-Z0-9]{3}'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:SCIcontrols, ('RSV'))" flag="error">
            [ISM-ID-00241][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV-XXX],
            then it must also contain the name token [RSV].
            
            Human Readable: A USA document that contains RESEVERE data (RSV) compartment data must also specify that 
            it contains RSV data. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00242.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00242
    
        [ISM-ID-00242][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV],
        then it must also have attribute classificatoin with a value of [S] or [TS].
        
        Human Readalbe: A USA document that contains RESERVE data must be classified SECRET or TOP SECRET.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, for each element which specifies
      attribute ism:SCIcontrols with a value containing the token [RSV], we make
      sure that attribute ism:classification is specified with a value containing
      the token [TS] or [S].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00242">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('RSV'))]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:classification, ('TS', 'S'))"
                                 flag="error">
            [[ISM-ID-00242][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV],
            then it must also have attribute classificatoin with a value of [S] or [TS].
            
            Human Readalbe: A USA document that contains RESERVE data must be classified SECRET or TOP SECRET. 
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00243.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00243
    
    [ISM-ID-00243][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV],
    then it must also contain a compartment [RSV-XXX].
    
    Human Readable: RESERVE is not permitted as a stand-alone value and a compartment must be expressed.
  </d:para>
         <d:para>Code Description: 
    If the document is an ISM_CAPCO_RESOURCE, for each element which specifies
    attribute ism:SCIcontrols with a value containing the token [RSV], we make
    sure that attribute ism:SCIcontrols is specified with a value containing
    a token maching the regular expression "RSV-[A-Z0-9]{3}".
    
    If CAPCO rules do not apply to the document then the rule does not apply
    and we return true. If the current element has attribute SCIcontrols specified
    with a value containing [RSV], then we make sure that attribute SCIcontrols also contains the value [RSV-XXX].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00243">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE and util:containsAnyOfTheTokens(@ism:SCIcontrols, ('RSV'))]">
                     <sch:assert test="util:containsAnyTokenMatching(@ism:SCIcontrols, ('RSV-[A-Z0-9]{3}'))"
                                 flag="error">
      [ISM-ID-00243][Error] If ISM_CAPCO_RESOURCE and attribute SCIcontrols contains the name token [RSV],
      then it must also contain a compartment [RSV-XXX].
      
      Human Readable: RESERVE is not permitted as a stand-alone value and a compartment must be expressed.
    </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00244.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00244
    
    [ISM-ID-00244][Error] If ISM_CAPCO_RESOURCE and:
    1. Any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing [RD-CNWDI]
    AND
    2. No element meeting ISM_CONTRIBUTES in the document has noticeType containing [CNWDI].
    that does not have attribute externalNotice with a value of [true].
    Human Readable: USA documents containing CNWDI data must also have an CNWDI notice.
  </d:para>
         <d:para>Code Description: 
    If the document is an ISM_CAPCO_RESOURCE, for each element meeting
    ISM_CONTRIBUTES which specifies attribute ism:atomicEnergyMarkings with
    a value containing the token [RD-CNWDI], we make sure that some element
    in the document specifies attribute ism:noticeType with a value containing
    the token [CNWDI] and not an attribute externalNotice with a value of [true].
  </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00244">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and not(@ism:excludeFromRollup=true())                       and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD-CNWDI'))]">
                     <sch:assert test="       some $elem in $partTags satisfies         ($elem[@ism:noticeType]         and util:containsAnyOfTheTokens($elem/@ism:noticeType, ('CNWDI'))         and not ($elem/@ism:externalNotice=true()))"
                                 flag="error">
      [ISM-ID-00244][Error] If ISM_CAPCO_RESOURCE and:
      1. Any element meeting ISM_CONTRIBUTES in the document has the attribute atomicEnergyMarkings containing [RD-CNWDI]
      AND
      2. No element meeting ISM_CONTRIBUTES in the document has noticeType containing [CNWDI].
      
      Human Readable: USA documents containing CNWDI data must also have an CNWDI notice.
    </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00245.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00245
    
        [ISM-ID-00245][WarNING] If ISM_CAPCO_RESOURCE and:
        1. No element without ism:excludeFromRollup=true() in the document has the attribute atomicEnergyMarkings containing [RD-CNWDI]
        AND
        2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [CNWDI]
        and not the attribute externalNotice with a value of [true].
        Human Readable: USA documents containing an CNWDI notice must also have RD-CNWDI data.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, for each element which meets
      ISM_CONTRIBUTES and specifies attribute ism:noticeType with a value
      containing the token [CNWDI] and not the attribute externalNotice with a value of [true], we make sure that some element in the
      document specifies attribute ism:atomicEnergyMarkings with a value
      containing the token [RD-CNWDI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00245">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and not(@ism:excludeFromRollup=true())                         and (util:containsAnyOfTheTokens(@ism:noticeType, ('CNWDI')))                         and not (@ism:externalNotice=true())]">
                     <sch:assert test="index-of($partAtomicEnergyMarkings_tok, 'RD-CNWDI')&gt;0" flag="warning">
            [ISM-ID-00245][Warning] If ISM_CAPCO_RESOURCE and:
            1. No element without ism:excludeFromRollup=true() in the document has the attribute atomicEnergyMarkings containing [RD-CNWDI]
            AND
            2. Any element without ism:excludeFromRollup=true() in the document has the attribute noticeType containing [CNWDI]
            without the attribute externalNotice with a value of [true]
            
            Human Readable: USA documents containing an CNWDI notice must also have RD-CNWDI data.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00246.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00246
    
        [ISM-ID-00246][Error] If ISM_CAPCO_RESOURCE and attribute atomicEnergyMarkings of ISM_RESOURCE_ELEMENT contains 
        [RD] or [FRD] then at least one element meeting ISM_CONTRIBUTES in the document must have a 
        atomicEnergyMarking attribute containing the same [RD-SG-##].
        
        Human Readable: USA documents containing [RD] or [FRD] data must have declassException containing [AEA] at the resource level.
    </d:para>
         <d:para>Code Description: 
      If the document is an ISM_CAPCO_RESOURCE, the current element is the
      ISM_RESOURCE_ELEMENT, and attribute ism:atomicEnergyMarkings is specified
      with a value containing a token matching [RD-SG-##], then we make sure that some
      element meeting ISM_CONTRIBUTES specifies attribute ism:atomicEnergyMarkings
      with a value containing a token matching the same [RD-SG-##].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00246">
         
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                         and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                         and util:containsAnyOfTheTokens(@ism:atomicEnergyMarkings, ('RD','FRD'))]">
      
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:declassException, ('AEA'))" flag="error">
          [ISM-ID-00246][Error] USA documents containing [RD] or [FRD] data must have declassException containing [AEA] at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/pocType/ISM_ID_00247.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00247
    
        [ISM-ID-00247][Error] An Originator Controlled contact is not allowed to be mark with disseminationControl [OC]
    </d:para>
         <d:para>Code Description: 
        check that any element that has attribute ism:pocType with a ORCON token does not have attribute ism:disseminationControls with
        a token [OC] specified.
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00247">
         
         
                  <sch:rule context="*[util:containsAnyTokenMatching(@ism:pocType,'^ORCON$')]">
                     <sch:assert test="not(util:containsAnyTokenMatching(@ism:disseminationControls,'^OC$'))"
                                 flag="error">
            [ISM-ID-00247][Error] An Originator Controlled contact is not allowed to be mark with disseminationControl [OC]
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00248.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00248
    
		[ISM-ID-00248][Error] ISM_RESOURCE_ELEMENT cannot have externalNotice set to [true].
		
		Human Readable: ISM resource elements can not be external notices.
	</d:para>
         <d:para>Code Description: 
		If ISM_RESOURCE_ELEMENT, we make sure that the ISM_RESOURCE_ELEMENT does not contain
		externalNotice set to [true].
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00248">
	        
	        
	                 <sch:rule context="*[generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)][@ism:externalNotice]">
		                   <sch:assert test="not(string(@ism:externalNotice)='true')" flag="error">
			[ISM-ID-00248][Error] ISM_RESOURCE_ELEMENT cannot have externalNotice set to [true].
			
			Human Readable: ISM resource elements can not be external notices.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00250.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00250
    
		[ISM-ID-00250][Error] If ISM-CAPCO-RESOURCE, element Notice must specify
		attribute ism:noticeType or ism:unregisteredNoticeType.
		
		Human Readable: Notices must specify their type.
	</d:para>
         <d:para>Code Description: 
		For element ism:Notice
	</d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00250">
	        
	        
	                 <sch:rule context="ism:Notice[$ISM_CAPCO_RESOURCE]">
		                   <sch:assert test="@ism:noticeType or @ism:unregisteredNoticeType" flag="error">
			[ISM-ID-00250][Error] If ISM-CAPCO-RESOURCE, element Notice must specify
			attribute ism:noticeType or ism:unregisteredNoticeType.
			
			Human Readable: Notices must specify their type.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00251.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00251
    
        [[ISM-ID-00251][Error] If ISM-ICDOCUMENT-APPLIES, then attribute 
        @ism:noticeType must not be specified with a value of [COMSEC]. 
        
        Human Readable: COMSEC notices are not valid for documents that claim
        compliance with IC rules.
    </d:para>
         <d:para>Code Description: 
    	If ISM_ICDOCUMENT_APPLIES, for each element which has attribute 
    	@ism:noticeType specified, we make sure that attribute
    	@ism:noticeType is not specified with a value containing token
    	[COMSEC].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00251">
         
         
	                 <sch:rule context="*[$ISM_ICDOCUMENT_APPLIES and @ism:noticeType]">
                     <sch:assert test="not(util:containsAnyTokenMatching(@ism:noticeType, 'COMSEC'))"
                                 flag="error">
        	[ISM-ID-00251][Error] If ISM-ICDOCUMENT-APPLIES, then attribute 
        	@ism:noticeType must not be specified with a value of [COMSEC]. 
        	
        	Human Readable: COMSEC notices are not valid for documents that claim
        	compliance with IC rules.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00252.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00252
    
        [ISM-ID-00252][Error] If ISM_RESOURCE_ELEMENT specifies the attribute
        ism:disseminationControls with a value containing the token [RELIDO], 
        then attribute nonICmarkings must not be specified with a value containing 
        the token [NNPI]. 
        
        Human Readable: NNPI tokens are not valid for documents that have
        RELIDO at the resource level.
    </d:para>
         <d:para>Code Description: 
        For resource elements which have attribute ism:disseminationControls specified 
        with a value containing the token [RELIDO], we make sure that attribute 
        ism:nonICmarkings is not specified with a value containing the token [NNPI].
    </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA pattern?><!-- Notices - Distribution Notice: 
           This document has been approved for Public Release and is available for use without restriction.
       -->
<sch:pattern id="ISM-ID-00252">
         
         
                  <sch:rule context="*[index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/         @ism:disseminationControls)), ' '),'RELIDO') &gt; 0 and @ism:nonICmarkings]">
                     <sch:assert test="not(util:containsAnyTokenMatching(@ism:nonICmarkings, 'NNPI'))"
                                 flag="error">
            [ISM-ID-00252][Error] If ISM_RESOURCE_ELEMENT specifies the attribute
            ism:disseminationControls with a value containing the token [RELIDO], 
            then attribute nonICmarkings must not be specified with a value containing 
            the token [NNPI]. 
        	
        	Human Readable: NNPI tokens are not valid for documents that have
        	RELIDO at the resource level.
        </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
   </d:chapter>
   <d:chapter>
      <d:title>Abstract Patterns</d:title>
      <d:para>All of the Abstract Patterns for ISM are listed in this section. 
					These patterns may	depend strongly on 
					variables defined in the Schematron Schema section.</d:para>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/AttributeContributesToRollup.sch</d:title>
         <d:para> Rule Description: 
      AttributeContributesToRollup
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="AttributeContributesToRollup">
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                       and (                         some $ele in $partTags satisfies                           util:containsAnyOfTheTokens($ele/@ism:$attrLocalName, ('$value'))                       )]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:$attrLocalName, ('$value'))"
                                 flag="error">
			                     <sch:value-of select="$errorMessage"/>
                     </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/AttributeContributesToRollupWithClassification.sch</d:title>
         <d:para> Rule Description: 
      AttributeContributesToRollupWithClassification
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="AttributeContributesToRollupWithClassification">
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                       and util:containsAnyOfTheTokens(@ism:classification, ('$resourceElementClassification'))                       and (                         some $ele in $partTags satisfies                           util:containsAnyOfTheTokens($ele/@ism:$attrLocalName, ('$value'))                       )]">
                     <sch:assert test="util:containsAnyOfTheTokens(@ism:$attrLocalName, ('$value'))"
                                 flag="error">
			                     <sch:value-of select="$errorMessage"/>
                     </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/AttributeValueDeprecatedError.sch</d:title>
         <d:para> Rule Description: 
      AttributeValueDeprecatedError
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="AttributeValueDeprecatedError">	
	                 <sch:rule context="$context">
		                   <sch:assert test="count(    dvf:deprecated(    string(@ism:$attrName),    document('../../CVE/ISM/$cveName.xml')//cve:CVE/cve:Enumeration/cve:Term[./@deprecated],    $ISM_RESOURCE_CREATE_DATE,    true())    )=0"
                                 flag="error">
			[<sch:value-of select="$ruleId"/>][Error] For attribute 
			<sch:value-of select="$attrName"/>, value(s)
			<sch:value-of select="     dvf:deprecated(     string(@ism:$attrName),     document('../../CVE/ISM/$cveName.xml')//cve:CVE/cve:Enumeration/cve:Term[@deprecated],     $ISM_RESOURCE_CREATE_DATE,     true())"/>
		                   </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/AttributeValueDeprecatedWarning.sch</d:title>
         <d:para> Rule Description: 
      AttributeValueDeprecatedWarning
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="AttributeValueDeprecatedWarning">	
	                 <sch:rule context="$context">
		                   <sch:assert test="    count(     dvf:deprecated(      string(@ism:$attrName),      document('../../CVE/ISM/$cveName.xml')//cve:CVE/cve:Enumeration/cve:Term[./@deprecated],      $ISM_RESOURCE_CREATE_DATE,      false()     )    )=0"
                                 flag="warning">
			[<sch:value-of select="$ruleId"/>][Warning] For attribute 
			<sch:value-of select="$attrName"/>, value(s)
			<sch:value-of select="     dvf:deprecated(     string(@ism:$attrName),     document('../../CVE/ISM/$cveName.xml')//cve:CVE/cve:Enumeration/cve:Term[@deprecated],     $ISM_RESOURCE_CREATE_DATE,     false())     "/>
		                   </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/DataHasCorrespondingNotice.sch</d:title>
         <d:para> Rule Description: 
      DataHasCorrespondingNotice
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="DataHasCorrespondingNotice">	
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and not(@ism:excludeFromRollup=true())      and util:containsAnyOfTheTokens($attrValue, ($noticeType))]">
		                   <sch:assert test="    some $elem in $partTags satisfies     ($elem[@ism:noticeType]     and util:containsAnyOfTheTokens($elem/@ism:noticeType, ($noticeType))     and not ($elem/@ism:externalNotice=true()))"
                                 flag="error">
			[<sch:value-of select="$ruleId"/>][Error]
			If ISM_CAPCO_RESOURCE, any element meeting ISM_CONTRIBUTES in 
			the document has the attribute <sch:value-of select="$attrName"/> containing 
			[<sch:value-of select="$noticeType"/>], then some element
			meeting ISM_CONTRIBUTES in the document MUST have attribute
			noticeType containing [<sch:value-of select="$noticeType"/>].
			
			Human Readable:
			USA documents containing <sch:value-of select="$noticeType"/> 
			data must also have an <sch:value-of select="$noticeType"/> notice.
		</sch:assert>
		                </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/MutuallyExclusiveAttributeValues.sch</d:title>
         <d:para> Rule Description: 
      MutuallyExclusiveAttributeValues
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="MutuallyExclusiveAttributeValues">	
	                 <sch:rule context="$context">
		                   <sch:assert test="    count(     for $token in tokenize(normalize-space(string($attrValue)),' ') return      if($token = $mutuallyExclusiveTokenList)      then 1      else null    ) = 1"
                                 flag="warning">
			                     <sch:value-of select="$errMsg"/>
		                   </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/NonCompilationDocumentRollup.sch</d:title>
         <d:para> Rule Description: 
      NonCompilationDocumentRollup
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="NonCompilationDocumentRollup">
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE                       and generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)                       and util:containsAnyOfTheTokens(@ism:$attrLocalName, ('$value'))                       and string-length(normalize-space(@ism:compilationReason)) = 0]">
                     <sch:assert test="         some $ele in $partTags satisfies           util:containsAnyOfTheTokens($ele/@ism:$attrLocalName, ('$value'))"
                                 flag="error">
			                     <sch:value-of select="$errorMessage"/>
                     </sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/NoticeHasCorrespondingData.sch</d:title>
         <d:para> Rule Description: 
      NoticeHasCorrespondingData
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="NoticeHasCorrespondingData">	
	                 <sch:rule context="*[$ISM_CAPCO_RESOURCE                      and not(@ism:excludeFromRollup=true())                      and not (@ism:externalNotice=true())                     and util:containsAnyOfTheTokens(@ism:noticeType, ($dataType))]">
		                   <sch:assert test="    index-of($dataTokenList, $dataType)&gt;0" flag="warning">
			[<sch:value-of select="$ruleId"/>][Warning]
			If ISM_CAPCO_RESOURCE and any element meeting 
			ISM_CONTRIBUTES in the document has the attribute noticeType 
			containing [<sch:value-of select="$dataType"/>], then some element
			meeting ISM_CONTRIBUTES in the document MUST have attribute <sch:value-of select="$attrName"/> containing 
			[<sch:value-of select="$dataType"/>].
			
			Human Readable: USA documents containing an <sch:value-of select="$dataType"/> 
			notice must also have <sch:value-of select="$dataType"/> data.
		</sch:assert>
	                 </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/ValidateValueExistenceInList.sch</d:title>
         <d:para> Rule Description: 
ValidateValueExistenceInList
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<!--
    This abstract pattern checks to see if an attribute of an element exists in a list.

    $context     := the context in which the searchValue exists
    $searchTerm  := the value which you want to verify is in the list
    $list        := the list in which to search for the searchValue
    $errMsg      := the error message text to display when the assertion fails
    
    Example usage:
    <sch:pattern is-a="ValidateValueExistenceInList" id="IRM_ID_00027" xmlns:sch="http://purl.oclc.org/dsdl/schematron">  
        <sch:param name="context" value="//irm:CountryCode[@irm:vocabulary='FIPS']"/>
        <sch:param name="searchTerm" value="."/>
        <sch:param name="list" value="$coverageFipsDigraphList"/>
        <sch:param name="errMsg" value="'
            [IRM-ID-00027][Error]
            If element CountryCode has attribute vocabulary specified as FIPS
            the element value must be in CVEnumIRMCoverageFIPSDigraph.xml.
        '"/>
    </sch:pattern>
    
    Note: $iso4217TrigraphList is defined in the main document, IRM_XML.xml.
-->
<sch:pattern abstract="true" id="ValidateValueExistenceInList">
         
         

                  <sch:rule context="$context"> 
                     <sch:assert test="             some $token in $list satisfies              $token = $searchTerm             "
                                 flag="error">
                        <sch:value-of select="$errMsg"/>
                     </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//Lib/ValuesOrderedAccordingToCve.sch</d:title>
         <d:para> Rule Description: 
      ValuesOrderedAccordingToCve
    </d:para>
         <d:para>Code Description: </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[
      <sch:pattern abstract="true" id="ValuesOrderedAccordingToCve">
         
                  <sch:rule context="*[$ISM_CAPCO_RESOURCE and @ism:$attrLocalName]">
    
    <!-- Convert each character to a numerical value, then concatenate the results to form a number-string -->
    <sch:assert test="count(tokenize(util:unsortedValues(@ism:$attrLocalName, $cveTermList),' ')) = 0"
                                 flag="error">
                        <sch:value-of select="$errorMessage"/>
      The following values are out of order [<sch:value-of select="util:unsortedValues(@ism:$attrLocalName, $cveTermList)"/>] for [<sch:value-of select="@ism:$attrLocalName"/>]
    </sch:assert>
                  </sch:rule>
               </sch:pattern>
   ]]></d:programlisting>
         </d:para>
      </d:sect1>
   </d:chapter>
   <d:chapter>
      <d:title>Schematron Schema</d:title>
      <d:para>The top level Schematron file for ISM is in this section. 
					This file imports all of the others and also defines many global variables they are all dependent on.</d:para>
      <?hard-pagebreak?><d:sect1>
         <d:title>.//ISM_XML.sch</d:title>
         <d:para> Rule Description: 

         
         
         
         
         This is the root file for the ISM Schematron rule set. It loads all of the
        required CVEs declares some variables and includes all of the Rule .sch files. 

         
    
         
         
         
         
         
         
         
         
         

         
    
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
    

         
    
    
    
    

         
    

         
    

         
    

         

         
    

         
    

         
    
         
         
         
         
         
         
         
         
         

         
    
         
         
         
         
         
         
         
         

         
    
    

         


    
    
         
         
         
         
         
         
         
         

         

         
    
         
         
         
         
         
         
         

         
    

         
    

         
    
         
         

         
    
         
         
         


         
    
    

    
    
            
            
            
            
            
        
               
                  
                    
                  
               
            
         

         
    
            
            
            
         

         
    
            
            
            
         

         
    
            
            
            
        
            
               
                
                
                    
                    
                    
                    
                    
                    
                    
                        
                            
                            
                            
                                
                            
                        
                        
                            
                            
                        
                    
                  
               
            
            
         
    
    
         
    
            
            
        
            
               
                  
                    
                  
               
            
        
            
               
                  
               
               
                  
               
            
         

         




   

         
   
         
         
         
         
         
         
         
         
         

         
   
         
         
         
         

         
   

         
   

         
   
         
         

         
   

         
   
         

         
   
         

         
   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
   
         
         
         
         
         

         
   
         
         
         
         
         
         
         

         
   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
   
         
         
         
         
         
         
         
         
         

         
   

         
   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
   
         
         
         
         
         

         
   
         

         
   
         
         
         

         
   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
   
         

         
   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

         
   
         
         
         
         
         
      
       </d:para>
         <d:para>Code Description: This is the root file for the ISM Schematron rule set. It loads all of the
        required CVEs declares some variables and includes all of the Rule .sch files. </d:para> 
         <d:para>Schematron Code:<d:programlisting><![CDATA[<?ICEA master?><!-- UNCLASSIFIED --><!-- Notices - Distribution Notice:
            This document is being made available by the Intelligence Community Chief Information Officer
            to Federal, State, Local, Tribal, and Foreign Partners and associated contractors. Approval for
            any further distribution must be coordinated via the Intelligence Community Chief Information 
            Officer, Mission Engagement Division at standardssupport@dni.gov--><!-- WARNING: 
    Once compiled into an XSLT the result will 
    be the aggregate classification of all the CVES 
    and included .sch files
-->
<sch:schema xmlns:cve="urn:us:gov:ic:cve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                           xmlns:xs="http://www.w3.org/2001/XMLSchema"
                           queryBinding="xslt2">
                  <sch:ns uri="urn:us:gov:ic:ism" prefix="ism"/>
                  <sch:ns uri="urn:us:gov:ic:cve" prefix="cve"/>
                  <sch:ns uri="deprecated:value:function" prefix="dvf"/>
                  <sch:ns uri="urn:us:gov:ic:ism:xsl:util" prefix="util"/>
         

                  <!-- (U) Abstract Patterns -->
    <sch:include href="Lib/AttributeContributesToRollup.sch"/>
                  <sch:include href="Lib/AttributeContributesToRollupWithClassification.sch"/>
                  <sch:include href="Lib/AttributeValueDeprecatedError.sch"/>
                  <sch:include href="Lib/AttributeValueDeprecatedWarning.sch"/>
                  <sch:include href="Lib/DatahasCorrespondingNotice.sch"/>
                  <sch:include href="Lib/MutuallyExclusiveAttributeValues.sch"/>
                  <sch:include href="Lib/NonCompilationDocumentRollup.sch"/>
                  <sch:include href="Lib/NoticeHasCorrespondingData.sch"/>
                  <sch:include href="Lib/ValidateValueExistenceInList.sch"/>
                  <sch:include href="Lib/ValuesOrderedAccordingToCve.sch"/>

                  <!-- (U) Resources  -->
    <sch:let name="countriesList"
                           value="document('../../CVE/ISM/CVEnumISMOwnerProducer.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="classificationAllList"
                           value="document('../../CVE/ISM/CVEnumISMClassificationAll.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="classificationUSList"
                           value="document('../../CVE/ISM/CVEnumISMClassificationUS.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="ownerProducerList"
                           value="document('../../CVE/ISM/CVEnumISMOwnerProducer.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="declassExceptionList"
                           value="document('../../CVE/ISM/CVEnumISM25X.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="FGIsourceOpenList"
                           value="document('../../CVE/ISM/CVEnumISMFGIOpen.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="FGIsourceProtectedList"
                           value="document('../../CVE/ISM/CVEnumISMFGIProtected.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="nonICmarkingsList"
                           value="document('../../CVE/ISM/CVEnumISMNonIC.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="releasableToList"
                           value="document('../../CVE/ISM/CVEnumISMRelTo.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="SCIcontrolsList"
                           value="document('../../CVE/ISM/CVEnumISMSCIControls.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="SARIdentifierList"
                           value="document('../../CVE/ISM/CVEnumISMSAR.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="validAttributeList"
                           value="document('../../CVE/ISM/CVEnumISMAttributes.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="validElementList"
                           value="document('../../CVE/ISM/CVEnumISMElements.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="noticeList"
                           value="document('../../CVE/ISM/CVEnumISMNotice.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="nonUSControlsList"
                           value="document('../../CVE/ISM/CVEnumISMNonUSControls.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="compliesWithList"
                           value="document('../../CVE/ISM/CVEnumISMCompliesWith.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="atomicEnergyMarkingsList"
                           value="document('../../CVE/ISM/CVEnumISMAtomicEnergyMarkings.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>
                  <sch:let name="displayOnlyToList"
                           value="document('../../CVE/ISM/CVEnumISMRelTo.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>

                  <!-- (U) Resources that may include FOUO values -->
    <sch:let name="disseminationControlsList"
                           value="document('../../CVE/ISM/CVEnumISMDissem.xml')//cve:CVE/cve:Enumeration/cve:Term/cve:Value"/>

                  <!--====================-->
    <!-- (U) Universal Lets -->
    <!--====================-->
    <!-- ISM_RESOURCE_ELEMENT (node): The first element with attribute ism:resourceElement='true' -->
    <sch:let name="ISM_RESOURCE_ELEMENT"
                           value="(for $each in (//*) return if($each/@ism:resourceElement=true()) then $each else null)[1]"/>

                  <!-- (U) ISM_RESOURCE_CREATE_DATE (date): The date a Resource was created, or the ism:createDate attribute on the
         ISM_RESOURCE_ELEMENT node. -->
    <sch:let name="ISM_RESOURCE_CREATE_DATE" value="$ISM_RESOURCE_ELEMENT/@ism:createDate"/>

                  <!-- (U) ISM_CAPCO_RESOURCE (boolean): True if the resource is a CAPCO-applicable resource, or the ism:ownerProducer attribute on the
         ISM_RESOURCE_ELEMENT node contains [USA]. False otherwise. -->
    <sch:let name="ISM_CAPCO_RESOURCE"
                           value="index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:ownerProducer)), ' '),'USA') &gt; 0"/>

                  <!-- (U) ISM_ICDOCUMENT_APPLIES (boolean): True if the document claims compliance rules for an IC Document, or if the 
         ism:compliesWith attribute of the ISM_RESOURCE_ELEMENT node contains [ICDocument]. False otherwise. -->
    <sch:let name="ISM_ICDOCUMENT_APPLIES"
                           value="(index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:compliesWith)), ' '),'ICDocument' ) &gt; 0) or              index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:compliesWith)), ' '),'IntelReport' ) &gt; 0"/>

                  <sch:let name="ISM_INTELREPORT_APPLIES"
                           value="index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:compliesWith)), ' '),'IntelReport') &gt; 0"/>

                  <!-- (U) ISM_DOD5230_24_APPLIES (boolean): True if the document claims compliance with DoD5230.24, or if the 
         ism:compliesWith attribute of the ISM_RESOURCE_ELEMENT node contains [DoD5230.24]. False otherwise. -->
    <sch:let name="ISM_DOD5230_24_APPLIES"
                           value="index-of(tokenize(normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:compliesWith)), ' '),'DoD5230.24') &gt; 0"/>

                  <!-- (U) ISM_ORCON_POC_DATE (date): The date after which a point-of-contact is required for all documents containing ORCON data -->
    <sch:let name="ISM_ORCON_POC_DATE" value="xs:date('2011-03-11')"/>

                  <!-- (U) Get Banner Attributes -->
    <sch:let name="bannerClassification"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:classification))"/>
                  <sch:let name="bannerDisseminationControls"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:disseminationControls))"/>
                  <sch:let name="bannerDisplayOnlyTo"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:displayOnlyTo))"/>
                  <sch:let name="bannerNonICmarkings"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:nonICmarkings))"/>
                  <sch:let name="bannerFGIsourceOpen"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:FGIsourceOpen))"/>
                  <sch:let name="bannerFGIsourceProtected"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:FGIsourceProtected))"/>
                  <sch:let name="bannerReleasableTo"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:releasableTo))"/>
                  <sch:let name="bannerSCIcontrols"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:SCIcontrols))"/>
                  <sch:let name="bannerNotice"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:noticeType))"/>
                  <sch:let name="bannerAtomicEnergyMarkings"
                           value="normalize-space(string($ISM_RESOURCE_ELEMENT/@ism:atomicEnergyMarkings))"/>

                  <!-- (U) Tokenize Banner Attributes -->
    <sch:let name="bannerDisseminationControls_tok"
                           value="tokenize(normalize-space(string($bannerDisseminationControls)), ' ')"/>
                  <sch:let name="bannerDisplayOnlyTo_tok"
                           value="tokenize(normalize-space(string($bannerDisplayOnlyTo)), ' ')"/>
                  <sch:let name="bannerNonICmarkings_tok"
                           value="tokenize(normalize-space(string($bannerNonICmarkings)), ' ')"/>
                  <sch:let name="bannerFGIsourceOpen_tok"
                           value="tokenize(normalize-space(string($bannerFGIsourceOpen)), ' ')"/>
                  <sch:let name="bannerFGIsourceProtected_tok"
                           value="tokenize(normalize-space(string($bannerFGIsourceProtected)), ' ')"/>
                  <sch:let name="bannerReleasableTo_tok"
                           value="tokenize(normalize-space(string($bannerReleasableTo)), ' ')"/>
                  <sch:let name="bannerSCIcontrols_tok"
                           value="tokenize(normalize-space(string($bannerSCIcontrols)), ' ')"/>
                  <sch:let name="bannerNotice_tok"
                           value="tokenize(normalize-space(string($bannerNotice)), ' ')"/>
                  <sch:let name="bannerAtomicEnergyMarkings_tok"
                           value="tokenize(normalize-space(string($bannerAtomicEnergyMarkings)), ' ')"/>

                  <!-- (U) Get all portions that meet ISM_CONTRIBUTES, or all non-resource nodes that do not specify ism:excludeFromRollup='true' -->
    <!-- (U) Similar portion classifications include ISM_CONTRIBUTES_CLASSIFIED, or all portions meeting ISM_CONTRIBUTES that 
          also have an ism:classification attribute not equal to [U], and ISM_CONTRIBUTES_USA, or all portions meeting ISM_CONTRIBUTES
          that also have an ism:ownerProducer containing [USA]. -->
    <sch:let name="partTags"
                           value="//*[@ism:* and not(@ism:excludeFromRollup=true()) and not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT))]"/>

                  <!--sch:let name="partNoticeTags"
        value="//*[@ism:* and not(@ism:excludeFromRollup=true()) and not(generate-id(.) = generate-id($ISM_RESOURCE_ELEMENT)) and local-name()='Notice']"/-->


    <!-- (U) Get Part Attributes -->
    <sch:let name="partClassification"
                           value="for $token in $partTags/@ism:classification return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partDisseminationControls"
                           value="for $token in $partTags/@ism:disseminationControls return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partDisplayOnlyTo"
                           value="for $token in $partTags/@ism:displayOnlyTo return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partAtomicEnergyMarkings"
                           value="for $token in $partTags/@ism:atomicEnergyMarkings return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partNonICmarkings"
                           value="for $token in $partTags/@ism:nonICmarkings return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partFGIsourceOpen"
                           value="for $token in $partTags/@ism:FGIsourceOpen return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partFGIsourceProtected"
                           value="for $token in $partTags/@ism:FGIsourceProtected return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partSCIcontrols"
                           value="for $token in $partTags/@ism:SCIcontrols return tokenize(normalize-space(string($token)),' ')"/>
                  <sch:let name="partNoticeType"
                           value="for $token in $partTags/@ism:noticeType return tokenize(normalize-space(string($token)),' ')"/>

                  <sch:let name="partPocType"
                           value="for $token in $partTags/@ism:pocType return tokenize(normalize-space(string($token)),' ')"/>

                  <!-- (U) Tokenize portion Attributes -->
    <sch:let name="partClassification_tok"
                           value="for $token in $partClassification return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partDisseminationControls_tok"
                           value="for $token in $partDisseminationControls return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partDisplayOnlyTo_tok"
                           value="for $token in $partDisplayOnlyTo return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partAtomicEnergyMarkings_tok"
                           value="for $token in $partAtomicEnergyMarkings return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partNonICmarkings_tok"
                           value="for $token in $partNonICmarkings return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partSCIcontrols_tok"
                           value="for $token in $partSCIcontrols return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partNoticeType_tok"
                           value="for $token in $partNoticeType return tokenize(normalize-space(string($token)), ' ')"/>
                  <sch:let name="partPocType_tok"
                           value="for $token in $partPocType return tokenize(normalize-space(string($token)), ' ')"/>

                  <!-- (U) Tokenize Notice Nodes -->
    <sch:let name="partNoticeNodeType"
                           value="for $token in $partTags/@ism:noticeType return tokenize(normalize-space(string($token)),' ')"/>

                  <!-- 
          (U) ISM_NSI_EO_APPLIES (boolean): 
          True if the current Classified National Security Information Executive 
          Order applies to this resource. This variable will be true if all of the following 4 conditions are satisfied:
          1) The document is a ISM_CAPCO_RESOURCE
          AND 
          2) The ISM_RESOURCE_ELEMENT node has attribute ism:classification with a value other than [U]
          AND
          3) The ISM_RESOURCE_CREATE_DATE is on or after 11 April 1996  (180 days after 14 October 1995 signature of E.O. 12958)
          AND
          4) At least one element meeting ISM_CONTRIBUTES_CLASSIFIED does not have the attribute ism:atomicEnergyMarkings 
        -->
    <sch:let name="ISM_NSI_EO_APPLIES"
                           value="$ISM_CAPCO_RESOURCE and                     not($ISM_RESOURCE_ELEMENT/@ism:classification='U') and                     $ISM_RESOURCE_CREATE_DATE &gt;= xs:date('1996-04-11') and                     (some $element in $partTags satisfies                             not($element/@ism:classification='U') and not($element/@ism:atomicEnergyMarkings))"/>

                  <!-- (U) Define countries that are included in the THREE-, FOUR- and FIVE-EYES designations -->
    <sch:let name="TEYE_tok" value="tokenize(string('USA CAN GBR'), ' ')"/>
                  <sch:let name="ACGU_tok" value="tokenize(string('USA AUS CAN GBR'), ' ')"/>
                  <sch:let name="FVEY_tok" value="tokenize(string('USA AUS CAN GBR NZL'), ' ')"/>

                  <!-- (U) Check roll-up of attributes in portions to the banner   -->
    <sch:let name="dcTags"
                           value="for $piece in $disseminationControlsList return $piece/text()"/>
                  <sch:let name="dcTagsFound"
                           value="for $token in $dcTags return if ( index-of($partDisseminationControls_tok,$token) &gt; 0 and (not(index-of($bannerDisseminationControls_tok,$token) &gt; 0))) then $token else null"/>
                  <sch:let name="aeaTags"
                           value="for $piece in $atomicEnergyMarkingsList return $piece/text()"/>
                  <sch:let name="aeaTagsFound"
                           value="for $token in $aeaTags return if ( index-of($partAtomicEnergyMarkings_tok,$token) &gt; 0 and (not(index-of($bannerAtomicEnergyMarkings_tok,$token) &gt; 0))) then $token else null"/>


                  <!--****************************-->
    <!-- (U) Custom XSLT function   -->
    <!--****************************-->

    <!-- Evaluate the attribute value tokens to determine whether any values 
            have been deprecated by comparing deprecation dates against $curDate. 
            If the value is deprecated, return either an ERROR or WARNING message, 
            depending on the isError flag. -->
    <xsl:function name="dvf:deprecated" as="xs:string*">
                     <xsl:param name="attribute" as="xs:string"/>
                     <xsl:param name="depTerms" as="element()*"/>
                     <xsl:param name="curDate" as="xs:date?"/>
                     <xsl:param name="isError" as="xs:boolean"/>
                     <!--$curDate param is optional in order to prevent compiled XSLT from breaking 
                    when otherwise invalid documents are executed against the rules 
                    (e.g. missing @ism:createDate). 
                    
                    Only execute if we have a date to compare against. -->
        <xsl:if test="count($curDate)=1">
                        <xsl:for-each select="$depTerms[cve:Value=tokenize($attribute,' ')]">
                           <xsl:if test="($isError and $curDate gt xs:date(@deprecated)) or (not($isError) and $curDate le xs:date(@deprecated))">
                              <xsl:sequence select="concat('[',string(current()/cve:Value),'] has been deprecated and is not authorized for use after  ', current()/@deprecated)"/>
                           </xsl:if>
                        </xsl:for-each>
                     </xsl:if>
                  </xsl:function>

                  <!--
    Returns true if any token in the attribute value matches one of the provided regular expressions. 
  -->
    <xsl:function name="util:containsAnyTokenMatching" as="xs:boolean">
                     <xsl:param name="attribute"/>
                     <xsl:param name="regexList" as="xs:string+"/>
                     <xsl:value-of select="       some $attrToken in tokenize(normalize-space(string($attribute)), ' ') satisfies         (some $regex in $regexList satisfies           matches($attrToken, $regex))       "/>
                  </xsl:function>

                  <!--
    Returns true if any token in the attribute value matches at least one token in the provided list.
  -->
    <xsl:function name="util:containsAnyOfTheTokens" as="xs:boolean">
                     <xsl:param name="attribute"/>
                     <xsl:param name="tokenList" as="xs:string+"/>
                     <xsl:value-of select="       some $attrToken in tokenize(normalize-space(string($attribute)), ' ') satisfies         $attrToken = $tokenList       "/>
                  </xsl:function>

                  <!--
        Determines if values in an attribute are in sorted order based on a master list
    -->
    <xsl:function name="util:unsortedValues" as="xs:string">
                     <xsl:param name="attribute"/>
                     <xsl:param name="tokenList" as="xs:string+"/>
                     <xsl:variable name="attrValues" select="tokenize(normalize-space(string($attribute)), ' ')"/>
        
                     <xsl:variable name="badValues">
                        <xsl:for-each select="$attrValues">
                <!-- iterate over each attribute value, except the last one because we compare i to i+1 so the last one gets incorporated -->
                <xsl:if test="not(index-of($attrValues, current())[last()] = count($attrValues))">
                    
                    <!-- calculate the indicies of attrValues[i] and attrValues[i+1] within the TokenList -->
                    <xsl:variable name="indexOfValue" select="util:getIndexFromListMatch(current(), $tokenList)"/>
                              <xsl:variable name="indexOfNextValue"
                                            select="util:getIndexFromListMatch($attrValues[index-of($attrValues,current())+1], $tokenList)"/>
                    
                    
                              <xsl:choose>
                                 <xsl:when test="$indexOfValue = $indexOfNextValue">
                            <!-- if same index in tokenList, make sure that attrValues[i] < attrValues[i+1] -->
                            <!-- this comparison is required because of regular expressions in the list. Two tokens
                                 may have the same index in the list, but then they must be in order between themselves -->
                            <xsl:if test="compare(current(), $attrValues[index-of($attrValues,current())+1]) = 1">
                                       <xsl:value-of select="$attrValues[index-of($attrValues,current())+1]"/>
                                    </xsl:if>
                                 </xsl:when>
                                 <xsl:when test="$indexOfValue &gt; $indexOfNextValue">
                            <!-- if index of i > index of i+1, then i+1 is out of order so return it -->
                            <xsl:value-of select="$attrValues[index-of($attrValues,current())+1]"/>
                                 </xsl:when>
                              </xsl:choose>
                           </xsl:if>
                        </xsl:for-each>
                     </xsl:variable>
                     <xsl:value-of select="normalize-space(string($badValues))"/>
                  </xsl:function>
    
    
                  <!-- Return the index position in the list that matches the value. -1 if no match -->
    <xsl:function name="util:getIndexFromListMatch" as="xs:integer">
                     <xsl:param name="value" as="xs:string"/>
                     <xsl:param name="list" as="xs:string+"/>
        
                     <xsl:variable name="index">
                        <xsl:for-each select="$list">
                           <xsl:if test="matches($value,concat('^',current(),'$'))">
                              <xsl:value-of select="index-of($list,current())[1]"/>
                           </xsl:if>
                        </xsl:for-each>
                     </xsl:variable>
        
                     <xsl:choose>
                        <xsl:when test="$index = ''">
                           <xsl:value-of select="-1"/>
                        </xsl:when>
                        <xsl:otherwise>
                           <xsl:value-of select="number($index[1])"/>
                        </xsl:otherwise>
                     </xsl:choose>
                  </xsl:function>

                  <!--****************************-->
<!-- (U) ISM ID Rules -->
<!--****************************-->

<!--(U) ACCM-->
   <sch:include href="./Rules/ACCM/ISM_ID_00220.sch"/>

                  <!--(U) atomicEnergyMarkings-->
   <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00173.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00174.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00175.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00176.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00178.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00181.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00182.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00183.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00184.sch"/>
                  <sch:include href="./Rules/atomicEnergyMarkings/ISM_ID_00185.sch"/>

                  <!--(U) classification-->
   <sch:include href="./Rules/classification/ISM_ID_00015.sch"/>
                  <sch:include href="./Rules/classification/ISM_ID_00016.sch"/>
                  <sch:include href="./Rules/classification/ISM_ID_00040.sch"/>
                  <sch:include href="./Rules/classification/ISM_ID_00115.sch"/>
                  <sch:include href="./Rules/classification/ISM_ID_00142.sch"/>

                  <!--(U) classifiedBy-->
   <sch:include href="./Rules/classifiedBy/ISM_ID_00017.sch"/>

                  <!--(U) compliesWith-->
   <sch:include href="./Rules/compliesWith/ISM_ID_00222.sch"/>

                  <!--(U) declassException-->
   <sch:include href="./Rules/declassException/ISM_ID_00003.sch"/>
                  <sch:include href="./Rules/declassException/ISM_ID_00023.sch"/>
                  <sch:include href="./Rules/declassException/ISM_ID_00133.sch"/>

                  <!--(U) DeclassManualReview-->
   <sch:include href="./Rules/DeclassManualReview/ISM_ID_00101.sch"/>

                  <!--(U) derivativelyClassifiedBy-->
   <sch:include href="./Rules/derivativelyClassifiedBy/ISM_ID_00143.sch"/>
                  <sch:include href="./Rules/derivativelyClassifiedBy/ISM_ID_00221.sch"/>

                  <!--(U) displayOnlyTo-->
   <sch:include href="./Rules/displayOnlyTo/ISM_ID_00167.sch"/>
                  <sch:include href="./Rules/displayOnlyTo/ISM_ID_00168.sch"/>

                  <!--(U) disseminationControls-->
   <sch:include href="./Rules/disseminationControls/ISM_ID_00004.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00026.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00027.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00028.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00029.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00030.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00031.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00033.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00034.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00050.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00052.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00053.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00054.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00091.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00092.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00093.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00094.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00106.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00107.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00117.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00120.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00124.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00140.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00164.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00169.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00213.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_00215.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_10001.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_10002.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_10003.sch"/>
                  <sch:include href="./Rules/disseminationControls/ISM_ID_10004.sch"/>

                  <!--(U) FGIsourceOpen-->
   <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00005.sch"/>
                  <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00024.sch"/>
                  <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00095.sch"/>
                  <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00216.sch"/>
                  <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00232.sch"/>
                  <sch:include href="./Rules/FGIsourceOpen/ISM_ID_00233.sch"/>

                  <!--(U) FGIsourceProtected-->
   <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00006.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00025.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00096.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00097.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00217.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00218.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00234.sch"/>
                  <sch:include href="./Rules/FGIsourceProtected/ISM_ID_00235.sch"/>

                  <!--(U) generalConstraints-->
   <sch:include href="./Rules/generalConstraints/ISM_ID_00002.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00012.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00098.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00102.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00103.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00119.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00125.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00126.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00166.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00170.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00179.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00180.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00188.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00189.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00190.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00191.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00192.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00193.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00194.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00195.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00196.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00197.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00198.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00199.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00200.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00201.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00202.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00203.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00204.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00205.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00206.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00207.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00208.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00209.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00210.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00211.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00212.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00223.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00226.sch"/>
                  <sch:include href="./Rules/generalConstraints/ISM_ID_00236.sch"/>

                  <!--(U) nonICmarkings-->
   <sch:include href="./Rules/nonICmarkings/ISM_ID_00007.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00035.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00036.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00037.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00038.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00051.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00055.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00148.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00225.sch"/>
                  <sch:include href="./Rules/nonICmarkings/ISM_ID_00252.sch"/>

                  <!--(U) nonUSControls-->
   <sch:include href="./Rules/nonUSControls/ISM_ID_00163.sch"/>

                  <!--(U) notice-->
   <sch:include href="./Rules/notice/ISM_ID_00127.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00128.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00129.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00130.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00131.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00134.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00135.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00136.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00137.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00138.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00139.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00150.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00151.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00152.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00153.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00156.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00157.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00158.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00159.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00160.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00161.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00237.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00238.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00239.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00240.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00244.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00245.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00248.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00249.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00250.sch"/>
                  <sch:include href="./Rules/notice/ISM_ID_00251.sch"/>

                  <!--(U) ownerProducer-->
   <sch:include href="./Rules/ownerProducer/ISM_ID_00001.sch"/>
                  <sch:include href="./Rules/ownerProducer/ISM_ID_00008.sch"/>
                  <sch:include href="./Rules/ownerProducer/ISM_ID_00039.sch"/>
                  <sch:include href="./Rules/ownerProducer/ISM_ID_00099.sch"/>
                  <sch:include href="./Rules/ownerProducer/ISM_ID_00100.sch"/>
                  <sch:include href="./Rules/ownerProducer/ISM_ID_00219.sch"/>

                  <!--(U) pocType-->
   <sch:include href="./Rules/pocType/ISM_ID_00224.sch"/>
                  <sch:include href="./Rules/pocType/ISM_ID_00247.sch"/>

                  <!--(U) releasableTo-->
   <sch:include href="./Rules/releasableTo/ISM_ID_00009.sch"/>
                  <sch:include href="./Rules/releasableTo/ISM_ID_00032.sch"/>
                  <sch:include href="./Rules/releasableTo/ISM_ID_00041.sch"/>
                  <sch:include href="./Rules/releasableTo/ISM_ID_00214.sch"/>

                  <!--(U) resourceElement-->
   <sch:include href="./Rules/resourceElement/ISM_ID_00013.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00014.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00056.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00057.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00058.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00059.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00060.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00061.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00062.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00063.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00064.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00065.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00066.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00067.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00068.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00069.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00070.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00071.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00072.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00073.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00074.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00075.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00076.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00077.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00078.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00079.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00080.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00081.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00082.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00083.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00084.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00085.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00086.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00087.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00088.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00089.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00090.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00104.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00105.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00108.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00109.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00110.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00111.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00112.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00113.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00116.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00118.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00132.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00141.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00144.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00145.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00146.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00147.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00149.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00154.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00155.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00162.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00165.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00171.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00172.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00227.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00228.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00229.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00230.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00231.sch"/>
                  <sch:include href="./Rules/resourceElement/ISM_ID_00246.sch"/>

                  <!--(U) SARIdentifier-->
   <sch:include href="./Rules/SARIdentifier/ISM_ID_00114.sch"/>
                  <sch:include href="./Rules/SARIdentifier/ISM_ID_00121.sch"/>

                  <!--(U) SCIcontrols-->
   <sch:include href="./Rules/SCIcontrols/ISM_ID_00010.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00042.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00043.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00044.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00045.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00046.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00047.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00048.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00049.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00122.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00123.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00177.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00186.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00187.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00241.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00242.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_00243.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10005.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10006.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10007.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10008.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10009.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10010.sch"/>
                  <sch:include href="./Rules/SCIcontrols/ISM_ID_10011.sch"/>

                  <!--(U) typeOfExemptedSource-->
   <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00011.sch"/>
                  <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00018.sch"/>
                  <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00019.sch"/>
                  <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00020.sch"/>
                  <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00021.sch"/>
                  <sch:include href="./Rules/typeOfExemptedSource/ISM_ID_00022.sch"/>
               </sch:schema>
               <!-- UNCLASSIFIED -->]]></d:programlisting>
         </d:para>
      </d:sect1>
   </d:chapter>
   <d:chapter>
      <d:title>Removed Rules</d:title>
      <d:para>All of the numbered Rules for ISM that have been removed are listed in this section. 
					This section is just a reference for what rule numbers have been dropped. In many but not all cases there will be a reason
				listed. In all cases the version that the rule was dropped in is listed.</d:para>
      <d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00001.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00001
    
        [ISM-ID-00001][Error] Rule removed in V8. Covered by rule 2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/declassException/ISM_ID_00003.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00003
    
        [ISM-ID-00003][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00004.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00004
    
        [ISM-ID-00004][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00005.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00005
    
        [ISM-ID-00005][Error] Rule removed in V2. Replaced by ISM_ID_00024.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00006.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00006
    
        [ISM-ID-00006][Error] Rule removed in V2. Replaced by ISM_ID_00025.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00007.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00007
    
        [ISM-ID-00007][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00008.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00008
    
        [ISM-ID-00008][Error] Rule removed in V2. Replaced by ISM_ID_00039.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/releasableTo/ISM_ID_00009.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00009
    
        [ISM-ID-00009][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00010.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00010
    
        [ISM-ID-00010][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00011.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00011
    
        [ISM-ID-00011][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/classification/ISM_ID_00015.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00015
    
        [ISM-ID-00015][Error] Rule removed in V8. Values moved to rule 16.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00018.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00018
    
        [ISM-ID-00018][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00019.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00019
    
        [ISM-ID-00019][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00020.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00020
    
        [ISM-ID-00020][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00021.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00021
    
        [ISM-ID-00021][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/typeOfExemptedSource/ISM_ID_00022.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00022
    
        [ISM-ID-00022][Error] Rule removed in V3.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/declassException/ISM_ID_00023.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00023
    
        [ISM-ID-00023][Error] Rule removed in V4.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00024.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00024
    
        [ISM-ID-00024][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00025.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00025
    
        [ISM-ID-00025][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00027.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00027
    
        [ISM-ID-00027][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00029.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00029
    
        [ISM-ID-00029][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00034.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00034
    
        [ISM-ID-00034][Error] Rule removed in V8. Covered by rule 169.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00036.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00036
    
        [ISM-ID-00036][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/ownerProducer/ISM_ID_00039.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00039
    
        [ISM-ID-00039][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00046.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00046
    
        [ISM-ID-00046][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00050.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00050
    
        [ISM-ID-00050][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00051.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00051
    
        [ISM-ID-00051][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00052.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00052
    
        [ISM-ID-00052][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00053.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00053
    
        [ISM-ID-00053][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00054.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00054
    
        [ISM-ID-00054][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/nonICmarkings/ISM_ID_00055.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00055
    
        [ISM-ID-00055][Error] Rule removed in V2.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00057.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00057
    
      [ISM-ID-00057][Error] Rule removed in V8. Values moved to rule 56.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00069.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00069
    
        [ISM-ID-00069][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00076.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00076
    
        [ISM-ID-00076][Error] Rule removed in V3.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00082.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00082
    
        [ISM-ID-00082][Error] Rule removed in V8
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00083.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00083
    
        [ISM-ID-00083][Error] Rule removed in V8
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00089.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00089
    
        [ISM-ID-00089][Error] Rule removed in V4.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00091.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00091
    
        [ISM-ID-00091][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00092.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00092
    
        [ISM-ID-00092][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00093.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00093
    
        [ISM-ID-00093][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00094.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00094
    
        [ISM-ID-00094][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00098.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00098
    
        [ISM-ID-00098][] This rule number was skipped and never used. removed
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/DeclassManualReview/ISM_ID_00101.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00101
    
        [ISM-ID-000101][Error] Introduced and removed in V2. Never made it to signed package.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00106.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00106
    
        [ISM-ID-00106][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/SARIdentifier/ISM_ID_00114.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00114
    
        [ISM-ID-00114][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/classification/ISM_ID_00115.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00115
    
        [ISM-ID-00115][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00117.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00117
    
        [ISM-ID-00117][Warning] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00120.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00120
    
        [ISM-ID-00120][Error] Rule removed in V4.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00131.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00131
    
        [ISM-ID-00131][Error] Rule removed in V5.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00140.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00140
    
        [ISM-ID-00140][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00144.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00144
    
        [ISM-ID-00144][Error] Rule removed in V4.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00156.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00156
    
        [ISM-ID-00156][Error] Rule removed in V8. Replaced by rules 237 and 238.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00160.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00160
    
        [ISM-ID-00160][Error] Rule removed in V8. Replaced by rules 239 and 240.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/resourceElement/ISM_ID_00172.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00172
    
        [ISM-ID-00172][Error] Rule removed in V6.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/SCIcontrols/ISM_ID_00177.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00177
    
        [ISM-ID-00177][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/atomicEnergyMarkings/ISM_ID_00182.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00182
    
        [ISM-ID-00182][Error] Rule removed in V8. Values moved to rule 181.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/generalConstraints/ISM_ID_00212.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00212
    
        [ISM-ID-00212][Error] Rule removed in V6.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/disseminationControls/ISM_ID_00215.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00215
    
        [ISM-ID-00215][Error] Rule removed in V8.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00216.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00216
    
        [ISM-ID-000216][] Introduced and removed in V6. Never made it to signed package.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00218.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00218
    
        [ISM-ID-000218][] Introduced and removed in V6. Never made it to signed package.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/ACCM/ISM_ID_00220.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00220
    
        [ISM-ID-00220][Error] Rule removed in V7.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceOpen/ISM_ID_00232.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00232
    
        [ISM-ID-00232][] Introduced and removed in V8. Never made it to signed package.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/FGIsourceProtected/ISM_ID_00235.sch</d:title>
         <d:para> Rule Description: 
ISM-ID-00235
    
        [ISM-ID-00235][] Introduced and removed in V8. Never made it to signed package.
    </d:para>
      </d:sect1>
      <d:sect1>
         <d:title>.//Rules/notice/ISM_ID_00249.sch</d:title>
         <d:para> Rule Description: ISM-ID-00249
    
		[ISM-ID-00249][Error] Introduced and removed in V9. Never made it to signed package.
	</d:para>
      </d:sect1>
   </d:chapter>
</d:book>