il primo problema è che non puoi usare il document.write per una questione di Scope, quindi devi impostare un elemento contenitore che verrà aggiornato periodicamente.

codice:
<div id="UserData">
   
</div>
Poi imposti la funzione in modo che sia eseguibile con una chiamata singola:

codice:
var UpdateUserData = function(){
   var xmlDoc=loadXMLDoc("../system/dataviews/Sample.xml");

   var x=xmlDoc.getElementsByTagName('value');

   var y=xmlDoc.getElementsByTagName('tag');
   var i, str = "";
   for (i=0;i<x.length;i++){
      str += y[i].getAttribute('name');
      str += " ";
      str += x[i].childNodes[0].nodeValue;
      str += "
";
   }
   document.getElementById('UserData').innerHTML = str;
}
Infine, dopo il caricamento della pagina puoi usare l'istruzione setInterval per impostare l'aggiornamento:

codice:
var secondBetweenUpdates = 5;
window.onload = function(){
   var timer = setInterval(UpdateUserData, secondBetweenUpdates * 1000);
}