xml.js
Summary
Shared utilities for manipulating XML.
Version: 0.8
$Id: overview-summary-xml.js.html,v 1.12 2006/08/23 23:30:17 jameso Exp $
Author: James A. Overton
mozile.provide("mozile.xml.*");
mozile.xml = new Object();
mozile.xml.prototype = new mozile.Module;
mozile.xml.ns = {
AdobeExtensions : "http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/",
cml : "http://www.xml-cml.org",
dc : "http://purl.org/dc/elements/1.1/",
dcq : "http://purl.org/dc/qualifiers/1.0",
dt : "http://www.w3.org/2001/XMLSchema-datatypes",
fo : "http://www.w3.org/1999/XSL/Format",
mes : "http://mozile.mozdev.org/ns/mes/1.0",
mml : "http://www.w3.org/1998/Math/MathML",
rdf : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
rdfs : "http://www.w3.org/2000/01/rdf-schema#",
rng : "http://relaxng.org/ns/structure/1.0",
saxon : "http://icl.com/saxon",
"soap-env" : "http://schemas.xmlsoap.org/soap/envelope/",
smil : "http://www.w3.org/2001/SMIL20/",
svg : "http://www.w3.org/2000/svg",
wsdl : "http://schemas.xmlsoap.org/wsdl/",
xalan : "http://xml.apache.org/xslt",
xbl : "http://www.mozilla.org/xbl",
xforms : "http://www.w3.org/2002/01/xforms",
xhtml : "http://www.w3.org/1999/xhtml",
xi : "http://www.w3.org/2001/XInclude",
xlink : "http://www.w3.org/1999/xlink",
xsd : "http://www.w3.org/2001/XMLSchema",
xsi : "http://www.w3.org/2001/XMLSchema-instance",
xsl : "http://www.w3.org/1999/XSL/Transform",
xslt : "http://www.w3.org/1999/XSL/Transform",
xul : "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
};
mozile.xml.lookupPrefix = function(namespaceURI) {
for(var prefix in mozile.xml.ns) {
if(mozile.xml.ns[prefix] == namespaceURI) return prefix;
}
return null;
}
mozile.xml.load = function(filepath) {
if(typeof(filepath) != "string") return null;
var uri;
if(filepath.indexOf(":") > 0) uri = filepath;
else {
var loc = location.toString();
loc = loc.substring(0, loc.lastIndexOf("?"));
loc = loc.substring(0, loc.lastIndexOf("/") + 1);
uri = loc + filepath;
}
if(mozile.browser.isSafari) uri = uri.replace("file://", "file:///");
try {
var XHR = new XMLHttpRequest();
XHR.overrideMimeType("text/xml");
XHR.open("GET", uri, false);
try {
XHR.send(null);
return XHR.responseXML;
} catch(e) {
mozile.debug.inform("mozile.xml.load", "Error loading document: "+ e);
return null;
}
}
catch(e) {
try {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
try {
var loaded = xmlDoc.load(uri);
if(loaded) return xmlDoc;
else {
mozile.debug.inform("mozile.xml.load", "Failed to load document.");
}
} catch(e) {
mozile.debug.inform("mozile.xml.load", "Error loading document: "+ mozile.dumpError(e));
}
}
catch(e) {
mozile.debug.inform("mozile.xml.load", "No XML loading technique avaliable in this browser.");
}
}
return null;
}
mozile.xml.parse = function(string) {
if(window.ActiveXObject) {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(string);
return xmlDoc;
}
else if(window.DOMParser) {
var parser = new DOMParser();
return parser.parseFromString(string, "text/xml");
}
else {
mozile.debug.inform("mozile.xml.serialize", "No XML parsing technique avaliable in this browser.");
return null;
}
}
mozile.xml.parseElement = function(string) {
var doc = mozile.xml.parse(string);
if(doc && doc.documentElement) return doc.documentElement;
else return null;
}
mozile.xml.serialize = function(node) {
if(!node) return null;
if(node.xml) return node.xml;
else if(window.XMLSerializer) {
var serializer = new XMLSerializer()
return serializer.serializeToString(node);
}
else if(node.outerHTML) return node.outerHTML;
else if(node.innerHTML) {
var container = document.createElement("container");
container.appendChild(node.cloneNode(true));
return container.innerHTML;
}
else {
mozile.debug.inform("mozile.xml.serialize", "No XML serialization technique avaliable in this browser.");
return null;
}
}
Documentation generated by
JSDoc on Wed Aug 23 18:45:51 2006