Package client.net.sf.saxon.ce.dom

Source Code of client.net.sf.saxon.ce.dom.XMLDOM

package client.net.sf.saxon.ce.dom;

import client.net.sf.saxon.ce.trans.XPathException;

import com.google.gwt.core.client.JavaScriptException;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Node;

public class XMLDOM {
        
    /**
     * Create a XML XML DOM Document object
     * @return New XML DOM Document
     */

    public static native Document createDocument(String baseURI) /*-{
      var doc;
      if (document.implementation && document.implementation.createDocument) {
        doc = document.implementation.createDocument("", "", null);
      } else {
        try {
          doc = new ActiveXObject("MSXML2.DOMDocument");         
        } catch(e) {
          doc = new ActiveXObject("Microsoft.XMLDOM");
        }
          doc.preserveWhiteSpace = true;
          try {
           if (xmlDoc.setProperty) {
          xmlDoc.setProperty("ProhibitDTD", false);
         }
        } catch (e) { }
      }
      if (baseURI != null && doc.URL) {
          doc.URL = baseURI;
       }
       return doc;
    }-*/;
   
    public static String makeHTTPRequest(String url) throws XPathException {
      try {
        return makeNativeHTTPRequest(url);
      } catch(Exception e) {
        throw new XPathException("error in Saxon.makeHTTPRequest: " + e.getMessage());
      }
    }
   
    public static JavaScriptObject parseXML(String text) throws XPathException {
      try {
        return parseNativeXML(text);
      } catch (JavaScriptException je){
        throw new XPathException("JS error in Saxon.parseXML: " + je.getMessage());       
      } catch(Exception e) {
        throw new XPathException("error in Saxon.parseXML: " + e.getMessage());
      }
    }
   
    public static String serializeXML(Node node) throws XPathException {
      try {
        return serializeNativeXML(node);
      } catch(Exception e) {
        throw new XPathException("error in Saxon.serializeXML: " + e.getMessage());
      }
    }
   
      public static native String makeNativeHTTPRequest(String url)/*-{
      if (typeof XMLHttpRequest == "undefined") {
          XMLHttpRequest = function () {
              return new ActiveXObject("Msxml2.XMLHTTP.6.0");
          };
      }
 
      var req = new XMLHttpRequest();
 
      // false -> make a synchronous request
      req.open("GET", url, false);
      // for now, prevent caching
      // pf note: this caused HTTP error with IIS7, so is commented out:
      //req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2005 00:00:00 GMT");
      // the following IE workaround is lossy - therefore IE restriction
      // for non-ascii (unless utf-8 encoded) remains:
      //req.setRequestHeader("Accept-Charset", "utf-8");
      req.send(null);
      var status = req.status;
      if (status == 200 || status == 0) {
          return req.responseText;
      } else {
          throw "HTTP request for " + url + " failed with status code: " + status;
      }
      }-*/;
         
    public static native JavaScriptObject parseNativeXML(String text) /*-{
        var xmlDoc;
        if (window.DOMParser) // Most browsers
      {
         parser=new DOMParser();
         xmlDoc=parser.parseFromString(text,"text/xml");
      }
      else // Internet Explorer
      {
         xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
         xmlDoc.async=false;
         xmlDoc.preserveWhiteSpace = true;
         try {
            if (xmlDoc.setProperty) {
            xmlDoc.setProperty("ProhibitDTD", false);
          }
         } catch (e) {}
        
            xmlDoc.loadXML(text);
      }
      return xmlDoc;
      }-*/;
   
    public static native String serializeNativeXML(Node node) /*-{
         if (typeof XMLSerializer != "undefined")
            return (new XMLSerializer()).serializeToString(node) ;
         else return node.xml;
      }-*/;
 
}

// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.

TOP

Related Classes of client.net.sf.saxon.ce.dom.XMLDOM

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.