Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create xml from object

Basically i want to create XMLDesigner kind of thing in Flex, using which user can add/edit components and properties of view/dashboard. i am storing view structure in a xml file. i parsed that file at runtime and display view. How to convert an object (having properties and sub-objects) to xml node (having attributes and elements) and add that xml to the existing xml file. so that next time when i parsed xml file i'll get that new component in my view/dashboard.

for e.g, object structure of component in xml file :

<view id="productView" label="Products">
<panel id="chartPanel" type="CHART" ChartType="Pie2D" title="Productwise Sales"  x="215" y="80" width="425" height="240" showValues="0" >  
  </panel> 
</view>

Thanks in Advance.

like image 624
Gannesh Avatar asked Jul 01 '11 07:07

Gannesh


People also ask

How do I create an XML file in Visual Studio?

To create a new XML Schema file In Visual Studio, open the File menu and select New > File. Or, use the Ctrl+N keyboard shortcut. In the New File dialog box, select XML Schema and then select Open. A new file is created.


1 Answers

Use an XML (de)serialization library.

There are many out there but one thing that I have used and found very stable is FlexxB. It has got a plethora of functions and I swear by it!

Flexxb is annotation based and very easy to use once you get the hang of it.

Here is a sample copied from the main web site.

        [XmlClass(alias="MOck2Replacement", idField="id")]
        public class Mock3
        {
                [XmlAttribute]
                public var id : Number = 3;
                [XmlAttribute]
                public var attribute : Boolean;
                [XmlElement(alias="objectVersion")]
                public var version : Number;

                public function Mock3()
                {
                        super();
                }
        }

You decorate each of your variables with an annotation and tell what kind of XML type would it be.

And you create the object

var target : Mock3 = new Mock3();
target.attribute = true;
target.id = 5;
target.version = 33;

And you do

FlexXBEngine.instance.serialize(target)

And the result would be

<MOck2Replacement attribute="true" id="5">
  <objectVersion>
    33
  </objectVersion>
</MOck2Replacement>

And the other AWESOME thing about is that you don't have to have the source of an object to decorate it.

There is an API that handle that. Using this AP, I successfully de(serialized) SolidColor and LinearGradient where I did not have the source to decorate it.

Checkout the General Description and Samples. And it's a one SWC install :)

like image 110
Ranhiru Jude Cooray Avatar answered Sep 27 '22 01:09

Ranhiru Jude Cooray