Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / source / data / XmlReader.js
diff --git a/source/data/XmlReader.js b/source/data/XmlReader.js
deleted file mode 100644 (file)
index 0e1e54a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*\r
- * Ext JS Library 2.2.1\r
- * Copyright(c) 2006-2009, Ext JS, LLC.\r
- * licensing@extjs.com\r
- * \r
- * http://extjs.com/license\r
- */\r
-\r
-/**\r
- * @class Ext.data.XmlReader\r
- * @extends Ext.data.DataReader\r
- * Data reader class to create an Array of {@link Ext.data.Record} objects from an XML document\r
- * based on mappings in a provided {@link Ext.data.Record} constructor.<br><br>\r
- * <p>\r
- * <em>Note that in order for the browser to parse a returned XML document, the Content-Type\r
- * header in the HTTP response must be set to "text/xml" or "application/xml".</em>\r
- * <p>\r
- * Example code:\r
- * <pre><code>\r
-var Employee = Ext.data.Record.create([\r
-   {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"\r
-   {name: 'occupation'}                 // This field will use "occupation" as the mapping.\r
-]);\r
-var myReader = new Ext.data.XmlReader({\r
-   totalRecords: "results", // The element which contains the total dataset size (optional)\r
-   record: "row",           // The repeated element which contains row information\r
-   id: "id"                 // The element within the row that provides an ID for the record (optional)\r
-}, Employee);\r
-</code></pre>\r
- * <p>\r
- * This would consume an XML file like this:\r
- * <pre><code>\r
-&lt;?xml version="1.0" encoding="UTF-8"?>\r
-&lt;dataset>\r
- &lt;results>2&lt;/results>\r
- &lt;row>\r
-   &lt;id>1&lt;/id>\r
-   &lt;name>Bill&lt;/name>\r
-   &lt;occupation>Gardener&lt;/occupation>\r
- &lt;/row>\r
- &lt;row>\r
-   &lt;id>2&lt;/id>\r
-   &lt;name>Ben&lt;/name>\r
-   &lt;occupation>Horticulturalist&lt;/occupation>\r
- &lt;/row>\r
-&lt;/dataset>\r
-</code></pre>\r
- * @cfg {String} totalRecords The DomQuery path from which to retrieve the total number of records\r
- * in the dataset. This is only needed if the whole dataset is not passed in one go, but is being\r
- * paged from the remote server.\r
- * @cfg {String} record The DomQuery path to the repeated element which contains record information.\r
- * @cfg {String} success The DomQuery path to the success attribute used by forms.\r
- * @cfg {String} id The DomQuery path relative from the record element to the element that contains\r
- * a record identifier value.\r
- * @constructor\r
- * Create a new XmlReader.\r
- * @param {Object} meta Metadata configuration options\r
- * @param {Object} recordType Either an Array of field definition objects as passed to\r
- * {@link Ext.data.Record#create}, or a Record constructor object created using {@link Ext.data.Record#create}.\r
- */\r
-Ext.data.XmlReader = function(meta, recordType){\r
-    meta = meta || {};\r
-    Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType || meta.fields);\r
-};\r
-Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, {\r
-    /**\r
-     * This method is only used by a DataProxy which has retrieved data from a remote server.\r
-        * @param {Object} response The XHR object which contains the parsed XML document.  The response is expected\r
-        * to contain a property called <tt>responseXML</tt> which refers to an XML document object.\r
-     * @return {Object} records A data block which is used by an {@link Ext.data.Store} as\r
-     * a cache of Ext.data.Records.\r
-     */\r
-    read : function(response){\r
-        var doc = response.responseXML;\r
-        if(!doc) {\r
-            throw {message: "XmlReader.read: XML Document not available"};\r
-        }\r
-        return this.readRecords(doc);\r
-    },\r
-\r
-    /**\r
-     * Create a data block containing Ext.data.Records from an XML document.\r
-        * @param {Object} doc A parsed XML document.\r
-     * @return {Object} records A data block which is used by an {@link Ext.data.Store} as\r
-     * a cache of Ext.data.Records.\r
-     */\r
-    readRecords : function(doc){\r
-        /**\r
-         * After any data loads/reads, the raw XML Document is available for further custom processing.\r
-         * @type XMLDocument\r
-         */\r
-        this.xmlData = doc;\r
-        var root = doc.documentElement || doc;\r
-       var q = Ext.DomQuery;\r
-       var recordType = this.recordType, fields = recordType.prototype.fields;\r
-       var sid = this.meta.id;\r
-       var totalRecords = 0, success = true;\r
-       if(this.meta.totalRecords){\r
-           totalRecords = q.selectNumber(this.meta.totalRecords, root, 0);\r
-       }\r
-\r
-        if(this.meta.success){\r
-            var sv = q.selectValue(this.meta.success, root, true);\r
-            success = sv !== false && sv !== 'false';\r
-       }\r
-       var records = [];\r
-       var ns = q.select(this.meta.record, root);\r
-        for(var i = 0, len = ns.length; i < len; i++) {\r
-               var n = ns[i];\r
-               var values = {};\r
-               var id = sid ? q.selectValue(sid, n) : undefined;\r
-               for(var j = 0, jlen = fields.length; j < jlen; j++){\r
-                   var f = fields.items[j];\r
-                var v = q.selectValue(f.mapping || f.name, n, f.defaultValue);\r
-                   v = f.convert(v, n);\r
-                   values[f.name] = v;\r
-               }\r
-               var record = new recordType(values, id);\r
-               record.node = n;\r
-               records[records.length] = record;\r
-           }\r
-\r
-           return {\r
-               success : success,\r
-               records : records,\r
-               totalRecords : totalRecords || records.length\r
-           };\r
-    }\r
-});
\ No newline at end of file