1
function NSResolver(prefix) {
2
if(prefix == 'xhtml') {
3
return 'http://www.w3.org/1999/xhtml';
9
function DSXMLParser(req, handler, attr) {
11
this.data_handler = handler;
12
this.data_attr = attr;
14
this.ready = function() {
16
if (this.req.readyState == 4) {
17
if (this.req.status == 200) {
18
this.data_handler(this.req.responseXML, this.data_attr);
20
adeiReportError(translate("XML: HTTP Error %u", this.req.status));
24
adeiReportException(e, translate("XML: error catched while loading XML"));
31
function loadXML(url, handler, attr) {
34
if (window.XMLHttpRequest) {
35
req = new XMLHttpRequest();
36
} else if (window.ActiveXObject) {
38
req = new ActiveXObject("Msxml2.XMLHTTP");
40
req = new ActiveXObject("Microsoft.XMLHTTP");
44
var parser = DSXMLParser(req, handler, attr);
47
if (window.XMLHttpRequest) {
49
req.data_handler = handler;
50
req.onreadystatechange = function() {
52
if (req.readyState == 4) {
53
// Removing circullar dependencies
54
req.onreadystatechange = null;
56
if (req.status == 200) {
57
req.data_handler(req.responseXML, req.data_attr);
59
adeiReportError(translate("loadXML(%s) is failed: HTTP Error %u", url, req.status));
64
// for (i in e) alert(i + '=' + e[i]);
65
adeiReportException(e, translate('loadXML(%s) handler is failed', url));
68
} else if (window.ActiveXObject) {
69
req.onreadystatechange = parser.ready;
72
req.open("GET", url, true);
75
adeiReportException(e, translate('loadXML(%s) request is failed', url));
80
function DSXMLQueue() {
81
this.queue = new Array();
86
this.ProcessNext = dsXMLQueueProcessNext;
89
function DSXMLQueueElement(url, handler, attr) {
91
this.handler = handler;
95
function dsXMLQueueProcessNext() {
96
if (this.queue.length > 0) {
97
var nextelem = this.queue.shift();
100
loadXML(nextelem.url, dsXMLQueueHandler, nextelem);
103
if (this.completed) {
115
var ds_xml_queue = new DSXMLQueue;
117
function dsXMLQueueHandler(xmldoc, element) {
118
element.handler(xmldoc, element.attr);
120
if (ds_xml_queue.inside) {
121
ds_xml_queue.completed = 1;
123
while (ds_xml_queue.ProcessNext());
128
function queueXML(url, handler, attr) {
129
var element = new DSXMLQueueElement(url, handler, attr);
131
if (ds_xml_queue.busy) {
132
ds_xml_queue.queue.push(element);
134
ds_xml_queue.busy = 1;
135
loadXML(url, dsXMLQueueHandler, element);
140
function xsltHandler(xsltdoc, xattr) {
141
xattr.xslt_processor.importStylesheet(xsltdoc);
142
xattr.handler(xattr.xslt_processor, xattr.attr);
145
function loadXSLT(url, handler, attr) {
146
var xattr = new Object();
149
xattr.handler = handler;
150
xattr.xslt_processor = new XSLTProcessor();
152
loadXML(url, xsltHandler, xattr);