Я предполагаю, что вы хотите кэшировать содержимое файла XML, а не ссылку на файл.Сначала вы проанализируете XML, а затем можете пойти несколькими путями.Один из способов сделать это - отобразить XML на (объектное дерево) Java-класса, а затем кэшировать Java-класс.Для этого вы можете использовать Castor или некоторую библиотеку JAXB .Если в вашем XML есть набор повторяющихся узлов, вы можете рассмотреть базу данных в памяти для запроса, например, HyperSQL .HyperSQL позволит вам использовать простой SQL для поиска.