element Song { element Name {text }+ element Artist {text}? element Composer {text}? element Album {text}? element Grouping {text}? element Genre {text}? element Size {xsd:integer}+ element Time {xsd:integer}+ element discNumber {xsd:integer}+ element discCount {xsd:integer}+ element trackNumber {xsd:integer}+ element trackCount{xsd:integer}? element Year {xsd:gyear}+ element dateModified { xsd:string {pattern= '(1[0-2]|\d)/([1-2]\d|3(0|1)|\d)/\d{2}\s(1\d|2[0-4]|\d):([0-6]\d)' } }+ element dateAdded { xsd:string {pattern= '(1[0-2]|\d)/([1-2]\d|3(0|1)|\d)/\d{2}\s(1\d|2[0-4]|\d):([0-6]\d)'} }+ element bitRate{xsd:integer}+ element sampleRate{"8000" | "16000" | "22050" | "44100" | "48000" | "96000"}+ element volumeAdjustment {text}? element Kind {text}? element equalizer {text}? element comments {text}? element playCount {xsd:integer}+ element lastPlayed { xsd:string {pattern= '(1[0-2]|\d)/([1-2]\d|3(0|1)|\d)/\d{2}\s(1\d|2[0-4]|\d):([0-6]\d)'} }? element skip{xsd:integer}? element lastSkipped { xsd:string {pattern= '(1[0-2]|\d)/([1-2]\d|3(0|1)|\d)/\d{2}\s(1\d|2[0-4]|\d):([0-6]\d)' } }? }+