<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2007 by IndependentIP BV

     The standard defined by the XML schema in this file is the property
     of IndependentIP BV. See http://fugamusic.com/api/schema for the
     current version of the standard. License is granted to freely
     distribute the schema and to implement the standard, provided that
     you: 1) Retain this copyright notice and license unchanged. 2) Clearly
     identify any modifications to the schema as your own

-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.3.0" xmlns:iso3166a2="http://fugamusic.com/schema/iso3166-1-alpha-2">
    <xsd:import namespace="http://fugamusic.com/schema/iso3166-1-alpha-2" schemaLocation="http://fugamusic.com/schema/iso3166-1-alpha-2.xsd" />

    <xsd:element name="album">
        <xsd:complexType>
        <xsd:all>
            <xsd:element name="action">
    			<xsd:annotation>
        			<xsd:documentation>
            			Element describing the action the DSP has to perform with this product. 
					</xsd:documentation>
				</xsd:annotation>
	           <xsd:complexType>
                    <xsd:sequence>
    					<xsd:element name="type">
                			<xsd:annotation>
                    			<xsd:documentation>
                        			Type of the action. Valid type are "insert", "update", "metadata_only", and "delete".
                        			- insert: This is a new delivery of a product, metadata and physical files have been delivered.
                        			- update: Update of a product, metadata and physical files have been delivered. 
                        			- metadata_only: Delivery updates only metadata of a product. 
													Metadata XML file is sent to perform the update, but no tracks, videos, and cover art.
                        			- delete: Request to take a product down from the receiver's system. 
													Metadata XML file is sent to identify the product, but no tracks, videos, and cover art.
                    			</xsd:documentation>
                			</xsd:annotation>
			                <xsd:simpleType>
			                    <xsd:restriction base="xsd:string">
			                        <xsd:enumeration value="insert"></xsd:enumeration>
			                        <xsd:enumeration value="update"></xsd:enumeration>
			                        <xsd:enumeration value="metadata_only"></xsd:enumeration>
			                        <xsd:enumeration value="delete"></xsd:enumeration>
			                    </xsd:restriction>
			                </xsd:simpleType>
						</xsd:element>
            			<xsd:element name="effective_date" type="xsd:dateTime" maxOccurs="1" minOccurs="0">
			                <xsd:annotation>
			                    <xsd:documentation>
			                        Time when the requested action has to be performed. 
			                        This attribute holds a ISO 8601 time code including a time zone designator so the local time at the DSP can be calculated easily.
			                    </xsd:documentation>
			                </xsd:annotation>                
            			</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
            <xsd:element name="album_notes" type="xsd:string" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Additional information included with the album, such as recording notes etc.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="alternate_genre" type="genre_type" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Alternate genre associated with the album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="alternate_subgenre" type="xsd:string" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        An additional qualifier to alternate genre. There is no definite list for the values; they are defined by the content provider.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="artists" maxOccurs="1" minOccurs="1">            	
		        <xsd:annotation>
		            <xsd:documentation>
	                	The list of the artists belonging to this product or asset.
	            	</xsd:documentation>
		        </xsd:annotation>
            </xsd:element>
            <xsd:element name="attachments" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        The list of the attachments belonging to this album. Attachments are any files that the content owner wants to distribute
						with the product, such as artist's biography, banners, etc.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="attachment" maxOccurs="unbounded">
	                        <xsd:complexType>
	                            <xsd:annotation>
	                                <xsd:documentation>Element describing one attachment of the product.</xsd:documentation>
	                            </xsd:annotation>
	                            <xsd:all>
	                                <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="0">
	                                    <xsd:annotation>
	                                        <xsd:documentation>
	                                            Name of the attachment.
	                                        </xsd:documentation>
	                                    </xsd:annotation>
	                                </xsd:element>
	                                <xsd:element name="description" type="xsd:string" maxOccurs="1" minOccurs="0">
	                                    <xsd:annotation>
	                                        <xsd:documentation>
	                                            Description of the attachment.
	                                        </xsd:documentation>
	                                    </xsd:annotation>
	                                </xsd:element>
	                                <xsd:element name="original_file_name" type="xsd:string" maxOccurs="1" minOccurs="0">
	                                    <xsd:annotation>
	                                        <xsd:documentation>
	                                            File name under which the attachment was uploaded to FUGA.
	                                        </xsd:documentation>
	                                    </xsd:annotation>
	                                </xsd:element>
									<xsd:element name="file" type="file_type" maxOccurs="1" minOccurs="1"/>
								</xsd:all>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
            <xsd:element name="c_line_text" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The text of the copyright notice indicating the owner of the copy rights of the album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="c_line_year" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The year of the copyright notice for this album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="catalog_number" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The label's unique identifier for the product.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="catalog_tier" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The catalog tier assigned to this product.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="Front catalog"></xsd:enumeration>
                        <xsd:enumeration value="Mid catalog"></xsd:enumeration>
                        <xsd:enumeration value="Back catalog"></xsd:enumeration>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="contract" maxOccurs="1" minOccurs="1">
               <xsd:annotation>
                    <xsd:documentation>
                        Element that describes the contractual agreements this product is governed by.
                    </xsd:documentation>
               </xsd:annotation>
               <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="id" type="xsd:long" maxOccurs="1" minOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>
                                    A unique identifier assigned to the contract by FUGA.
                                </xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="supplier" maxOccurs="1" minOccurs="1">
                           <xsd:complexType>
                               <xsd:annotation>
                                   <xsd:documentation>
                                       The name of the organization that provides the product.
                                   </xsd:documentation>
                               </xsd:annotation>                        
                                    <xsd:all>                           
                                        <xsd:element name="id" type="xsd:long" minOccurs="1" maxOccurs="1">
                                            <xsd:annotation>
                                                <xsd:documentation>Unique identifier for the organization assigned by FUGA.</xsd:documentation>
                                            </xsd:annotation>
                                        </xsd:element>
                                        <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1">
                                            <xsd:annotation>
                                                <xsd:documentation>The organization's name.</xsd:documentation>
                                            </xsd:annotation>
                                        </xsd:element>
                                        <xsd:element name="reference" type="xsd:string" maxOccurs="1" minOccurs="0">
                                            <xsd:annotation>
                                                <xsd:documentation>
                                                    This reference code is typically generated by the DSP to identify a FUGA delivery for a given content provider. The reference will be set upon the DSP's request.
                                                </xsd:documentation>
                                            </xsd:annotation>
                                        </xsd:element>
                                    </xsd:all>
                           </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="cover_art" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        An element containing details about the artwork of this album.											
						Not present when action is "metadata_only" or "delete" since in such cases the cover art is not delivered.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:all>
                        <xsd:element name="image" maxOccurs="1" minOccurs="1">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="color_model" maxOccurs="1" minOccurs="0">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        The color model used for this image. Values must be RGB or CMYK. Default is RGB.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="RGB"></xsd:enumeration>
                                        <xsd:enumeration value="CMYK"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="width" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        The image width in pixels.
                                    </xsd:documentation>
                                </xsd:annotation></xsd:element>
                            <xsd:element name="height" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        The image height in pixels.
                                    </xsd:documentation>
                                </xsd:annotation></xsd:element>
                            <xsd:element name="file_format" maxOccurs="1" minOccurs="0">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        The file format of this file. Value must be on
                                        of JPEG, PNG, GIF, TIFF, BMP. Default is JPEG.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="JPEG"></xsd:enumeration>
                                        <xsd:enumeration value="PNG"></xsd:enumeration>
                                        <xsd:enumeration value="GIF"></xsd:enumeration>
                                        <xsd:enumeration value="TIFF"></xsd:enumeration>
                                        <xsd:enumeration value="BMP"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="file" type="file_type" maxOccurs="1" minOccurs="1"/>
                        </xsd:sequence>
                    </xsd:complexType>                  
                </xsd:element>
                    </xsd:all>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="consumer_release_date" type="xsd:date" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The date the product may be sold to the public.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="exclusive_for" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                       Number of days for which no other party is allowed to publish the product.
 						For example, if the consumer_release_date is 2008-10-10 and exclusive_for is 10,
						you are the only party who is allowed to sell this product in the period from 2008-10-10
						to 2008-10-20. 
						After 2008-10-20 you can still sell this product, but you don't hold it exclusively anymore.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="display_artist" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The name of the artist(s) to display to consumers.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="id" type="xsd:long" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        A unique identifier assigned to the product by FUGA.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="label" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The Label that put out the product.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="main_genre" type="genre_type" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        Main genre associated with the album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="main_subgenre" type="xsd:string" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Additional qualifier to the main genre. There is no definite list for the values; they are defined by the content provider.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The title of the album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="p_line_text" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The text indicating the owner of the publishing rights.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="p_line_year" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The year of the publishing rights of this product.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="parental_advisory" type="xsd:boolean" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Set to 'true' if the album has sensitive content.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="recording_year" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        The year this albums has been recorded.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="recording_location" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        The location where this album has been recorded.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="product_format_type" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        The format of the digital recording.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="ALBUM"></xsd:enumeration>
                        <xsd:enumeration value="SINGLE"></xsd:enumeration>
                        <xsd:enumeration value="EP"></xsd:enumeration>
                        <xsd:enumeration value="BOXSET"></xsd:enumeration>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="product_version" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Special information about the product, for
                        example information about the exclusivity, territory
                        or pre-release version information.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="territories" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        A Composite containing the information about the
                        territories a product is licensed for.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="territory" type="iso3166a2:territory_code" maxOccurs="unbounded" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>
                                    A Territory in which the product is licensed
                                    for (represented by an ISO 3166-1 territory
                                    code).
                                </xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>              
            </xsd:element>
            <xsd:element name="total_discs" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        Number of discs this album consists of.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="total_play_time" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        The total play time in seconds of this album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="assets" maxOccurs="1" minOccurs="1">
		      <xsd:complexType>    
		        <xsd:sequence>			
		            <xsd:element name="tracks" maxOccurs="1" minOccurs="1">
		                <xsd:annotation>
		                    <xsd:documentation>
		                        The list of the tracks belonging to this product.
		                    </xsd:documentation>
		                </xsd:annotation>
		                <xsd:complexType>
		                    <xsd:sequence>
		                        <xsd:element ref="track" maxOccurs="unbounded"/>
		                    </xsd:sequence>
		                </xsd:complexType>
		            </xsd:element>
		            <xsd:element name="videos" maxOccurs="1" minOccurs="0">
		                <xsd:annotation>
		                    <xsd:documentation>
		                        The list of the videos belonging to this product.
		                    </xsd:documentation>
		                </xsd:annotation>
		                <xsd:complexType>
		                    <xsd:sequence>
		                        <xsd:element ref="video" maxOccurs="unbounded"/>
		                    </xsd:sequence>
		                </xsd:complexType>
		            </xsd:element>
		        </xsd:sequence>
    		  </xsd:complexType>
			</xsd:element>
            <xsd:element name="upc_code" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The UPC or EAN code assigned to the album.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:all>
        <xsd:attribute name="noNamespaceSchemaLocation" type="xsd:string" />
    </xsd:complexType>
    </xsd:element>

