/**
* Small helper class to make creating {@link Ext.data.Store}s from XML data easier.
* An XmlStore will be automatically configured with a {@link Ext.data.reader.Xml}.
*
* A store configuration would be something like:
*
* var store = new Ext.data.XmlStore({
* // store configs
* storeId: 'myStore',
* url: 'sheldon.xml', // automatically configures a HttpProxy
*
* // reader configs
* record: 'Item', // records will have an "Item" tag
* idPath: 'ASIN',
* totalRecords: '@TotalResults'
*
* fields: [
* // set up the fields mapping into the xml doc
* // The first needs mapping, the others are very basic
* {name: 'Author', mapping: 'ItemAttributes > Author'},
* 'Title', 'Manufacturer', 'ProductGroup'
* ]
* });
*
* This store is configured to consume a returned object of the form:
*
* <?xml version="1.0" encoding="UTF-8"?>
* <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2009-05-15">
* <Items>
* <Request>
* <IsValid>True</IsValid>
* <ItemSearchRequest>
* <Author>Sidney Sheldon</Author>
* <SearchIndex>Books</SearchIndex>
* </ItemSearchRequest>
* </Request>
* <TotalResults>203</TotalResults>
* <TotalPages>21</TotalPages>
* <Item>
* <ASIN>0446355453</ASIN>
* <DetailPageURL>
* http://www.amazon.com/
* </DetailPageURL>
* <ItemAttributes>
* <Author>Sidney Sheldon</Author>
* <Manufacturer>Warner Books</Manufacturer>
* <ProductGroup>Book</ProductGroup>
* <Title>Master of the Game</Title>
* </ItemAttributes>
* </Item>
* </Items>
* </ItemSearchResponse>
*
* An object literal of this form could also be used as the {@link #cfg-data} config option.
* **Note:** This class accepts all of the configuration options of
* {@link Ext.data.reader.Xml XmlReader}.
*/
Ext.define('Ext.data.XmlStore', {
extend: 'Ext.data.Store',
alias: 'store.xml',
requires: [
'Ext.data.proxy.Ajax',
'Ext.data.reader.Xml',
'Ext.data.writer.Xml'
],
constructor: function(config) {
config = Ext.apply({
proxy: {
type: 'ajax',
reader: 'xml',
writer: 'xml'
}
}, config);
this.callParent([config]);
}
});