Abl.Xml.XAttribute=function(a,b){this.name=a;this.value=(b)?b.toString():"";this.toString=function(){return this.name+'="'+Abl.Xml.encode(this.value)+'"';};};Abl.Xml.CData=function(a){this.value=(a)?a.toString():"";this.toString=function(){return"<![CDATA["+this.value+"]]>";};};Abl.Xml.XElement=function(){var a=arguments[0],b;this.value="";this.attributes=[];this.descendants=[];this.getName=function(){return a;};this.hasContent=function(){return((this.value)||(this.descendants.length>0));};this.add=function(d){var c;if(!d){return;}if(d.constructor===Abl.Xml.XAttribute){this.attributes.push(d);}else{if(d.constructor===Abl.Xml.XElement){this.descendants.push(d);}else{if(d.constructor===Abl.Xml.CData){this.descendants.push(d);}else{if(d.constructor===Array){for(c=0;c<d.length;c++){this.add(d[c]);}}else{if(typeof d==="string"){this.value=d;}else{if(typeof d==="number"){this.value=d.toString();}else{throw"Abl.Xml.XElement.add() - invalid object type!";}}}}}}};this.toString=function(){var d="<"+a,e=0,c;for(e=0;e<this.attributes.length;e++){c=this.attributes[e];if((c.value)&&(c.value.length>0)){d+=" "+c.toString();}}if(this.hasContent()){d+=">";if(this.value){d+=Abl.Xml.encode(this.value);}if(this.descendants.length>0){for(e=0;e<this.descendants.length;e++){d+=this.descendants[e].toString();}}d+="</"+a+">";}else{d+=" />";}return d;};for(b=1;b<arguments.length;b++){this.add(arguments[b]);}};
