/* Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html version: 3.3.0 build: 3167 */ YUI.add('datasource-xmlschema', function(Y) { /** * Extends DataSource with schema-parsing on XML data. * * @module datasource * @submodule datasource-xmlschema */ /** * Adds schema-parsing to the DataSource Utility. * @class DataSourceXMLSchema * @extends Plugin.Base */ var DataSourceXMLSchema = function() { DataSourceXMLSchema.superclass.constructor.apply(this, arguments); }; Y.mix(DataSourceXMLSchema, { /** * The namespace for the plugin. This will be the property on the host which * references the plugin instance. * * @property NS * @type String * @static * @final * @value "schema" */ NS: "schema", /** * Class name. * * @property NAME * @type String * @static * @final * @value "dataSourceXMLSchema" */ NAME: "dataSourceXMLSchema", ///////////////////////////////////////////////////////////////////////////// // // DataSourceXMLSchema Attributes // ///////////////////////////////////////////////////////////////////////////// ATTRS: { schema: { //value: {} } } }); Y.extend(DataSourceXMLSchema, Y.Plugin.Base, { /** * Internal init() handler. * * @method initializer * @param config {Object} Config object. * @private */ initializer: function(config) { this.doBefore("_defDataFn", this._beforeDefDataFn); }, /** * Parses raw data into a normalized response. * * @method _beforeDefDataFn *
*
tId (Number)
Unique transaction ID.
*
request (Object)
The request.
*
callback (Object)
The callback object with the following properties: *
*
success (Function)
Success handler.
*
failure (Function)
Failure handler.
*
*
*
data (Object)
Raw data.
*
* @protected */ _beforeDefDataFn: function(e) { var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && e.data.responseXML && (e.data.responseXML.nodeType === 9)) ? e.data.responseXML : e.data, response = Y.DataSchema.XML.apply.call(this, this.get("schema"), data); // Default if(!response) { response = { meta: {}, results: data }; } this.get("host").fire("response", Y.mix({response:response}, e)); return new Y.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn"); } }); Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema; }, '3.3.0' ,{requires:['datasource-local', 'plugin', 'dataschema-xml']});