]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/include/javascript/yui3/build/datatype/datatype-xml.js
Release 6.5.0
[Github/sugarcrm.git] / jssource / src_files / include / javascript / yui3 / build / datatype / datatype-xml.js
1 /*
2 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3 Code licensed under the BSD License:
4 http://developer.yahoo.com/yui/license.html
5 version: 3.3.0
6 build: 3167
7 */
8 YUI.add('datatype-xml-parse', function(Y) {
9
10 /**
11  * Parse XML submodule.
12  *
13  * @module datatype
14  * @submodule datatype-xml-parse
15  * @for DataType.XML
16  */
17
18 var LANG = Y.Lang;
19
20 Y.mix(Y.namespace("DataType.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                 }
44                 catch(e) {
45                 }
46             }
47         }
48         
49         if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === "parsererror") ) {
50         }
51         
52         return xmlDoc;
53     }
54 });
55
56 // Add Parsers shortcut
57 Y.namespace("Parsers").xml = Y.DataType.XML.parse;
58
59
60
61 }, '3.3.0' ,{requires:['yui-base']});
62 YUI.add('datatype-xml-format', function(Y) {
63
64 /**
65  * Format XML submodule.
66  *
67  * @module datatype
68  * @submodule datatype-xml-format
69  */
70
71 /**
72  * XML submodule.
73  *
74  * @module datatype
75  * @submodule datatype-xml
76  */
77
78 /**
79  * DataType.XML provides a set of utility functions to operate against XML documents.
80  *
81  * @class DataType.XML
82  * @static
83  */
84 var LANG = Y.Lang;
85
86 Y.mix(Y.namespace("DataType.XML"), {
87     /**
88      * Converts data to type XMLDocument.
89      *
90      * @method format
91      * @param data {XMLDoc} Data to convert.
92      * @return {String} String.
93      */
94     format: function(data) {
95         try {
96             if(!LANG.isUndefined(XMLSerializer)) {
97                 return (new XMLSerializer()).serializeToString(data);
98             }
99         }
100         catch(e) {
101             if(data && data.xml) {
102                 return data.xml;
103             }
104             else {
105                 return (LANG.isValue(data) && data.toString) ? data.toString() : "";
106             }
107         }
108     }
109 });
110
111
112
113 }, '3.3.0' ,{requires:['yui-base']});
114
115
116 YUI.add('datatype-xml', function(Y){}, '3.3.0' ,{use:['datatype-xml-parse', 'datatype-xml-format']});
117