I know that Cache files can be stored as XML and UDL based files. Is there any way to determine in which format the file(class, routine, dfi and so on) is stored? Because you can easily name your XML based file as class.cls and it will be perfectly valid.
I know that one way to check whether this file is in XML format is just try to parse it like
Set st = ##class(%XML.TextReader).ParseStream(contentStream)
if $$$ISERR(st) return $$$NO
else return $$$YES
However, is there a better way?