A SQLite DB will be faster when it entails large amounts of data - it will find what you want much faster.
For small amounts of data a KML file will have a much smaller overhead than the DB, but isnt very useful for dynamic data.
If the data needs to be updated or added to, you would have to store the file in a writable location if you want to continue using the xml file.
For around 1000+ entries I would be looking to use a SQLite DB - you could do one of two things here - precompile a DB for your application, then place the DB file into the asset folder, then on first run check if the DB file exists - if not move the file from the asset forlder to the DB folder (see note below).
Alternatively you could store the entries in a KML file in the asset folder, then on first run use a parser to write each entry from the kml file into a DB.
Getting files from the KML or a CSV file would take a while to process depending on the number of entries. I have an app which will get data from a csv file on the SDCard, and load it into a DB, as a test around 7,000 entries took about 35 seconds on a desire.
Also I think the raw and asset folder has a size limit of around 1mb.
Take a look at this link, it shows a very useful way of moving a large DB on first run of the application:
Database Populating Solution