﻿<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio (http://www.liquid-technologies.com)-->
<xs:schema xmlns="http://www.movielabs.com/cr/rules" elementFormDefault="qualified" targetNamespace="http://www.movielabs.com/cr/rules" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="crGeneric.xsd" />
  <xs:complexType name="detection_criteria">
    <xs:all>
      <xs:element minOccurs="0" name="MatchThreshold" type="matched_threshold" />
      <xs:element minOccurs="0" name="MinLengthMatched">
        <xs:complexType>
          <xs:attributeGroup ref="time_attribute" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="MinAggregateLengthMatched">
        <xs:complexType>
          <xs:attributeGroup ref="time_attribute" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="MinPercentOfSiteAssetMatching">
        <xs:complexType>
          <xs:attributeGroup ref="percent_attribute" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="MinPercentOfSiteAssetAggregateMatching">
        <xs:complexType>
          <xs:attributeGroup ref="percent_attribute" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="MinPercentOfOriginalAssetMatched">
        <xs:complexType>
          <xs:attributeGroup ref="percent_attribute" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="WatermarkDetected">
        <xs:complexType>
          <xs:attribute name="type" type="watermark_type" use="required" />
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="SectionMatched">
        <xs:complexType>
          <xs:attribute name="start" type="xs:duration" use="required" />
          <xs:attribute name="length" type="xs:duration" use="required" />
          <xs:attribute name="percent" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:integer">
                <xs:minInclusive value="1" />
                <xs:maxInclusive value="100" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="rule">
    <xs:all>
      <xs:element minOccurs="0" name="RuleValidDuration" type="time_interval" />
      <xs:element minOccurs="0" maxOccurs="1" name="IncludeSegments" type="segment_list" />
      <xs:element minOccurs="0" maxOccurs="1" name="ExcludeSegments" type="segment_list" />
      <xs:element minOccurs="0" name="DetectionCriteria" type="detection_criteria" />
      <xs:element name="Actions" type="action" />
    </xs:all>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute default="any" name="matchedComponents" type="matched_components" />
    <xs:attribute name="alwaysProcess" type="xs:boolean" />
    <xs:attribute name="ignoreWhiteList" type="xs:boolean" />
    <xs:attribute name="generateACNS" type="xs:boolean" />
    <xs:attributeGroup ref="priority_attribute" />
  </xs:complexType>
  <xs:element name="RuleList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="RuleListName">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="version" use="optional">
                  <xs:simpleType>
                    <xs:restriction base="xs:integer">
                      <xs:minInclusive value="0" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="revision" use="optional">
                  <xs:simpleType>
                    <xs:restriction base="xs:integer">
                      <xs:minInclusive value="0" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="0" name="RuleListCreationTime" type="xs:dateTime" />
        <xs:element minOccurs="0" name="RuleListID" type="xs:string" />
        <xs:element minOccurs="0" name="RuleListValidDuration" type="time_interval" />
        <xs:element minOccurs="0" name="SiteConcerned" type="xs:anyURI" />
        <xs:element name="Owner" type="owner" />
        <xs:element minOccurs="0" maxOccurs="1" name="AssetList" type="asset_list" />
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Rule" type="rule" />
      </xs:sequence>
      <xs:attributeGroup ref="versioning_mandatory_attribute" />
      <xs:attribute name="templateID" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="AssetsWithTemplate">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="AssetListID" type="xs:string" />
        <xs:element minOccurs="1" name="TemplateID" type="xs:string" />
        <xs:element minOccurs="0" name="SiteConcerned" type="xs:anyURI" />
        <xs:element name="Owner" type="owner" />
        <xs:element name="AssetList" type="asset_list" />
      </xs:sequence>
      <xs:attributeGroup ref="versioning_mandatory_attribute" />
    </xs:complexType>
  </xs:element>
</xs:schema>