1. A method for iterative spatial searching comprising: providing, at a host server, a user interface for spatial searching; receiving a first user input, at the host server via the user interface, defining a first search specification; generating an XML string encapsulating the search specification and communicating the XML string to a database server via an interface service running on the host server; receiving the XML string at the database server; passing the XML string as a parameter to a stored procedure to generate a temporary table for each term in the search specification, wherein the stored procedure parses the XML string to perform the search; performing a search of the database server by comparing each temporary table with a pre-existing table stored in the database server to identify any datasets satisfying the input query, the pre-existing table comprising a plurality of spatial data classified according to one or more vocabularies which are system-defined or user-defined; returning results comprising the identified datasets and attributes associated with each identified dataset receiving, at the host server, the results generated by the database server in response to the XML string; displaying the results to the user in the user interface; receiving a second user input, at the host server via the user interface, selecting one or more attributes associated with an identified dataset, the second user input iteratively refining the first search specification based on the first search result; generating a second XML string encapsulating a second search specification, the second search specification comprising the selected one or more attributes, and communicating the second XML string to the database server via the interface service receiving, at the database server, a second input query comprising the second XML string; parsing the second XML string using a stored procedure to generate one or more temporary tables; performing a search of the database server by comparing each temporary table with a pre-existing table stored in the database server to identify any datasets satisfying the second input query; and returning a second set of results comprising the identified datasets and attributes associated with each identified dataset wherein the second set of results are not a subset of the first search.