PiDuce: a process calculus with native XML datatypes