for the basics of this please see my earlier blog post.
There are a couple of gotchas though mounting XR 6.0.x from ODL:
a) you need ODL Beryllium-SR2 or later as there was a bug in earlier versions where ODL would fail to handle the deviation that XR 6.0 and later announces against ietf-netconf-monitoring (because it's a basic NETCONF capability rather than a generic YANG model).
b) XR will initially fail to mount until you fix a YANG model issue in the cache. There's a model (called Cisco-IOS-XR-wd-cfg.yang in XRv and ASR9K, and Cisco-IOS-XR-watchd-cfg.yang in XR9000v - and presumably other "Calvados"-based platforms) which imports Cisco-IOS-XR-config-mda-cfg.yang twice with 2 different prefixes. That's not an error vs RFC6020 so I've raised a bug - 6249 - against ODL Yangtools to get it fixed. At any rate the workaround for now is:
(1) attempt to mount the device using RESTCONF. This will fail.
(2) go into the “cache/schema” directory under distribution-karaf-0.4.2-beryllium-SR2
(3) edit the file “Cisco-IOS-XR-watchd-cfg@2015-11-09.yang” or "Cisco-IOS-XR-wd-cfg@2015-11-09.yang"
(4) delete the line " import Cisco-IOS-XR-config-mda-cfg { prefix "a1"; }” (be sure not to delete the line with a prefix of "node")
(5) unmount the device using RESTCONF.
(6) re-mount the device using RESTCONF. This time it should succeed.