aboutsummaryrefslogtreecommitdiff
path: root/subsonic-main/src/main/webapp/xsd
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
committerScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
commita1a18f77a50804e0127dfa4b0f5240c49c541184 (patch)
tree19a38880afe505beddb5590379a8134d7730a277 /subsonic-main/src/main/webapp/xsd
parentb61d787706979e7e20f4c3c4f93c1f129d92273f (diff)
downloaddsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.gz
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.bz2
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.zip
Initial Commit
Diffstat (limited to 'subsonic-main/src/main/webapp/xsd')
-rw-r--r--subsonic-main/src/main/webapp/xsd/albumList2_example_1.xml16
-rw-r--r--subsonic-main/src/main/webapp/xsd/albumList_example_1.xml12
-rw-r--r--subsonic-main/src/main/webapp/xsd/album_example_1.xml17
-rw-r--r--subsonic-main/src/main/webapp/xsd/artist_example_1.xml24
-rw-r--r--subsonic-main/src/main/webapp/xsd/artists_example_1.xml14
-rw-r--r--subsonic-main/src/main/webapp/xsd/chatMessages_example_1.xml12
-rw-r--r--subsonic-main/src/main/webapp/xsd/directory_example_1.xml11
-rw-r--r--subsonic-main/src/main/webapp/xsd/directory_example_2.xml20
-rw-r--r--subsonic-main/src/main/webapp/xsd/error_example_1.xml8
-rw-r--r--subsonic-main/src/main/webapp/xsd/indexes_example_1.xml30
-rw-r--r--subsonic-main/src/main/webapp/xsd/jukeboxPlaylist_example_1.xml20
-rw-r--r--subsonic-main/src/main/webapp/xsd/jukeboxStatus_example_1.xml9
-rw-r--r--subsonic-main/src/main/webapp/xsd/license_example_1.xml8
-rw-r--r--subsonic-main/src/main/webapp/xsd/lyrics_example_1.xml39
-rw-r--r--subsonic-main/src/main/webapp/xsd/musicFolders_example_1.xml12
-rw-r--r--subsonic-main/src/main/webapp/xsd/nowPlaying_example_1.xml19
-rw-r--r--subsonic-main/src/main/webapp/xsd/ping_example_1.xml5
-rw-r--r--subsonic-main/src/main/webapp/xsd/playlist_example_1.xml37
-rw-r--r--subsonic-main/src/main/webapp/xsd/playlists_example_1.xml12
-rw-r--r--subsonic-main/src/main/webapp/xsd/podcasts_example_1.xml43
-rw-r--r--subsonic-main/src/main/webapp/xsd/randomSongs_example_1.xml20
-rw-r--r--subsonic-main/src/main/webapp/xsd/searchResult2_example_1.xml18
-rw-r--r--subsonic-main/src/main/webapp/xsd/searchResult3_example_1.xml54
-rw-r--r--subsonic-main/src/main/webapp/xsd/searchResult_example_1.xml20
-rw-r--r--subsonic-main/src/main/webapp/xsd/shares_example_1.xml23
-rw-r--r--subsonic-main/src/main/webapp/xsd/song_example_1.xml11
-rw-r--r--subsonic-main/src/main/webapp/xsd/starred2_example_1.xml30
-rw-r--r--subsonic-main/src/main/webapp/xsd/starred_example_1.xml30
-rw-r--r--subsonic-main/src/main/webapp/xsd/subsonic-rest-api.xsd434
-rw-r--r--subsonic-main/src/main/webapp/xsd/user_example_1.xml10
30 files changed, 1018 insertions, 0 deletions
diff --git a/subsonic-main/src/main/webapp/xsd/albumList2_example_1.xml b/subsonic-main/src/main/webapp/xsd/albumList2_example_1.xml
new file mode 100644
index 00000000..21684156
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/albumList2_example_1.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <albumList2>
+ <album id="1768" name="Duets" coverArt="al-1768" songCount="2" created="2002-11-09T15:44:40" duration="514" artist="Nik Kershaw" artistId="829"/>
+ <album id="2277" name="Hot" coverArt="al-2277" songCount="4" created="2004-11-28T00:06:52" duration="1110" artist="Melanie B" artistId="1242"/>
+ <album id="4201" name="Bande A Part" coverArt="al-4201" songCount="14" created="2007-10-29T19:25:05" duration="3061" artist="Nouvelle Vague" artistId="2060"/>
+ <album id="2910" name="Soundtrack From Twin Peaks" coverArt="al-2910" songCount="6" created="2002-11-17T09:58:42" duration="1802" artist="Angelo Badalamenti" artistId="1515"/>
+ <album id="3109" name="Wild One" coverArt="al-3109" songCount="38" created="2001-04-17T00:20:08" duration="9282" artist="Thin Lizzy" artistId="661"/>
+ <album id="1151" name="Perleporten" coverArt="al-1151" songCount="2" created="2002-11-16T22:24:22" duration="494" artist="Magnus Gr&#248;nneberg" artistId="747"/>
+ <album id="2204" name="Wholesale Meats And Fish" coverArt="al-2204" songCount="24" created="2004-11-27T23:44:31" duration="5362" artist="Letters To Cleo" artistId="1216"/>
+ <album id="114" name="Sounds of the Seventies: AM Nuggets" coverArt="al-114" songCount="2" created="2004-03-09T07:32:46" duration="420" artist="Rubettes" artistId="97"/>
+ <album id="279" name="Waiting for the Day" coverArt="al-279" songCount="2" created="2004-11-27T17:49:19" duration="448" artist="Bachelor Girl" artistId="231"/>
+ <album id="4414" name="For Sale" songCount="14" created="2007-10-30T00:11:58" duration="2046" artist="The Beatles" artistId="509"/>
+ </albumList2>
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/albumList_example_1.xml b/subsonic-main/src/main/webapp/xsd/albumList_example_1.xml
new file mode 100644
index 00000000..d83482a9
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/albumList_example_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.6.0">
+
+ <albumList>
+ <album id="11" parent="1" title="Arrival" artist="ABBA" isDir="true" coverArt="22" userRating="4" averageRating="4.5"/>
+ <album id="12" parent="1" title="Super Trouper" artist="ABBA" isDir="true" coverArt="23" averageRating="4.4"/>
+ </albumList>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/album_example_1.xml b/subsonic-main/src/main/webapp/xsd/album_example_1.xml
new file mode 100644
index 00000000..c1a8df27
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/album_example_1.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.8.0">
+
+ <album id="11053" name="High Voltage" coverArt="al-11053" songCount="8" created="2004-11-27T20:23:32" duration="2414" artist="AC/DC" artistId="5432">
+ <song id="71463" parent="71381" title="The Jack" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-08T23:36:11" duration="352" bitRate="128" size="5624132" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - The Jack.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71464" parent="71381" title="Tnt" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-08T23:36:11" duration="215" bitRate="128" size="3433798" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - TNT.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71458" parent="71381" title="It&apos;s A Long Way To The Top" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:32" duration="315" bitRate="128" year="1976" genre="Rock" size="5037357" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - It&apos;s a long way to the top if you wanna rock &apos;n &apos;roll.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71461" parent="71381" title="Rock &apos;n&apos; Roll Singer." album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:33" duration="303" bitRate="128" track="2" year="1976" genre="Rock" size="4861680" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - Rock N Roll Singer.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71460" parent="71381" title="Live Wire" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:33" duration="349" bitRate="128" track="4" year="1976" genre="Rock" size="5600206" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - Live Wire.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71456" parent="71381" title="Can I sit next to you girl" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:32" duration="251" bitRate="128" track="6" year="1976" genre="Rock" size="4028276" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - Can I Sit Next To You Girl.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71459" parent="71381" title="Little Lover" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:33" duration="339" bitRate="128" track="7" year="1976" genre="Rock" size="5435119" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - Little Lover.mp3" albumId="11053" artistId="5432" type="music"/>
+ <song id="71462" parent="71381" title="She&apos;s Got Balls" album="High Voltage" artist="AC/DC" isDir="false" coverArt="71381" created="2004-11-27T20:23:34" duration="290" bitRate="128" track="8" year="1976" genre="Rock" size="4651866" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/High voltage/ACDC - Shes Got Balls.mp3" albumId="11053" artistId="5432" type="music"/>
+ </album>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/artist_example_1.xml b/subsonic-main/src/main/webapp/xsd/artist_example_1.xml
new file mode 100644
index 00000000..86fc4e67
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/artist_example_1.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.8.0">
+
+ <artist id="5432" name="AC/DC" coverArt="ar-5432" albumCount="15">
+ <album id="11047" name="Back In Black" coverArt="al-11047" songCount="10" created="2004-11-08T23:33:11" duration="2534" artist="AC/DC" artistId="5432"/>
+ <album id="11048" name="Black Ice" coverArt="al-11048" songCount="15" created="2008-10-30T09:20:52" duration="3332" artist="AC/DC" artistId="5432"/>
+ <album id="11049" name="Blow up your Video" coverArt="al-11049" songCount="10" created="2004-11-27T19:22:45" duration="2578" artist="AC/DC" artistId="5432"/>
+ <album id="11050" name="Flick Of The Switch" coverArt="al-11050" songCount="10" created="2004-11-27T19:22:51" duration="2222" artist="AC/DC" artistId="5432"/>
+ <album id="11051" name="Fly On The Wall" coverArt="al-11051" songCount="10" created="2004-11-27T19:22:57" duration="2405" artist="AC/DC" artistId="5432"/>
+ <album id="11052" name="For Those About To Rock" coverArt="al-11052" songCount="10" created="2004-11-08T23:35:02" duration="2403" artist="AC/DC" artistId="5432"/>
+ <album id="11053" name="High Voltage" coverArt="al-11053" songCount="8" created="2004-11-27T20:23:32" duration="2414" artist="AC/DC" artistId="5432"/>
+ <album id="10489" name="Highway To Hell" coverArt="al-10489" songCount="12" created="2009-06-15T09:41:54" duration="2745" artist="AC/DC" artistId="5432"/>
+ <album id="11054" name="If You Want Blood..." coverArt="al-11054" songCount="1" created="2004-11-27T20:23:32" duration="304" artist="AC/DC" artistId="5432"/>
+ <album id="11056" name="Let There Be Rock" coverArt="al-11056" songCount="8" created="2004-11-27T20:33:40" duration="2449" artist="AC/DC" artistId="5432"/>
+ <album id="11057" name="Live - Special Collector&apos;s Edition" coverArt="al-11057" songCount="22" created="2004-11-08T23:37:09" duration="6999" artist="AC/DC" artistId="5432"/>
+ <album id="11058" name="Powerage" coverArt="al-11058" songCount="9" created="2004-11-27T20:33:41" duration="2380" artist="AC/DC" artistId="5432"/>
+ <album id="11059" name="Stiff Upper Lip" coverArt="al-11059" songCount="11" created="2004-11-08T23:41:13" duration="2595" artist="AC/DC" artistId="5432"/>
+ <album id="11060" name="The Razors Edge" coverArt="al-11060" songCount="12" created="2004-11-27T20:33:42" duration="2787" artist="AC/DC" artistId="5432"/>
+ <album id="11061" name="Who Made Who" coverArt="al-11061" songCount="9" created="2004-11-08T23:43:18" duration="2291" artist="AC/DC" artistId="5432"/>
+ </artist>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/artists_example_1.xml b/subsonic-main/src/main/webapp/xsd/artists_example_1.xml
new file mode 100644
index 00000000..0c2498b2
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/artists_example_1.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.8.0">
+ <artists>
+ <artist id="5449" name="A-Ha" coverArt="ar-5449" albumCount="4"/>
+ <artist id="5421" name="ABBA" coverArt="ar-5421" albumCount="6"/>
+ <artist id="5432" name="AC/DC" coverArt="ar-5432" albumCount="15"/>
+ <artist id="6633" name="Aaron Neville" coverArt="ar-6633" albumCount="1"/>
+ <artist id="5950" name="Bob Marley" coverArt="ar-5950" albumCount="8"/>
+ <artist id="5957" name="Bruce Dickinson" coverArt="ar-5957" albumCount="2"/>
+</artists>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/chatMessages_example_1.xml b/subsonic-main/src/main/webapp/xsd/chatMessages_example_1.xml
new file mode 100644
index 00000000..b633d534
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/chatMessages_example_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.2.0">
+
+ <chatMessages>
+ <chatMessage username="sindre" time="1269771845310" message="Sindre was here"/>
+ <chatMessage username="ben" time="1269771842504" message="Ben too"/>
+ </chatMessages>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/directory_example_1.xml b/subsonic-main/src/main/webapp/xsd/directory_example_1.xml
new file mode 100644
index 00000000..c2ec1582
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/directory_example_1.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <directory id="1" name="ABBA">
+ <child id="11" parent="1" title="Arrival" artist="ABBA" isDir="true" coverArt="22"/>
+ <child id="12" parent="1" title="Super Trouper" artist="ABBA" isDir="true" coverArt="23"/>
+ </directory>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/directory_example_2.xml b/subsonic-main/src/main/webapp/xsd/directory_example_2.xml
new file mode 100644
index 00000000..246e7b51
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/directory_example_2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <directory id="11" parent="1" name="Arrival">
+ <child id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <child id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </directory>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/error_example_1.xml b/subsonic-main/src/main/webapp/xsd/error_example_1.xml
new file mode 100644
index 00000000..80cafabf
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/error_example_1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="failed" version="1.1.1">
+
+ <error code="40" message="Wrong username or password."/>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/indexes_example_1.xml b/subsonic-main/src/main/webapp/xsd/indexes_example_1.xml
new file mode 100644
index 00000000..5438ad51
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/indexes_example_1.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.1.1">
+
+ <indexes lastModified="237462836472342">
+ <shortcut id="11" name="Audio books"/>
+ <shortcut id="10" name="Podcasts"/>
+ <index name="A">
+ <artist id="1" name="ABBA"/>
+ <artist id="2" name="Alanis Morisette"/>
+ <artist id="3" name="Alphaville"/>
+ </index>
+ <index name="B">
+ <artist name="Bob Dylan" id="4"/>
+ </index>
+
+ <child id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <child id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </indexes>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/jukeboxPlaylist_example_1.xml b/subsonic-main/src/main/webapp/xsd/jukeboxPlaylist_example_1.xml
new file mode 100644
index 00000000..e214a860
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/jukeboxPlaylist_example_1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <jukeboxPlaylist currentIndex="0" playing="true" gain="0.67" position="67">
+ <entry id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ duration="345" size="8421341" contentType="audio/mpeg" suffix="mp3"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <entry id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ duration="240" size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </jukeboxPlaylist>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/jukeboxStatus_example_1.xml b/subsonic-main/src/main/webapp/xsd/jukeboxStatus_example_1.xml
new file mode 100644
index 00000000..a0200494
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/jukeboxStatus_example_1.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.7.0">
+
+ <jukeboxStatus currentIndex="7" playing="true" gain="0.9" position="67"/>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/license_example_1.xml b/subsonic-main/src/main/webapp/xsd/license_example_1.xml
new file mode 100644
index 00000000..720381ab
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/license_example_1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.1.1">
+
+ <license valid="true" email="foo@bar.com" key="ABC123DEF" date="2009-09-03T14:46:43"/>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/lyrics_example_1.xml b/subsonic-main/src/main/webapp/xsd/lyrics_example_1.xml
new file mode 100644
index 00000000..1a2831cb
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/lyrics_example_1.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.2.0">
+ <lyrics artist="Muse" title="Hysteria">
+It&apos;s bugging me
+Grating me
+And twisting me around
+Yeah I&apos;m endlessly
+Caving in
+And turning inside out
+
+Cause I want it now
+I want it now
+Give me your heart and your soul
+And I&apos;m breaking out
+I&apos;m breaking out
+That&apos;s when she&apos;ll lose control
+
+It&apos;s holding me
+Morphing me
+And forcing me to strive
+To be endlessly
+Cold within
+And dreaming I&apos;m alive
+
+Cause I want it now
+I want it now
+Give me your heart and your soul
+I&apos;m not breaking down
+I&apos;m breaking out
+That&apos;s when she&apos;ll lose control
+
+And I want you now
+I want you now
+I&apos;ll feel my heart implode
+And I&apos;m breaking out
+Escaping now
+Feeling my faith erode
+ </lyrics>
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/musicFolders_example_1.xml b/subsonic-main/src/main/webapp/xsd/musicFolders_example_1.xml
new file mode 100644
index 00000000..8531045b
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/musicFolders_example_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.1.1">
+
+ <musicFolders>
+ <musicFolder id="1" name="Music"/>
+ <musicFolder id="2" name="Movies"/>
+ <musicFolder id="3" name="Incoming"/>
+ </musicFolders>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/nowPlaying_example_1.xml b/subsonic-main/src/main/webapp/xsd/nowPlaying_example_1.xml
new file mode 100644
index 00000000..b492fbb7
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/nowPlaying_example_1.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <nowPlaying>
+ <entry username="sindre" minutesAgo="12" playerId="2"
+ id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3" path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <entry username="bente" minutesAgo="1" playerId="4" playerName="Kitchen" id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg"
+ transcodedSuffix="mp3" path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </nowPlaying>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/ping_example_1.xml b/subsonic-main/src/main/webapp/xsd/ping_example_1.xml
new file mode 100644
index 00000000..b475286d
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/ping_example_1.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.1.1">
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/playlist_example_1.xml b/subsonic-main/src/main/webapp/xsd/playlist_example_1.xml
new file mode 100644
index 00000000..58966868
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/playlist_example_1.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <playlist id="15" name="kokos" comment="fan" owner="admin" public="true" songCount="6" duration="1391"
+ created="2012-04-17T19:53:44">
+ <allowedUser>sindre</allowedUser>
+ <allowedUser>john</allowedUser>
+ <entry id="657" parent="655" title="Making Me Nervous" album="I Don&apos;t Know What I&apos;m Doing"
+ artist="Brad Sucks" isDir="false" coverArt="655" created="2008-04-10T07:10:32" duration="159"
+ bitRate="202" track="1" year="2003" size="4060113" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Brad Sucks/I Don&apos;t Know What I&apos;m Doing/01 - Making Me Nervous.mp3" albumId="58"
+ artistId="45" type="music"/>
+ <entry id="823" parent="784" title="Piano escena" album="BSO Sebastian" artist="PeerGynt Lobogris"
+ isDir="false" coverArt="784" created="2009-01-14T22:26:29" duration="129" bitRate="170" track="8"
+ year="2008" genre="Blues" size="2799954" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="PeerGynt Lobogris/BSO Sebastian/08 - Piano escena.mp3" albumId="75" artistId="54" type="music"/>
+ <entry id="748" parent="746" title="Stories from Emona II" album="Between two worlds" artist="Maya Filipi&#269;"
+ isDir="false" coverArt="746" created="2008-07-30T22:05:40" duration="335" bitRate="176" track="2"
+ year="2008" genre="Classical" size="7458214" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Maya Filipic/Between two worlds/02 - Stories from Emona II.mp3" albumId="68" artistId="51"
+ type="music"/>
+ <entry id="848" parent="827" title="Run enemy" album="Eve" artist="Shearer" isDir="false" coverArt="827"
+ created="2009-01-15T22:54:38" duration="331" bitRate="195" track="14" year="2008" genre="Rock"
+ size="8160185" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Shearer/Eve/14 - Run enemy.mp3" albumId="77" artistId="55" type="music"/>
+ <entry id="884" parent="874" title="Isolation" album="Kosmonaut" artist="Ugress" isDir="false" coverArt="874"
+ created="2009-01-14T21:34:49" duration="320" bitRate="160" track="4" year="2006" genre="Electronic"
+ size="6412176" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Ugress/Kosmonaut/Ugress-KosmonautEP-04-Isolation.mp3" albumId="81" artistId="57" type="music"/>
+ <entry id="805" parent="783" title="Bajo siete lunas (intro)" album="Broken Dreams" artist="PeerGynt Lobogris"
+ isDir="false" coverArt="783" created="2008-12-19T14:13:58" duration="117" bitRate="225" track="1"
+ year="2008" genre="Blues" size="3363271" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="PeerGynt Lobogris/Broken Dreams/01 - Bajo siete lunas (intro).mp3" albumId="74" artistId="54"
+ type="music"/>
+ </playlist>
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/playlists_example_1.xml b/subsonic-main/src/main/webapp/xsd/playlists_example_1.xml
new file mode 100644
index 00000000..9b4b60a3
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/playlists_example_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <playlists>
+ <playlist id="15" name="Some random songs" comment="Just something I tossed together" owner="admin" public="false" songCount="6" duration="1391" created="2012-04-17T19:53:44">
+ <allowedUser>sindre</allowedUser>
+ <allowedUser>john</allowedUser>
+ </playlist>
+ <playlist id="16" name="More random songs" comment="No comment" owner="admin" public="true" songCount="5" duration="1018" created="2012-04-17T19:55:49"/>
+ </playlists>
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/podcasts_example_1.xml b/subsonic-main/src/main/webapp/xsd/podcasts_example_1.xml
new file mode 100644
index 00000000..23b8d2ae
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/podcasts_example_1.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.6.0">
+
+ <podcasts>
+ <channel id="1"
+ url="http://downloads.bbc.co.uk/podcasts/fivelive/drkarl/rss.xml"
+ title="Dr Karl and the Naked Scientist"
+ description="Dr Chris Smith aka The Naked Scientist with the latest news from the world of science and Dr Karl answers listeners' science questions."
+ status="completed">
+ <episode id="34"
+ streamId="523"
+ title="Scorpions have re-evolved eyes"
+ description="This week Dr Chris fills us in on the UK's largest free science festival, plus all this week's big scientific discoveries."
+ publishDate="2011-02-03T14:46:43"
+ status="completed"
+ parent="11" isDir="false" year="2011" genre="Podcast" coverArt="24"
+ size="78421341" contentType="audio/mpeg" suffix="mp3" duration="3146" bitRate="128"
+ path="Podcast/drkarl/20110203.mp3"/>
+ <episode id="35"
+ streamId="524"
+ title="Scar tissue and snake venom treatment"
+ description="This week Dr Karl tells the gruesome tale of a surgeon who operated on himself."
+ publishDate="2011-09-03T16:47:52"
+ status="completed"
+ parent="11" isDir="false" year="2011" genre="Podcast" coverArt="27"
+ size="45624671" contentType="audio/mpeg" suffix="mp3" duration="3099" bitRate="128"
+ path="Podcast/drkarl/20110903.mp3"/>
+ </channel>
+ <channel id="2"
+ url="http://podkast.nrk.no/program/herreavdelingen.rss"
+ title="NRK P1 - Herreavdelingen"
+ description="Et program der herrene Yan Friis og Finn Bjelke møtes og musikk nytes."
+ status="completed">
+ </channel>
+ <channel id="3"
+ url="http://foo.bar.com/xyz.rss"
+ status="error"
+ errorMessage="Not found."/>
+ </podcasts>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/randomSongs_example_1.xml b/subsonic-main/src/main/webapp/xsd/randomSongs_example_1.xml
new file mode 100644
index 00000000..dc3a6a99
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/randomSongs_example_1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <randomSongs>
+ <song id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <song id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </randomSongs>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/searchResult2_example_1.xml b/subsonic-main/src/main/webapp/xsd/searchResult2_example_1.xml
new file mode 100644
index 00000000..dd7a2c10
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/searchResult2_example_1.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <searchResult2>
+ <artist id="1" name="ABBA"/>
+ <album id="11" parent="1" title="Arrival" artist="ABBA" isDir="true" coverArt="22"/>
+ <album id="12" parent="1" title="Super Trouper" artist="ABBA" isDir="true" coverArt="23"/>
+ <song id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </searchResult2>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/searchResult3_example_1.xml b/subsonic-main/src/main/webapp/xsd/searchResult3_example_1.xml
new file mode 100644
index 00000000..ef1b1df9
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/searchResult3_example_1.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <searchResult3>
+ <artist id="5944" name="Black" coverArt="ar-5944" albumCount="2"/>
+ <artist id="5785" name="Black Sabbath" coverArt="ar-5785" albumCount="22"/>
+ <artist id="5945" name="Black Debbath" coverArt="ar-5945" albumCount="7"/>
+ <artist id="6063" name="Mary Black" coverArt="ar-6063" albumCount="1"/>
+ <artist id="6065" name="Frances Black" coverArt="ar-6065" albumCount="1"/>
+ <artist id="6131" name="Black Box" coverArt="ar-6131" albumCount="1"/>
+ <artist id="6973" name="The Black Crowes" coverArt="ar-6973" albumCount="2"/>
+ <artist id="6974" name="The Black Sorrows" coverArt="ar-6974" albumCount="1"/>
+ <artist id="6061" name="Eleanor Mcevoy With Mary Black" coverArt="ar-6061" albumCount="1"/>
+ <album id="11241" name="Black" coverArt="al-11241" songCount="10" created="2004-11-14T13:02:03" duration="2575" artist="Black" artistId="5944"/>
+ <album id="12768" name="Black" coverArt="al-12768" songCount="1" created="2000-07-31T15:13:50" duration="448" artist="Metallica" artistId="6308"/>
+ <album id="11242" name="Black Debbath Hyller Kvinnen!" coverArt="al-11242" songCount="11" created="2010-05-25T13:04:41" duration="2778" artist="Black Debbath" artistId="5945"/>
+ <album id="11047" name="Back In Black" coverArt="al-11047" songCount="10" created="2004-11-08T23:33:11" duration="2534" artist="AC/DC" artistId="5432"/>
+ <album id="11048" name="Black Ice" coverArt="al-11048" songCount="15" created="2008-10-30T09:20:52" duration="3332" artist="AC/DC" artistId="5432"/>
+ <album id="11615" name="The Black Parade" coverArt="al-11615" songCount="15" created="2007-06-21T07:52:46" duration="3356" artist="My Chemical Romance" artistId="6159"/>
+ <album id="12132" name="Black Celebration" coverArt="al-12132" songCount="10" created="2005-01-18T23:19:33" duration="2225" artist="Depeche Mode" artistId="6355"/>
+ <album id="12544" name="The Black Halo" coverArt="al-12544" songCount="3" created="2010-04-07T13:41:39" duration="668" artist="Kamelot" artistId="5433"/>
+ <album id="12771" name="The Black Album" coverArt="al-12771" songCount="1" created="1999-10-15T00:00:00" duration="386" artist="Metallica" artistId="6308"/>
+ <album id="13554" name="Black Angel" coverArt="al-13554" songCount="12" created="2002-11-16T15:37:20" duration="3160" artist="Savage Rose" artistId="6999"/>
+ <album id="13609" name="The Black Rider" coverArt="al-13609" songCount="20" created="2002-02-22T14:50:34" duration="3327" artist="Tom Waits" artistId="6920"/>
+ <album id="11243" name="Black Debbaths Beste-Ti &#197;r Med Rock Mot Alt Som Er Kult" coverArt="al-11243" songCount="27" created="2009-05-27T14:43:12" duration="6710" artist="Black Debbath" artistId="5945"/>
+ <album id="11250" name="Black sabbath &amp; Rob Halford live 11-15-92 Costa mesa" coverArt="al-11250" songCount="13" created="2003-07-21T13:52:14" duration="4500" artist="Black Sabbath" artistId="5785"/>
+ <album id="10490" name="The Black Halo [Bonus Track]" coverArt="al-10490" songCount="42" created="2010-04-07T12:58:16" duration="10305" artist="Kamelot" artistId="5433"/>
+ <album id="10559" name="Back to Black: 1900-1999" coverArt="al-10559" songCount="1" created="2004-03-09T07:32:42" duration="99" artist="Earth, Wind &amp; Fire, The Emotions" artistId="5489"/>
+ <album id="11087" name="Back To Black (Deluxe Edition)" coverArt="al-11087" songCount="19" created="2008-06-25T10:01:30" duration="3663" artist="Amy Winehouse" artistId="5870"/>
+ <album id="11604" name="Black Holes &amp; Revelations" coverArt="al-11604" songCount="12" created="2007-06-21T07:52:44" duration="3025" artist="Muse" artistId="6150"/>
+ <album id="12993" name="Black Market Music" coverArt="al-12993" songCount="1" created="2003-07-21T14:48:38" duration="233" artist="Placebo" artistId="6313"/>
+ <album id="13580" name="Black Rose [Remastered]" coverArt="al-13580" songCount="9" created="2009-07-06T08:55:22" duration="2324" artist="Thin Lizzy" artistId="6084"/>
+ <album id="13904" name="Down Under The Black Light" songCount="1" created="2003-10-07T07:22:26" duration="90" artist="The Molecules" artistId="7202"/>
+ <song id="77451" parent="77433" title="Black" album="Angry Machines" artist="Dio" isDir="false" coverArt="77433" created="2007-03-15T06:46:06" duration="190" bitRate="192" track="3" year="1996" genre="Hard Rock" size="4575589" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Dio/Angry Machines/Angry Machines 2.mp3" albumId="12168" artistId="6357" type="music"/>
+ <song id="84902" parent="84883" title="Black" album="Ten" artist="Pearl Jam" isDir="false" coverArt="84883" created="2001-06-11T22:15:52" duration="344" bitRate="160" year="1992" genre="Rock" size="6882991" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Pearl Jam/Ten/05 - Black.mp3" albumId="12944" artistId="6745" type="music"/>
+ <song id="84916" parent="84884" title="Black" album="Unplugged at MTV" artist="Pearl Jam" isDir="false" coverArt="84884" created="1999-07-18T13:40:38" duration="449" bitRate="128" size="7180644" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Pearl Jam/Unplugged at MTV/4- Pearl Jam Unplugged - Black.mp3" albumId="12945" artistId="6745" type="music"/>
+ <song id="85038" parent="85036" title="Black" album="Musicforthemorningafter" artist="Pete Yorn" isDir="false" coverArt="85036" created="2004-11-28T00:42:29" duration="250" bitRate="192" track="4" year="2001" genre="Rock/Pop" size="6026430" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Pete Yorn/Pete Yorn/Pete Yorn - 04 - Black.mp3" albumId="12951" artistId="6747" type="music"/>
+ <song id="73890" parent="73888" title="Black Sabbath" album="Best Of...CD1" artist="Black Sabbath" isDir="false" coverArt="73888" created="2003-07-21T12:19:32" duration="380" bitRate="160" track="1" genre="Hard Rock" size="8124439" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Black Sabbath/Best Of Black Sabbath/CD1/01 - Black Sabbath.mp3" albumId="11248" artistId="5785" type="music"/>
+ <song id="73934" parent="73875" title="Black Moon" album="Headless Cross" artist="Black Sabbath" isDir="false" coverArt="73875" created="2002-09-05T23:00:52" duration="246" bitRate="128" track="7" genre="(255)" size="3949687" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Black Sabbath/Headless Cross/07 - Black Moon.mp3" albumId="11251" artistId="5785" type="music"/>
+ <song id="73844" parent="73790" title="Datidas Black Debbath" album="Naar Vi D&#248;de Rocker" artist="Black Debbath" isDir="false" coverArt="73790" created="2010-05-03T09:40:22" duration="192" bitRate="320" track="7" year="2006" genre="Rock" size="7704160" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Black Debbath/N&#229;r vi d&#248;de rocker/Black Debbath - Datidas Black Debbath.mp3" albumId="11245" artistId="5945" type="music"/>
+ <song id="73924" parent="73874" title="Black Sabbath (with Ozzy)" album="Black sabbath &amp; Rob Halford live 11-15-92 Costa mesa" artist="Black Sabbath" isDir="false" coverArt="73874" created="2003-07-21T13:54:14" duration="407" bitRate="128" track="10" genre="Hard Rock" size="6518578" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Black Sabbath/Black sabbath &amp; Rob Halford live 11-15-92 Costa mesa/10 - Black Sabbath (with Ozzy).mp3" albumId="11250" artistId="5785" type="music"/>
+ <song id="75272" parent="75055" title="Black Sabbath - Paranoid" album="All Time Greatest Rock Songs (Disc 1)" artist="Black Sabbath" isDir="false" coverArt="75055" created="2002-11-23T19:31:34" duration="169" bitRate="160" track="18" genre="General Rock" size="3379328" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Compilations/All Time Greatest Rock Songs (CD 1)/18 - Black Sabbath - Paranoid.mp3" albumId="11482" artistId="5785" type="music"/>
+ <song id="89111" parent="89093" title="Black Moon Creeping" album="The Southern Harmony And Musical Companion" artist="The Black Crowes" isDir="false" coverArt="89093" created="2002-11-03T13:51:24" duration="294" bitRate="160" track="7" size="5891285" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="The Black Crowes/The Southern Harmony And Musical Companion/07 - Black Moon Creeping.mp3" albumId="13473" artistId="6973" type="music"/>
+ <song id="92435" parent="92347" title="Belle Epoque - Black Is Black" album="Cd4" artist="Summer Hits - Top 100" isDir="false" created="1999-07-18T10:48:14" duration="204" bitRate="160" size="4087948" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="_Various/Summer Hits - Top 100/Cd4/16. Belle Epoque - Black Is Black.mp3" albumId="13948" artistId="7223" type="music"/>
+ <song id="70221" parent="70211" title="The Black Halo" album="The Black Halo [Bonus Track]" artist="Kamelot" isDir="false" coverArt="70211" created="2010-04-07T12:58:17" duration="223" bitRate="192" track="10" year="2005" genre="Progressive Metal" size="5363128" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Incoming/Kamelot/08 - The Black Halo - 2005/10 - The Black Halo.mp3" albumId="10490" artistId="5433" type="music"/>
+ <song id="71056" parent="70678" title="Black Coffee" album="Saints &amp; Sinners" artist="All Saints" isDir="false" coverArt="70678" created="2004-03-09T07:34:28" duration="290" bitRate="192" track="5" year="2000" genre="Rock/Pop" size="6975616" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Absolute/Absolute music 36/Absolute Music 36 - 12 All Saints - Black Coffee.mp3" albumId="10811" artistId="5692" type="music"/>
+ <song id="71393" parent="71375" title="Back In Black" album="Back In Black" artist="AC/DC" isDir="false" coverArt="71375" created="2004-11-08T23:33:11" duration="268" bitRate="128" genre="Blues" size="4292608" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/Back in black/ACDC - Back In Black.mp3" albumId="11047" artistId="5432" type="music"/>
+ <song id="71415" parent="71376" title="Black Ice" album="Black Ice" artist="AC/DC" isDir="false" coverArt="71376" created="2008-10-30T10:08:28" duration="205" bitRate="320" track="15" year="2008" genre="Heavy Metal" size="8210893" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/Black Ice/15 AC-DC - Black Ice.mp3" albumId="11048" artistId="5432" type="music"/>
+ <song id="71495" parent="71385" title="Back In Black" album="Live - Special Collector&apos;s Edition" artist="AC/DC" isDir="false" coverArt="71385" created="2004-11-08T23:37:09" duration="266" bitRate="128" year="1992" genre="Metal" size="4255615" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="ACDC/Live (CD1)/ac dc - live - special collector edition - disc 1 - 03 - ba.mp3" albumId="11057" artistId="5432" type="music"/>
+ <song id="71763" parent="71758" title="Back To Black" album="Back To Black (Deluxe Edition)" artist="Amy Winehouse" isDir="false" coverArt="71758" created="2008-06-25T10:12:14" duration="241" bitRate="153" track="5" year="2007" genre="Blues" size="4639525" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Amy Winehouse/Back To Black/105-amy_winehouse-back_to_black-ukp.mp3" albumId="11087" artistId="5870" type="music"/>
+ <song id="75149" parent="75052" title="Black Sabbath" album="70" artist="Paranoid" isDir="false" coverArt="75052" created="2004-11-14T13:38:38" duration="169" bitRate="160" track="18" genre="Rock" size="3406066" suffix="wma" contentType="audio/x-ms-wma" isVideo="false" path="Compilations/70/Black Sabbath - Paranoid.wma" albumId="11396" artistId="6010" type="music"/>
+ <song id="75301" parent="75057" title="Black Betty" album="Born To Be Wild - Vol. 2" artist="Ram Jam" isDir="false" coverArt="75057" created="2006-02-04T20:30:44" duration="239" bitRate="160" track="12" year="1994" genre="Hard Rock" size="4792458" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Compilations/Born To Be Wild - Vol. 2/12 - Black Betty.mp3" albumId="11510" artistId="6091" type="music"/>
+ <song id="76048" parent="75100" title="Black Velvet" album="The Good" artist="Alannah Myles" isDir="false" coverArt="75100" created="2002-11-17T15:44:08" duration="289" bitRate="128" genre="Other" size="4628480" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Compilations/The Good/Alannah Myles - Black Velvet.mp3" albumId="11818" artistId="6286" type="music"/>
+ </searchResult3>
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/searchResult_example_1.xml b/subsonic-main/src/main/webapp/xsd/searchResult_example_1.xml
new file mode 100644
index 00000000..fb1e9c4a
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/searchResult_example_1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.4.0">
+
+ <searchResult offset="0" totalHits="2">
+ <match id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <match id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </searchResult>
+
+</subsonic-response>
+
diff --git a/subsonic-main/src/main/webapp/xsd/shares_example_1.xml b/subsonic-main/src/main/webapp/xsd/shares_example_1.xml
new file mode 100644
index 00000000..1fb8732f
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/shares_example_1.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.6.0">
+
+ <shares>
+ <share id="1" url="http://sindre.subsonic.org/share/sKoYn" description="Check this out" username="sindre"
+ created="2011-06-04T12:34:56" lastVisited="2011-06-04T13:14:15" expires="2013-06-04T00:00:00" visitCount="0">
+
+ <entry id="111" parent="11" title="Dancing Queen" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24"
+ size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128"
+ path="ABBA/Arrival/Dancing Queen.mp3"/>
+
+ <entry id="112" parent="11" title="Money, Money, Money" isDir="false"
+ album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25"
+ size="4910028" contentType="audio/flac" suffix="flac"
+ transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128"
+ path="ABBA/Arrival/Money, Money, Money.mp3"/>
+ </share>
+ </shares>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/song_example_1.xml b/subsonic-main/src/main/webapp/xsd/song_example_1.xml
new file mode 100644
index 00000000..58b8773b
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/song_example_1.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.8.0">
+
+ <song id="48228" parent="48203" title="You Shook Me All Night Long" album="Back In Black" artist="AC/DC"
+ isDir="false" coverArt="48203" created="2004-11-08T23:33:11" duration="210" bitRate="112" size="2945619"
+ suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="ACDC/Back in black/ACDC - You Shook Me All Night Long.mp3"/>
+
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/starred2_example_1.xml b/subsonic-main/src/main/webapp/xsd/starred2_example_1.xml
new file mode 100644
index 00000000..8c0104dd
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/starred2_example_1.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <starred2>
+ <artist id="126" name="Iron Maiden" coverArt="ar-126" albumCount="1" starred="2012-04-05T19:03:31"/>
+ <artist id="133" name="Dimmu Borgir" coverArt="ar-133" albumCount="1" starred="2012-04-05T19:03:17"/>
+ <artist id="141" name="Kvelertak" albumCount="1" starred="2012-04-05T19:03:05"/>
+ <album id="180" name="Collapse Into Now" artist="R.E.M." artistId="144" songCount="12" duration="2459"
+ created="2011-03-23T09:37:55" starred="2012-04-05T19:02:02"/>
+ <album id="178" name="Postcards From A Young Man" artist="Manic Street Preachers" artistId="142"
+ coverArt="al-178" songCount="12" duration="2665" created="2011-02-26T10:47:19"
+ starred="2012-04-05T19:01:03"/>
+ <song id="143588" parent="143586" title="Born Treacherous" album="Abrahadabra" artist="Dimmu Borgir"
+ isDir="false" coverArt="143586" created="2010-09-27T20:52:23" starred="2012-04-02T17:17:01" duration="302"
+ bitRate="320" track="2" year="2010" genre="Scene-core" size="12087601" suffix="mp3"
+ contentType="audio/mpeg" isVideo="false" path="Dimmu Borgir/Abrahadabra/02 - Born Treacherous.mp3"
+ albumId="163" artistId="133" type="music"/>
+ <song id="143600" parent="143386" title="Satellite 15....The Final Frontier"
+ album="The Final Frontier (Mission Edition)" artist="Iron Maiden" isDir="false" coverArt="143386"
+ created="2010-08-16T21:08:01" starred="2012-04-02T14:12:54" duration="521" bitRate="320" track="1"
+ year="2010" genre="Heavy Metal" size="21855635" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Iron Maiden/2010 The Final Frontier/01 Satellite 15....The Final Frontier.mp3" albumId="156"
+ artistId="126" type="music"/>
+ <song id="143604" parent="143386" title="The Alchemist" album="The Final Frontier (Mission Edition)"
+ artist="Iron Maiden" isDir="false" coverArt="143386" created="2010-08-16T21:07:51"
+ starred="2012-04-02T14:12:52" duration="269" bitRate="320" track="5" year="2010" genre="Heavy Metal"
+ size="11774455" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Iron Maiden/2010 The Final Frontier/05 The Alchemist.mp3" albumId="156" artistId="126"
+ type="music"/>
+ </starred2>
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/starred_example_1.xml b/subsonic-main/src/main/webapp/xsd/starred_example_1.xml
new file mode 100644
index 00000000..916b2a7b
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/starred_example_1.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0">
+ <starred>
+ <artist name="Kvelertak" id="143408"/>
+ <artist name="Dimmu Borgir" id="143402"/>
+ <artist name="Iron Maiden" id="143403"/>
+ <album id="143862" parent="143410" title="Postcards From A Young Man" album="Postcards From A Young Man"
+ artist="Manic Street Preachers" isDir="true" coverArt="143862" created="2011-02-26T10:45:30"
+ starred="2012-04-05T18:40:08"/>
+ <album id="143888" parent="143412" title="Collapse Into Now" album="Collapse Into Now" artist="R.E.M."
+ isDir="true" created="2011-03-23T09:29:13" starred="2012-04-05T18:40:02"/>
+ <song id="143588" parent="143586" title="Born Treacherous" album="Abrahadabra" artist="Dimmu Borgir"
+ isDir="false" coverArt="143586" created="2010-09-27T20:52:23" starred="2012-04-02T17:17:01" duration="302"
+ bitRate="320" track="2" year="2010" genre="Scene-core" size="12087601" suffix="mp3"
+ contentType="audio/mpeg" isVideo="false" path="Dimmu Borgir/Abrahadabra/02 - Born Treacherous.mp3"
+ albumId="163" artistId="133" type="music"/>
+ <song id="143600" parent="143386" title="Satellite 15....The Final Frontier"
+ album="The Final Frontier (Mission Edition)" artist="Iron Maiden" isDir="false" coverArt="143386"
+ created="2010-08-16T21:08:01" starred="2012-04-02T14:12:54" duration="521" bitRate="320" track="1"
+ year="2010" genre="Heavy Metal" size="21855635" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Iron Maiden/2010 The Final Frontier/01 Satellite 15....The Final Frontier.mp3" albumId="156"
+ artistId="126" type="music"/>
+ <song id="143604" parent="143386" title="The Alchemist" album="The Final Frontier (Mission Edition)"
+ artist="Iron Maiden" isDir="false" coverArt="143386" created="2010-08-16T21:07:51"
+ starred="2012-04-02T14:12:52" duration="269" bitRate="320" track="5" year="2010" genre="Heavy Metal"
+ size="11774455" suffix="mp3" contentType="audio/mpeg" isVideo="false"
+ path="Iron Maiden/2010 The Final Frontier/05 The Alchemist.mp3" albumId="156" artistId="126"
+ type="music"/>
+ </starred>
+</subsonic-response>
diff --git a/subsonic-main/src/main/webapp/xsd/subsonic-rest-api.xsd b/subsonic-main/src/main/webapp/xsd/subsonic-rest-api.xsd
new file mode 100644
index 00000000..449b49e8
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/subsonic-rest-api.xsd
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:sub="http://subsonic.org/restapi"
+ targetNamespace="http://subsonic.org/restapi"
+ attributeFormDefault="unqualified"
+ elementFormDefault="qualified"
+ version="1.8.0">
+
+ <xs:element name="subsonic-response" type="sub:Response"/>
+
+ <xs:complexType name="Response">
+ <xs:choice minOccurs="0" maxOccurs="1">
+ <xs:element name="musicFolders" type="sub:MusicFolders" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="indexes" type="sub:Indexes" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="directory" type="sub:Directory" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="artists" type="sub:ArtistsID3" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="artist" type="sub:ArtistWithAlbumsID3" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="album" type="sub:AlbumWithSongsID3" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="song" type="sub:Child" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="videos" type="sub:Videos" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="nowPlaying" type="sub:NowPlaying" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="searchResult" type="sub:SearchResult" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="searchResult2" type="sub:SearchResult2" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="searchResult3" type="sub:SearchResult3" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="playlists" type="sub:Playlists" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="playlist" type="sub:PlaylistWithSongs" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="jukeboxStatus" type="sub:JukeboxStatus" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="jukeboxPlaylist" type="sub:JukeboxPlaylist" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="license" type="sub:License" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="user" type="sub:User" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="chatMessages" type="sub:ChatMessages" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="albumList" type="sub:AlbumList" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="albumList2" type="sub:AlbumList2" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="randomSongs" type="sub:RandomSongs" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="lyrics" type="sub:Lyrics" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="podcasts" type="sub:Podcasts" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="shares" type="sub:Shares" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="starred" type="sub:Starred" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="starred2" type="sub:Starred2" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="error" type="sub:Error" minOccurs="1" maxOccurs="1"/>
+ </xs:choice>
+ <xs:attribute name="status" type="sub:ResponseStatus" use="required"/>
+ <xs:attribute name="version" type="sub:Version" use="required"/>
+ </xs:complexType>
+
+ <xs:simpleType name="ResponseStatus">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ok"/>
+ <xs:enumeration value="failed"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="Version">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d+\.\d+\.\d+"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="MusicFolders">
+ <xs:sequence>
+ <xs:element name="musicFolder" type="sub:MusicFolder" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MusicFolder">
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="Indexes">
+ <xs:sequence>
+ <xs:element name="shortcut" type="sub:Artist" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="index" type="sub:Index" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="child" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/> <!-- Added in 1.7.0 -->
+ </xs:sequence>
+ <xs:attribute name="lastModified" type="xs:long" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="Index">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:Artist" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="Artist">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="ArtistsID3">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:ArtistID3" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArtistID3">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="coverArt" type="xs:string" use="optional"/>
+ <xs:attribute name="albumCount" type="xs:int" use="required"/>
+ <xs:attribute name="starred" type="xs:dateTime" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="ArtistWithAlbumsID3">
+ <xs:complexContent>
+ <xs:extension base="sub:ArtistID3">
+ <xs:sequence>
+ <xs:element name="album" type="sub:AlbumID3" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AlbumID3">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="artist" type="xs:string" use="optional"/>
+ <xs:attribute name="artistId" type="xs:string" use="optional"/>
+ <xs:attribute name="coverArt" type="xs:string" use="optional"/>
+ <xs:attribute name="songCount" type="xs:int" use="required"/>
+ <xs:attribute name="duration" type="xs:int" use="required"/>
+ <xs:attribute name="created" type="xs:dateTime" use="required"/>
+ <xs:attribute name="starred" type="xs:dateTime" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="AlbumWithSongsID3">
+ <xs:complexContent>
+ <xs:extension base="sub:AlbumID3">
+ <xs:sequence>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Videos">
+ <xs:sequence>
+ <xs:element name="video" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Directory">
+ <xs:sequence>
+ <xs:element name="child" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="parent" type="xs:string" use="optional"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="Child">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="parent" type="xs:string" use="optional"/>
+ <xs:attribute name="isDir" type="xs:boolean" use="required"/>
+ <xs:attribute name="title" type="xs:string" use="required"/>
+ <xs:attribute name="album" type="xs:string" use="optional"/>
+ <xs:attribute name="artist" type="xs:string" use="optional"/>
+ <xs:attribute name="track" type="xs:int" use="optional"/>
+ <xs:attribute name="year" type="xs:int" use="optional"/>
+ <xs:attribute name="genre" type="xs:string" use="optional"/>
+ <xs:attribute name="coverArt" type="xs:string" use="optional"/>
+ <xs:attribute name="size" type="xs:long" use="optional"/>
+ <xs:attribute name="contentType" type="xs:string" use="optional"/>
+ <xs:attribute name="suffix" type="xs:string" use="optional"/>
+ <xs:attribute name="transcodedContentType" type="xs:string" use="optional"/>
+ <xs:attribute name="transcodedSuffix" type="xs:string" use="optional"/>
+ <xs:attribute name="duration" type="xs:int" use="optional"/>
+ <xs:attribute name="bitRate" type="xs:int" use="optional"/>
+ <xs:attribute name="path" type="xs:string" use="optional"/>
+ <xs:attribute name="isVideo" type="xs:boolean" use="optional"/> <!-- Added in 1.4.1 -->
+ <xs:attribute name="userRating" type="sub:UserRating" use="optional"/> <!-- Added in 1.6.0 -->
+ <xs:attribute name="averageRating" type="sub:AverageRating" use="optional"/> <!-- Added in 1.6.0 -->
+ <xs:attribute name="discNumber" type="xs:int" use="optional"/> <!-- Added in 1.8.0 -->
+ <xs:attribute name="created" type="xs:dateTime" use="optional"/> <!-- Added in 1.8.0 -->
+ <xs:attribute name="starred" type="xs:dateTime" use="optional"/> <!-- Added in 1.8.0 -->
+ <xs:attribute name="albumId" type="xs:string" use="optional"/> <!-- Added in 1.8.0 -->
+ <xs:attribute name="artistId" type="xs:string" use="optional"/> <!-- Added in 1.8.0 -->
+ <xs:attribute name="type" type="sub:MediaType" use="optional"/> <!-- Added in 1.8.0 -->
+ </xs:complexType>
+
+ <xs:simpleType name="MediaType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="music"/>
+ <xs:enumeration value="podcast"/>
+ <xs:enumeration value="audiobook"/>
+ <xs:enumeration value="video"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="UserRating">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1"/>
+ <xs:maxInclusive value="5"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="AverageRating">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="1.0"/>
+ <xs:maxInclusive value="5.0"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NowPlaying">
+ <xs:sequence>
+ <xs:element name="entry" type="sub:NowPlayingEntry" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NowPlayingEntry">
+ <xs:complexContent>
+ <xs:extension base="sub:Child">
+ <xs:attribute name="username" type="xs:string" use="required"/>
+ <xs:attribute name="minutesAgo" type="xs:int" use="required"/>
+ <xs:attribute name="playerId" type="xs:int" use="required"/>
+ <xs:attribute name="playerName" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!--Deprecated-->
+ <xs:complexType name="SearchResult">
+ <xs:sequence>
+ <xs:element name="match" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="offset" type="xs:int" use="required"/>
+ <xs:attribute name="totalHits" type="xs:int" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="SearchResult2">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:Artist" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="album" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchResult3">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:ArtistID3" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="album" type="sub:AlbumID3" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Playlists">
+ <xs:sequence>
+ <xs:element name="playlist" type="sub:Playlist" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Playlist">
+ <xs:sequence>
+ <xs:element name="allowedUser" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <!--Added in 1.8.0-->
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="comment" type="xs:string" use="optional"/> <!--Added in 1.8.0-->
+ <xs:attribute name="owner" type="xs:string" use="optional"/> <!--Added in 1.8.0-->
+ <xs:attribute name="public" type="xs:boolean" use="optional"/> <!--Added in 1.8.0-->
+ <xs:attribute name="songCount" type="xs:int" use="required"/> <!--Added in 1.8.0-->
+ <xs:attribute name="duration" type="xs:int" use="required"/> <!--Added in 1.8.0-->
+ <xs:attribute name="created" type="xs:dateTime" use="required"/> <!--Added in 1.8.0-->
+ </xs:complexType>
+
+ <xs:complexType name="PlaylistWithSongs">
+ <xs:complexContent>
+ <xs:extension base="sub:Playlist">
+ <xs:sequence>
+ <xs:element name="entry" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="JukeboxStatus">
+ <xs:attribute name="currentIndex" type="xs:int" use="required"/>
+ <xs:attribute name="playing" type="xs:boolean" use="required"/>
+ <xs:attribute name="gain" type="xs:float" use="required"/>
+ <xs:attribute name="position" type="xs:int" use="optional"/> <!--Added in 1.7.0-->
+ </xs:complexType>
+
+ <xs:complexType name="JukeboxPlaylist">
+ <xs:complexContent>
+ <xs:extension base="sub:JukeboxStatus">
+ <xs:sequence>
+ <xs:element name="entry" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ChatMessages">
+ <xs:sequence>
+ <xs:element name="chatMessage" type="sub:ChatMessage" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ChatMessage">
+ <xs:attribute name="username" type="xs:string" use="required"/>
+ <xs:attribute name="time" type="xs:long" use="required"/>
+ <xs:attribute name="message" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="AlbumList">
+ <xs:sequence>
+ <xs:element name="album" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AlbumList2">
+ <xs:sequence>
+ <xs:element name="album" type="sub:AlbumID3" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RandomSongs">
+ <xs:sequence>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Lyrics" mixed="true">
+ <xs:attribute name="artist" type="xs:string" use="optional"/>
+ <xs:attribute name="title" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="Podcasts">
+ <xs:sequence>
+ <xs:element name="channel" type="sub:PodcastChannel" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PodcastChannel">
+ <xs:sequence>
+ <xs:element name="episode" type="sub:PodcastEpisode" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="url" type="xs:string" use="required"/>
+ <xs:attribute name="title" type="xs:string" use="optional"/>
+ <xs:attribute name="description" type="xs:string" use="optional"/>
+ <xs:attribute name="status" type="sub:PodcastStatus" use="required"/>
+ <xs:attribute name="errorMessage" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="PodcastEpisode">
+ <xs:complexContent>
+ <xs:extension base="sub:Child">
+ <xs:attribute name="streamId" type="xs:string" use="optional"/> <!-- Use this ID for streaming the podcast. -->
+ <xs:attribute name="description" type="xs:string" use="optional"/>
+ <xs:attribute name="status" type="sub:PodcastStatus" use="required"/>
+ <xs:attribute name="publishDate" type="xs:dateTime" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="PodcastStatus">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="new"/>
+ <xs:enumeration value="downloading"/>
+ <xs:enumeration value="completed"/>
+ <xs:enumeration value="error"/>
+ <xs:enumeration value="deleted"/>
+ <xs:enumeration value="skipped"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="Shares">
+ <xs:sequence>
+ <xs:element name="share" type="sub:Share" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Share">
+ <xs:sequence>
+ <xs:element name="entry" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="url" type="xs:string" use="required"/>
+ <xs:attribute name="description" type="xs:string" use="optional"/>
+ <xs:attribute name="username" type="xs:string" use="required"/>
+ <xs:attribute name="created" type="xs:dateTime" use="required"/>
+ <xs:attribute name="expires" type="xs:dateTime" use="optional"/>
+ <xs:attribute name="lastVisited" type="xs:dateTime" use="optional"/>
+ <xs:attribute name="visitCount" type="xs:int" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="Starred">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:Artist" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="album" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Starred2">
+ <xs:sequence>
+ <xs:element name="artist" type="sub:ArtistID3" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="album" type="sub:AlbumID3" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="song" type="sub:Child" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="License">
+ <xs:attribute name="valid" type="xs:boolean" use="required"/>
+ <xs:attribute name="email" type="xs:string" use="optional"/>
+ <xs:attribute name="key" type="xs:string" use="optional"/>
+ <xs:attribute name="date" type="xs:dateTime" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="User">
+ <xs:attribute name="username" type="xs:string" use="required"/>
+ <xs:attribute name="email" type="xs:string" use="optional"/> <!-- Added in 1.6.0 -->
+ <xs:attribute name="scrobblingEnabled" type="xs:boolean" use="required"/> <!-- Added in 1.7.0 -->
+ <xs:attribute name="adminRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="settingsRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="downloadRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="uploadRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="playlistRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="coverArtRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="commentRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="podcastRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="streamRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="jukeboxRole" type="xs:boolean" use="required"/>
+ <xs:attribute name="shareRole" type="xs:boolean" use="required"/> <!-- Added in 1.7.0 -->
+ </xs:complexType>
+
+ <xs:complexType name="Error">
+ <xs:attribute name="code" type="xs:int" use="required"/>
+ <xs:attribute name="message" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+</xs:schema> \ No newline at end of file
diff --git a/subsonic-main/src/main/webapp/xsd/user_example_1.xml b/subsonic-main/src/main/webapp/xsd/user_example_1.xml
new file mode 100644
index 00000000..9b96db67
--- /dev/null
+++ b/subsonic-main/src/main/webapp/xsd/user_example_1.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<subsonic-response xmlns="http://subsonic.org/restapi"
+ status="ok" version="1.7.0">
+
+ <user username="sindre" email="sindre@activeobjects.no" scrobblingEnabled="true" adminRole="false" settingsRole="true" downloadRole="true" uploadRole="false" playlistRole="true"
+ coverArtRole="true" commentRole="true" podcastRole="true" streamRole="true" jukeboxRole="true" shareRole="false"/>
+
+</subsonic-response>
+