7.8 Rule Package Types Schema
This section contains the contents of the RulePackageTypes.xsd file.<77>
-
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:mce="http://schemas.microsoft.com/office/2011/mce" targetNamespace="http://schemas.microsoft.com/office/2011/mce" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" id="RulePackageSchema"> <xs:simpleType name="LangType"> <xs:union memberTypes="xs:language"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value=""/> </xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType> <xs:simpleType name="GuidType" final="#all"> <xs:restriction base="xs:token"> <xs:pattern value="[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}"/> </xs:restriction> </xs:simpleType> <xs:complexType name="RulePackageType"> <xs:sequence> <xs:element name="RulePack" type="mce:RulePackType"/> <xs:element name="Rules" type="mce:RulesType"> <xs:key name="UniqueRuleId"> <xs:selector xpath="mce:Entity|mce:Affinity|mce:Version/mce:Entity|mce:Version/mce:Affinity"/> <xs:field xpath="@id"/> </xs:key> <xs:key name="UniqueProcessorId"> <xs:selector xpath="mce:Regex|mce:Keyword|mce:Fingerprint"></xs:selector> <xs:field xpath="@id"/> </xs:key> <xs:key name="UniqueResourceIdRef"> <xs:selector xpath="mce:LocalizedStrings/mce:Resource"/> <xs:field xpath="@idRef"/> </xs:key> <xs:keyref name="ReferencedRuleMustExist" refer="mce:UniqueRuleId"> <xs:selector xpath="mce:LocalizedStrings/mce:Resource"/> <xs:field xpath="@idRef"/> </xs:keyref> <xs:keyref name="RuleMustHaveResource" refer="mce:UniqueResourceIdRef"> <xs:selector xpath="mce:Entity|mce:Affinity|mce:Version/mce:Entity|mce:Version/mce:Affinity"/> <xs:field xpath="@id"/> </xs:keyref> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="RulePackType"> <xs:sequence> <xs:element name="Version" type="mce:VersionType"/> <xs:element name="Publisher" type="mce:PublisherType"/> <xs:element name="Details" type="mce:DetailsType"> <xs:key name="UniqueLangCodeInLocalizedDetails"> <xs:selector xpath="mce:LocalizedDetails"/> <xs:field xpath="@langcode"/> </xs:key> <xs:keyref name="DefaultLangCodeMustExist" refer="mce:UniqueLangCodeInLocalizedDetails"> <xs:selector xpath="."/> <xs:field xpath="@defaultLangCode"/> </xs:keyref> </xs:element> <xs:element name="Encryption" type="mce:EncryptionType" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute name="id" type="mce:GuidType" use="required"/> </xs:complexType> <xs:complexType name="VersionType"> <xs:attribute name="major" type="xs:unsignedShort" use="required"/> <xs:attribute name="minor" type="xs:unsignedShort" use="required"/> <xs:attribute name="build" type="xs:unsignedShort" use="required"/> <xs:attribute name="revision" type="xs:unsignedShort" use="required"/> </xs:complexType> <xs:complexType name="PublisherType"> <xs:attribute name="id" type="mce:GuidType" use="required"/> </xs:complexType> <xs:complexType name="LocalizedDetailsType"> <xs:sequence> <xs:element name="PublisherName" type="mce:NameType"/> <xs:element name="Name" type="mce:RulePackNameType"/> <xs:element name="Description" type="mce:OptionalNameType"/> </xs:sequence> <xs:attribute name="langcode" type="mce:LangType" use="required"/> </xs:complexType> <xs:complexType name="DetailsType"> <xs:sequence> <xs:element name="LocalizedDetails" type="mce:LocalizedDetailsType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="defaultLangCode" type="mce:LangType" use="required"/> </xs:complexType> <xs:complexType name="EncryptionType"> <xs:sequence> <xs:element name="Key" type="xs:normalizedString"/> <xs:element name="IV" type="xs:normalizedString"/> </xs:sequence> </xs:complexType> <xs:simpleType name="RulePackNameType"> <xs:restriction base="xs:token"> <xs:minLength value="1"/> <xs:maxLength value="64"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="NameType"> <xs:restriction base="xs:normalizedString"> <xs:minLength value="1"/> <xs:maxLength value="256"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="OptionalNameType"> <xs:restriction base="xs:normalizedString"> <xs:minLength value="0"/> <xs:maxLength value="256"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="RestrictedTermType"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="100"/> </xs:restriction> </xs:simpleType> <xs:complexType name="RulesType"> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:element name="Entity" type="mce:EntityType"/> <xs:element name="Affinity" type="mce:AffinityType"/> <xs:element name="Version" type="mce:VersionedRuleType"/> </xs:choice> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Regex" type="mce:RegexType"/> <xs:element name="Keyword" type="mce:KeywordType"/> <xs:element name="Fingerprint" type="mce:FingerprintType"/> </xs:choice> <xs:element name="LocalizedStrings" type="mce:LocalizedStringsType"/> </xs:sequence> </xs:complexType> <xs:complexType name="EntityType"> <xs:sequence> <xs:element name="Pattern" type="mce:PatternType" maxOccurs="unbounded"/> <xs:element name="Version" type="mce:VersionedPatternType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="id" type="mce:GuidType" use="required"/> <xs:attribute name="patternsProximity" type="mce:ProximityType" use="required"/> <xs:attribute name="recommendedConfidence" type="mce:ProbabilityType"/> <xs:attribute name="workload" type="mce:WorkloadType"/> </xs:complexType> <xs:complexType name="PatternType"> <xs:sequence> <xs:element name="IdMatch" type="mce:IdMatchType"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Match" type="mce:MatchType"/> <xs:element name="Any" type="mce:AnyType"/> </xs:choice> </xs:sequence> <xs:attribute name="confidenceLevel" type="mce:ProbabilityType" use="required"/> </xs:complexType> <xs:complexType name="AffinityType"> <xs:sequence> <xs:element name="Evidence" type="mce:EvidenceType" maxOccurs="unbounded"/> <xs:element name="Version" type="mce:VersionedEvidenceType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="id" type="mce:GuidType" use="required"/> <xs:attribute name="evidencesProximity" type="mce:ProximityType" use="required"/> <xs:attribute name="thresholdConfidenceLevel" type="mce:ProbabilityType" use="required"/> <xs:attribute name="workload" type="mce:WorkloadType"/> </xs:complexType> <xs:complexType name="EvidenceType"> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:element name="Match" type="mce:MatchType"/> <xs:element name="Any" type="mce:AnyType"/> </xs:choice> </xs:sequence> <xs:attribute name="confidenceLevel" type="mce:ProbabilityType" use="required"/> </xs:complexType> <xs:complexType name="IdMatchType"> <xs:attribute name="idRef" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="MatchType"> <xs:attribute name="idRef" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="AnyType"> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:element name="Match" type="mce:MatchType"/> <xs:element name="Any" type="mce:AnyType"/> </xs:choice> </xs:sequence> <xs:attribute name="minMatches" type="xs:nonNegativeInteger" default="1"/> <xs:attribute name="maxMatches" type="xs:nonNegativeInteger" use="optional"/> </xs:complexType> <xs:simpleType name="ProximityType"> <xs:restriction base="xs:positiveInteger"> <xs:minInclusive value="1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ProbabilityType"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="WorkloadType"> <xs:restriction base="xs:string"> <xs:enumeration value="Exchange"/> <xs:enumeration value="Outlook"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EngineVersionType"> <xs:restriction base="xs:string"> <xs:enumeration value="15.0.780.0"/> <xs:enumeration value="15.0.847.013"/> </xs:restriction> </xs:simpleType> <xs:complexType name="VersionedRuleType"> <xs:choice maxOccurs="unbounded"> <xs:element name="Entity" type="mce:EntityType"/> <xs:element name="Affinity" type="mce:AffinityType"/> </xs:choice> <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" /> </xs:complexType> <xs:complexType name="VersionedPatternType"> <xs:sequence> <xs:element name="Pattern" type="mce:PatternType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" /> </xs:complexType> <xs:complexType name="VersionedEvidenceType"> <xs:sequence> <xs:element name="Evidence" type="mce:EvidenceType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="minEngineVersion" type="mce:EngineVersionType" use="required" /> </xs:complexType> <xs:simpleType name="FingerprintValueType"> <xs:restriction base="xs:string"> <xs:minLength value="2732"/> <xs:maxLength value="2732"/> </xs:restriction> </xs:simpleType> <xs:complexType name="FingerprintType"> <xs:simpleContent> <xs:extension base="mce:FingerprintValueType"> <xs:attribute name="id" type="xs:token" use="required"/> <xs:attribute name="threshold" type="mce:ProbabilityType" use="required"/> <xs:attribute name="shingleCount" type="xs:positiveInteger" use="required"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="RegexType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:token" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="KeywordType"> <xs:sequence> <xs:element name="Group" type="mce:GroupType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:token" use="required"/> </xs:complexType> <xs:complexType name="GroupType"> <xs:sequence> <xs:choice> <xs:element name="Term" type="mce:TermType" maxOccurs="unbounded"/> </xs:choice> </xs:sequence> <xs:attribute name="matchStyle" default="word"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="word"/> <xs:enumeration value="string"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="TermType"> <xs:simpleContent> <xs:extension base="mce:RestrictedTermType"> <xs:attribute name="caseSensitive" type="xs:boolean" default="false"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="LocalizedStringsType"> <xs:sequence> <xs:element name="Resource" type="mce:ResourceType" maxOccurs="unbounded"> <xs:key name="UniqueLangCodeUsedInNamePerResource"> <xs:selector xpath="mce:Name"/> <xs:field xpath="@langcode"/> </xs:key> <xs:key name="UniqueLangCodeUsedInDescriptionPerResource"> <xs:selector xpath="mce:Description"/> <xs:field xpath="@langcode"/> </xs:key> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ResourceType"> <xs:sequence> <xs:element name="Name" type="mce:ResourceNameType" maxOccurs="unbounded"/> <xs:element name="Description" type="mce:DescriptionType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="idRef" type="mce:GuidType" use="required"/> </xs:complexType> <xs:complexType name="ResourceNameType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="default" type="xs:boolean" default="false"/> <xs:attribute name="langcode" type="mce:LangType" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="DescriptionType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="default" type="xs:boolean" default="false"/> <xs:attribute name="langcode" type="mce:LangType" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:schema>