<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:yt="http://www.youtube.com/schemas/cms/2.0"
           xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.youtube.com/schemas/cms/2.0"
           elementFormDefault="qualified">

    <!--  ******************** Basic blocks ******************** -->
    <xs:element name="feed">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element name="file" type="yt:FileType" />
                <xs:element name="asset" type="yt:AssetType" />
                <xs:element name="video" type="yt:VideoType" />
                <xs:element name="relationship" type="yt:RelationshipType" />
                <xs:element name="ownership" type="yt:OwnershipType" />
                <xs:element name="rights_admin" type="yt:RightsAdminType" />
                <xs:element name="rights_policy" type="yt:RightsPolicyType" />
                <xs:element name="claim" type="yt:ClaimType" />
                <xs:element name="caption" type="yt:CaptionType" />
            </xs:choice>
            <xs:attribute type="xs:string" name="notification_email"/>
            <xs:attribute type="yt:string_64" name="channel"/>
        </xs:complexType>
    </xs:element>

    <!--  ******************** File Type ******************** -->
    <xs:complexType name="FileType">
        <xs:sequence>
            <xs:element name="filename" minOccurs="1" maxOccurs="1" />
            <xs:element name="description" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="type" type="yt:FileTypeList" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>


    <!--  ******************** FileTypeList ******************** -->
    <xs:simpleType name="FileTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="video" />
            <xs:enumeration value="image" />
            <xs:enumeration value="timed_text" />
            <xs:enumeration value="x-gfp" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** AssetTypeList ******************** -->
    <xs:complexType name="AssetType">
        <xs:sequence>
            <xs:element name="actor" minOccurs="0" maxOccurs="50" type="xs:string" />
            <xs:element name="content_type" minOccurs="1" maxOccurs="1" type="yt:AssetContentList" />
            <xs:element name="custom_id" minOccurs="0" maxOccurs="1" type="yt:string_64" />
            <xs:element name="description" minOccurs="1" maxOccurs="1" type="yt:string_5000" />
            <xs:element name="director" minOccurs="0" maxOccurs="50" type="xs:string" />
            <xs:element name="episode" minOccurs="1" maxOccurs="1" type="yt:episode_season" />
            <xs:element name="original_release_date" minOccurs="1" maxOccurs="1" type="xs:date" />
            <xs:element name="original_release_medium" minOccurs="0" maxOccurs="1" type="yt:AssetReleaseList" />
            <xs:element name="producer" minOccurs="0" maxOccurs="50" type="xs:string" />
            <xs:element name="rating" minOccurs="1" maxOccurs="7" type="yt:AssetRatingType" />
            <xs:element name="season" minOccurs="1" maxOccurs="1" type="yt:episode_season" />
            <xs:element name="show_custom_id" minOccurs="1" maxOccurs="1" type="yt:string_64" />
            <xs:element name="shows_and_movies_programming" minOccurs="1" maxOccurs="1" type="xs:boolean" />
            <xs:element name="spoken_language" minOccurs="1" maxOccurs="1" type="yt:language_type" />
            <xs:element name="subtitled_language" minOccurs="0" maxOccurs="1" type="yt:language_type" />
            <xs:element name="title" minOccurs="1" maxOccurs="1" type="yt:string_120" />
            <xs:element name="writer" minOccurs="0" maxOccurs="50" type="xs:string" />
        </xs:sequence>
        <xs:attribute name="type" type="yt:AssetTypeList" use="required" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:simpleType name="AssetTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="composition" />
            <xs:enumeration value="episode" />
            <xs:enumeration value="movie" />
            <xs:enumeration value="music_video" />
            <xs:enumeration value="season" />
            <xs:enumeration value="show" />
            <xs:enumeration value="sound_recording" />
            <xs:enumeration value="trailer" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="AssetContentList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Clip" />
            <xs:enumeration value="Feature Film" />
            <xs:enumeration value="Full Episode" />
            <xs:enumeration value="Short" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="AssetReleaseList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Basic TV" />
            <xs:enumeration value="Premium TV" />
            <xs:enumeration value="Terrestrial TV" />
            <xs:enumeration value="Film" />
            <xs:enumeration value="Promotional" />
            <xs:enumeration value="Web" />
            <xs:enumeration value="Direct-To-Video" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="AssetRatingType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="system" type="yt:AssetRatingSystemList" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="AssetRatingSystemList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="acb" />
            <xs:enumeration value="ca_tv" />
            <xs:enumeration value="fsk" />
            <xs:enumeration value="fmoc" />
            <xs:enumeration value="bbfc" />
            <xs:enumeration value="tvpg" />
            <xs:enumeration value="eirin" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** Video Type ******************** -->
    <xs:complexType name="VideoType">
        <xs:sequence>
            <xs:element name="allow_comment_rating" minOccurs="0" maxOccurs="1" type="xs:boolean" />
            <xs:element name="allow_comments" minOccurs="0" maxOccurs="1" type="yt:VideoAllowList" />
            <xs:element name="allow_embedding" minOccurs="0" maxOccurs="1" type="xs:boolean" />
            <xs:element name="allow_ratings" minOccurs="0" maxOccurs="1" type="xs:boolean" />
            <xs:element name="allow_syndication" minOccurs="0" maxOccurs="1" type="xs:boolean" />
            <xs:element name="artwork" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:attribute name="type" type="yt:VideoArtworkTypeList" use="required" />
                    <xs:attribute name="path" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
            <xs:element name="channel" minOccurs="1" maxOccurs="1" type="yt:string_64" />
            <xs:element name="description" minOccurs="1" maxOccurs="1" type="yt:string_5000" />
            <xs:element name="genre" minOccurs="1" maxOccurs="unbounded" type="yt:VideoGenreList" />
            <xs:element name="keyword" minOccurs="1" maxOccurs="unbounded" type="yt:string_30" />
            <xs:element name="video_order_id" minOccurs="1" maxOccurs="1" >
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="yt:string_30">
                            <xs:attribute type="xs:string" name="type"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="paid_content" minOccurs="1" maxOccurs="1" type="xs:boolean" />
            <xs:element name="public" minOccurs="1" maxOccurs="1" type="xs:boolean" />
            <xs:element name="title" minOccurs="1" maxOccurs="1" type="xs:string" />
        </xs:sequence>
        <xs:attribute name="id" type="xs:string" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:simpleType name="VideoAllowList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Always" />
            <xs:enumeration value="Approve" />
            <xs:enumeration value="Never" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="VideoArtworkTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="custom_thumbnail" />
            <xs:enumeration value="movie_poster" />
            <xs:enumeration value="movie_graphic" />
            <xs:enumeration value="trailer_poster" />
            <xs:enumeration value="trailer_graphic" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="VideoGenreList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="howto" />
            <xs:enumeration value="autos &amp; vehicles" />
            <xs:enumeration value="sports" />
            <xs:enumeration value="nonprofits &amp; activism" />
            <xs:enumeration value="gaming" />
            <xs:enumeration value="tech" />
            <xs:enumeration value="films" />
            <xs:enumeration value="entertainment" />
            <xs:enumeration value="travel &amp; events" />
            <xs:enumeration value="autos" />
            <xs:enumeration value="people" />
            <xs:enumeration value="howto &amp; style" />
            <xs:enumeration value="music" />
            <xs:enumeration value="government" />
            <xs:enumeration value="animals" />
            <xs:enumeration value="education" />
            <xs:enumeration value="news &amp; politics" />
            <xs:enumeration value="people &amp; blogs" />
            <xs:enumeration value="pets &amp; animals" />
            <xs:enumeration value="pets" />
            <xs:enumeration value="nonprofits" />
            <xs:enumeration value="science &amp; technology" />
            <xs:enumeration value="travel" />
            <xs:enumeration value="news" />
            <xs:enumeration value="vehicles" />
            <xs:enumeration value="gadgets" />
            <xs:enumeration value="film" />
            <xs:enumeration value="nonprofit" />
            <xs:enumeration value="film &amp; animation" />
            <xs:enumeration value="games" />
            <xs:enumeration value="comedy" />
            <xs:enumeration value="science " />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="VideoOrderIdTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="custom" />
        </xs:restriction>
    </xs:simpleType>

    <!--  ******************** Relationship Type ******************** -->
    <xs:complexType name="RelationshipType">
        <xs:sequence>
            <xs:element name="item" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="path" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
            <xs:element name="related_item" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="path" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="yt:RelationshipTypeList" use="optional" />
    </xs:complexType>

    <xs:simpleType name="RelationshipTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="contains" />
            <xs:enumeration value="associate" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** Ownership Type ******************** -->
    <xs:complexType name="OwnershipType">
        <xs:sequence>
            <xs:element name="owner" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="rule" minOccurs="1" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="condition" minOccurs="1" maxOccurs="unbounded" type="yt:OwnerCondType" />
                                </xs:sequence>
                                <xs:attribute name="percentage" type="xs:decimal" use="optional" />
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="path" type="xs:string" use="optional" />
                    <xs:attribute name="name" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="asset" type="xs:string" use="optional" />
        <xs:attribute name="override_manual_edit" type="xs:boolean" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:complexType name="OwnerCondType">
        <xs:simpleContent>
            <xs:extension base="yt:RightsCondValueList_Territory">
                <xs:attribute name="restriction" type="yt:RightsCondRestrictionList_Territory" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" fixed="territory" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="RightsCondRestrictionList_Territory">
        <xs:restriction base="xs:string">
            <xs:enumeration value="include" />
            <xs:enumeration value="exclude" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="RightsCondValueList_Territory">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Z]{2}([ ][A-Z]{2})*" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** Rights Admin Type ******************** -->
    <xs:complexType name="RightsAdminType">
        <xs:attribute name="type" type="yt:RightsTypeList" use="required" />
        <xs:attribute name="owner" type="xs:boolean" use="optional" />
        <xs:attribute name="asset" type="xs:string" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>


    <!--  ******************** Rights Policy Type ******************** -->
    <xs:complexType name="RightsPolicyType">
        <xs:sequence>
            <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
            <xs:element name="rule" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="condition" minOccurs="0" maxOccurs="unbounded" type="yt:PolicyCondType" />
                    </xs:sequence>
                    <xs:attribute name="action" type="yt:RightsActionList" use="required" />
                    <xs:attribute name="subaction" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="id" type="xs:string" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:complexType name="PolicyCondType">
        <xs:simpleContent>
            <xs:extension base="yt:RightsCondValueList">
                <xs:attribute name="restriction" type="yt:RightsCondRestrictionList" use="required" />
                <xs:attribute name="type" type="yt:RightsCondTypeList" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="RightsTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="usage" />
            <xs:enumeration value="match" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="RightsActionList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="block" />
            <xs:enumeration value="monetize" />
            <xs:enumeration value="track" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="RightsCondValueList">
        <xs:restriction base="xs:string">
            <xs:pattern value="(audio|video)" />
            <xs:pattern value="([0-9]|[1-9][0-9]|100)" />
            <xs:pattern value="[0-9]+" />
            <xs:pattern value="[A-Z]{2}([ ][A-Z]{2})*" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="RightsCondRestrictionList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="include" />
            <xs:enumeration value="exclude" />
            <xs:enumeration value="less_than" />
            <xs:enumeration value="greater_than" />
            <xs:enumeration value="less_equal" />
            <xs:enumeration value="greater_equal" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="RightsCondTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="match_type" />
            <xs:enumeration value="match_percent" />
            <xs:enumeration value="match_length" />
            <xs:enumeration value="territory" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** Claim Type ******************** -->
    <xs:complexType name="ClaimType">
        <xs:attribute name="type" type="yt:ClaimTypeList" use="required" />
        <xs:attribute name="asset" type="xs:string" use="required" />
        <xs:attribute name="rights_admin" type="xs:string" use="required" />
        <xs:attribute name="rights_policy" type="xs:string" use="required" />
        <xs:attribute name="video" type="xs:string" use="required" />
        <xs:attribute name="block_outside_ownership" type="xs:boolean" use="optional" />
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>

    <xs:simpleType name="ClaimTypeList">
        <xs:restriction base="xs:string">
            <xs:enumeration value="audio" />
            <xs:enumeration value="video" />
            <xs:enumeration value="audiovisual" />
        </xs:restriction>
    </xs:simpleType>


    <!--  ******************** Caption Type  ******************** -->
    <xs:complexType name="CaptionType">
        <xs:sequence>
            <xs:element name="format" minOccurs="1" maxOccurs="1" type="xs:string" />
            <xs:element name="language" minOccurs="1" maxOccurs="1" type="yt:language_type" />
        </xs:sequence>
        <xs:attribute name="tag" type="xs:string" use="optional" />
    </xs:complexType>



    <!--  ******************** Common ******************** -->
    <xs:simpleType name="language_type">
        <xs:annotation>
            <xs:documentation>
                Two-letter (alpha-2) ISO 639-1 code for one of the 180+ languages.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="aa" /> <!--   Afar  -->
            <xs:enumeration value="ab" /> <!--   Abkhazian  -->
            <xs:enumeration value="ae" /> <!--   Avestan  -->
            <xs:enumeration value="af" /> <!--   Afrikaans  -->
            <xs:enumeration value="ak" /> <!--   Akan  -->
            <xs:enumeration value="am" /> <!--   Amharic  -->
            <xs:enumeration value="an" /> <!--   Aragonese  -->
            <xs:enumeration value="ar" /> <!--   Arabic  -->
            <xs:enumeration value="as" /> <!--   Assamese  -->
            <xs:enumeration value="av" /> <!--   Avaric  -->
            <xs:enumeration value="ay" /> <!--   Aymara  -->
            <xs:enumeration value="az" /> <!--   Azerbaijani  -->
            <xs:enumeration value="ba" /> <!--   Bashkir  -->
            <xs:enumeration value="be" /> <!--   Belarusian  -->
            <xs:enumeration value="bg" /> <!--   Bulgarian  -->
            <xs:enumeration value="bh" /> <!--   Bihari languages  -->
            <xs:enumeration value="bi" /> <!--   Bislama  -->
            <xs:enumeration value="bm" /> <!--   Bambara  -->
            <xs:enumeration value="bn" /> <!--   Bengali  -->
            <xs:enumeration value="bo" /> <!--   Tibetan  -->
            <xs:enumeration value="br" /> <!--   Breton  -->
            <xs:enumeration value="bs" /> <!--   Bosnian  -->
            <xs:enumeration value="ca" /> <!--   Catalan; Valencian  -->
            <xs:enumeration value="ce" /> <!--   Chechen  -->
            <xs:enumeration value="ch" /> <!--   Chamorro  -->
            <xs:enumeration value="co" /> <!--   Corsican  -->
            <xs:enumeration value="cr" /> <!--   Cree  -->
            <xs:enumeration value="cs" /> <!--   Czech  -->
            <xs:enumeration value="cu" /> <!--   Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic  -->
            <xs:enumeration value="cv" /> <!--   Chuvash  -->
            <xs:enumeration value="cy" /> <!--   Welsh  -->
            <xs:enumeration value="da" /> <!--   Danish  -->
            <xs:enumeration value="de" /> <!--   German  -->
            <xs:enumeration value="dv" /> <!--   Divehi; Dhivehi; Maldivian  -->
            <xs:enumeration value="dz" /> <!--   Dzongkha  -->
            <xs:enumeration value="ee" /> <!--   Ewe  -->
            <xs:enumeration value="el" /> <!--   Greek, Modern (1453-)  -->
            <xs:enumeration value="en" /> <!--   English  -->
            <xs:enumeration value="eo" /> <!--   Esperanto  -->
            <xs:enumeration value="es" /> <!--   Spanish; Castilian  -->
            <xs:enumeration value="et" /> <!--   Estonian  -->
            <xs:enumeration value="eu" /> <!--   Basque  -->
            <xs:enumeration value="fa" /> <!--   Persian  -->
            <xs:enumeration value="ff" /> <!--   Fulah  -->
            <xs:enumeration value="fi" /> <!--   Finnish  -->
            <xs:enumeration value="fj" /> <!--   Fijian  -->
            <xs:enumeration value="fo" /> <!--   Faroese  -->
            <xs:enumeration value="fr" /> <!--   French  -->
            <xs:enumeration value="fy" /> <!--   Western Frisian  -->
            <xs:enumeration value="ga" /> <!--   Irish  -->
            <xs:enumeration value="gd" /> <!--   Gaelic; Scottish Gaelic  -->
            <xs:enumeration value="gl" /> <!--   Galician  -->
            <xs:enumeration value="gn" /> <!--   Guarani  -->
            <xs:enumeration value="gu" /> <!--   Gujarati  -->
            <xs:enumeration value="gv" /> <!--   Manx  -->
            <xs:enumeration value="ha" /> <!--   Hausa  -->
            <xs:enumeration value="he" /> <!--   Hebrew  -->
            <xs:enumeration value="hi" /> <!--   Hindi  -->
            <xs:enumeration value="ho" /> <!--   Hiri Motu  -->
            <xs:enumeration value="hr" /> <!--   Croatian  -->
            <xs:enumeration value="ht" /> <!--   Haitian; Haitian Creole  -->
            <xs:enumeration value="hu" /> <!--   Hungarian  -->
            <xs:enumeration value="hy" /> <!--   Armenian  -->
            <xs:enumeration value="hz" /> <!--   Herero  -->
            <xs:enumeration value="ia" /> <!--   Interlingua (International Auxiliary Language Association)  -->
            <xs:enumeration value="id" /> <!--   Indonesian  -->
            <xs:enumeration value="ie" /> <!--   Interlingue; Occidental  -->
            <xs:enumeration value="ig" /> <!--   Igbo  -->
            <xs:enumeration value="ii" /> <!--   Sichuan Yi; Nuosu  -->
            <xs:enumeration value="ik" /> <!--   Inupiaq  -->
            <xs:enumeration value="io" /> <!--   Ido  -->
            <xs:enumeration value="is" /> <!--   Icelandic  -->
            <xs:enumeration value="it" /> <!--   Italian  -->
            <xs:enumeration value="iu" /> <!--   Inuktitut  -->
            <xs:enumeration value="ja" /> <!--   Japanese  -->
            <xs:enumeration value="jv" /> <!--   Javanese  -->
            <xs:enumeration value="ka" /> <!--   Georgian  -->
            <xs:enumeration value="kg" /> <!--   Kongo  -->
            <xs:enumeration value="ki" /> <!--   Kikuyu; Gikuyu  -->
            <xs:enumeration value="kj" /> <!--   Kuanyama; Kwanyama  -->
            <xs:enumeration value="kk" /> <!--   Kazakh  -->
            <xs:enumeration value="kl" /> <!--   Kalaallisut; Greenlandic  -->
            <xs:enumeration value="km" /> <!--   Central Khmer  -->
            <xs:enumeration value="kn" /> <!--   Kannada  -->
            <xs:enumeration value="ko" /> <!--   Korean  -->
            <xs:enumeration value="kr" /> <!--   Kanuri  -->
            <xs:enumeration value="ks" /> <!--   Kashmiri  -->
            <xs:enumeration value="ku" /> <!--   Kurdish  -->
            <xs:enumeration value="kv" /> <!--   Komi  -->
            <xs:enumeration value="kw" /> <!--   Cornish  -->
            <xs:enumeration value="ky" /> <!--   Kirghiz; Kyrgyz  -->
            <xs:enumeration value="la" /> <!--   Latin  -->
            <xs:enumeration value="lb" /> <!--   Luxembourgish; Letzeburgesch  -->
            <xs:enumeration value="lg" /> <!--   Ganda  -->
            <xs:enumeration value="li" /> <!--   Limburgan; Limburger; Limburgish  -->
            <xs:enumeration value="ln" /> <!--   Lingala  -->
            <xs:enumeration value="lo" /> <!--   Lao  -->
            <xs:enumeration value="lt" /> <!--   Lithuanian  -->
            <xs:enumeration value="lu" /> <!--   Luba-Katanga  -->
            <xs:enumeration value="lv" /> <!--   Latvian  -->
            <xs:enumeration value="mg" /> <!--   Malagasy  -->
            <xs:enumeration value="mh" /> <!--   Marshallese  -->
            <xs:enumeration value="mi" /> <!--   Maori  -->
            <xs:enumeration value="mk" /> <!--   Macedonian  -->
            <xs:enumeration value="ml" /> <!--   Malayalam  -->
            <xs:enumeration value="mn" /> <!--   Mongolian  -->
            <xs:enumeration value="mr" /> <!--   Marathi  -->
            <xs:enumeration value="ms" /> <!--   Malay  -->
            <xs:enumeration value="mt" /> <!--   Maltese  -->
            <xs:enumeration value="my" /> <!--   Burmese  -->
            <xs:enumeration value="na" /> <!--   Nauru  -->
            <xs:enumeration value="nb" /> <!--   Bokmål, Norwegian; Norwegian Bokmål  -->
            <xs:enumeration value="nd" /> <!--   Ndebele, North; North Ndebele  -->
            <xs:enumeration value="ne" /> <!--   Nepali  -->
            <xs:enumeration value="ng" /> <!--   Ndonga  -->
            <xs:enumeration value="nl" /> <!--   Dutch; Flemish  -->
            <xs:enumeration value="nn" /> <!--   Norwegian Nynorsk; Nynorsk, Norwegian  -->
            <xs:enumeration value="no" /> <!--   Norwegian  -->
            <xs:enumeration value="nr" /> <!--   Ndebele, South; South Ndebele  -->
            <xs:enumeration value="nv" /> <!--   Navajo; Navaho  -->
            <xs:enumeration value="ny" /> <!--   Chichewa; Chewa; Nyanja  -->
            <xs:enumeration value="oc" /> <!--   Occitan (post 1500)  -->
            <xs:enumeration value="oj" /> <!--   Ojibwa  -->
            <xs:enumeration value="om" /> <!--   Oromo  -->
            <xs:enumeration value="or" /> <!--   Oriya  -->
            <xs:enumeration value="os" /> <!--   Ossetian; Ossetic  -->
            <xs:enumeration value="pa" /> <!--   Panjabi; Punjabi  -->
            <xs:enumeration value="pi" /> <!--   Pali  -->
            <xs:enumeration value="pl" /> <!--   Polish  -->
            <xs:enumeration value="ps" /> <!--   Pushto; Pashto  -->
            <xs:enumeration value="pt" /> <!--   Portuguese  -->
            <xs:enumeration value="qu" /> <!--   Quechua  -->
            <xs:enumeration value="rm" /> <!--   Romansh  -->
            <xs:enumeration value="rn" /> <!--   Rundi  -->
            <xs:enumeration value="ro" /> <!--   Romanian; Moldavian; Moldovan  -->
            <xs:enumeration value="ru" /> <!--   Russian  -->
            <xs:enumeration value="rw" /> <!--   Kinyarwanda  -->
            <xs:enumeration value="sa" /> <!--   Sanskrit  -->
            <xs:enumeration value="sc" /> <!--   Sardinian  -->
            <xs:enumeration value="sd" /> <!--   Sindhi  -->
            <xs:enumeration value="se" /> <!--   Northern Sami  -->
            <xs:enumeration value="sg" /> <!--   Sango  -->
            <xs:enumeration value="si" /> <!--   Sinhala; Sinhalese  -->
            <xs:enumeration value="sk" /> <!--   Slovak  -->
            <xs:enumeration value="sk" /> <!--   Slovak  -->
            <xs:enumeration value="sl" /> <!--   Slovenian  -->
            <xs:enumeration value="sm" /> <!--   Samoan  -->
            <xs:enumeration value="sn" /> <!--   Shona  -->
            <xs:enumeration value="so" /> <!--   Somali  -->
            <xs:enumeration value="sq" /> <!--   Albanian  -->
            <xs:enumeration value="sr" /> <!--   Serbian  -->
            <xs:enumeration value="ss" /> <!--   Swati  -->
            <xs:enumeration value="st" /> <!--   Sotho, Southern  -->
            <xs:enumeration value="su" /> <!--   Sundanese  -->
            <xs:enumeration value="sv" /> <!--   Swedish  -->
            <xs:enumeration value="sw" /> <!--   Swahili  -->
            <xs:enumeration value="ta" /> <!--   Tamil  -->
            <xs:enumeration value="te" /> <!--   Telugu  -->
            <xs:enumeration value="tg" /> <!--   Tajik  -->
            <xs:enumeration value="th" /> <!--   Thai  -->
            <xs:enumeration value="ti" /> <!--   Tigrinya  -->
            <xs:enumeration value="tk" /> <!--   Turkmen  -->
            <xs:enumeration value="tl" /> <!--   Tagalog  -->
            <xs:enumeration value="tn" /> <!--   Tswana  -->
            <xs:enumeration value="to" /> <!--   Tonga (Tonga Islands)  -->
            <xs:enumeration value="tr" /> <!--   Turkish  -->
            <xs:enumeration value="ts" /> <!--   Tsonga  -->
            <xs:enumeration value="tt" /> <!--   Tatar  -->
            <xs:enumeration value="tw" /> <!--   Twi  -->
            <xs:enumeration value="ty" /> <!--   Tahitian  -->
            <xs:enumeration value="ug" /> <!--   Uighur; Uyghur  -->
            <xs:enumeration value="uk" /> <!--   Ukrainian  -->
            <xs:enumeration value="ur" /> <!--   Urdu  -->
            <xs:enumeration value="uz" /> <!--   Uzbek  -->
            <xs:enumeration value="ve" /> <!--   Venda  -->
            <xs:enumeration value="vi" /> <!--   Vietnamese  -->
            <xs:enumeration value="vo" /> <!--   Volapük  -->
            <xs:enumeration value="wa" /> <!--   Walloon  -->
            <xs:enumeration value="wo" /> <!--   Wolof  -->
            <xs:enumeration value="xh" /> <!--   Xhosa  -->
            <xs:enumeration value="yi" /> <!--   Yiddish  -->
            <xs:enumeration value="yo" /> <!--   Yoruba  -->
            <xs:enumeration value="za" /> <!--   Zhuang; Chuang  -->
            <xs:enumeration value="zh" /> <!--   Chinese  -->
            <xs:enumeration value="zu" /> <!--   Zulu  -->
        </xs:restriction>
    </xs:simpleType>


    <xs:simpleType name="string_120">
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="120" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string_5000">
        <xs:restriction base="xs:normalizedString">
            <xs:minLength value="2" />
            <xs:maxLength value="5000" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string_30">
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="30" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string_64">
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="64" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="episode_season">
        <xs:restriction base="xs:unsignedShort">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="999"/>
        </xs:restriction>
    </xs:simpleType>


</xs:schema>
