The serialization system doesn’t readily extend into saving whole resources automatically. Normally attributes only refer to a resource, which the VAR_RESOURCEREF is for (think of model / material attributes in StaticModel)
However, there’s one workaround which is possibly a bit ugly. You can save a binary buffer inside a Variant. Look at how the NavigationMesh component stores its data.
By using the ACCESSOR_ATTRIBUTE macro you can define get and set functions for the attribute. In several cases those get/set functions are “fictional” -> they’re just used for the attribute serialization, not as actual user-callable getters & setters. For example in NavigationMesh, the functions GetNavigationDataAttr() & SetNavigationDataAttr() serialize the navigation mesh into a binary buffer variant. Or a slightly more normal example, GetModelAttr() & SetModelAttr() in StaticModel, which form a ResourceRef variant from the current model.
Another way is to just load and save your XMLFile into a separate, ordinary file. I’d actually recommend that. If you need that to happen automatically as a part of Serializable load / save, those functions are virtual so you can override them.