As a simple XML query language but with enough expressive power, XPath has become very popular. To expedite evaluation of XPath queries, we consider the problem of caching results of popular XPath queries to answer queries. Existing semantic caching systems can answer queries that have been already cached, but can’t combine cached results of multiple XPath queries to answer new queries. In this paper, we describe the architecture of a new semantic caching system, and mainly introduce the novel framework of this system. We show that our framework can represent cached XML data by a set of XPath queries, and the cached data can be used to answer new queries that may not be cached. We also consider incrementally maintaining the cached XML data in our system. The results suggest that our caching system is practical and has better answerability.