Ad-hoc queries on entities

I am trying to create a web service in OS that basically returns all of my entity data to the caller. In order to do that dynamically, are there ways for me to:

1)  get a list of entities in my eSpace?
2) iterate over that list and dynamically create  queries that select all of the records for each entity in the list? 

At this point, i can get the data back if i manually  configure the web service to query each table in my eSpace, by creating a separate query for each one.

Just to clarify why i even want to do this, we have an offline reporting system that needs csv files as input. So i have a Java program that calls the web service and creates a file for each of the entities returned. I use CSV extension to format the data before sending. It works fine, but i want a solution that doesnt have to be different for each espace where it is used.

The Record Introspect component ( will probably have the logic you need to do this.
Thanks for the pointer. I will check it out tomorrow.