diff --git a/contrib/retep/CHANGELOG b/contrib/retep/CHANGELOG index e69de29bb2..59f7c335cb 100644 --- a/contrib/retep/CHANGELOG +++ b/contrib/retep/CHANGELOG @@ -0,0 +1,4 @@ +Tue Jan 23 10:19:00 GMT 2001 peter@retep.org.uk + - Finished the XML Export classes + - First of the test data suite now in CVS. + diff --git a/contrib/retep/build.xml b/contrib/retep/build.xml index cf377d3bad..019903bc79 100644 --- a/contrib/retep/build.xml +++ b/contrib/retep/build.xml @@ -2,7 +2,7 @@ build file to build the donated retep tools packages - $Id: build.xml,v 1.1 2001/01/18 14:50:14 peter Exp $ + $Id: build.xml,v 1.2 2001/01/23 10:22:18 peter Exp $ --> @@ -44,7 +44,7 @@ - + diff --git a/contrib/retep/data/cds.dtd b/contrib/retep/data/cds.dtd new file mode 100644 index 0000000000..df542c3476 --- /dev/null +++ b/contrib/retep/data/cds.dtd @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/contrib/retep/data/cds.xml b/contrib/retep/data/cds.xml new file mode 100644 index 0000000000..fb0203bda9 --- /dev/null +++ b/contrib/retep/data/cds.xml @@ -0,0 +1,2691 @@ + + + + 01 - Kiling Time + 02 - Waiting To Die + 03 - Feel Good + 04 - Bartender + 05 - Crazy Legs + 06 - Pac Bell + 07 - I Got You + 08 - Boom (How You Like That) + 09 - Swan Dive + 10 - Stevie + 11 - Jesus (Of Nazareth) + 12 - The Meadow + + + + + jump for joy + + + 01 - No Limit + 02 - Tribal Dance + 03 - Mysterious + 04 - Faces + 05 - Maximum Overdrive + 06 - The Power Age + 07 - Break The Chain + 08 - Kiss Me Bliss Me + 09 - Thow The Groove Down + 10 - R.U.O.K + 11 - Let The Beat Control Your Body + 12 - Invinite Me To Trance + 13 - Where Are You Now + 14 - Shelter For A Rainy Day + 15 - Get Ready For This (WILDE MIX) + 16 - No Limit - (AUTOMATIC BREAKBEAT REMIX) + + + + + 01 - 2-Raum Wohnung - Wir trafen uns in einem Garten + 02 - 2-Raum Wohnung - Wir trafen uns in einem Garten (Inga Humpes Version) + 03 - 2-Raum Wohnung - Wir trafen uns in einem Garten mit Max + 04 - 2-Raum Wohnung - Wir trafen uns in einem Garten (i-oI - Remix) + + + + + 01 - Track 1 + 02 - Track 2 + 03 - Track 3 + 04 - Track 4 + 05 - Track 5 + 06 - Track 6 + 07 - Track 7 + 08 - Track 8 + 09 - Track 9 + 10 - Track 10 + 11 - Track 11 + 12 - Track 12 + 13 - Track 13 + + + + + 01 - Show me something good + 02 - Feel 'ya + 03 - Find Your Own Peace + 04 - Nourishing The Ocean + 05 - Walking + 06 - Bring Out Your Love + 07 - Primetime + 08 - Stormy + 09 - Philosophie + 10 - No + 11 - Dharma + 12 - Shine On + + + + + 01 - Ambitionz As A Ridah + 02 - All bout u + 03 - Skandalouz + 04 - Got My Mind Made Up + 05 - How Do You Want It + 06 - 2 Of Amerikaz Most Wanted + 07 - No More Pain + 08 - Heartz of Men + 09 - Life Goes On + 10 - Only God can judge me + 11 - Tradin War Stories + 12 - California Love(RMX) + 13 - I Ain't Mad At Cha + 14 - What'z Ya Phone Number + + + 01 - Radio Mix + 02 - Instrumental + 03 - Album Mix + + + 01 - Redemption + 02 - Open Fire + 03 - R U Still Down_ (Remeber Me) + 04 - Hellrazor + 05 - Thug Style + 06 - Where Do We Go From Here + 07 - I Wonder If Heaven Got A Ghetto + 08 - Nothing To Lose + 09 - I'm Gettin Money + 10 - Lie To Kick It + 11 - Fuck All Y'all + 12 - Let Them Thangs Go + 13 - Definition Of A Thug Nigga + + + 01 - Ready 4 Whatever + 02 - When I Get Free + 03 - Hold On Be Strong + 04 - I'm Losin It + 05 - Fake Ass Bitches + 06 - Do For Love + 07 - Enemies With Me + 08 - Nothin But Love + 09 - 16 On Death Row + 10 - I Wonder If Heaven Got A Ghetto (Hip-hop Version) + 11 - When I Get Free + 12 - Black Starry Night (Interlude) + 13 - Only Fear Of Death + + + + + 01 - Original Version + 02 - SNA Club Mix + 03 - Jack Daniel´s + + + + + 01-Loveless + 02-Golden Age of Life + 03-Planeteria + 04-Third Stream + 05-Escape That + 06-Cosmic Tree + 07-Spirits in Transit + 08-The Action + 09-Star Chasers + 10-Wishful Thinking + 11-Universal Reprise + + + 01-We who are not as others + 02-Humans + 03-In the shadows + 04-Mathmatical Probability + 05-Greys + 06-Pegasus 51 + 07-!$^^$% + 08-Wormholes + 09-Dauntless + + + 01-Planetaria (Hefner Remix) + 02-We Who Are Not As Others (Jazzaova Version) + 03-Mathematical Probability (Mustang Remix) + 04-Escape That (New Sector Movements Selekshan 2 Sector Rub Remix) + 05-Escape That (Off-World Remix) + 06-Dauntless (Restless Soul South Pacific Remix) + 07-Star Chasers (Masters at Work Main Mix) + 08-Star Chasers (Azymuth Remix) + 09-The Action (Shawn J Period Remix) + 10-We Who Are Not As Others (Alpha Omega Remix) + 11-We Who Are Not As Others (Sonar Circle Remix) + + + + + 01 - Train + 02 - Superfly + 03 - What's Up + 04 - Pleasantly Blue + 05 - Morphin & Chocolate + 06 - Spaceman + 07 - Old Mr. Heffer + 08 - Calling All The People + 09 - Dear Mr. President + 10 - Drifting + 11 - No Place Like Home + + + + + 01 - Owner Of A Lonely Heart + 02 - Hold On + 03 - It Can Happen + 04 - Changes + 05 - Cinema + 06 - Leave It + 07 - Our Song + 08 - City Of Love + 09 - Hearts + + + + + 01 - For Starters + 02 - Monkey Kong + 03 - A + 04 - Old Folks + 05 - Hopper Jonnus Fang + 06 - Summer On The Underground + 07 - Warning + 08 - If It Ain't Broke Fix It Anyway + 09 - I Love Lake Tahoe + 10 - Don't Be Punks + 11 - Down On The Floor + 12 - Jason's Addiction + 13 - Miles Away + 14 - Getting Around + + + + + 01-The Universe-A Guy Called Gerald + 02-The First Breath-A Guy Called Gerald + 03-Humanity-A Guy Called Gerald + 04-Multiplies-A Guy Called Gerald + 05-Fever (Or a Flame)-A Guy Called Gerald + 06-Could you Understand-A Guy Called Gerald + 07-Alien Report-A Guy Called Gerald + 08-Glow-A Guy Called Gerald + 09-Beaches & Deserts-A Guy Called Gerald + 10-Final Call-A Guy Called Gerald + 11-I Make It-A Guy Called Gerald + 12-Universal Spirit-A Guy Called Gerald + 13-Hurry To Go Easy-A Guy Called Gerald + 14-Scale Circle-A Guy Called Gerald + 15-Landed-A Guy Called Gerald + + + + + 01 A Teens - Mamma Mia + 03 A Teens - Super Trouper + 02 A Teens - gimme gimme gimme (a man after midnight) + 04 A Teens - One of us + 05 A Teens - Voulez vous + 06 A Teens - SOS + 07 A Teens - Dancing Queen + 08 A Teens - Take a chance on me + 09 A Teens - Lay all your love on me + 10 A Teens - The name of the game + 11 ATeens - Our last summer + + + + + 01 - Take On Me + 02 - Cry Wolf + 03 - Touchy + 04 - You Are The One + 05 - Manhattan Skyline + 06 - The Blood That Moves The Body + 07 - Early Morning + 08 - Hunting High And Low + 09 - Move To Memphis + 10 - I've Been Losing You + 11 - The Living Daylights + 12 - Crying In The Rain + 13 - I Call Your Name + 14 - Stay On These Roads + 15 - Train Of Thought + 16 - The Sun Always Shines On TV + + + 01 - Take on me + 02 - Train of Thought + 03 - Hunting High and Low + 04 - The Blue Sky + 05 - Living a Boy's Adventure Tale + 06 - The Sun Always Shines On TV + 07 - And You Tell Me + 08 - Love Is Reason + 09 - I Dream Myself Alive + 10 - Here I Stand and Face the Rain + + + 01 - minor earth major sky + 02 - little black heart + 03 - velvet + 04 - summer moved on + 05 - the sun never shone that day + 06 - to let you win + 07 - the company man + 08 - thought that it was you + 09 - i wish i cared + 10 - barely hanging on + 11 - you will never get over me + 12 - i wont forget here + 13 - mary ellen makes the moment count + + + + + 01 - Dancing Queen + 02 - Knowing Me, Knowing You + 03 - Take A Chance On Me + 04 - Mamma Mia + 05 - Lay All Your Love On Me + 06 - Super Trouper + 07 - I Have A Dream + 08 - The Winner Takes It All + 09 - Money, Money, Money + 10 - S.O.S + 11 - Chiquitita + 12 - Fernando + 13 - Voulez Vous + 14 - Gimme! Gimme! Gimme! + 15 - Does Your Mother Know + 16 - One Of Us + 17 - The Name Of The Game + 18 - Thank You For The Musik + 19 - Waterloo + + + 01 - Waterloo + 02 - Honey, Honey + 03 - So long + 04 - I do + 05 - SOS + 06 - Mamma mia + 07 - Fernando + 09 - Money, Money, Money + 10 - The name of the game + 11 - Take a chance on me + 12 - Chiquitita + 13 - I have a dream + 14 - The winner takes it all + 15 - Super trouper + 16 - Thank you for the music + + + 01 - Summer Night City + 02 - Angeleyes + 03 - The Day Before You Came + 04 - Eagle + 05 - I Do, I Do, I Do, I Do, I Do + 06 - So Long + 07 - Honey Honey + 08 - The Visitors + 09 - Our Last Summer + 10 - On & On + 11 - Ring Ring + 12 - I Wonder + 13 - Lovelight + 14 - Head Over Heels + 15 - When I Kissed The Teacher + 16 - I Am The City + 17 - Cassandra + 18 - Under Attack + 19 - When All Is Said And Done + 20 - The Way Old Friends Do + + + 01 - People Need Love + 02 - Ring Ring + 03 - Waterloo + 04 - Waterloo (German Version) + 05 - Honey Honey + 06 - So Long + 07 - I Do, I Do, I Do, I Do, I Do + 08 - S.O.S + 09 - Mamma Mia + 10 - Fernando + 11 - Dancing Queen + 12 - Money, Money, Money + 13 - Knowing Me, Knowing You + 14 - The Name Of The Game + 15 - Take A Chance On Me + 16 - Eagle + 17 - Thank You For The Music + 18 - Summer Night City + + + 01 - Chiquitita + 02 - Does Your Mother Know + 03 - Voulez-Vous + 04 - Gimme! Gimme! Gimme! (A Man After Midnight) + 05 - I Have A Dream + 06 - The Winner Takes It All + 07 - Super Trouper + 08 - Lay All Your Love On Me + 09 - One Of Us + 10 - Head Over Heels + 11 - The Day Before You Came + 12 - Under Attack + 13 - Ring Ring (German Version) + 14 - Happy New Year + 15 - Wer Im Wartesaal Der Liebe Steht + + + + + 01. Absolute Beginner - Das Boot + 02. Absolute Beginner - Hammerhart + 03. Absolute Beginner - Rock On + 04. Absolute Beginner - Liebeslied + 05. Absolute Beginner - Füchse + 06. Absolute Beginner - Fahr'n + 07. Absolute Beginner - Showmaster + 08. Absolute Beginner - Geht Was + 09. Absolute Beginner - Geh bitte + 10. Absolute Beginner - Nie Nett + 11. Absolute Beginner - Mikro in der Hand + 12. Absolute Beginner - Nicht Allein + 5Sterne Delux - Dein Herz schlägt schneller + + + + + 01-Zonenzombie + 02-Papier + 03-Friss den Stahl + 04-Charly + 05-Die Ballade von Karl Arsch + 06-Europa + 07-Terror und Schrott + 08-Küss mich + 09-Weit daneben gepisst + 10-Welt voll Harmonie + 11-Die Zeit + 12-Unfall + 13-Ich und die Wirklichkeit + 14Die Reise + + + + + 01 AC-DC - Riff Raff + 02 AC-DC - Let There Be Rock + 03 AC-DC - Whole Lotta Rosie + 04 AC-DC - Sin City + 05 AC-DC - Dirty Deeds Done Dirt Cheap + 06 AC-DC - Baby Please Don't Go + 07 AC-DC - Big Balls + 08 AC-DC - Walk All Over You + 09 AC-DC - Hard As Rock + 10 AC-DC - Hells Bells + 11 AC-DC - What Next To The Moon + 12 AC-DC - Shake Your Foundations + 13 AC-DC - Gone Shooting + 14 AC-DC - Thunderstuck + + + + + 01 - Life Is A Flower + 02 - Always Have, Always Will + 03 - Cruel Summer + 04 - Travel To Romantis + 05 - Adventures In Paradise + 06 - Dr. Sun + 07 - Cecilia + 08 - He Decides + 09 - I Pray + 10 - Tokyo Girl + 11 - Don't Go Away + 12 - Captain Nemo + 13 - Donnie + 14 - Cruel Summer (Big Bonus Mix) + + + 01 - Voules-Vous Dancer + 02 - All That She Wants + 03 - Münchhausen (Just Chaos) + 04 - Happy Nation + 05 - Waiting For Magic + 06 - Fashion Party + 07 - Wheel Of Fortune + 08 - Dancer In A Daydream + 09 - My Mind -Mindles Mix- + 10 - W.O.F. -Original Club Mix- + 11 - Dimension Of Depth + 12 - Young And Proud + 13 - A.T.S.W. -Banghra Version- + + + 01 - The sign (radio edit) + 02 - The sign (long version) + + + + + 01 - Made in Paradise + 02 - Auf der Rolltreppe + 03 - Kuddel Daddel Du + 04 - Die Zauberin + 06 - Sturmflut + 07 - Robert der Roboter + 08 - Melancholie + 09 - Karawane ins Glück + 10 - Das Lied von Susi und Johnny + 11 - Mein Herz ist ein Ufo + + + + + 01 - acid marathon 1 + 02 - acid marathon 2 + 03 - acid marathon 3 + 04 - washaa + 05 - acid marathon 4 + 06 - jing jang + 07 - in front of da outland + 08 - mondonon + 09 - clock seven + 10 - 4 degrees + 11 - balance + 12 - + + + acid + + + + + 01 - Intro + 02 - 73 + 03 - Metropolis + 04 - Music in my Mind + 05 - Jaxx + 06 - Mother Death + 07 - The Tree Knows Everything + 08 - Circles + 09 - Dirty Happy + 10 - F-Jam + 11 - Colours + 12 - Aromatherapy + + + + + 01 - Tiro Ao lvaro + 02 - Iracema + 03 - Trem Das Onze + 04 - Saudosa Maloca + 05 - O Samba Do Arnesto + 06 - Torresmo Milanesa + 07 - Viaduto Santa Efig nia + 08 - Bom Dia Tristeza + 09 - As Mariposas + 10 - Despejo Na Favela + 11 - Ag enta a M o, Jo o + 12 - Vide Verso Meu Endere o + 13 - Acende O Candieiro + 14 - No Morro Da Casa Verde + 15 - Vila Esperan a + 16 - Fica Mais Um Pouco Amor + 17 - Apaga O Fogo Man + + + + + 01 - Por que voc faz cinema- + 02 - A f brica do Poema + 03 - Bagatelas + 04 - Metade + 05 - Sudoeste + 06 - O verme e a estrela + 07 - Estrelas + 08 - Aconteceu + 09 - Cariocas + 10 - Morro dois irm os + 11 - Inverno + 12 - Roleta russa + 13 - Tema de Alice + 14 - Portrait of Gertrude + 15 - Minha m sica + + + + + Amazing + Boogie Man + Can't Stop Messin' + Crazy + Cryin' + Eat the Rich + Fever + Flesh + Get a Grip + Gotta Love It + Intro + Line Up + Livin' on the Edge + Shut Up And Dance + Walk On Down + + + 01 - Nine Lives + 02 - Falling In Love + 03 - Hole In My Soul + 04 - Taste Of India + 05 - Full Circle + 06 - Something's Gotta Give + 07 - Ain't That A Bitch + 08 - Take Me To The Farm + 09 - Crash + 10 - Kiss Your Past Good-bye + 11 - Pink + 12 - Falling Off + 13 - Attitude Adjustment + + + + + 01 - Amor Verdadero + 02 - Alto Songo + 03 - Habana Del Este + 04 - A Toda Cuba Le Gusta + 05 - Fiesta de la Rumba + 06 - Los Sitio' Asere + 07 - Pio Mentiroso + 08 - Maria Caracoles + 09 - Clasiqueando con Ruben + 10 - Elube Chango + + + + + 01 - Das Möbiusband - Zeychen und Wunder + 02 - Triebwerk + 03 - Felix + 04 - Kosmonauten + 05 - Fingerwalze + 06 - So sollte es nicht sein! + 07 - Küchenlied + 08 - Das Scheusal + 09 - Déjà vu (Snap Mix #2) + 10 - Hasensong + 11 - Schöner leben + 12 - Rohleder's + 13 - Maximale Gier + 14 - Nach Hause (instr.) + 15 - Gesichter + 16 - Stadt-Fisch + + + + + 01-Intro + 02-Cold Water Music + 03-The Force + 04-Sail + 05-Downstate + 06-Ain't Got Time To Waste + 07-Fat City (Interlude) + 08-True To Hip Hop + 09-Demonique + 10-A Tree, A Rock And A Cloud + 11-Journey To The End Of The Night + 12-From Here To Fame + + + + + 01 - Original mix + 02 - Sexy boy + 03 - Album version + 04 - Remember + + + 01 - La Femme D'Argent + 02 - Sexy Boy + 03 - All I Need + 04 - Kelly Watch The Stars + 05 - Talisman + 06 - Remember + 07 - You Make It Easy + 08 - Ce Matin La + 09 - New Star In The Sky + 10 - Le Voyage De Pénélope + + + 01 - Modular Mix + 02 - Casanova 70 + 03 - Les Professionnels + 04 - J'ai dormi sous l'Eau + 05 - Le Soleil est pres de Moi + 06 - Californie + 07 - Brakes On + + + 01 - playground love + 02 - clouds up + 03 - bathroom girl + 04 - cemetary party + 05 - dark messages + 06 - the word 'hurricane' + 07 - dirty trip + 08 - highschool lover + 09 - afternoon sister + 10 - ghost song + 11 - empty house + 12 - dead bodies + 13 - suicide underground + + + + + A Teens - Super Trouper + Aqua - Cartoon Heroes + Backstreet Boys - Show Me The Meaning Of Being Lonely + Bloodhound Gang - The Bad Touch + Die Toten Hosen - Unsterblich + Enrique Iglesias - Rhythm Divine + Highland - Bella Stella + HIM - Join me + Lene Marlin - Sitting Down Here + Madonna - American Pie + Marc Anthony - I Need To Know + Melanie C - Northern Star + Metallica - Nothing Else Matters + Modern Talking - China In Your Eyes (Ext.Version) + N'Sync - Bye Bye Bye + Natural Born Hippies - Am I Not Sweet + Oli.P - Niemals Mehr + Prezioso feat. Marvin- Tell Me Why + Santana - Maria Maria + Sash! - Adelante [Original Mix] + Stefan Raab - Wadde Hadde Dudde Da + Sting - Desert Rose + Thomas D. - Liebesbrief + Vengaboys - Shalala Lala + Yamboo - Come With Me + + + 01_Blank & Jones - The Nightfly + 02_Passion Fruit - Wonderland + 03_GIGI D'AGOSTINO - The Riddle + 04_Echt - Junimond + 05_Bon Jovi - It´s My Life + 06_Backstreet Boys - The One + 07_Venga Boys - Uncle John From Jamaica + 08_GIGI D'AGOSTINO - Another Way + 09_Ace Of Base - Hallo Hallo + 10_Melanie C - Never Be The Same Again + 11_Anton Aus Tirol Feat DJ Ötzi - Gemma Bier Trinken + 12_Britney Spears - Oops I Did It Again + 13_GIGI D'AGOSTINO - La Passion + 14_Reamonn - Supergirl + 15_John Davies - I Promised Myself + 16_Fools Garden - Suzy + 17_Bomfunk MC's - Freestyler + 18_Die Toten Hosen - Bayern + 19_Die Band Ohne Namen - Take My Heart + + + Anastacia - I'm Outta Love + Andreas Stenschke - Just When I Needed You Most + Antonia Feat. Sandra - ...Ich Bin Viel Schöner + Azuca - Este Chico (I Fall In Love With You) (Radio Mix) + Bastian Raagas - You Complete Me (Radio Dance Version) + Captain Jack - Only You + Celine Dion - I Want You To Need Me (Radio Edit) + Celine Dion - I Want You To Need Me (Thunderpuss Radio Mix) + Chayanne - Boom Boom (Spanglish Version) + Eskobar - Good Day For Dying (Radio Edit) + Hooverphonic - Mad About You (Radio Edit) + Madonna - Music (CD Version) + Monaco - I´ve Got A Feeling (Radio Edit) + Red Sector - Invasion Over Berlin (Short Energy Mix) + Senait - Aura (Radio Edit) + Sharon Williams - Life Is So Strong (Single Edit) + Sladdgo - Was Du Woll + Sonique - It Feels So Good + Sound Convoy - Hey Baby ( Radio Edit ) + Verena - Ist das alles + + + Berger - Zeig mir Dein Gesicht + Britney Spears - Lucky + Darude - Sandstorm + Marque - Electronic Lady + Mel C - I Turn To You + Mr President - Up´n Away 2k + N Sync 02 - It's Gonna Be Me + Orange Blue - She's Got That Light + Rednex - Hold Me (For A While) + Rednex - The Spirit Of The Hawk + Ronan Keating - Life is a Rollercoaster + Sasha - Owner Of My Heart + Tic Tac Toe - Ich liebe Disch + Toploader - Dancing in the Moonlight + Vanessa Amorosi - Absolutely Everybody + Whitney Houston & Enrique Iglesias - Could I Have This Kiss Forever + + + + + 01 - Che Angelo Sei (Amore Mio) + 02 - Tu Soltanto Tu (Mi Hai Fatto Innamorare) + 03 - Ci Sara + 04 - Imagini 77 + 05 - Canto Di Libertá + 06 - Abbandonati + 07 - Prima Notte D´amore + 08 - Sharazan + 09 - Felicitá + 10 - Meditando + 11 - Caro Gesú + 12 - E Fu Subito Amore + 13 - Angeli + 14 - Aria Pura + 15 - Lo Ti Cerco + 16 - Canzone Blu + + + + + 01 - All I Really Want + 02 - You Oughta Know + 03 - Perfect + 04 - Hand In My Pocket + 05 - Right Through You + 06 - Forgiven + 07 - You Learn + 08 - Head Over Feet + 09 - Mary Jane + 10 - Ironic + 11 - Not the Doctor + 12 - Wake Up + 13 - You Oughta Know (remix) + + + 01 - You Learn-1 + 01 - You Learn + 02 - Joining You + 03 - No Pressure Over Cappuccino + 04 - That I Would Be Good + 05 - Head Over Feet + 06 - Princes Familiar + 07 - I Was Hoping + 08 - Ironic + 09 - These R The Thoughts + 10 - King Of Pain + 11 - You Oughta Know + 12 - Uninvited + + + Alanis Morisette - 01 Front Row + Alanis Morisette - 02 Baba + Alanis Morisette - 03 Thank U + Alanis Morisette - 04 Are You Still Mad + Alanis Morisette - 05 Sympathetic Character + Alanis Morisette - 06 That I Would be Good + Alanis Morisette - 07 The Couch + Alanis Morisette - 08 Can't Not + + + + + 01 - Time + 02 - Tryin' + 03 - The Child + 04 - Ralph & Kathy + 05 - With U + 06 - You, my Baby & I + 07 - 06 10 98 + 08 - Party People + 09 - Consolidated + 10 - Quiet Storm + + + + + 01 - Feel the Sunshine + 02 - Jazz Master + 03 - Intro 1 + 04 - Acid Lab + 05 - Pulp Friction + 06 - Candles + 07 - Ibiza + 08 - Intro 2 + 09 - Out of Time + 10 - U R + + + + + 01 - Big In Japan + 02 - Sounds Like A Melody + 03 - Sensations + 04 - The Mysteries Of Love + 05 - Lassie Come Home + 06 - Jerusalem + 07 - Dance With Me + 08 - For A Million + 09 - A Victory Of Love + 10 - The Jet Set + 11 - Red Rose + 12 - Romeos + 13 - Summer Rain + 14 - Forever Young + 15 - Big In Japan [Culture Mix] + + + A Victory Of Love + Big In Japan + Fallen Angel + Forever Young + In The Mood + Lies + Sounds Like A Melody + Summer In Berlin + The Jet Set + To Germany With Love + + + + + 01 - Follow Me + 02 - Gold + 03 - Mother Look What They've Done To Me + 04 - Run Baby Run + 05 - Queen Of China Town + 06 - The Sphinx + 07 - Blood And Honey + 08 - Fashion Pack + 09 - Fabulous Lover Love Me + 10 - Diamonds + 11 - Egal + 12 - Fever + 13 - Never Trus A Pretty Face + 14 - Alphabet + 15 - Im A Photograph + 16 - Blue Tango + 17 - Tomorrow + 18 - The Lady In Black + 19 - I Need A Man + 20 - Nymphomania + + + + + 01 - Let it rain + 02 - Birmingham + 03 - Fall from grace + 04 - Dark Horse + 05 - Beautiful goodbye + 06 - Sitting on the top of the world + 07 - Last exit to eden + 08 - Trust me (This is love) + 09 - Let's got lost + 10 - Promises + + + 01 - Dark Horse + 02 - Let It Rain + 03 - Birmingham + + + 01 - Believe in you + 02 - Love lift me + 03 - Why don't you love me- + 04 - Too little, too late + 05 - If I didn't have you + 06 - Ride + 07 - Right here all along + 08 - Wishful thinking + 09 - Shades of grey + 10 - Give up giving in + 11 - Best of me + 12 - Never said goodbye + 13 - Out of bounds + + + + + 01 - Stoney Street + 02 - Easy Muffin + 03 - Yasawas + 04 - Creatures + 05 - Chomp Samba + 06 - The New York Editor + 07 - Defocus + 08 - The Nasty + 09 - Bitter & Twisted + 10 - Wires & Snakes + 11 - One Day In My Garden + 12 - Dream Sequence + 13 - One Small Step + 14 - Mission + + + 01 - Get Your Snack On + 02 - Four Ton Mantis + 03 - Slowly + 04 - Marine Machines + 05 - Golfer vrs Boxer + 06 - Deo + 07 - Precursor (feat. Quadraceptor) + 08 - Saboteur + 09 - Chocolate Lovely + 10 - Rhino Jockey + 11 - Keepin' It Steel (The Anvil Track) + 12 - Natureland + + + + + 01 - Not That Kind + 02 - I'm Outta Love + 03 - Cowboys & Kisses + 04 - Who's Gonna Stop The Rain + 05 - Love Is Alive + 06 - I Ask Of You + 07 - Wishing Well + 08 - Made For Lovin' You + 09 - Black Roses + 10 - Yo Trippin' + 11 - One More Chance + 12 - Some Old Story + + + + + 01 - Get you closer + 02 - Michael caine + 03 - Evil boys + 04 - Pimmelmann + 05 - Und wieder + 06 - Love & fingers + 07 - Pray + 08 - Men in uniform + 09 - Hypnotize + 10 - Der erste Schritt + + + 01 - Devil airlines + 02 - Second front + 03 - Metalhammer + 04 - Menschen + 05 - And one + 06 - Only one + 07 - Crimetime + 08 - Synthetik + 09 - Geld + 10 - Second voice + 11 - Exit + 12 - Anguish + 13 - Deliverance + 14 - Metalhammer (Heavy mix) + + + 01 - Get You Closer (Radio Mix) + 02 - Get You Closer (Club Mix) + 03 - Pimmelmann (Nixmix) + + + 01 - Ego + 02 - Murder murder + 03 - Driving with my darling + 04 - The only guest + 05 - Dein Duft + 06 - It happend last night + 07 - When the feet hurt + 08 - The secret + 09 - Fuer + 10 - Second day + 11 - Body nerv + 12 - Take some more + 13 - Deutschmaschine + 14 - Heart of stone + 15 - Ghama voodoo + 16 - Bonus + + + 01 - Nachtschicht in der hassfabrik + 02 - Teufel oder engel + 03 - Klon mich lieber nicht! + 04 - Maschinenstuermer + 05 - Bedienungsanleitungen + + + 01 - Und dafuer + 02 - Sometimes + 03 - Movie star + 04 - Uns geht's gut + 05 - My warrior + 06 - Creatures + 07 - Sweety sweety + 08 - Schluss mit lustig + 09 - Sitata tirulala + 10 - Friends in heaven + 11 - Mirror in your heart + 12 - Nordhausen + + + 01 - Sometimes (Radio Edit) + 02 - High (Bonus) + 03 - White Doves (Bonus) + 04 - Technoman (Live !) + 05 - Sometimes (Instr.) + 06 - Nordhausen (Album Mix) + + + 01 - Wild pain + 02 - Life isnt easy in germany + 03 - Consequence of time + 04 - Spontanverkehr + 05 - Friend of stars + 06 - Hall of souls + 07 - Recover you + 08 - Der erste Stein + 09 - Tanz der Arroganz + 10 - The and + 11 - Spot + 41 - Wild pain (maxi) + + + 01 - Virgin superstar + 02 - Wasted + 03 - You don't love me anymore + 04 - Goodbye Germany + 05 - Wet spot + 06 - Panzer Mensch + 07 - My story + 08 - Life to lose + 09 - Not the only one + 10 - Don't need the drugs + 11 - Mr Jenka + + + 01 - Wasted (Radio Edit) + 02 - Forever J (Bonus) + 03 - Wasted (Naghavi Mix) + 04 - Maschinenhimmel (Bonus) + 05 - Lawrence Of Arabia (Bonus) + + + + + 01-Track 1 + 02-Track 2 + 03-Track 3 + 04-Track 4 + 05-Track 5 + 06-Track 6 + 07-Track 7 + 08-Track 8 + 09-Track 9 + 10-Track 10 + 11-Track 11 + 12-Track 12 + 13-Track 13 + 14-Track 14 + 15-Track 15 + 16-Track 16 + 17-Track 17 + 18-Track 18 + + + + + 01 - lass uns brennen + 02 - girls in love + 03 - so ist das nun mal + 04 - ab + 05 - allein im park + 06 - das weisst nur du + 07 - du bist da + 08 - blaumeise yvonne + 09 - es ist nur der rauch + 10 - in mich selbst verliebt + 11 - wenn du menschen triffst + 12 - das maedchen auf dem foto + 13 - scheinzahm + + + 01 - girls in love (original version) + 02 - girls in love (grungerman remix) + 03 - girls in love (forever sweet remix) + 04 - singen hoeren + + + 01 - girls in love + 02 - ich weiss es nicht (tegel a23) + 03 - es ist nur der rauch + 04 - ich weiss es nicht + + + 01 - so ist das nun mal + 02 - linda + 03 - so ist das nun mal (mike ink mix) + 04 - so ist das nun mal (reinhard & tobias happy sundays mix) + + + + + 01 - Il giocatore di biliardo + 02 - La comica finale + 03 - Il dito e la luna + 04 - L'ultimo giorno del circo + 05 - Per ogni matematico + 06 - La parola ai mimi + 07 - L'uso dell'amore + 08 - Lamento di un uomo di neve + 09 - La regola del filo a piombo + 10 - Vita quotidana di uno spettro + 11 - La leggenda del collezionista + 12 - Confesso che ho vissuto + + + 01 - il ladro + 02 - Madame + 03 - bella faccia + 04 - uomini di passaggio + 05 - Ballerina + 06 - Amazzonia + 07 - il bambino dei topi + 08 - il tempo di partire + 09 - il grido + 10 - ai confini dell'asia + 11 - Festa + + + 01 - Il Cantico Delle Creature + 02 - Il Sultano Di Babilonia E La Prostituta + 03 - Il Lupo Di Gubbio + 04 - Audite Poverelle + 05 - Divina Commedia - Paradiso, Canto XI + 06 - Il Trattato Dei Miracoli + 07 - Nelle Paludi Di Venezia Francesco Si Fermò Per Pregare E Tutto Tacue + 08 - La Regola + 09 - La Predica Della Perfetta Letizia + 10 - La Morte Di Francesco + 11 - Salmo + + + + + 01 - Nothing at all + 02 - Weltschmerz + 03 - Killing time + 04 - True love tales + 05 - Self destruct + 06 - Out darkness + 07 - The sitting room + 08 - Swimming + 09 - An ordinary life + 10 - Shades + 11 - Short story + 12 - The power game + 13 - All we have to be thankful for + + + Letter Of Thanks To A Friend (club edit) + Letter Of Thanks To A Friend (instrumental edit) + Letter Of Thanks To A Friend (radio edit) + + + 01 - Hardfloor 97 Radio edit + 02 - Hardfloor 97 version + 03 - Total eclipse remix + + + 01 - Heaven + 02 - Red Sands + 03 - Alarm Call + 04 - Tide + 05 - The Interruption + 06 - The Power Game + 07 - World Without Warning + 08 - Bursting + 09 - Lovers Retreat + + + If I could + Our Darkness-2 + Our Darkness + + + At Midnight + Closed Circuit + Come In + Dedication + Echoes Remain Forever + Fragility + Improvisation + Interlude + Journey By Night + Killing Time + So Quiet Here + Swallow Song + That We Have Been Here + The Sitting Room + The Spinning Turning Of The Summer Earth + This Be The Verse + Unstill Life + Windmills Of Your Mind + World Without Warning + + + 01 - Up + 02 - Homecoming + 03 - Red sands + 04 - The power game + 05 - Cane hill + 06 - Leaving + 07 - Heaven + 08 - The last emotion + 09 - Killing time + 10 - Wallies + 11 - Out darkness + 12 - Now + 13 - This be the verse + 14 - Sleeper in metropolis + + + 01 - the sitting room + 02 - swimming + 03 - an ordinary live + 04 - shades + 06 - the power game + 07 - all we have to be thankful + 08 - contact + 09 - sleeper in metropolis + 10 - poem for a nuclear romance + 11 - wallies + 12 - the lovers audition + 13 - poets turmoil no 364 + 14 - echoes remain forever + 15 - all night party + 16 - pandoras box + 17 - feel + 18 - the last emotion + 19 - nothing at all + 20 - true love tales + 21 - self destruct + 23 - weltschmerz + 24 - our darkness remix 12 + x0 - killing time + y0 - for + + + Acropolis + Athens + Dream Made Real + Elegy For A Lost Summer + Letter Of Thanks To A Friend + Mundesley Beach + Painting + The Healing + The Key + Virtuality + + + 01 Anne Clark - Virtuality ( Global Youth Remix ) + 02 Anne Clark - The Healing ( Aural Float Treatment ) + 03 Anne Clark - Sleeper In Metropolis ( Hardfloor 97 Version ) + 04 Anne Clark - Letter Of Thanks To A Friend ( Radi Mate Mix By Mouse On Mars ) + 05 Anne Clark - Nida ( Saafi Bros. Remix ) + 06 Anne Clark - Our Darkness ( Hardfloor 97 Version ) + 07 Anne Clark - Homecoming ( Pascal F.E.O.S. Remix ) + 08 Anne Clark - Sleeper In Metropolis ( Sleepers Revenge Mix by Sven Väth & Ralf Hildenbeutel ) + 09 Anne Clark - Contact ( Contact 2017 Mix by the Mover ) + 10 Anne Clark - Wallies ( Night Of The Hunter Remix By Juno Reactor ) + 11 Anne Clark - Our Darkness ( Total Eclipse Remix ) + + + + + 01 - Radio edit + 02 - Album version + 03 - Instrumental + 04 - It is a shame + + + + + abe + barney2 + barney3 + bart + bfpvny + bush + cfuture + duffy + eckat + fett + feuerste + homer + homer2 + homer3 + homer4 + homer5 + krusty + moe + moe2 + nafzu + ned + nick + prfsimon + roehrich + sexchat + simpson + spd + spd2 + troymc + + + 0190maen + 0190weib + anonym + bettdecke + domina + hotline + otto + peppig + sexchat + sexshop + sigilive + susi3 + telsex + + + 3_schritte + abends + ali + anwalt + baby + bananen + beichte + bleib_ma_dran + boehme + butler + f-prinzp + franzoesisch + friedhof + geld + genervt + heller + hengst + horoskop + hypnose + indianer + inkasso + kind + klh-ende + klhradio + kontonr + lauter + mallorca + mamifix + maschine + maxmanu + mensch + mir + mkp + morgens + nervoes + omm + polizei + privater_anschiss + rezept4 + talent + toupet + versteigerung + werbung + y2kfrau + y2kmann + + + bayer + beatles + chanchan + delasoul + dtkuhn + feschajaga + george + helge2 + howard + kaktus + mouskour + python + python2 + raab + ringdong + ruehmann + schwein + spice + tmwywfm + + + 12oder3 + 24uhr + anschlu2 + arabia + assigned + cutoff + d1_1 + d2_3 + d2_4 + ende + erreicht + gehalten + geschaltet + importan + interoute + japan + kingcall1 + kingcall2 + maschendrahtzaun + mittagspause + nachrich + nica + talkline + tmobil + urlaub + vorwahl + + + bbecker + bbecker2 + brandt + bushkohl + cdu + coolman + faust + gerdschroeder + gerdschroeder2 + gerdschroeder3 + gerdschroeder4 + gott + grizmek3 + halrvord + helge4 + honikohl + kohl + kohl2 + kohl3 + kohl4 + kohlsingt + kork + lndnberg + loddar + loriot + michael + mission + moser + papst2 + ranicki + ranicki2 + scherz + supereh + susi3 + weihnachtsmann + wiebitte + wummwend + + + 3947 + borg + c3po + cluster + dsn + dukat + dukat2 + hansolo + holodoc + janeway + kim2 + kira + kirk + mib + nog + obrien + obrien2 + odo + picard + r2d2 + riker + schatten + sisko + sisko2 + spock + spock2 + tng + tos + uhura + voyager + worfdax + zimmerm + + + ab_lilo_5 + airforc2 + airforce + albundy + alf + alf2 + berti + bestofrichie + bond + bond2 + boning + bully + bvogts + clousea2 + clouseau + conan + ddf + delasoul + drebin + drebins + dtkuhn + duke + elaine + emil + erhardt + george + georgebush + ghostbusters + hartman + helge + helge2 + helge3 + krause + lector + lose + mulder + mulder2 + nypd + ohotte + osterwelle + python3 + python4 + python5 + raab + renegade + richie + richie2 + richie3 + richie4 + richie5 + rockfor2 + rockford + scully + scully2 + scully3 + seinfeld + seth + sigi + smeister + thejade + tnet-box + tooltime + twachter + venkman + ventura + ventura2 + verona + wallace + xfiles + + + + + 01 - Girl Boy (nls mix) + 02 - Milk Man + 03 - Inkey$ + 04 - Girl Boy [£18 snarerush mix] + 05 - Beetles + 06 - Girl Boy [redruth mix] + + + 01 - Acrid Avid Jamshred + 02 - The Waxen Pith + 03 - Wax the Nip + 04 - Icct Hedral (Edit) + 05 - Ventolin (Video Version) + 06 - Come On You Slags + 07 - Start As You Mean To Go On + 08 - Wet Tip Hen Ax + 09 - Mookid + 10 - Alberto Balsam + 11 - Cow Cud Is A Twin + 12 - Next Heap With + + + 01 - .215061 + 02 - .1993841 + 03 - .0180871R + 04 - .942937 + 05 - .0180871L + 06 - .000890569 + 07 - .55278037732581 + 08 - (CAT 00897-AA1) + 09 - (CAT 00897-A1) + 10 - AFX 6-B + 11 - (CD Only Track #1) + 12 - (CD Only Track #2) + 13 - (CAT 00897-A2) + + + 01 - Digeridoo + 02 - Flaphead + 03 - Phloam + 04 - Isopropanol + 05 - Polynomial-C + 06 - Tamphex (Hedphuq Mix) + 07 - Phlange Phace + 08 - Dodeccaheedron + 09 - Analogue Bubblebath 1 + 10 - Metapharstic + 11 - We have arrived (Aphex Twin QQT Mix) + 12 - We have arrived (Aphex Twin TTQ Mix) + 13 - Digeridoo (Live in Cornwall, 1990) + + + 01 - Come To Daddy, Pappy Mix + 02 - Flim + 03 - Come To Daddy, Little Lord Faulteroy Mix + 04 - Bucephalus Bouncing Ball + 05 - To Cure A Weakling Child, Contour Regard + 06 - Funny Little Man + 07 - Come To Daddy, Mummy Mix + 08 - IZ-US + + + 01 - Donkey Rhubarb + 02 - Vaz Deferenz + 03 - Icct Hedral (Philip Glass Orchestration) + 04 - Pancake Lizard + + + 01 - Mr. Frosty + 02 - Jelly Fish + 03 - Eggy Toast + 04 - Reg + 05 - Vodka + 06 - Winner Takes All + 07 - Giant Deflating Football + 08 - Upright Kangaroo + 09 - The Sound of Beady Eyes + 10 - Bu Bu Bu Ba + + + 01 - on + 02 - 73-yips + 03 - d-scape + 04 - xepha + + + 01 - d-scape mix + 02 - reload mix + 03 - mu-ziq mix + 04 - 28 mix + + + 01 - Quoth (Original) + 02 - Iketa + 03 - Quoth (Wooden Thump Mix) + 04 - Bike Pump Meets Bucket + 05 - (Unlisted) + + + 01 - Polygon Window + 02 - Audax Powder + 03 - Quoth + 04 - If It Really Is Me + 05 - Supremacy II + 06 - UT1 - dot + 07 - -no title- + 08 - Quixote + 09 - Quino-phec + + + 01 - 4 + 02 - Cornish Acid + 03 - Peek 824545201 + 04 - Fingerbib + 05 - Corn Mouth + 06 - To Cure A Weakling Child + 07 - Goon Gumpas + 08 - Yellow Calx + 09 - Girl-Boy Song + 10 - Logon Rock Witch + + + 01 - Xtal + 02 - Tha + 03 - Pulsewidth + 04 - Ageispolis + 05 - i + 06 - Green Calx + 07 - Heliosphan + 08 - We are the Music Makers + 09 - Schottkey 7th Path + 10 - Ptolemy + 11 - Hedphelym + 12 - Delphium + 13 - Actium + + + 01 - Cliffs + 02 - Radiator + 03 - Rhubarb + 04 - Hankie + 05 - Grass + 06 - Mold + 07 - Curtains + 08 - Blur + 09 - Weathered stone + 10 - Tree + 11 - Domino + 12 - White blur 1 + + + 01 - Ventolin (Salbutamol Mix) + 02 - Ventolin (Praze-An-Beeble Mix) + 03 - Ventolin (Marazanvose Mix) + 04 - Ventolin (Plain-An-Gwarry Mix) + 05 - Ventolin (The Coppice Mix) + 06 - Ventolin (Crowsmengegus Mix) + + + 01 - Ventolin (wheeze mix) + 02 - Ventolin CARHARRACK mix + 03 - Ventolin PROBUS mix + 04 - Ventolin (cylob mix) + 05 - Ventolin (deep gong mix) + 06 - Ventolin (asthma beats mix) + + + + + 01 (Aphrodite) - Aphromoods + 02 (Amazon II) - King Of The Beats + 03 (Aladdin) - Woman That Rolls! + 04 (Aphrodite) - Spice (Of The Gods Remix) + 05 (Aladdin) - Summer Breeze + 06 (Amazon II) - Music's Hypnotising + 07 (Aphrodite (Vortex Mix)) - Listen To The Rythm + 08 (Aphrodite) - Dub Moods (The Greatest Trick) + 09 (Aphrodite) - Style From The Dark Side + 10 (Aphrodite) - Tower Bass! + 11 (Aphrodite feat. Gail Mclean) - I Wanted It More And + 12 (Aphrodite) - Sweet Mind + + + + + 01 - Sealth Overture + 02 - Ain't Talkin' 'Bout Dub + 03 - Altamont Super-Highway Revisted + 04 - Electro Glide In Blue + 05 - Vanishing Point + 06 - Tears Of The Gods + 07 - Carrera Rapida + 08 - Krupa + 09 - White Man's Throat!s + 10 - Pain In Any Language + 11 - Stealth Mass In F#m!s + + + 01 - Are we a rock band or what + 02 - Stop the rock + 03 - Crazee Horse + 04 - Cold Rock the Mic + 05 - Lost in Space (Theme) + 06 - For forty days + 07 - Heart Go Boom + 08 - The Machine in the ghost + 09 - Blackbeat + 10 - Stadium parking lot + 11 - YO, Future + 12 - High on your own supply + 13 - The Perfect crime + + + 02 - Liquid Cool + 03 - Film Me And Finish Me Off + 04 - I Need Something Stronger + 05 - Pain Is A Close Up + 06 - Omega Point + 07 - Don't Fear The Reaper + 08 - Astral Amerika + 09 - Millennium Fever + 10 - Stealth Requiem + + + + + 01 - Love Never Dies, Part I + 02 - Mourn + 03 - Non-Stop Violence + 04 - 25 Cromwell St. + 05 - Rebel + 06 - Deep Red + 07 - Nearer + 08 - Half Asleep + 09 - Love Never Dies, Part II + + + 01_-_Kathy's_Song_(Ferry_Corsten_RMX) + 02_-_Kathy's_Song_(Single_version) + 03_-_Kathy's_Song_(Victoria_mix_by_VNV_Nation) + 04_-_Kathy's_Song_(Beborn_Beton_RMX) + 05_-_Kathy's_Song_(Ferry_Corsten_RMX)(12-_version) + 06_-_Kathy's_Song_(C-64_version) + + + 01 - Mourn (APB Remix) + 02 - Mourn (Ihrmx) + 03 - Mourn (Original Version) + 04 - Untitled Too (Sweep remix) + 05 - Ohm Sweet Ohm + 06 - Electricity + 07 - Snutt 7 + + + 01 - Non-Stop Violence [CNN version] + 02 - Near [Banilla Dream version] + 03 - Burnin' Heretic [Live] + + + 01 - Like Blood From The Beloved (part 1) + 02 - Bitch + 03 - Burnin Heretic (album version) + 04 - Stich + 05 - Walk With Me + 06 - Backdraft + 07 - Arp (808 edit) + 08 - Spiritual Reality + 09 - Skyscraping (schizophreniac) + 10 - All Tomorrows Parties + 11 - The Sentinel + 12 - Ashes To Ashes `93 + 13 - Like Blood From The Beloved (part 2) + + + 01 - Apb goes C-64 + 02 - Deep Red + 03 - Bitch + 04 - Stitch + 05 - Spiritual Reality + 06 - Electronic Warfare + 07 - All Tomorrows Parties + 08 - Arp + 09 - Burnin´ Heretic (Album version) + 10 - Ledelsens Mening + 11 - Backdraft + 12 - Ashes to Ashes (German Slam version) + 13 - The Approach of Death + 14 - Ashes to Ashes (Original 12- version) + 15 - Wrack´em to Pieces + 16 - Burning Heretics (Crisp version) + + + 01 - Everything We Know Is Wrong + 02 - Starsign + 03 - Eclipse + 04 - Help Me + 05 - Kathy's Song (Come Lie Next To Me) + 06 - Untiled 3 + 07 - Moment Of Tranquililty + 08 - Fade To Black + 09 - 64K + 10 - Paranoia + 11 - Soultaker + 12 - LNDP 3 + 13 - Time To Move On + Bonus (ABP Goes C-64 Again) + + + + + 01 Aretha Franklin - Freeway Of Love + 02 Aretha Franklin - I Knew You Were Waiting + 03 Aretha Franklin - Jump To It + 04 Aretha Franklin - Willing To Forgive + 05 Aretha Franklin - Doctor's Orders + 06 Aretha Franklin - United Together + 07 Aretha Franklin - Who's Zoomin' Who + 08 Aretha Franklin - A Deeper Love + 09 Aretha Franklin - Honey + 10 Aretha Franklin - Get It Right + 11 Aretha Franklin - Another Night + 12 Aretha Franklin - Ever Changing Times + 13 Aretha Franklin - Jimmy Lee + 14 Aretha Franklin - You Make Me Feel + 15 Aretha Franklin - I Dreamed A Dream + 16 Aretha Franklin - Jumpin' Jack Flash + + + + + SN1B6208B_Trk01A + SN1B6208B_Trk02A + SN1B6208B_Trk03A + SN1B6208B_Trk04A + SN1B6208B_Trk05A + SN1B6208B_Trk06A + SN1B6208B_Trk07A + SN1B6208B_Trk08A + SN1B6208B_Trk09A + SN1B6208B_Trk10A + SN1B6208B_Trk11A + SN1B6208B_Trk12A + SN1B6208B_Trk13A + SN1B6208B_Trk14A + + + + + 01 - Adoro + 02 - Somos novios + 03 - Cuando estoy contigo + 04 - Pensando en ti + 05- Contigo amor + 06 - Cariño mio + 07 - Yo te quiero + 08 - Esta tarde vi llover + 09 - Voy a apagar la luz + 10 - Contigo aprendi + 11 - No + 12 - Esperare + 13 - Pero te extraño + 14 - Me vas a recordar + 15 - Mia + + + + + (01).im.wagen.vor.mir + (02).ferien.auf.dem.bauernhof + (03).das.frivole.wiedersehen + (04).spermadin + + + 02 - No Man's Land + + + + + 16 - Poppen muss Spass machen + 19 - Der Ausdenker + 17 - Heiligabend + 15 - Drei Eier + 18 - Gertrud ist abgerissen + 12 - Einbruch bei Gertrud - In der Haseluenner Lubjanka + 13 - Einbruch bei Gertrud - Die Verhandlung + 14 - Oeffentlicher Nahverkehr + 10 - Ruesselwaesche + 11 - Einbruch bei Gertrud - Gertrud hat noch zu + 09 - Schneeraeumen am Arsch + 08 - Oedipus Kurt + 01 - Ferkel nervt + 02 - Arschkrampen im Krieg - Der Kessel von Goebelgrad + 03 - Arschkrampen im Krieg - Der 7 Mai 1945 + 04 - Arschkrampen im Krieg - Nacht ueber Gotenhafen + 05 - Es plaestert + 06 - Pflaumen pfluecken + 07 - Weitstrullen + + + 19 - Kampfruf des Negers + 02 - Die alte Kultur + 08 - Schwanzmessen + 20 - Die Leguane greifen an + 01 - Was hier denn los + 18 - Schluepfer rasseln in Fickstadt + 05 - Am Tag als der Leguan + 03 - Entfuehrer und Enthueller + 04 - Wie gehts eigentlich Praenki + 21 - Erste Kritik + 07 - Excusez-moi + 06 - Zu den Quellen des Amazonas + 09 - Gelegenheit zum Gespraech + 13 - Gehts Praenki besser + 16 - Praenki is kaputt + 14 - An den Ufern des Urinoko + 15 - Zicken her + 12 - Eckis Plattentip + 11 - Brettermeier duebelt + 10 - Goebelblanca + 17 - Feuchte BIRAFO + + + 04 - Brettermeier (Karaoke Version) + 03 - Brettermeier (Radio Version) + 02 - 18 Bier mit Tsatsiki + 01 - Brettermeier die Pottsau + + + 02 - Der kleine Pisser + 03 - Die Alpen + 01 - Damals in der Bretterpenne + 04 - Gedichte + 10 - Telephonsex + 09 - Bluemel und Laesch + 12 - Gurkenrost + 11 - Groehlen un Suppe + 16 - Jingle - Arschkrampenzeit + 15 - Arschregen + 14 - Kurtin + 13 - Cassette im Arsch + + + 01 - Ich bin ein Ferkelwaemser + 05 - Der Iwan is nich ohne + 03 - Allegorie ueber Stalingrad + 02 - Frauen stehen auf Macht + 04 - Der Negerueberfall + 06 - Hier Bretter-Control + 07 - Goebel-Solo + 08 - Kurt is in Kur + 20 - Absage + 17 - Kurt im Schrank + 19 - Gertrud hat zu + 09 - Guergen erinnert sich + 10 - Der Tomatenkopp + 16 - Ab inne Truhe + 12 - Der Gammel + 15 - Gesucht wird Albert Brettermeier + 11 - Kurt Kong + 13 - Bei Gertrud + 18 - Kurt hat Geburtstag + 14 - Wir fahn nach Wakaluba + + + 01 - Stracciatella + 22 - Die letzte Folge + 21 - Ferkels Schwester + 20 - Hier spricht Ramke + 16 - Wuggi baut um + 14 - Zasta Krockett der verwarzte Rochen + 15 - Die Ex-Verlobte + 17 - Robinson Kurt + 11 - dammte Pekinesenkotze - Telephon + 13 - Wischmeyer ruft an + 19 - Reingeroemert + 18 - Der grosse Hatti Mueller + 02 - The Making of Arschkrampen + 03 - Der Vollidiot + 04 - Geheimagent Ferkel + 05 - Die Hackfresse + 06 - Die Kimmen der Adler + 07 - Schrappige Zicken + 08 - Wie gehzn Wuggi + 09 - Kurt will heiraten 1 - Krissa die Hundekopffegerin + 10 - Kurt will heiraten 2 - Der Hochzeitstag + 12 - Kurt will heiraten 3 - Die Vermaehlung + + + + + 01 - Madagasca + 02 - Madagasca Cygnus X Remix + + + 01 - Breathe + 02 - Monsoon + 03 - The Hummer + 04 - Madagascar + 05 - Requiem + 06 - Dud UK + 07 - Easter Island + 08 - Stealth + 09 - Panorama + 10 - Voice Of Earth + + + + + 01 - Movin Too Fast - Radio Mix + 02 - Movin Too Fast - Bump & Flex Vocal + 03 - Movin Too Fast - Pussy 2000 Vocal + + + Re-Rewind - The artful dodger + + + 01 - woman trouble (radio edit) + 02 - woman trouble (original version radio edit) + 03 - woman trouble (sunkids future discotech edit) + 04 - woman trouble (wideboy's pickapocket or two radio edit) + + + + + 01 - The Dice Man - Polygon Window + 02 - Musicology - Telefone 529 + 03 - Autechre - Crystel + 04 - I.A.O - The Clan + 05 - Speedy J - De-Orbit + 06 - Musicology - Preminition + 07 - UP! - Spiritual High + 08 - Autechre - The Egg + 09 - Speedy J - Fill 3 + 10 - Dr Alex Paterson - Loving You Live + + + 01 - Mark Franklin - Release to the System + 02 - The Higher Intelligence Agency - Selinite + 03 - Link - Arcadian + 04 - B12 - Scriptures + 05 - Autechre - Chatter + 06 - Speedy J - Symmetry + 07 - Beaumont Hannant - Utuba + 08 - Richard H. Kirk - Reality Net + 09 - Balil - Parasight + 10 - Seefeel - Spangle + + + + + 01 - Sick And Beautiful Radio Edit + 02 - Sick And Beautiful Quick Fix Mix + 03 - My Heaven + + + + + 01 - Track 1 + 02 - Track 2 + 03 - Track 3 + 04 - Track 4 + 05 - Track 5 + 06 - Track 6 + 07 - Track 7 + 08 - Track 8 + 09 - Track 9 + 10 - Track 10 + 11 - Track 11 + 12 - Track 12 + + + 01 - Track 1 + 02 - Track 2 + 03 - Track 3 + 04 - Track 4 + 05 - Track 5 + 06 - Track 6 + 07 - Track 7 + 08 - Track 8 + 09 - Track 9 + 10 - Track 10 + 11 - Track 11 + 12 - Track 12 + 13 - Track 13 + 14 - Track 14 + 15 - Track 15 + 16 - Track 16 + 17 - Track 17 + 18 - Track 18 + + + + + 01 - naxalite + 02 - buzzin' + 03 - black white + 04 - assassin + 05 - hypocrite + 06 - charge + 07 - free satpal ram + 08 - dub mentality + 09 - culture move + 10 - operation eagle lie + 11 - change + 12 - tribute to john stevens + + + + + 01 - The Fields Of Love Airplay Mix + 02 - The Fields Of Love Original Club Mix + 03 - The Fields Of Love York Remix + 04 - The Fields Of Love Instrumental + + + 01 - Aiplay mix + 02 - Clubb mix + 03 - Instrumental clubb mix + 04 - Ibiza influence mix + + + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + AudioTrack 12 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + AudioTrack 12 + AudioTrack 13 + AudioTrack 14 + AudioTrack 15 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + AudioTrack 12 + AudioTrack 13 + AudioTrack 14 + AudioTrack 15 + AudioTrack 16 + AudioTrack 17 + AudioTrack 18 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + AudioTrack 12 + AudioTrack 13 + AudioTrack 14 + AudioTrack 15 + AudioTrack 16 + AudioTrack 17 + AudioTrack 18 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + AudioTrack 09 + AudioTrack 10 + AudioTrack 11 + + + AudioTrack 01 + AudioTrack 02 + AudioTrack 03 + AudioTrack 04 + AudioTrack 05 + AudioTrack 06 + AudioTrack 07 + AudioTrack 08 + + + + + 01 - Peel Session + 02 - Peel Sesion + 03 - Peel Sesion + + + + + 01 - Radio mix + 02 - Extended mix + 03 - Club mix + 04 - Atmosphere mix + + + + + (01) Radio Version + (02) Extended Mix + (03) Extended Track Masters Remix + (04) Original Instrumental + + + + + 01 - Riding With The King + 02 - Ten Long Years + 03 - Key To The Highway + 04 - Marry You + 05 - Three O'Clock Blues + 06 - Help The Poor + 07 - I Wanna Be + 08 - Worried Life Blues + 09 - Days Of Old + 10 - When My Heart Beats Like A Hammer + 11 - Hold On I'm Coming + 12 - Come Rain Or Come Shine + + + + + 01 - Animal Army + 02 - Spaceman + 03 - Zodiac Sign + 04 - Paris Green + 05 - Confused Art + 06 - Caffeine + 07 - The Boy With The X-Ray Eyes + 08 - Don't Feed The Animals + 09 - Fire Guided Light + 10 - Is Your Soul For Sale + 11 - I'm Cracking Up I Need A Pill + + + + + (There's) Always Something There To Remind Me - Sandie Shaw + (They Long To Be) Close To You - Isaac Hayes + A House Is Not A Home - Luther Vandross + Anyone Who Had A Heart - Luther Vandross + Arthur's Theme (Best That You Can Do) - Christopher Cross + I Just Don't Know What To Do With Myself - Dusty Springfield + I Say A Little Prayer - Aretha Franklin + I'll Never Fall In Love Again - Bobby Gentry + Make It Easy On Yourself - The Walker Brothers + Reach Out For Me - Dionne Warwick + The Look Of Love - Dusty Springfield + This Guy's In Love With You - Burt Bacharach + Trains And Boats And Planes - Billy J Kramer & The Dakotas + Walk On By - Dionne Warwick + What The World Needs Now Is Love - Jackie De Shannon + Windows Of The World - The Pretenders + You'll Never Get To Heaven (If You Break My Heart) - The Stylistics + + + + + 01 - Lady In Black (Radio Edit) + 02 - Come Back And Stay + 03 - Gimme, Gimme Your Lovin' (Little Lady) + 04 - Hungry For Love (Radio Edit) + 05 - Don't Walk Away, Suzanne + 06 - L.O.V.E. In My Car + 07 - You're A Woman + 08 - A World Without You (Michelle) - Radio Edit + 09 - I Wanna Hear Your Heartbeat (Sunday Girl) + 10 - Pretty Young Girl + 11 - Kisses And Tears (My One And Only) + 12 - Love Really Hurts Without You + 13 - Lovers In The Sand + 14 - Kiss You All Over, Baby (New Version) + 15 - Hot Girls - Bad Boys + 16 - One Night In Heaven + 17 - Baby I Love You + 18 - Love Is No Crime + 19 - Inside Of Me + + + + + 01 - The Gray Race + 02 - Them And Us + 03 - A Walk + 04 - Parallel + 05 - Punk Rock Song + 06 - Empty Causes + 07 - Nobody Listens + 08 - Pitty The Dead + 09 - Spirit Shine + 10 - The Streets Of America + 11 - Ten In 2010 + 12 - Victory + 13 - Drunk Sincerity + 14 - Come Join Us + 15 - Cease + 16 - Punk Rock Song (In German) + + + + + 01 - Weckruf + 02 - I want your Sex + 03 - Papa + 04 - Bako + 05 - Hassi Janes + 06 - Operation + 07 - In der Waschanlach + 08 - Sound + 09 - Was glaubst du + 10 - German Music + 11 - Papa + 12 - Immer schlimmer + 13 - Lichterkette + 14 - Thomas und Heidi + 15 - Dixi-Band + 16 - Bubblegum-Time + 17 - Richie und Headbanger + 18 - Schwarz und Weiß + 19 - 6,50 Sicherheitsgebühr + 20 - Gesang + 21 - Wahltag + 22 - Mabadaja Mabadaga ja + 23 - Megabreit Computerdeppen + 24 - Papa + 25 - Neschperblues + 26 - Revolte in der Schule + 27 - Bongo Karl + 28 - Babu + 29 - Gereizt + 30 - Parfüm + 31 - Halleluja + 32 - Papa + 33 - Superdepp + 34 - Dialog + 35 - Belgische Äpfel + 36 - Dressur + + + 01 - viel zu harmlos + 02 - handy song + 04 - tamagotchi + 05 - wetzlar + 06 - der erste kontakt + 07 - versprochen + 08 - gianni + 09 - pappa vol.17 + 10 - ying und yang + 11 - styling + 12 - kasperle gegen drogen + 13 - der spanische apotheker + 14 - gute argumente + 15 - session + 16 - nachdenklichkeit + 17 - naturschauspiel + 18 - schmusebär + 19 - hobbies + 20 - bali mach uff! + 21 - was war das... + 22 - der kunde ist könig + 23 - jazz + 24 - pappa vol.18 + 25 - die hochzeit + 26 - der neue star + 27 - route 66 + 28 - ziegenkäsegeschäft + 29 - mutter und tochter + 30 - alle jahre wieder + 31 - besorgt + 32 - kreuzworträtsel + 33 - sensibilität + 34 - die wahrscheinlichkeit + 35 - f.e.v.a + 36 - private geheimnisse + 37 - back for good (leider live) + + + 01 - Zarte Metzger + 02 - Jesu S. + 03 - Seelachs + 04 - Aufgespürt + 05 - Fitneß-Tom + 06 - Der Brautstrauß + 07 - Der Rollo + 08 - Pappa Vol. 15 + 09 - Zivilcourage + 10 - Kamm tugesser + 11 - Tobias + 12 - Radlacka + 13 - Kevin Costner + 14 - Moderne Väter + 15 - 0190634 . . . + 16 - Dabrauchemergarnetdrübberredde + 17 - Stones-Revival-Revival + 18 - Weichei - Das Musical 1. Akt + 19 - Themenabend + 20 - Song für Witta Pohl + 21 - Herr Seiler + 22 - Duell bei Hanau 1420 (Orginal-Aufnahme) + 23 - Pappa Vol. 16 + 24 - Kippen holen + 25 - Wie bei Axel + 26 - Die Demo + 27 - Sin kaa breetsche da + 28 - Natur + 29 - Die Gaby und Ich + 30 - Glück gehabt + 31 - Weichei - Das Musical 3. Akt + 32 - Der Wettkönig + 33 - Waldfest + 34 - Tierfreunde + 35 - Der australische Freund + 36 - Du + + + + + 01-Intro + 02-Word Play + 03-Spontaneity + 04-Rugged ruff + 05-Interlude + 06-I confess + 07-UKNOWHOWWEDU + 08-Interlude + 09-Total wreck + 10-Innovation + 11-Da jawn + 12-Interlude + 13-True honey buns (dat freak sht) + 14-3 tha hard way + 15-Biggest part of me + 16-Path to rhythm + + + + + 1 - Spirit of the forest + 2 - The man who danced too slowly + 3 - Ngombi + 4 - Baka play baka + 5 - Nahwia + 6 - Eeya be + 7 - Canya Jam + 8 - Bounaka + + + diff --git a/contrib/retep/retep.jpx b/contrib/retep/retep.jpx index 47f5429624..640df10504 100644 --- a/contrib/retep/retep.jpx +++ b/contrib/retep/retep.jpx @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -34,6 +34,8 @@ + + diff --git a/contrib/retep/uk/org/retep/xml/core/XMLFactory.java b/contrib/retep/uk/org/retep/xml/core/XMLFactory.java new file mode 100644 index 0000000000..09565b0011 --- /dev/null +++ b/contrib/retep/uk/org/retep/xml/core/XMLFactory.java @@ -0,0 +1,334 @@ +package uk.org.retep.xml.core; + +import java.io.IOException; +import java.io.Writer; + +/** + * An XMLFactory is used to render XML Tags, accounting for nesting etc + */ +public class XMLFactory +{ + /** + * The lest level (ie, how many tags down the tree we are) + */ + protected int level; + + /** + * The size of our tag name cache + */ + protected int maxlevel; + + /** + * Our tag name cache + */ + protected String[] names; + + /** + * Used to keep track of how formatting is done + */ + protected boolean hascontent; + protected boolean[] contbuf; + + /** + * Scratch used by nest() + */ + private char[] nestbuf; + + /** + * The destination Writer + */ + protected Writer out; + + /** + * True if we are still within a tag + */ + protected boolean inTag; + + /** + * True if we have just created a tag so parameters are valid + */ + protected boolean inArg; + + /** + * Constructs an XMLFactory with no output Writer + */ + public XMLFactory() + { + this(10); + } + + /** + * Constructs an XMLFactory with no output Writer + * @param m Expected number of leaves in the XML Tree + */ + public XMLFactory(int m) + { + // Initialise the names cache + level=0; + maxlevel=m; + names=new String[maxlevel]; + contbuf=new boolean[maxlevel]; + + // This is used by nest() + nestbuf=new char[maxlevel]; + for(int i=0;i\n"); + } + + /** + * @return Writer the XML is being sent out on. + */ + public Writer getWriter() { + return out; + } + + /** + * This starts a tag + * @param name The tag name + */ + public void startTag(String name) + throws IOException + { + if(inTag && inArg) { + // Handles two startTag() calls in succession. + out.write(">"); + } + + nest(level); + out.write('<'); + out.write(name); + inTag=true; + inArg=true; + + // cache the current tag name + names[level]=name; + + // cache the current hascontent value & reset + contbuf[level]=hascontent; + hascontent=false; + + // increase the level and the cache's as necessary + level++; + if(level>maxlevel) { + maxlevel=maxlevel+10; + + String n[]=new String[maxlevel]; + System.arraycopy(names,0,n,0,level); + names=n; + + boolean b[] = new boolean[maxlevel]; + System.arraycopy(contbuf,0,b,0,level); + contbuf=b; + } + } + + /** + * This ends a tag + */ + public void endTag() + throws IOException, XMLFactoryException + { + if(level<1) + throw new XMLFactoryException("endTag called above root node"); + + level--; + + if(inArg) { + // We are still within the opening tag + out.write(" />"); + } else { + // We must have written some content or child tags + + // hascontent is true if addContent() was called. If it was never called + // to get here some child tags must have been written, so we call nest() + // so that the close tag is on it's own line, and everything looks neat + // and tidy. + if(!hascontent) + nest(level); + + out.write("'); + } + + inArg=false; // The parent tag must be told it now has content + inTag= level>0; // Are we still in a tag? + hascontent=contbuf[level]; // retrieve this level's hascontent value + } + + /** + * This completes the document releasing any open resources. + */ + public void close() + throws IOException, XMLFactoryException + { + while(level>0) + endTag(); + out.write('\n'); + out.flush(); + } + + /** + * This writes an attribute to the current tag. If the value is null, then no action is taken. + * @param name Name of the parameter + * @param value Value of the parameter + * @throw XMLFactoryException if out of context + */ + public void addAttribute(String name,Object value) + throws IOException, XMLFactoryException + { + if(value==null) + return; + + if(inArg) { + out.write(' '); + out.write(name); + out.write("=\""); + out.write(encode(value.toString())); + out.write("\""); + } else + throw new XMLFactoryException("Cannot add attribute outside of a tag"); + } + + /** + * This writes some content to the current tag. Once this has been called, + * you cannot add any more attributes to the current tag. Note, if c is null, + * no action is taken. + * @param c content to add. + */ + public void addContent(Object c) + throws IOException, XMLFactoryException + { + if(c==null) + return; + + if(inTag) { + if(inArg) { + // close the open tag + out.write('>'); + inArg=false; + } + out.write(c.toString()); + + // This is used by endTag() + hascontent=true; + } else + throw new XMLFactoryException("Cannot add content outside of a tag"); + } + + /** + * This adds a comment to the XML file. This is normally used at the start of + * any XML output. + * @parm c Comment to include + */ + public void addComment(Object c) + throws IOException, XMLFactoryException + { + if(inTag) + throw new XMLFactoryException("Cannot add comments within a tag"); + + out.write("\n"); + } + + /** + * Indents the output according to the level + * @param level The indent level to generate + */ + protected void nest(int level) + throws IOException + { + out.write('\n'); + while(level>nestbuf.length) { + out.write(nestbuf,0,nestbuf.length); + level-=nestbuf.length; + } + out.write(nestbuf,0,level); + } + + /** + * Encodes the string so that any XML tag chars are translated + */ + protected String encode(String s) { + return s; + } + +} \ No newline at end of file diff --git a/contrib/retep/uk/org/retep/xml/core/XMLFactoryException.java b/contrib/retep/uk/org/retep/xml/core/XMLFactoryException.java new file mode 100644 index 0000000000..5f9d497209 --- /dev/null +++ b/contrib/retep/uk/org/retep/xml/core/XMLFactoryException.java @@ -0,0 +1,19 @@ +package uk.org.retep.xml.core; + +/** + * Title: + * Description: + * Copyright: Copyright (c) 2001 + * Company: + * @author + * @version 1.0 + */ + +public class XMLFactoryException extends Exception +{ + + public XMLFactoryException(String s) + { + super(s); + } +} \ No newline at end of file diff --git a/contrib/retep/uk/org/retep/xml/jdbc/XMLDatabase.java b/contrib/retep/uk/org/retep/xml/jdbc/XMLDatabase.java new file mode 100644 index 0000000000..50aaaa1d90 --- /dev/null +++ b/contrib/retep/uk/org/retep/xml/jdbc/XMLDatabase.java @@ -0,0 +1,237 @@ +package uk.org.retep.xml.jdbc; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.SQLException; +import uk.org.retep.xml.core.XMLFactory; +import uk.org.retep.xml.core.XMLFactoryException; + +public class XMLDatabase +{ + /** + * The XMLFactory being used by this instance + */ + protected XMLFactory factory; + + /** + * Constructor. setXMLFactory() must be called if this method is used. + */ + public XMLDatabase() + { + } + + /** + * Constructor + * @param fac XMLFactory to use + */ + public XMLDatabase(XMLFactory fac) + { + this(); + setXMLFactory(fac); + } + + /** + * Sets the factory to use. + * @param factory XMLFactory to use + */ + public void setXMLFactory(XMLFactory factory) + { + this.factory=factory; + } + + /** + * @return the XMLFactory being used. + */ + public XMLFactory getXMLFactory() + { + return factory; + } + + /** + * Flushes all output to the Writer. + * @throw IOException from Writer + * @throw XMLFactoryException from XMLFactory + */ + public void close() + throws IOException, XMLFactoryException + { + factory.close(); + } + + /** + * writes the schema of a table. + * @param con Connection to database + * @param table Table name + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + */ + public void writeTable(Connection con,String table) + throws IOException,SQLException,XMLFactoryException + { + writeTable(con.getMetaData(),table); + } + + /** + * writes the schema of a table. + * @param db DatabaseMetaData for the database + * @param table Table name + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + */ + public void writeTable(DatabaseMetaData db,String table) + throws IOException,SQLException,XMLFactoryException + { + writeTable(db,null,null,table); + } + + /** + * writes the schema of a table. + * @param db DatabaseMetaData for the database + * @param table Table name + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + */ + public void writeTable(DatabaseMetaData db,String cat,String schem,String table) + throws IOException,SQLException,XMLFactoryException + { + ResultSet trs; + + factory.startTag("TABLE"); + factory.addAttribute("NAME",table); + // fetch the remarks for this table (if any) + trs = db.getTables(null,null,table,null); + if(trs!=null) { + if(trs.next()) { + String rem = trs.getString(5); + if(rem!=null) + factory.addContent(rem); + } + trs.close(); + } + + trs = db.getColumns(null,null,table,"%"); + if(trs!=null) { + while(trs.next()) { + factory.startTag("COLUMN"); + factory.addAttribute("NAME",trs.getString(4)); + factory.addAttribute("TYPE",trs.getString(6)); + factory.addAttribute("COLUMN_SIZE",trs.getString(7)); + factory.addAttribute("DECIMAL_DIGITS",trs.getString(9)); + factory.addAttribute("NUM_PREC_RADIX",trs.getString(10)); + factory.addAttribute("NULLABLE",trs.getString(11)); + factory.addAttribute("COLUMN_DEF",trs.getString(13)); + factory.addAttribute("CHAR_OCTET_LENGTH",trs.getString(16)); + factory.addAttribute("ORDINAL_POSITION",trs.getString(17)); + factory.addAttribute("IS_NULLABLE",trs.getString(18)); + factory.addAttribute("TABLE_CAT",trs.getString(1)); + factory.addAttribute("TABLE_SCHEM",trs.getString(2)); + String rem = trs.getString(12); + if(rem!=null) + factory.addContent(rem); + factory.endTag(); + } + trs.close(); + } + + factory.endTag(); + } + + /** + * This generates the schema of an entire database. + * @param db Connection to database + * @param table Table pattern + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + * @see java.sql.DatabaseMetaData.getTables() + */ + public void writeDatabase(Connection db,String table) + throws IOException, SQLException, XMLFactoryException + { + writeDatabase(db.getMetaData(),null,null,table); + } + + /** + * This generates the schema of an entire database. + * @param db DatabaseMetaData of database + * @param table Table pattern + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + * @see java.sql.DatabaseMetaData.getTables() + */ + public void writeDatabase(DatabaseMetaData db,String table) + throws IOException, SQLException, XMLFactoryException + { + writeDatabase(db,null,null,table); + } + + /** + * This generates the schema of an entire database. + * @param db DatabaseMetaData of database + * @param cat Catalog (may be null) + * @param schem Schema (may be null) + * @param table Table pattern + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + * @see java.sql.DatabaseMetaData.getTables() + */ + public void writeDatabase(Connection db) + throws IOException, SQLException, XMLFactoryException + { + writeDatabase(db.getMetaData(),null,null,"%"); + } + + /** + * This generates the schema of an entire database. + * @param db DatabaseMetaData of database + * @param cat Catalog (may be null) + * @param schem Schema (may be null) + * @param table Table pattern + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + * @see java.sql.DatabaseMetaData.getTables() + */ + public void writeDatabase(DatabaseMetaData db) + throws IOException, SQLException, XMLFactoryException + { + writeDatabase(db,null,null,"%"); + } + + /** + * This generates the schema of an entire database. + * @param db DatabaseMetaData of database + * @param cat Catalog (may be null) + * @param schem Schema (may be null) + * @param table Table pattern + * @throw IOException from Writer + * @throw SQLException from JDBC + * @throw XMLFactoryException from XMLFactory + * @see java.sql.DatabaseMetaData.getTables() + */ + public void writeDatabase(DatabaseMetaData db,String cat,String schem,String table) + throws IOException, SQLException, XMLFactoryException + { + ResultSet rs = db.getTables(cat,schem,table,null); + if(rs!=null) { + factory.startTag("DATABASE"); + factory.addAttribute("PRODUCT",db.getDatabaseProductName()); + factory.addAttribute("VERSION",db.getDatabaseProductVersion()); + + while(rs.next()) { + writeTable(db,rs.getString(1),rs.getString(2),rs.getString(3)); + } + + factory.endTag(); + rs.close(); + } + } + +} \ No newline at end of file diff --git a/contrib/retep/uk/org/retep/xml/jdbc/XMLResultSet.java b/contrib/retep/uk/org/retep/xml/jdbc/XMLResultSet.java new file mode 100644 index 0000000000..ee020df940 --- /dev/null +++ b/contrib/retep/uk/org/retep/xml/jdbc/XMLResultSet.java @@ -0,0 +1,505 @@ +package uk.org.retep.xml.jdbc; + +import java.io.IOException; +import java.io.Writer; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Properties; +import uk.org.retep.xml.core.XMLFactory; +import uk.org.retep.xml.core.XMLFactoryException; + +/** + * This class takes a java.sql.ResultSet object and generates an XML stream + * based on it's contents. + * + * $Id: XMLResultSet.java,v 1.1 2001/01/23 10:22:20 peter Exp $ + */ +public class XMLResultSet +{ + /** + * The current ResultSet to process + */ + protected ResultSet rs; + + /** + * The XMLFactory being used by this instance + */ + protected XMLFactory factory; + + /** + * The default properties used when none are supplied by the user + */ + protected static Properties defaults; + + /** + * The default property name for defining the tag name used to define a + * ResultSet + */ + public static String RESULTSET_NAME = "resultset.name"; + + /** + * The default tag name for a resultset + */ + public static String DEFAULT_RESULTSET_NAME = "RESULTSET"; + + /** + * The default property name for defining the tag name used to define a row + */ + public static String ROW_NAME = "row.name"; + + /** + * The default tag name for a row + */ + public static String DEFAULT_ROW_NAME = "RECORD"; + + /** + * The default tag name for a resultset + */ + public static String COLNAME = ".name"; + + /** + * The value of the property (named as its related column) used to define + * how the column is generated. This indicates that the columns data is + * enclosed within a pair of tags, ie: <id>1234</id> + */ + public static String CONTENT = "content"; + + /** + * The value of the property (named as its related column) used to define + * how the column is generated. This indicates that the columns data is + * an attribute in the columns tag. ie: + */ + public static String ATTRIBUTE = "attribute"; + + /** + * This is the default attribute name used when the ATTRIBUTE option is set. + */ + public static String DEFAULT_ATTRIBUTE = "VALUE"; + + /** + * The value of the property (named as its related column) used to define + * how the column is generated. This indicates that the columns data is + * an attribute in the parent's tag. ie: + */ + public static String ROW_ATTRIBUTE = "row"; + + /** + * This property name marks the begining row number within the ResultSet to + * start processing. + */ + public static String FIRST_ROW = "row.first"; + + /** + * This property name marks the last row number within the ResultSet to + * end processing. + */ + public static String LAST_ROW = "row.last"; + + /** + * Constructor + */ + public XMLResultSet() + { + factory = new XMLFactory(); + } + + /** + * Constructor + */ + public XMLResultSet(ResultSet rs) + { + this(); + setResultSet(rs); + } + + /** + * Sets the ResultSet to use + * @param rs ResultSet + */ + public void setResultSet(ResultSet rs) + { + this.rs=rs; + } + + /** + * @return the current ResultSet + * + */ + public ResultSet getResultSet() + { + return rs; + } + + /** + * Sets the Writer to send all output to + * @param out Writer + * @throws IOException from XMLFactory + * @see XMLFactory.setWriter + */ + public void setWriter(Writer out) + throws IOException + { + factory.setWriter(out); + } + + /** + * @return Writer output is going to + */ + public Writer getWriter() + { + return factory.getWriter(); + } + + /** + * @return XMLFactory being used + */ + public XMLFactory getXMLFactory() + { + return factory; + } + + /** + * Flushes all output to the Writer + * @throw IOException from Writer + * @throw XMLFactoryException from XMLFactory + */ + public void close() + throws IOException, XMLFactoryException + { + factory.close(); + } + + /** + * Returns the default properties used by translate() and buildDTD() + * @return Properties default property settings + */ + public static Properties getDefaultProperties() + { + if(defaults==null) { + defaults=new Properties(); + defaults.setProperty(RESULTSET_NAME,DEFAULT_RESULTSET_NAME); + defaults.setProperty(ROW_NAME,DEFAULT_ROW_NAME); + } + return defaults; + } + + /** + * This generates an XML version of a ResultSet sending it to the supplied + * Writer. + * @param rs ResultSet to convert + * @param p Properties for the conversion + * @param out Writer to send output to (replaces existing one) + * @throws XMLFactoryException from XMLFactory + * @throws IOException from Writer + * @throws SQLException from ResultSet + */ + public void translate(ResultSet rs,Properties p,Writer out) + throws XMLFactoryException, IOException, SQLException + { + factory.setWriter(out); + translate(rs,p); + } + + /** + * This generates an XML version of a ResultSet sending it to the supplied + * Writer using a default tag struct + * @param rs ResultSet to convert + * @param out Writer to send output to (replaces existing one) + * @throws XMLFactoryException from XMLFactory + * @throws IOException from Writer + * @throws SQLException from ResultSet + */ + public void translate(ResultSet rs,Writer out) + throws XMLFactoryException, IOException, SQLException + { + factory.setWriter(out); + translate(rs,(Properties)null); + } + + /** + * This generates an XML version of a ResultSet sending it to the current + * output stream using a default tag structure. + * @param rs ResultSet to convert + * @throws XMLFactoryException from XMLFactory + * @throws IOException from Writer + * @throws SQLException from ResultSet + */ + public void translate(ResultSet rs) + throws XMLFactoryException, IOException, SQLException + { + translate(rs,(Properties)null); + } + + /** + * This generates an XML version of a ResultSet sending it to the current + * output stream. + * @param rs ResultSet to convert + * @param p Properties for the conversion + * @throws XMLFactoryException from XMLFactory + * @throws IOException from Writer + * @throws SQLException from ResultSet + */ + public void translate(ResultSet rs,Properties p) + throws XMLFactoryException, IOException, SQLException + { + // if we don't pass any properties, create an empty one and cache it if + // further calls do the same + if(p==null) { + p=getDefaultProperties(); + } + + // Fetch some common values + String setName = p.getProperty(RESULTSET_NAME,DEFAULT_RESULTSET_NAME); + String rowName = p.getProperty(ROW_NAME,DEFAULT_ROW_NAME); + + ResultSetMetaData rsmd = rs.getMetaData(); + int numcols = rsmd.getColumnCount(); + + String colname[] = new String[numcols]; // field name cache + int coltype[] = new int[numcols]; // true to use attribute false content + String colattr[] = new String[numcols]; // Attribute name + + // These deal with when an attribute is to go into the row's tag parameters + int parentFields[] = getRowAttributes(numcols,colname,colattr,coltype,rsmd,p); // used to cache the id's + int numParents= parentFields==null ? 0 : parentFields.length; // number of parent fields + boolean haveParent= numParents>0; // true only if we need to us these + + // This allows some limiting of the output result + int firstRow = Integer.parseInt(p.getProperty(FIRST_ROW,"0")); + int lastRow = Integer.parseInt(p.getProperty(LAST_ROW,"0")); + int curRow=0; + + // Start the result set's tag + factory.startTag(setName); + + while(rs.next()) { + if(firstRow<=curRow && (lastRow==0 || curRowToDo:
    + *
  1. Add ability to have NULLABLE columns appear as optional (ie instead of + * x, have x? (DTD for Optional). Can't use + or * as that indicates more than + * 1 instance). + *
+ * + * @param rs ResultSet + * @param p Properties defining tag types (as translate) + * @param out Writer to send output to + */ + public void buildDTD(ResultSet rs,Properties p,Writer out) + throws IOException, SQLException + { + // if we don't pass any properties, create an empty one and cache it if + // further calls do the same + if(p==null) { + p=getDefaultProperties(); + } + + // Fetch some common values + String setName = p.getProperty(RESULTSET_NAME,DEFAULT_RESULTSET_NAME); + String rowName = p.getProperty(ROW_NAME,DEFAULT_ROW_NAME); + + ResultSetMetaData rsmd = rs.getMetaData(); + int numcols = rsmd.getColumnCount(); + + String colname[] = new String[numcols]; // field name cache + int coltype[] = new int[numcols]; // true to use attribute false content + String colattr[] = new String[numcols]; // Attribute name + + // These deal with when an attribute is to go into the row's tag parameters + int parentFields[] = getRowAttributes(numcols,colname,colattr,coltype,rsmd,p); // used to cache the id's + int numParents= parentFields==null ? 0 : parentFields.length; // number of parent fields + boolean haveParent= numParents>0; // true only if we need to us these + + // Now the dtd defining the ResultSet + out.write("\n"); + + // Now the dtd defining each row + out.write("\n"); + + // Now handle any ROW_ATTRIBUTE's + if(haveParent) { + out.write("\n"); + } + + // Now add any CONTENT & ATTRIBUTE fields + for(int i=0;i\n"); + + // ATTRIBUTE + if(coltype[i]==1) { + out.write("\n"); + } + } + } + } + + /** + * Private method used by the core translate and buildDTD methods. + * @param numcols Number of columns in ResultSet + * @param colname Array of column names + * @param colattr Array of column attribute names + * @param coltype Array of column types + * @param rsmd ResultSetMetaData for ResultSet + * @param p Properties being used + * @return array containing field numbers which should appear as attributes + * within the rows tag. + * @throws SQLException from JDBC + */ + private int[] getRowAttributes(int numcols, + String colname[],String colattr[], + int coltype[], + ResultSetMetaData rsmd,Properties p) + throws SQLException + { + int pf[] = null; + int nf = 0; + + // Now we put a columns value as an attribute if the property + // fieldname=attribute (ie myname=attribute) + // and if the fieldname.name property exists, use it as the attribute name + for(int i=0;i0) { + int r[] = new int[nf]; + System.arraycopy(pf,0,r,0,nf); + return r; + } + + // Return null if no tags are to appear as attributes to the row's tag + return null; + } + +} \ No newline at end of file diff --git a/contrib/retep/uk/org/retep/xml/parser/TagHandler.java b/contrib/retep/uk/org/retep/xml/parser/TagHandler.java index add0a61274..78deb0ec0a 100644 --- a/contrib/retep/uk/org/retep/xml/parser/TagHandler.java +++ b/contrib/retep/uk/org/retep/xml/parser/TagHandler.java @@ -4,7 +4,6 @@ import java.io.CharArrayWriter; import java.io.IOException; import java.util.List; import java.util.Iterator; -import java.util.Map; import java.util.HashSet; import java.util.ArrayList; import java.util.HashMap; diff --git a/contrib/retep/uk/org/retep/xml/test/XMLExport.java b/contrib/retep/uk/org/retep/xml/test/XMLExport.java new file mode 100644 index 0000000000..116f250906 --- /dev/null +++ b/contrib/retep/uk/org/retep/xml/test/XMLExport.java @@ -0,0 +1,191 @@ +package uk.org.retep.xml.test; + +import java.lang.Exception; +import java.io.*; +import java.sql.*; +import java.util.Properties; +import uk.org.retep.xml.core.XMLFactoryException; +import uk.org.retep.xml.jdbc.XMLDatabase; +import uk.org.retep.xml.jdbc.XMLResultSet; + +/** + * This "test" class is a fully functional tool in its own right. It utilises + * the xml classes to query and export to XML, or to dump database structures + * into XML. + */ + +public class XMLExport +{ + /** + * The current Database Connection + */ + protected Connection conn; + protected Statement stat; + protected String drvr,url,table; + + protected XMLResultSet xrs; + protected XMLDatabase xdb; + protected Properties prop; + protected boolean outXML; + protected boolean outDTD; + protected boolean outTAB; + protected int maxRows=0; + + public XMLExport(String[] args) + throws IOException,SQLException,XMLFactoryException,ClassNotFoundException + { + xrs = new XMLResultSet(); + xrs.setWriter(new OutputStreamWriter(System.out)); + //Properties p = new Properties(xrs.getDefaultProperties()); + prop = (Properties) xrs.getDefaultProperties().clone(); + + xdb = new XMLDatabase(xrs.getXMLFactory()); + + for(int i=0;i2) { + String table=arg.substring(2); + System.out.println("Generating XML Schema of table "+table); + xdb.writeTable(conn,table); + xdb.close(); + } else { + System.out.println("Generating XML Schema of database"); + xdb.writeDatabase(conn); + xdb.close(); + } + } else if(arg.equals("-V")) { + // Select table output + outXML=outDTD=false; + } else if(arg.equals("-X")) { + // Select XML output + outXML=true; + outDTD=outTAB=false; + } else if(arg.equals("-Y")) { + // Select DTD output + outXML=outTAB=false; + outDTD=true; + } else if(arg.startsWith("-")) { + System.err.println("Unknown argument: "+arg); + System.exit(1); + } else { + // Ok, anything not starting with "-" are queries + if(stat==null) + stat=conn.createStatement(); + + System.out.println("Executing "+arg); + ResultSet rs = stat.executeQuery(arg); + if(rs!=null) { + if(outXML) { + xrs.translate(rs,prop); + xrs.close(); + } else if(outDTD) { + // Output the DTD + xrs.buildDTD(rs,prop); + xrs.close(); + } else { + // Normal resultset output + int rc=0; + + ResultSetMetaData rsmd = rs.getMetaData(); + int nc = rsmd.getColumnCount(); + boolean us=false; + for(int c=0;c