7.3 DLP Rule Types Schema

This section contains the contents of the PolicyNudgeRuleSchemaTypes.xsd file.<73>

 <?xml version="1.0" encoding="utf-8"?>
 <xs:schema
     elementFormDefault="qualified"
     xmlns:xs="http://www.w3.org/2001/XMLSchema">
  
   <xs:complexType name="ruleType">
     <xs:sequence>
       <xs:element name="version" type="versionType" minOccurs="1" 
           maxOccurs="unbounded" />
     </xs:sequence>
     <xs:attribute name="name" type="xs:string" use="required" />
     <xs:attribute name="id" type="xs:string" use="required" />
     <xs:attribute name="description" type="xs:string" use="required" />
   </xs:complexType>
  
   <xs:complexType name="versionType">
     <xs:sequence>
       <xs:element name="condition" type="predicateElementSingleChildType" />
       <xs:element name="actions" type="actionsType" />
     </xs:sequence>
     <xs:attribute name="minRequiredVersion" type="minRequiredVersionType" 
         use="required" />
   </xs:complexType>
  
  
   <xs:simpleType name="minRequiredVersionType">
     <xs:restriction base="xs:string">
       <xs:pattern value="[0-6]?[0-9]{1,4}(\.[0-6]?[0-9]{1,4}){0,3}"/>
     </xs:restriction>
   </xs:simpleType>
  
   <xs:complexType name="predicateElementSingleChildType">
     <xs:choice>
       <xs:element name="and" type="predicateElementMultipleChildType" />
       <xs:element name="classification" type="classificationType" />
       <xs:element name="classifications" type="predicateElementSingleChildType" />
       <xs:element name="false" type="predicateElementConstantType" />
       <xs:element name="not" type="predicateElementSingleChildType" />
       <xs:element name="or" type="orType" />
       <xs:element name="recipient" type="recipientType" />
       <xs:element name="recipients" type="predicateElementSingleChildType" />
       <xs:element name="sender" type="senderType" />
       <xs:element name="senders" type="predicateElementSingleChildType" />
       <xs:element name="true" type="predicateElementConstantType" />
     </xs:choice>
   </xs:complexType>
  
   <xs:complexType name="predicateElementMultipleChildType">
     <xs:choice minOccurs="1" maxOccurs="unbounded">
       <xs:element name="and" type="predicateElementMultipleChildType" />
       <xs:element name="classification" type="classificationType" />
       <xs:element name="classifications" type="predicateElementSingleChildType" />
       <xs:element name="false" type="predicateElementConstantType" />
       <xs:element name="not" type="predicateElementSingleChildType" />
       <xs:element name="or" type="orType" />
       <xs:element name="recipient" type="recipientType" />
       <xs:element name="recipients" type="predicateElementSingleChildType" />
       <xs:element name="sender" type="senderType" />
       <xs:element name="senders" type="predicateElementSingleChildType" />
       <xs:element name="true" type="predicateElementConstantType" />
     </xs:choice>
   </xs:complexType>
  
   <xs:complexType name="predicateElementConstantType" />
  
   <xs:complexType name="classificationType">
     <xs:attribute name="rulePackId" type="xs:string" use="required" />
     <xs:attribute name="id" type="xs:string" use="required" />
     <xs:attribute name="minCount" type="xs:integer" use="optional" />
     <xs:attribute name="maxCount" type="xs:integer" use="optional" />
     <xs:attribute name="minConfidence" type="xs:integer" use="optional" />
     <xs:attribute name="maxConfidence" type="xs:integer" use="optional" />
   </xs:complexType>
  
   <xs:complexType name="orType">
     <xs:complexContent>
       <xs:extension base="predicateElementMultipleChildType">
         <xs:attribute name="earlyOut" use="optional">
           <xs:simpleType>
             <xs:restriction base="xs:string">
               <xs:pattern value="([Tt][Rr][Uu][Ee])|([Yy]([Ee][Ss])?)|([1])|([Ff][Aa][Ll][Ss][Ee])|([Nn][Oo]?)|([0])" />
             </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
  
   <xs:complexType name="recipientType">
     <xs:attribute name="address" type="xs:string" use="optional" />
     <xs:attribute name="domain" type="xs:string" use="optional" />
     <xs:attribute name="scope" use="optional">
       <xs:simpleType>
         <xs:restriction base="xs:string">
           <xs:enumeration value="Internal"/>
           <xs:enumeration value="External"/>
           <xs:enumeration value="ExternalNonPartner"/>
           <xs:enumeration value="ExternalPartner"/>
         </xs:restriction>
       </xs:simpleType>
     </xs:attribute>
   </xs:complexType>
  
   <xs:complexType name="senderType">
     <xs:attribute name="address" type="xs:string" use="optional" />
     <xs:attribute name="domain" type="xs:string" use="optional" />
   </xs:complexType>
   
   <xs:complexType name="actionsType">
     <xs:choice maxOccurs="unbounded">
       <xs:element name="block" type="actionTypeType" />
       <xs:element name="notify" type="actionTypeType" />
     </xs:choice>
   </xs:complexType>
   
   <xs:complexType name="actionTypeType">
     <xs:sequence>
       <xs:element name="message">
         <xs:complexType>
           <xs:sequence minOccurs="1" maxOccurs="unbounded">
             <xs:element name="locale" type="localeType" />
           </xs:sequence>
         </xs:complexType>
       </xs:element>
       
       <xs:element name="override">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="justification">
               <xs:complexType>
                 <xs:attribute name="type" use="required">
                   <xs:simpleType>
                     <xs:restriction base="xs:string">
                       <xs:enumeration value="none" />
                       <xs:enumeration value="optional" />
                       <xs:enumeration value="required" />
                     </xs:restriction>
                   </xs:simpleType>
                 </xs:attribute>
               </xs:complexType>
             </xs:element>
           </xs:sequence>
           <xs:attribute name="allow" type="yesnoType" use="required" />
         </xs:complexType>
       </xs:element>
       <xs:element name="falsePositive">
         <xs:complexType>
           <xs:attribute name="allow" type="yesnoType" use="required" />
         </xs:complexType>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
  
   <xs:complexType name="localeType">
     <xs:sequence>
       <xs:element name="complianceNoteUrl" type="xs:anyURI" nillable="true" />
       <xs:element name="text1" type="xs:string" />
       <xs:element name="text2" type="xs:string" />
       <xs:element name="overrideText" type="xs:string" />
       <xs:element name="text3" type="xs:string"  />
     </xs:sequence>
     <xs:attribute name="name" type="xs:language" use="required" />
   </xs:complexType>
  
   <xs:simpleType name="yesnoType">
     <xs:restriction base="xs:string">
       <xs:enumeration value="yes" />
       <xs:enumeration value="no" />
     </xs:restriction>
   </xs:simpleType>
  
 </xs:schema>