Click here to Skip to main content
12,304,823 members (67,691 online)
Click here to Skip to main content
Articles » Languages » XML » Serializing » Downloads

Stats

192.8K views
269 downloads
205 bookmarked
Posted

Yet Another XML Serialization Library for the .NET Framework

, 2 Oct 2012 MIT
A flexible XML serialization library that lets developers design the XML file structure, and select the exception handling policy. YAXLib supports polymorphic serialization and serializing generic and non-generic collection classes and arrays.
YAXLib
DemoApplication
Properties
SampleClasses
YAXLib
Properties
LocalTestRun.testrunconfig
YAXLib.vsmdi
YAXLibTests
Properties
Test References
[2.0] April 15, 2010
   * YAXLib
   * Adding support for serialization and deserialization for all known generic
     and non-generic collection classes in System.Collections, and 
	 System.Collections.Generic.
   * Adding support for recursive serialization of collections without serializing
     an element for their enclosing collection.
   * Adding support for specifying path-like serialization addresses, 
     e.g., elem1/elem2/elem3, and ../elem1, and ./elem1
   * Adding support for specifying aliases for enum members.
   * Adding support for choosing the fields to serialize (public, or non-public 
     properties, or member varialbes).
   * Adding support for serialization and deserialization of objects through 
     a reference to their base-class or interface.
   * Adding support for multi-stage deserialization.
   * Adding support for serialization of single-dimensional, multi-dimensional, 
     and jagged arrays.
   * Adding unit-tests for several parts of the library.

[1.1.5] Feb 22, 2010
   * YAXLib
   * Adding support to deserialize some known built-in .NET Types. Starting from TimeSpan.
   * Thanks go to James South; for reporting this problem for type TimeSpan

[1.1.4] Feb 22, 2010
   * YAXLib
   * Changing the style of the whole library, so that it matches StyleCop guidelines.
   * A lot of thanks go to James South; for his kind efforts for cleaning up the code, 
     and leaving documentation of 12 methods only to me.

[1.1.3] Jan 28, 2010
   * YAXLib/YAXSerializer.cs:
     Fixing the bug of reading value from an attribute pertaining to an absent parent element.
     Thanks go to Donovan Solms for reporting this bug.

[1.1.2] May 15, 2009
   * YAXLib/YAXSerializer.cs:
     Adding support for serializing property-less objects, that expose the 
     IFormattable interface (e.g., the Guid struct).
     Thanks go to Wayne Hiller for reporting this problem.

[1.1.1] May 6, 2009
   * YAXLib/YAXSerializer.cs:
     Fixing some bug related to nested collection classes.
     Thanks go to Jiri Steuer for reporting this bug.

[1.1] April 13, 2009
    * Updating the article
	* Fixing some minor bugs
	* Enhancing the demo application

[1.0.10] April 12, 2009
   * YAXLib/YAXSerializer.cs, YAXLib/YAXExceptionHandlingPolicies.cs:
     Added an Ignore item to the YAXExceptionTypes enum.
     Added YAXSerializationOptions enum, and a corresponding argument to the 
      YAXSerializer constructor, which currently lets the developer choose 
      whether to serialize null properties or not.
     If the developer chooses DontSerializeNullObjects as an option, then
      the serialization and deserialization processes keep the null properties
      status intact. Also the developer may select the error type of those properties
      to Ignore (via the ErrorIfMissed attribute or at construction time), so that 
      their absence is not reported as a problem.

[1.0.9] April 11, 2009
   * YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
     Added the support for inserting comments through the [YAXComment] attribute.
     The comments are only applicable to classes.

[1.0.8] April 11, 2009
   * DemoApplication:
     Added a GeneralToString provider which convert an object to string based upon its
     public properties via Reflection. This method is careful about null references, therefore
     we will not observe NullReferenceException in ToString methods.

[1.0.7] April 10, 2009
   * YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
     added the [YAXNotCollection] attribute. If some class implements the IEnumerable 
     interface, it is known by YAXLib as a collection class. This attribute prevents
     YAXLib to just iterate through the items provided through the IEnumerable interface;
     but to serialize the actual properties of the class, just as the way it is done with
     other classes.

[1.0.6] April 10, 2009
   * YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
     added support for controlling the serialization behaviour of generic dictionary 
     classes via YAXDictionary attribute. With this attribute one can specify: 
     - aliases for key and value parts
     - whether key/value should be serialized as XML attribute or XML element.
     - the format strings for serializing key/value parts.
  
[1.0.5] April 09, 2009
   * YAXLib/YAXAttributes.cs, YAXLib/YAXExceptions, YAXLib/YAXSerializer.cs: 
     adding support for format strings which could be used while serializing 
     objects with the given formats. Added YAXFormatAttribute, and 
     YAXInvalidFormatProvided exception class. 


[1.0.4] April 05, 2009
   * YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs: 
     adding support for ignoring whitespace characters, while deserializing 
     serially serialized collection classes, through IsWhiteSpaceSeparator 
     property of YAXCollectionAttribute class.

[1.0.3] March 26, 2009
   * YAXLib/YAXSerializer.cs: 
     fixing the bug, that the library did not ignore static properties.

[1.0.2] March 25, 2009
   * YAXLib/YAXSerializer.cs: 
     fixing the bug on deserializing null nested objects.
     Thanks go to Anton Levshunov for reporting this bug.

[1.0.1] March 24, 2009
   * YAXLib/YAXSerializer.cs: 
     fixing the bug that deserializing collection classes 
     attributed as [YAXDontSerialize] lead to a NullReferenceException. 
     Thanks go to Peter Zacho for reporting this bug.

[1.0.0] March 13, 2009
   * First version

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License

Share

About the Author

Sina Iravanian
Software Developer
Australia Australia
A software designer and developer

You may also be interested in...

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160530.1 | Last Updated 2 Oct 2012
Article Copyright 2009 by Sina Iravanian
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid