NOBUG: Fixed file access permissions
[moodle.git] / lib / yuilib / 3.13.0 / datatype-xml-parse / datatype-xml-parse-debug.js
blob067b4918dcc42d10d69068034550690190bfc41e
1 /*
2 YUI 3.13.0 (build 508226d)
3 Copyright 2013 Yahoo! Inc. All rights reserved.
4 Licensed under the BSD License.
5 http://yuilibrary.com/license/
6 */
8 YUI.add('datatype-xml-parse', function (Y, NAME) {
10 /**
11  * Parse XML submodule.
12  *
13  * @module datatype-xml
14  * @submodule datatype-xml-parse
15  * @for XML
16  */
18 var LANG = Y.Lang;
20 Y.mix(Y.namespace("XML"), {
21     /**
22      * Converts data to type XMLDocument.
23      *
24      * @method parse
25      * @param data {String} Data to convert.
26      * @return {XMLDoc} XML Document.
27      */
28     parse: function(data) {
29         var xmlDoc = null;
30         if(LANG.isString(data)) {
31             try {
32                 if(!LANG.isUndefined(ActiveXObject)) {
33                         xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
34                         xmlDoc.async = false;
35                         xmlDoc.loadXML(data);
36                 }
37             }
38             catch(ee) {
39                 try {
40                     if (!LANG.isUndefined(DOMParser)) {
41                         xmlDoc = new DOMParser().parseFromString(data, "text/xml");
42                     }
43                     if (!LANG.isUndefined(Windows.Data.Xml.Dom)) {
44                         xmlDoc = new Windows.Data.Xml.Dom.XmlDocument();
45                         xmlDoc.loadXml(data);
46                     }
47                 }
48                 catch(e) {
49                 }
50                     Y.log(ee.message + " (Could not initialize the ActiveX control for XML parsing)", "warn", "xml");
51             }
52         }
54         if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === "parsererror") ) {
55             Y.log("Could not parse data to type XML Document", "warn", "xml");
56         }
58         return xmlDoc;
59     }
60 });
62 // Add Parsers shortcut
63 Y.namespace("Parsers").xml = Y.XML.parse;
65 Y.namespace("DataType");
66 Y.DataType.XML = Y.XML;
69 }, '3.13.0');