The ETag part is straightforward, but the horrible error handling in Xerces suggests an incredibly silly workaround to communicate a "Document Unchanged" HTTP status back to the reloading code.
The best option appears to be (yes, really) to short-circuit the stream back to the parser and override it by returning a fixed XML document such as <Status>304</Status> to communicate the HTTP status and detect it as indicating cache reuse.
The base class loader can check for a dedicated XML element in the returned document and turn the status into a dedicated exception type rather than handing the document back to a derived class' loader.
Scott Cantor December 29, 2009 at 12:09 AM
Metadata layer relies on base class and will inherit caching enhancement.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
The base class that handles management of remotely supplied XML files should handle ETag caching internally.