Since Google actively supports the Music microdata structure, I would like to implement this on a site that publishes music mixtapes.In context of this website, music mixes are usually 60 minute compilations of music, weaved together in a seamless fashion, much like the experience you'd get when going to an Electronic Dance Music festival.Problem with the MusicRecording schemaThe format of the website doesn't match this microdata structure closely enough. For example, Google Webmasters indicates that my submitted microdata is missing the inablum.name, location and startDate properties. I have no desire of fixing these errors because they do not actually befit my content.Alternative microdata structuresThe main problem with alternative schemas is that I haven't seen official recognition by Google. Other problems are:BlogPostingThe expected schema for content that is delivered through WordPress, the software on which the website runs. While content can be considered a blog post, its contents are usually little more than a blockquote from the mix artist, and a tracklist for the music used in the mix.ReviewWhile supported by Google, my content doesn't actually review the mix. It provides information about it. At best, my visitors' comments could be considered mini-reviews, but I have already structured them as Comments.MediaObjectThe main issue with this schema is that it's supposedly used inside another schema as a complement. I don't think it's a good solution to build my entire page's content around MediaObjects.AudioObjectWhile more accurate than MediaObject, it faces the same limitations.What is a suitable microdata structure for music mixes?What I need seems to exist in schemas, but I only a little bit from each of them. Ideally, a schema that is right for me, would include the following microdata properties:Name of artist who created the mix compilation (may be a sub schema, for instance a Person or PerformingGroup)Name of the mix compilationArtwork of the mix compilationList of musical works incorporated in the mix compilation, in order of appearance.Duration of mix compilationURL to audio file: the actual mix compilationDate of publishingAudio format and encoding (for example MP3)Comments about this content (may be in sub schema, for instance Comment)Perhaps someone could produce a example of a combination of schemas to include all required properties that Google Webmaster could throw errors on. I'm kind of lost at this point which schema is best for my content.
What is a suitable microdata structure for music mixes?
microdata;schema.org
Google understands microdata, so even if there's a pice of it that it's not mentioned on their list, you still can use it. But in any case, using your restrictions, I think this may work.<div id=container_for_compilation itemscope itemtype=http://schema.org/CreativeWork>    <div id=image_for_compilation itemscope itemtype=http://schema.org/ImageObject>        <img src=http://domain.com/some_picture.jpg title=super compilation 2014 alt=great description of the image itemprop=image />        <span class=hidden itemprop=about>compilation title</span>    </div>    <div itemscope itemtype=http://schema.org/MusicAlbum>        <h1 itemprop=name>compilation title</h1>        <p itemprop=creator>by somebody</p>        <p>Created <span itemprop=dateCreated>2014-01-01</span></p>        <div id=track_itself itemprop=track itemscope itemtype=http://schema.org/MusicRecording>            <meta itemprop=name content=compilation title />            <meta itemprop=duration content=P60M />            <meta itemprop=url content=http://domain.com/compilation_file.mp3 />            <meta itemprop=inAlbum content=none />        </div>        <h2>duration</h2>        <p itemprop=timeRequired>60 minutes</p>        <h2>Download the file</h2>        <p><a href=http://domain.com/compilation_file.mp3 itemprop=url>name_of_compilation</a></p>        <h2>Technical info of the file</h2>        <dl>            <dt>audio format</dt>            <dd itemprop=encoding>mp3</dd>            <dt>sample rate</dt>            <dd>320 kbps</dd>        </dl>        <h2>Created in</h2>        <p>01 - 01 - 2014</p>    </div>    <div itemscope itemtype=http://schema.org/ItemList>        <meta itemprop=about content=compilation title />        <h2 itemprop=name>tracks</h2>        <ul>            <li itemprop=itemListElement>01. track name by an artist</li>            <li itemprop=itemListElement>02. track name by an artist</li>            <li itemprop=itemListElement>03. track name by an artist</li>        </ul>    </div>    <div id=container_for_comments itemscope itemtype=http://schema.org/CreativeWork>        <h2>comments</h2>        <div id=comment_1 itemscope itemtype=http://schema.org/Comment>            <p itemprop=text>bla bla bla</p>            <p>author: <span itemprop=author>some guy</span></p>            <span class=hidden itemprop=about>compilation title</span>        </div>        <div id=comment_2 itemscope itemtype=http://schema.org/Comment>            <p itemprop=text>bla bla bla</p>            <p>author: <span itemprop=author>some guy</span></p>            <span class=hidden itemprop=about>compilation title</span>        </div>    </div></div>Of course the use of some span, meta and ids are just to point out the information that should be used.The main problem with the structure of schema.org for music (and other elements) and your criteria is that compilations are not a common thing. Schema.org is not prepared for uncommon things; unless you consider using the expand system.So, some information have to be duplicated, like name of album and name of song. Of course you can mix more kinds or subcategories, but then is more difficult to relate those parts.Another element to consider, is that you can use the about to relate information, and that works, but only as a conceptual idea, specially if there are more than one element with the same name. You can use the isBasedOnUrl for the songs list, but then you need a specific url for each one.Also, considering that the songs are not the tracks of the album, you have to move them out of that category and relate them to the album/compilation using the about.You can find the testing of the code above in here. There may be other options, but I most probably would go with that one with the relevant adjustments to the actual page.