summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Core.js
blob: baf3bc1c1d1d1533c48b6efec81007e403c66b83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/* ************************************************************************

   qooxdoo - the new era of web development

   http://qooxdoo.org

   Copyright:
     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org

   License:
     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html

   Authors:
     * Sebastian Werner (wpbasti)
     * Andreas Ecker (ecker)

************************************************************************ */

/* ************************************************************************


************************************************************************ */

qx.OO.defineClass("qx.xml.Core");

// Create a XML dom node
qx.xml.Core.createXmlDom = function()
{
  // The Mozilla style
  if (document.implementation && document.implementation.createDocument) {
    return document.implementation.createDocument("", "", null);
  }

  // The Microsoft style
  if (window.ActiveXObject) {
    /*
     According to information on the Microsoft XML Team's WebLog
     it is recommended to check for availability of MSXML versions 6.0 and 3.0.
     Other versions are included for completeness, 5.0 is excluded as it is
     "off-by-default" in IE7 (which could trigger a goldbar).

     http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp

     See similar code in qx.lang.XmlEmu, qx.io.remote.XmlHttpTransport
    */
    var vServers =
    [
      "MSXML2.DOMDocument.6.0",
      "MSXML2.DOMDocument.3.0",
      "MSXML2.DOMDocument.4.0",
      "MSXML2.DOMDocument",  // v3.0
      "MSXML.DOMDocument",   // v2.x
      "Microsoft.XMLDOM"     // v2.x
    ];

    var vObject;

    for (var i=0, l=vServers.length; i<l; i++)
    {

      try
      {
        vObject = new ActiveXObject(vServers[i]);
        break;
      }
      catch(ex)
      {
        vObject = null;
      }
    }

    return vObject;
  }

  throw new Error("This browser does not support xml dom creation.");
};