Add cache on the function to get the dtd content