<?xml version="1.0" encoding="UTF-8"?>
<!-- On Update Program Mappings - v3.26  -->
<!-- File: on_update_programmappings_3.26.xsd  -->
<!-- Copyright 2017-present. Gracenote, Inc. All rights reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"
           version="3.26">
  <xs:include schemaLocation="http://files.api.gracenote.com/xsd/types_3.26.xsd"/>
  <xs:element name="on">
    <xs:annotation>
      <xs:documentation>Root element for the On products.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header"/>
        <xs:element name="programMappings">
          <xs:annotation>
            <xs:documentation>The parent element for associations from one set of program identifiers to another.
            </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="programMapping" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>The parent element for program mapping information.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:string" name="creationDate" minOccurs="0"/>
                    <xs:element name="status" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Mapping status; possible values are 'ToBeMapped', 'Mapped', 'Unmappable'.
                        </xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="ToBeMapped"/>
                          <xs:enumeration value="Mapped"/>
                          <xs:enumeration value="Unmappable"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="id" minOccurs="0" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>The Gracenote program identifier value.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:token">
                            <xs:attribute name="type" use="required" type="xs:token">
                              <xs:annotation>
                                <xs:documentation>The Gracenote identifier type, e.g., "TMSId".</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="link" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>A link from this entity to another entity by identifier. Links are undirected
                          by default.
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="idType" use="required" type="xs:token">
                              <xs:annotation>
                                <xs:documentation>The type of this entity's identifier, e.g., "ProviderId".
                                </xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="availability" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Date range provided to Gracenote by mapping requestor.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="start" type="xs:dateTime" minOccurs="0"/>
                          <xs:element name="end" type="xs:dateTime" minOccurs="0"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="message">
                      <xs:annotation>
                        <xs:documentation>Used only for assets which cannot be mapped, to provide further information on
                          mapping issues.
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="detail" type="xs:token" minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                              <xs:documentation>Information regarding cause of Unmappable status.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="reason" use="required">
                          <xs:annotation>
                            <xs:documentation>The reason the unmappable message was generated, e.g., "Metadata
                              Discrepancy"
                            </xs:documentation>
                          </xs:annotation>
                        </xs:attribute>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="catalogName" type="xs:token">
                      <xs:annotation>
                        <xs:documentation>The mapping catalog name which contains this programMapping. Multiple mapping
                          catalogs may be included, depending on customer configuration.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="programMappingId" use="required">
                    <xs:annotation>
                      <xs:documentation>The unique identifier for the requested program mapping. This identifier is
                        unique across all catalogs.
                      </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute ref="updateId" use="required"/>
                  <xs:attribute ref="updateDate" use="required"/>
                  <xs:attribute ref="deleted" use="optional"/>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="type" use="required">
              <xs:annotation>
                <xs:documentation>Optional descriptor of the linked id types (e.g., "TMSId/PartnerXYZId").
                </xs:documentation>
              </xs:annotation>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="schemaVersion" type="xs:decimal" use="optional" default="3.26">
        <xs:annotation>
          <xs:documentation>The On Updates schema version number.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
</xs:schema>
