shared_ptr in global namespace
I think it is bad form to introduce boost::shared_ptr as 'shared_ptr' into the global namespace. It makes me wonder what else might be in there.
The whole project should probably go into a namespace. If not, then any name not beginning with 'Xdmf' should.
Since it is defined in XdmfSharedPtr.hpp, why not alias it to XdmfSharedPtr?
Similarly for ArrayVariant -> XdmfArrayVariant.