Home > classes > @cdata > xmladd.m

xmladd

PURPOSE ^

XMLADD add a cdata object to the given node of the input XML DOM

SYNOPSIS ^

function xml = xmladd(ds, xml, nodename, node)

DESCRIPTION ^

 XMLADD add a cdata object to the given node of the input XML DOM
 object.

 M Hewitson 14-02-07

 $Id: xml_add_provenance.m,v 1.3 2007/07/30 12:13:10 ingo Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function xml = xmladd(ds, xml, nodename, node)
0002 
0003 % XMLADD add a cdata object to the given node of the input XML DOM
0004 % object.
0005 %
0006 % M Hewitson 14-02-07
0007 %
0008 % $Id: xml_add_provenance.m,v 1.3 2007/07/30 12:13:10 ingo Exp $
0009 %
0010 
0011 el = xml.docNode.createElement(nodename);
0012 
0013 for j=1:length(ds)
0014   
0015   d = ds(j);
0016 
0017   elc = xml.docNode.createElement('cdata');
0018   
0019   % add name
0020   elcc = xml.docNode.createElement('name');
0021   elcc.appendChild(xml.docNode.createTextNode(d.name));
0022   elc.appendChild(elcc);
0023 
0024   % add Xunits
0025   elcc = xml.docNode.createElement('xunits');
0026   elcc.appendChild(xml.docNode.createTextNode(d.xunits));
0027   elc.appendChild(elcc);
0028 
0029   % add Yunits
0030   elcc = xml.docNode.createElement('yunits');
0031   elcc.appendChild(xml.docNode.createTextNode(d.yunits));
0032   elc.appendChild(elcc);
0033 
0034   % add Version
0035   elcc = xml.docNode.createElement('version');
0036   elcc.appendChild(xml.docNode.createTextNode(d.version));
0037   elc.appendChild(elcc);
0038 
0039   % add Created
0040   xml = xmladd(get(d, 'created'), xml, 'created', elc);
0041 
0042   % add Tag
0043   elcc = xml.docNode.createElement('tags');
0044   tags = get(d, 'tags');
0045   istr = '';
0046   for j=1:length(tags)
0047     istr = [istr ' ' tags{j}];
0048   end
0049   elcc.appendChild(xml.docNode.createTextNode(istr));
0050   elc.appendChild(elcc);
0051 
0052   % Add shape
0053   elcc = xml.docNode.createElement('shape');
0054   elcc.appendChild(xml.docNode.createTextNode(ltpda_mat2str(size(d.vals))));
0055   elc.appendChild(elcc);
0056 
0057   if isreal(d.vals)
0058     % add data type
0059     elcc = xml.docNode.createElement('dtype');
0060     elcc.appendChild(xml.docNode.createTextNode('real'));
0061     elc.appendChild(elcc);
0062 
0063     % add vals
0064     elcc = xml.docNode.createElement('data');
0065     x = reshape(d.vals, 1, numel(d.vals));
0066     nmin = getappdata(0, 'xmlsetsize');
0067     while ~isempty(x)
0068       elccc = xml.docNode.createElement('yset');
0069       n = min(length(x), nmin);
0070       elccc.appendChild(xml.docNode.createTextNode(ltpda_mat2str(x(1:n))));
0071       x = x(n+1:end);
0072       elcc.appendChild(elccc);
0073     end
0074     elc.appendChild(elcc);
0075   else
0076     % add data type
0077     elcc = xml.docNode.createElement('dtype');
0078     elcc.appendChild(xml.docNode.createTextNode('complex'));
0079     elc.appendChild(elcc);
0080 
0081     % add vals
0082     elcc = xml.docNode.createElement('data');
0083     x = reshape(d.vals, 1, numel(d.vals));
0084     nmin = getappdata(0, 'xmlsetsize');
0085     while ~isempty(x)
0086       n = min(length(x), nmin);
0087       elccc = xml.docNode.createElement('ryset');
0088       elccc.appendChild(xml.docNode.createTextNode(ltpda_mat2str(real(x(1:n)))));
0089       elcc.appendChild(elccc);
0090       elccc = xml.docNode.createElement('iyset');
0091       elccc.appendChild(xml.docNode.createTextNode(ltpda_mat2str(imag(x(1:n)))));
0092       elcc.appendChild(elccc);
0093       x = x(n+1:end);
0094     end
0095     elc.appendChild(elcc);
0096   end
0097 
0098   el.appendChild(elc);
0099 end
0100 
0101 node.appendChild(el);
0102 
0103 
0104 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003