<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Xsd2Code Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/Xsd2Code/Wiki/View.aspx?title=Home</link><description>Xsd2Code Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=94</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate &lt;b&gt;WCF&lt;/b&gt; attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=Xsd2Code&amp;DownloadId=156231" alt="propertyGrid.png" title="propertyGrid.png" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;About me : &lt;a href="http://fr.viadeo.com/profile/0022904hc8vzkt3t/en/"&gt;http://fr.viadeo.com/profile/0022904hc8vzkt3t/en/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 18 Aug 2012 07:09:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120818070918A</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=93</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate &lt;b&gt;WCF&lt;/b&gt; attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=156231" alt="propertyGrid.png" title="propertyGrid.png" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 09 Oct 2010 16:52:46 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101009045246P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=92</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate &lt;b&gt;WCF&lt;/b&gt; attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=156231" alt="propertyGrid.png" title="propertyGrid.png" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 09 Oct 2010 16:41:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101009044104P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=91</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=156231" alt="propertyGrid.png" title="propertyGrid.png" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 09 Oct 2010 16:38:17 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101009043817P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=90</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve image macro, invalid image name or id.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 09 Oct 2010 16:37:47 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101009043747P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=89</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize to string or from object.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Read an write xml with UTF-8/32, ASCII, Unicode, Default. &lt;b&gt;(new in 3.4)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB code.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sat, 09 Oct 2010 16:14:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101009041434P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=88</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, &lt;br /&gt;you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sun, 19 Sep 2010 09:08:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100919090819A</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=87</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;If you feel that the work I provide to the community is worth it, you can donate by using the Donate button below. Thank you.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Sun, 19 Sep 2010 09:04:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100919090421A</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=86</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Thu, 16 Sep 2010 12:24:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100916122433P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=85</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Thu, 16 Sep 2010 12:24:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100916122405P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=84</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Wed, 18 Aug 2010 16:23:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100818042302P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=83</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;This is a free open source project that I have developed in my personal time.&lt;br /&gt;I really appreciate your feedback and support for xsd2Code and its future development. &lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Wed, 18 Aug 2010 14:06:32 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100818020632P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=82</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;This is a free open source project that I have developed in my personal time.&lt;br /&gt;I really appreciate your feedback and support for xsd2Code and its future development.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Wed, 18 Aug 2010 14:06:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100818020611P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=81</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Mon, 16 Aug 2010 20:50:00 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100816085000P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=80</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;This is a free open source project that I have developed in my personal time.&lt;br /&gt;I really appreciate your feedback and support for xsd2Code and its future development.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Mon, 16 Aug 2010 20:44:44 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100816084444P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=79</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Xsd2Code is a free open source project that I have developed in my personal time. I really appreciate your feedback and support for xsd2Code and its future development.&lt;/b&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Mon, 16 Aug 2010 20:44:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100816084407P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=78</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;Xsd2Code is a free open source project that I have developed in my personal time. I really appreciate your feedback and support for xsd2Code and its future development.&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=JSJ44NPJESLEU"&gt;&lt;img style="border:none;" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Mon, 16 Aug 2010 20:43:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100816084338P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=77</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;form&lt;/span&gt; &lt;span style="color:Red;"&gt;action&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;https://www.paypal.com/cgi-bin/webscr&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;method&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;input&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;cmd&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;value&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;_s-xclick&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;input&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;hosted_button_id&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;value&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;GG8Y7HWG93UV8&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;input&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;image&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;src&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;https://www.paypal.com/fr_FR/FR/i/btn/btn_donateCC_LG.gif&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;border&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;alt&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;PayPal - la solution de paiement en ligne la plus simple et la plus s&amp;#233;curis&amp;#233;e !&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;img&lt;/span&gt; &lt;span style="color:Red;"&gt;alt&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;&amp;quot; border=&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;src&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;https://www.paypal.com/fr_FR/i/scr/pixel.gif&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;width&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;height&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;form&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=51814"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41255"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41254"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Mon, 16 Aug 2010 20:31:35 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100816083135P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=76</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=51814';"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=41255';"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=41254';"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://blog.mydotnet.fr" class="externalLink"&gt;http://blog.mydotnet.fr&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Wed, 23 Dec 2009 22:08:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091223100841P</guid></item><item><title>Updated Wiki: Home</title><link>http://xsd2code.codeplex.com/wikipage?version=75</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Xsd2Code is a CSharp or Visual Basic Business Entity class Generator from XSD schema.&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;What Xsd2Code can do ?&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Generate partial class.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support generic and custom collection (List&amp;lt;T&amp;gt;, ObservableCollection&amp;lt;T&amp;gt;, MyCustomCollection&amp;lt;T&amp;gt;).&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Support automatic properties when no special get or set is required.&lt;/li&gt;
&lt;li&gt;Can generate WCF attributes (DataContract/DataMember).&lt;/li&gt;
&lt;li&gt;Support nillable type.&lt;/li&gt;
&lt;li&gt;Mask private field in IDE (use EditorBrowsableState.Never attribute).&lt;/li&gt;
&lt;li&gt;Generate object allocation in constructor.&lt;/li&gt;
&lt;li&gt;Implement INotifyPropertyChanged for enable DataBinding for &lt;b&gt;wpf or Silverlight&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Improves productivity with visual studio add-in. &lt;/li&gt;
&lt;li&gt;Generate summary documentation from xsd annotation.&lt;/li&gt;
&lt;li&gt;Check if the new and old values int setter are the same before raising property changed event. &lt;/li&gt;
&lt;li&gt;backup options generation in cs or vb header.&lt;/li&gt;
&lt;li&gt;Save and load Xml document into isolated file storage for silverlight app &lt;b&gt;(new in 3.0)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Generate CS, VB or CPP code.&lt;/li&gt;
&lt;li&gt;Serialize/deserilize object.&lt;/li&gt;
&lt;li&gt;Save into file and load from file.&lt;/li&gt;
&lt;li&gt;Include Xsd2CodeCustomTool.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;How to use it ?&lt;/u&gt;&lt;/h2&gt;Xsd2Code is an AddIn for visual studio 2008.&lt;br /&gt;Right clic on xsd schema in solution explorer, choose options and generate code.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=41336" alt="AddinMenu.jpg" title="AddinMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=72542" alt="Addin.jpg" title="Addin.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Xsd2Code has a CustomTool which allows automatic generation when schema is modified.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=56267" alt="CustomTool.jpg" title="CustomTool.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Enable databinding.&lt;/u&gt;&lt;/h2&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;show&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:boolean&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;nillable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(IsNullable=&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; System.Nullable&amp;lt;&lt;span style="color:Blue;"&gt;bool&lt;/span&gt;&amp;gt; show {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((showField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.showField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;show&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;event&lt;/span&gt; System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnPropertyChanged(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; info) {
            PropertyChangedEventHandler handler = PropertyChanged;
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (handler != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                handler(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;, &lt;span style="color:Blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(info));
            }
        }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Hide private field in Visual studio.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
     [EditorBrowsable(EditorBrowsableState.Never)]
     &lt;span style="color:Blue;"&gt;private&lt;/span&gt; List &amp;lt;dvds&amp;gt; dvdsField;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Generic collection.&lt;/u&gt;&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&amp;DownloadId=45456" alt="Collection.jpg" title="Collection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Product&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt; &lt;span style="color:Red;"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;unbounded&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductName&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;ProductVersion&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;sequence&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;complexType&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Product() {
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productVersionField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
            &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;System.String&amp;gt;();
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;System.String&amp;gt; ProductName {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((productNameField.Equals(value) != &lt;span style="color:Blue;"&gt;true&lt;/span&gt;)) {
                        &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                        OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                    }
                }
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt; {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.productNameField = value;
                    OnPropertyChanged(&lt;span style="color:#A31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;);
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Lazy loading pattern.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        [System.Xml.Serialization.XmlElementAttribute(&lt;span style="color:#A31515;"&gt;&amp;quot;Dvds&amp;quot;&lt;/span&gt;)]
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; List&amp;lt;dvd&amp;gt; Dvds {
            &lt;span style="color:Blue;"&gt;get&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; ((&lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField == &lt;span style="color:Blue;"&gt;null&lt;/span&gt;)) {
                    &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; List&amp;lt;dvd&amp;gt;();
                }
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField;
            }
            &lt;span style="color:Blue;"&gt;set&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.dvdsField = value;
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Serialize/Deserialize method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into an XML document&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;string XML value&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; Serialize() {
            System.IO.StreamReader streamReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.MemoryStream memoryStream = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                memoryStream = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, &lt;span style="color:Blue;"&gt;this&lt;/span&gt;);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(memoryStream);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; streamReader.ReadToEnd();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamReader.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (memoryStream != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    memoryStream.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = Deserialize(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xml, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T Deserialize(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; xml) {
            System.IO.StringReader stringReader = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                stringReader = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StringReader(xml);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; ((T)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (stringReader != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    stringReader.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;SaveToFile and LoadFromFile method.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
       &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Serializes current EntityBase object into file&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;fileName&amp;quot;&amp;gt;full path of outupt xml file&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if can serialize and save into file; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                SaveToFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception e) {
                exception = e;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; SaveToFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.StreamWriter streamWriter = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = Serialize();
                System.IO.FileInfo xmlFile = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (streamWriter != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    streamWriter.Dispose();
                }
            }
        }
        
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Deserializes workflow markup from file into an EntityBase object&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;xml&amp;quot;&amp;gt;string workflow markup to deserialize&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;obj&amp;quot;&amp;gt;Output EntityBase object&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;param name=&amp;quot;exception&amp;quot;&amp;gt;output Exception value if deserialize failed&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span style="color:Green;"&gt;// &amp;lt;returns&amp;gt;true if this XmlSerializer can deserialize the object; otherwise, false&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; System.Exception exception) {
            exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            obj = &lt;span style="color:Blue;"&gt;default&lt;/span&gt;(T);
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                obj = LoadFromFile(fileName);
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:Blue;"&gt;catch&lt;/span&gt; (System.Exception ex) {
                exception = ex;
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;false&lt;/span&gt;;
            }
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;bool&lt;/span&gt; LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; T obj) {
            System.Exception exception = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;return&lt;/span&gt; LoadFromFile(fileName, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; obj, &lt;span style="color:Blue;"&gt;out&lt;/span&gt; exception);
        }
        
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; T LoadFromFile(&lt;span style="color:Blue;"&gt;string&lt;/span&gt; fileName) {
            System.IO.FileStream file = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            System.IO.StreamReader sr = &lt;span style="color:Blue;"&gt;null&lt;/span&gt;;
            &lt;span style="color:Blue;"&gt;try&lt;/span&gt; {
                file = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; System.IO.StreamReader(file);
                &lt;span style="color:Blue;"&gt;string&lt;/span&gt; xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                &lt;span style="color:Blue;"&gt;return&lt;/span&gt; Deserialize(xmlString);
            }
            &lt;span style="color:Blue;"&gt;finally&lt;/span&gt; {
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (file != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    file.Dispose();
                }
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (sr != &lt;span style="color:Blue;"&gt;null&lt;/span&gt;) {
                    sr.Dispose();
                }
            }
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Default value.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;attribute&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;nationality&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;default&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;US&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; .ctor class constructor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; Actor() {
            &lt;span style="color:Blue;"&gt;this&lt;/span&gt;.nationalityField = &lt;span style="color:#A31515;"&gt;&amp;quot;US&amp;quot;&lt;/span&gt;;
        }
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Code xml comment.&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;firstname&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;xs:string&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        Gets or sets the firstname of the actor
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;documentation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
     &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;annotation&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
 &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xs&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;element&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Result :&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt;&lt;span style="color:Green;"&gt; Gets or sets the firstname of the actor&lt;/span&gt;
        &lt;span style="color:Gray;"&gt;///&lt;/span&gt; &lt;span style="color:Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;string&lt;/span&gt; firstname {&lt;span style="color:Blue;"&gt;get&lt;/span&gt;;&lt;span style="color:Blue;"&gt;set&lt;/span&gt;;}
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;&lt;u&gt;Backup options generation in cs or vb header&lt;/u&gt;&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;//    Generated by Xsd2Code. Version 2.1.3148.17485&lt;/span&gt;
&lt;span style="color:Green;"&gt;//   &amp;lt;NameSpace&amp;gt;XSD2Code.Test&amp;lt;/NameSpace&amp;gt;&amp;lt;Collection&amp;gt;List&amp;lt;/Collection&amp;gt;...&lt;/span&gt;
&lt;span style="color:Green;"&gt;//  &amp;lt;auto-generated&amp;gt;&lt;/span&gt;
&lt;span style="color:Green;"&gt;// ------------------------------------------------------------------------------&lt;/span&gt;
&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; XSD2Code.Test {
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
    &lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Diagnostics;
    ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;For exemple, full generated csharp file : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=51814';"&gt;dvd.cs&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=41255';"&gt;dvd.xsd&lt;/a&gt;&lt;br /&gt;XmlSchema exemple : &lt;a href="javascript:window.location.href='http://xsd2code.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=41254';"&gt;Actor.xsd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project is based on the work originally done by Daniel Cazzulino in 2004&lt;br /&gt;You can find the original project here :&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302301.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/library/aa302301.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From pascal cabanel.&lt;br /&gt;My blog (French only) : &lt;a href="http://pcabanel.over-blog.com/" class="externalLink"&gt;http://pcabanel.over-blog.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>pcabanel</author><pubDate>Thu, 22 Oct 2009 20:50:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091022085055P</guid></item></channel></rss>