2 Copyright (c) 2009, Yahoo! Inc. All rights reserved.
3 Code licensed under the BSD License:
4 http://developer.yahoo.net/yui/license.txt
8 YUI.add('datatype-xml-parse', function(Y) {
11 * Parse XML submodule.
14 * @submodule datatype-xml-parse
20 Y.mix(Y.namespace("DataType.XML"), {
22 * Converts data to type XMLDocument.
25 * @param data {String} Data to convert.
26 * @return {XMLDoc} XML Document.
28 parse: function(data) {
30 if(LANG.isString(data)) {
32 if(!LANG.isUndefined(DOMParser)) {
33 xmlDoc = new DOMParser().parseFromString(data, "text/xml");
38 if(!LANG.isUndefined(ActiveXObject)) {
39 xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
49 if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === "parsererror") ) {
56 // Add Parsers shortcut
57 Y.namespace("Parsers").xml = Y.DataType.XML.parse;
64 YUI.add('datatype-xml-format', function(Y) {
67 * Format XML submodule.
70 * @submodule datatype-xml-format
77 * @submodule datatype-xml
81 * DataType.XML provides a set of utility functions to operate against XML documents.
88 Y.mix(Y.namespace("DataType.XML"), {
90 * Converts data to type XMLDocument.
93 * @param data {XMLDoc} Data to convert.
94 * @return {String} String.
96 format: function(data) {
98 if(!LANG.isUndefined(XMLSerializer)) {
99 return (new XMLSerializer()).serializeToString(data);
103 if(data && data.xml) {
107 return (LANG.isValue(data) && data.toString) ? data.toString() : "";
120 YUI.add('datatype-xml', function(Y){}, '3.0.0' ,{use:['datatype-xml-parse', 'datatype-xml-format']});