<!DOCTYPE HTML> <html> <head> <link rel='stylesheet' type='text/css' href='../style.css' > <title>libigl file formats | .xml</title> </head> <body class=article_outer> <div class=article_inner> <a href=..><img src=../libigl-logo.jpg alt="igl logo" class=center></a> <h1>.xml - serialization format</h1> <hr> <p> A .xml file contains the serialization of an object data structure generated with the XMLSerializer: </p> <p> The top level elements represent the groups in which the object are organised. The object names are unique within these groups. </p> <pre><code><group1> <object1 val="value of object 1"/> <object2 val="value of object 2"/> </group1> <group2> <object1 val="value of object 1"/> </group2></code></pre> <p> An object can be of following type:<br/> <br/> Basic types: <b>char, char*, std::string, bool, usigned int, int, float, double</b><br/> STL containers: <b>std::array, std::vector, std::pair</b><br/> Eigen types: <b>Eigen::Matrix, Eigen::SparseMatrix</b><br/> User defined types: <b>XMLSerializable*.</b><br/> <br/> There can also be a hierachical structure like vector<int>, this will result in the following serialization: </p> <pre><code><group> <vector size="3"> <value0 val="1"/> <value1 val="2"/> <value2 val="3"/> </vector> </group></code></pre> <p>An example of a serialization of an instance of the class Test</p> <pre><code>class Test{ int var1; vector<float> vec1; };</code></pre> <p> is shown here:</p> <pre><code><group> <Test> <var1 val="0"> <vec1 size="2"> <value0 val="1"/> <value1 val="2"/> </vector> </Test> </group></code></pre> <p>In the following we show the serialization of Eigen matrices.</p> <p>Eigen::Matrix<int,4,3>:</p> <pre><code><group> <matrix row="4" col="3" matrix=" 1,2,3, 4,5,6, 7,8,9, 10,11,12/> </group></code></pre> <p>Eigen::SparseMatrix<int> (3x3 identity saved as triplets of the non-zero entries):</p> <pre><code><group> <matrix row="3" col="3" matrix=" 0,0,1, 1,1,1, 2,2,1/> </group></code></pre> <p>See also: <a href=.>file formats</a></p> </div> </body> </html>