View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

Be the first to rate this file! 7 Downloads (last 30 days) File Size: 2.97 KB File ID: #6038 Version: 1.0
image thumbnail



Laurent Cavin (view profile)


12 Oct 2004 (Updated )

Output the input variable as an XML string suited for import in database systems.

| Watch this File

File Information

xmlstr = generateXML(in)

Output the variable "in" as an XML string; intended for exporting structures for later import in a database.

It features the following specificities:

a) Cell-array and substructure linking:
Most database systems generate new tables for each substructure (or cell array, that are sort of structures also) present in the XML file (e.g. Access). Importing the XML results in several tables without relations...

With generateXML, when cell arrays or sub-structures are encountered, a "foreign key" is added in the parent object. The child cell array or structure recieve a corresponding "primary key". This allows keeping the relationships...

b) Blowing up the matrices:
Most database systems cannot import a matrix in one step. Each element is a single number, and in the best case, the whole matrix is imported as a long, space-separated string. With generateXML, matrices are devided into single elements, which each get a new label (e.g. mymatrix_1, mymatrix_2, ...). Thus matrices are correctly imported (with one value per column in the record).

This XML format generates a HUGE overhead, mostly because of the matrix blow-up, and is probably not usable when the structure contains very large matrices. It is however efficient for rather intrigate structures containing relatively small datasets. If you do not intend to import the data in a database, but only to save in human-readable form the data for further use in MATLAB or other custom software, it is advised to use the more efficient XML Toolbox by Marc Molinari, available on this website (link in Acknoledgements below). On top of it, generateXML is a one-way function and it does not feature an import fonctionality [yet]... to reimport data, or to work on the resulting database, use SQL and the CSE SQL Library, available on this website (link in Acknoledgements below).

The data types supported are: char, numeric (also complex), struct, cell, logical/boolean only. Sparse matrices are not supported.


Cse Sql Database Library and Xml Toolbox inspired this file.

MATLAB release MATLAB 6.5.1 (R13SP1)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.

Contact us