<!-- Type definitions follow -->    
	<xsd:element name="track">
	    <xsd:complexType>
               <xsd:annotation>
                   <xsd:documentation>Element describing one track of an album.</xsd:documentation>
               </xsd:annotation>
               <xsd:all>
                   <xsd:element name="alternate_genre" type="genre_type" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               Alternate genre associated with the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="alternate_subgenre" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               Additional qualifier to alternate genre of the track. There is no definite list for the values; they are defined by the content provider.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element ref="artists">
				        <xsd:annotation>
				            <xsd:documentation>
			                	The list of the artists belonging to this product or asset.
			            	</xsd:documentation>
				        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="available_separately" type="xsd:boolean" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Set to 'true' if and only if the track may be sold as a single.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="contributors" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               List of contributing artists of this track.
                           </xsd:documentation>
                       </xsd:annotation>
                       <xsd:complexType>
                           <xsd:sequence>
                               <xsd:element name="contributor" minOccurs="1" maxOccurs="unbounded">
                                   <xsd:complexType>
                                       <xsd:all>
                                           <xsd:element name="name" type="xsd:string">
                                               <xsd:annotation>
                                                   <xsd:documentation>The contributor's name.</xsd:documentation>
                                               </xsd:annotation>
                                           </xsd:element>
                                           <xsd:element name="role">
                                               <xsd:annotation>
                                                   <xsd:documentation>The contributor's role.</xsd:documentation>
                                               </xsd:annotation>
                                               <xsd:simpleType>
                                                   <xsd:restriction base="xsd:string">
                                                       <xsd:enumeration value="Arranger"></xsd:enumeration>
                                                       <xsd:enumeration value="Choir"></xsd:enumeration>
                                                       <xsd:enumeration value="Composer"></xsd:enumeration>
                                                       <xsd:enumeration value="Conductor"></xsd:enumeration>
                                                       <xsd:enumeration value="Contributing Artist"></xsd:enumeration>
                                                       <xsd:enumeration value="Engineer"></xsd:enumeration>
                                                       <xsd:enumeration value="Ensemble"></xsd:enumeration>
                                                       <xsd:enumeration value="Featuring"></xsd:enumeration>
                                                       <xsd:enumeration value="Lyricist"></xsd:enumeration>
                                                       <xsd:enumeration value="Mixer"></xsd:enumeration>
                                                       <xsd:enumeration value="Orchestra"></xsd:enumeration>
                                                       <xsd:enumeration value="Performer"></xsd:enumeration>
                                                       <xsd:enumeration value="Producer"></xsd:enumeration>
                                                       <xsd:enumeration value="Remixer"></xsd:enumeration>
                                                       <xsd:enumeration value="Soloist"></xsd:enumeration>
                                                       <xsd:enumeration value="Writer"></xsd:enumeration>
                                                   </xsd:restriction>
                                                </xsd:simpleType>
                                           </xsd:element>
                                       </xsd:all>
                                   </xsd:complexType>
                               </xsd:element>
                           </xsd:sequence>
                       </xsd:complexType>
                   </xsd:element>
                   <xsd:element name="display_artist" type="xsd:string" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The name of the artist(s) of this track to be displayed to consumers.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="duration"
                       type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The duration in seconds of the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="id" type="xsd:long" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Unique identifier for the track assigned by FUGA.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="isrc_code" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The unique ISRC code assigned to the track.
                           </xsd:documentation>
                       </xsd:annotation>
                       <xsd:simpleType>
                           <xsd:restriction base="xsd:string">
                               <xsd:pattern value="[A-Z]{2}[A-Z0-9]{3}[0-9]{7}"/>
                           </xsd:restriction>
                       </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="lyrics" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               Multi-line lyrics.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="main_genre" type="genre_type" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Main genre of the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="main_subgenre" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               An additional qualifier to main genre of the track. There is no definite list for the values; they are defined by the content provider.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The title of the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="on_disc" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Indicates on which disc this track is located on.
                           </xsd:documentation>
                       </xsd:annotation></xsd:element>
                   <xsd:element name="parental_advisory" type="xsd:boolean" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Set to 'true' if the track contains sensitive content.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="suggested_preview_length" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The suggested duration of the preview given in seconds.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="suggested_preview_start" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The suggested number of seconds into the track at which to
                               start the preview.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="publishers" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               List of publishers of this track.
                           </xsd:documentation>
                       </xsd:annotation>
                       <xsd:complexType>
                           <xsd:sequence minOccurs="0">
                               <xsd:element name="publisher" maxOccurs="unbounded">
                                   <xsd:complexType>
                                       <xsd:all>
                                           <xsd:element name="publisher_name" type="xsd:string" minOccurs="0">
                                               <xsd:annotation>
                                                   <xsd:documentation>The publisher's legal name.</xsd:documentation>
                                               </xsd:annotation>
                                           </xsd:element>
                                           <xsd:element name="writer_name" type="xsd:string" minOccurs="0">
                                               <xsd:annotation>
                                                   <xsd:documentation>The writer's legal name.</xsd:documentation>
                                               </xsd:annotation>
                                           </xsd:element>
                                       </xsd:all>
                                   </xsd:complexType>                              
                               </xsd:element>
                           </xsd:sequence>
                       </xsd:complexType>
                   </xsd:element>
                   <xsd:element ref="recording_year" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The recording year for the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element ref="recording_location" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The recording location for the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element ref="resources" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               A complex type describing physical resources made during a FUGA delivery. 
							Not present when action is "metadata_only" or "delete" since in such cases no files other than the XML is delivered.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="sequence_number" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The sequence number of the track within the album.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="track_notes" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               Multi-line description of the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="track_version" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The version of the track when released in more
                               than one version. For example, Dance Mix or
                               Radio Edit.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
               </xsd:all>
           </xsd:complexType>
    </xsd:element>

	<xsd:element name="video">
	    <xsd:complexType>
               <xsd:annotation>
                   <xsd:documentation>Element describing one video of a product.</xsd:documentation>
               </xsd:annotation>
               <xsd:all>
                   <xsd:element ref="artists" maxOccurs="1" minOccurs="0">
				        <xsd:annotation>
				            <xsd:documentation>
			                	The list of the artists belonging to this product or asset.
			            	</xsd:documentation>
				        </xsd:annotation>
                   </xsd:element>	
                   <xsd:element name="id" type="xsd:long" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Unique identifier for the video assigned by FUGA.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="isrc_code" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The unique ISRC code assigned to the video.
                           </xsd:documentation>
                       </xsd:annotation>
                       <xsd:simpleType>
                           <xsd:restriction base="xsd:string">
                               <xsd:pattern value="[A-Z]{2}[A-Z0-9]{3}[0-9]{7}"/>
                           </xsd:restriction>
                       </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="main_genre" type="genre_type" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               Main genre of the track.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
	               <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The title of the video.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element ref="resources" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               A complex type describing physical resources made during a FUGA delivery. 
							   Not present when action is "metadata_only" or "delete" since in such cases no files other than the XML is delivered.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="sequence_number" type="xsd:nonNegativeInteger" maxOccurs="1" minOccurs="1">
                       <xsd:annotation>
                           <xsd:documentation>
                               The sequence number of the track within the album.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="video_version" type="xsd:string" maxOccurs="1" minOccurs="0">
                       <xsd:annotation>
                           <xsd:documentation>
                               The version of the video when released in more
                               than one version.
                           </xsd:documentation>
                       </xsd:annotation>
                   </xsd:element>
			   </xsd:all>
		</xsd:complexType>
	</xsd:element>

    <xsd:element name="artists">
        <xsd:annotation>
            <xsd:documentation>
                The list of the artists belonging to this product or asset.
            </xsd:documentation>
        </xsd:annotation>
      	<xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="artist" maxOccurs="unbounded"/>
            </xsd:sequence>
      	</xsd:complexType>
    </xsd:element>
	<xsd:element name="artist">
        <xsd:complexType>
            <xsd:annotation>
                <xsd:documentation>Details of an artist.</xsd:documentation>
            </xsd:annotation>
            <xsd:all>
                <xsd:element name="biography" type="xsd:string">
                    <xsd:annotation>
                        <xsd:documentation>Multi-line text describing the artist.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="id" type="xsd:long">
                    <xsd:annotation>
                        <xsd:documentation>Unique identifier for the artist assigned by FUGA.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="name" type="xsd:string">
                    <xsd:annotation>
                        <xsd:documentation>The artist's name.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="primary" type="xsd:boolean">
                    <xsd:annotation>
                        <xsd:documentation>True if this artist is the primary one.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:all>
        </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="genre_type">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Alternative"></xsd:enumeration>
            <xsd:enumeration value="Audiobooks"></xsd:enumeration>
            <xsd:enumeration value="Blues"></xsd:enumeration>
            <xsd:enumeration value="Children's Music"></xsd:enumeration>
            <xsd:enumeration value="Classical"></xsd:enumeration>
            <xsd:enumeration value="Comedy"></xsd:enumeration>
            <xsd:enumeration value="Country"></xsd:enumeration>
            <xsd:enumeration value="Dance"></xsd:enumeration>
            <xsd:enumeration value="Electronic"></xsd:enumeration>
            <xsd:enumeration value="Folk"></xsd:enumeration>
            <xsd:enumeration value="Hip Hop/Rap"></xsd:enumeration>
            <xsd:enumeration value="Holiday"></xsd:enumeration>
            <xsd:enumeration value="Inspirational"></xsd:enumeration>
            <xsd:enumeration value="Jazz"></xsd:enumeration>
            <xsd:enumeration value="Latin"></xsd:enumeration>
            <xsd:enumeration value="New Age"></xsd:enumeration>
            <xsd:enumeration value="Opera"></xsd:enumeration>
            <xsd:enumeration value="Pop"></xsd:enumeration>
            <xsd:enumeration value="Rock"></xsd:enumeration>
            <xsd:enumeration value="R&amp;B/Soul"></xsd:enumeration>
            <xsd:enumeration value="Reggae"></xsd:enumeration>
            <xsd:enumeration value="Soundtrack"></xsd:enumeration>
            <xsd:enumeration value="Spoken Word"></xsd:enumeration>
            <xsd:enumeration value="Vocal"></xsd:enumeration>
            <xsd:enumeration value="World"></xsd:enumeration>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:element name="recording_year" type="xsd:integer">
        <xsd:annotation>
            <xsd:documentation>The definition of a recording year.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="recording_location" type="xsd:string">
        <xsd:annotation>
            <xsd:documentation>The definition of a recording location.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="resources">
        <xsd:annotation>
            <xsd:documentation>
                A complex type describing physical resources made during a FUGA delivery.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence maxOccurs="unbounded" minOccurs="0">
                <xsd:element name="audio" maxOccurs="unbounded" minOccurs="0">
                    <xsd:complexType>
                        <xsd:annotation>
                            <xsd:documentation>Details of an audio file.</xsd:documentation>
                        </xsd:annotation>
                        <xsd:sequence>
                            <xsd:element name="recording_type" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        "full" denotes a full track recording and "preview" denotes a track preview (short) recording.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="full"></xsd:enumeration>
                                        <xsd:enumeration value="preview"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="duration" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        The duration in seconds of the recording. May
                                        differ from track duration if this is a preview
                                        recording.
                                    </xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="file" type="file_type" maxOccurs="1" minOccurs="1"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>            
                <xsd:element name="video" maxOccurs="unbounded" minOccurs="0">
                    <xsd:complexType>
                        <xsd:annotation>
                            <xsd:documentation>Details of a video file.</xsd:documentation>
                        </xsd:annotation>
                        <xsd:sequence>
                            <xsd:element name="file_format" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        File format of the video. Currently can be only M4V.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="M4V"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="encoding" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        Encoding of the video. Currently can be only H264.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="H264"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="bitrate" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        Bitrate of the video.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:integer">
                                        <xsd:enumeration value="300"></xsd:enumeration>
                                        <xsd:enumeration value="500"></xsd:enumeration>
                                        <xsd:enumeration value="800"></xsd:enumeration>
                                        <xsd:enumeration value="1500"></xsd:enumeration>
                                        <xsd:enumeration value="6000"></xsd:enumeration> 
                                   </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="dimensions" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        Dimensions of the video.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="320x240"></xsd:enumeration>
                                        <xsd:enumeration value="640x480"></xsd:enumeration>
                                        <xsd:enumeration value="720x576"></xsd:enumeration>
                                        <xsd:enumeration value="1280x720"></xsd:enumeration>
                                        <xsd:enumeration value="1920x1080"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="fps" maxOccurs="1" minOccurs="1">
                                <xsd:annotation>
                                    <xsd:documentation>
                                        Frames per second of the video. Currently can only be 25.
                                    </xsd:documentation>
                                </xsd:annotation>
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:integer">
                                        <xsd:enumeration value="25"></xsd:enumeration>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="file" type="file_type" maxOccurs="1" minOccurs="1"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>            
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:complexType name="file_type">
        <xsd:annotation>
            <xsd:documentation>
                Details of a physical file.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence maxOccurs="1" minOccurs="1">
            <xsd:element name="path" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        This is the absolute path where the file can be
                        found starting from the FTP root directory of a
                        FUGA delivery. It does not contain the file name
                        itself.
                    </xsd:documentation>
                </xsd:annotation></xsd:element>
            <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        This is the file name.
                    </xsd:documentation>
                </xsd:annotation></xsd:element>
            <xsd:element name="crc32_checksum" type="xsd:string" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        A CRC32 checksum so the receiver of the file can
                        verify that the file is unchanged after network
                        transfer.
                    </xsd:documentation>
                </xsd:annotation></xsd:element>
            <xsd:element name="size" type="xsd:unsignedLong" maxOccurs="1" minOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The size in bytes of the file.
                    </xsd:documentation>
                </xsd:annotation></xsd:element>
        </xsd:sequence>
    </xsd:complexType>

</xsd:schema>

