Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / docs / source / Xml2.html
1 <!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-data.writer.Xml'>/**
2 </span> * @author Ed Spencer
3  * @class Ext.data.writer.Xml
4  * @extends Ext.data.writer.Writer
5  * 
6  * &lt;p&gt;Writer that outputs model data in XML format&lt;/p&gt;
7  */
8 Ext.define('Ext.data.writer.Xml', {
9     
10     /* Begin Definitions */
11     
12     extend: 'Ext.data.writer.Writer',
13     alternateClassName: 'Ext.data.XmlWriter',
14     
15     alias: 'writer.xml',
16     
17     /* End Definitions */
18     
19 <span id='Ext-data.writer.Xml-cfg-documentRoot'>    /**
20 </span>     * @cfg {String} documentRoot The name of the root element of the document. Defaults to &lt;tt&gt;'xmlData'&lt;/tt&gt;.
21      * If there is more than 1 record and the root is not specified, the default document root will still be used
22      * to ensure a valid XML document is created.
23      */
24     documentRoot: 'xmlData',
25     
26 <span id='Ext-data.writer.Xml-cfg-defaultDocumentRoot'>    /**
27 </span>     * @cfg {String} defaultDocumentRoot The root to be used if {@link #documentRoot} is empty and a root is required
28      * to form a valid XML document.
29      */
30     defaultDocumentRoot: 'xmlData',
31
32 <span id='Ext-data.writer.Xml-cfg-header'>    /**
33 </span>     * @cfg {String} header A header to use in the XML document (such as setting the encoding or version).
34      * Defaults to &lt;tt&gt;''&lt;/tt&gt;.
35      */
36     header: '',
37
38 <span id='Ext-data.writer.Xml-cfg-record'>    /**
39 </span>     * @cfg {String} record The name of the node to use for each record. Defaults to &lt;tt&gt;'record'&lt;/tt&gt;.
40      */
41     record: 'record',
42
43     //inherit docs
44     writeRecords: function(request, data) {
45         var me = this,
46             xml = [],
47             i = 0,
48             len = data.length,
49             root = me.documentRoot,
50             record = me.record,
51             needsRoot = data.length !== 1,
52             item,
53             key;
54             
55         // may not exist
56         xml.push(me.header || '');
57         
58         if (!root &amp;&amp; needsRoot) {
59             root = me.defaultDocumentRoot;
60         }
61         
62         if (root) {
63             xml.push('&lt;', root, '&gt;');
64         }
65             
66         for (; i &lt; len; ++i) {
67             item = data[i];
68             xml.push('&lt;', record, '&gt;');
69             for (key in item) {
70                 if (item.hasOwnProperty(key)) {
71                     xml.push('&lt;', key, '&gt;', item[key], '&lt;/', key, '&gt;');
72                 }
73             }
74             xml.push('&lt;/', record, '&gt;');
75         }
76         
77         if (root) {
78             xml.push('&lt;/', root, '&gt;');
79         }
80             
81         request.xmlData = xml.join('');
82         return request;
83     }
84 });
85 </pre></pre></body></html>