function xslBehavior(){
   this.urlWsTransform = "";

   this.xslTransform = function (xmlfull, xsldoc, xmldoc){
      XMLRs2 = xmlfull.cloneNode(true);
      if (xmldoc.XMLDocument!=null){
         XMLRs2.documentElement.transformNodeToObject(xsldoc.documentElement, xmldoc.XMLDocument);
      }
      else{
         XMLRs2.documentElement.transformNodeToObject(xsldoc.documentElement, xmldoc);
      }
      XMLRs2 = null;
   }

   this.wsXslTransform = function(nombreTrsf, arrParametros, mostrar){
      oReq = new hReqBehavior();
      oXml = new xmlBehavior();
      xmlDoc = oXml.newXmlDoc();

      nodPars = oXml.newElement(xmlDoc, xmlDoc, "parametros")
      for (cont = 0; cont < arrParametros.length; cont++){
         if (arrParametros[cont] == null){
            arrParametros[cont] = "";
         }
         nodPar = oXml.newElement(xmlDoc, nodPars, "parametro")
         oXml.addCDATA(xmlDoc, nodPar, arrParametros[cont]);
      }

      oReq.sendXml(this.urlWsTransform, xmlDoc.xml, "trsf=" + nombreTrsf, "POST", false);
      if (mostrar == true){
        alert(nombreTrsf);
        alert(oReq.text);
      }
//alert(oReq.text)
      return(oReq.xml.documentElement.xml);

      xmlDoc = null;
      oReq = null;
      oXml = null;
   }
   
   this.setNodeAttribute = function(xslDoc, strNode, strAttribute, strValue){
      xslNode = xslDoc.XMLDocument.documentElement.selectSingleNode(strNode);
      xslNode.removeAttribute(strAttribute); 
      xslNode.setAttribute(strAttribute, strValue);      
   }
}
