Transform XML Schema into C# classes

Closed - This job posting has been filled and work has been completed.

Job Description

We need to have the <Lists> schema of SharePoint as plain C# classes.

Schema can be found here:

http://msdn.microsoft.com/en-us/library/office/aa543477(v=office.15).aspx

Requirements:

The resulting class structure shall reflect the schema's structure in both hierarchy and element order.

<List> turns into: public class List { }

<Field> turns into: public class Field { }

Collections, such as <Fields> turn into a property: public List<Field> Fields

If a field is an integer where a fixed number of values is allowed, it turns into an enum. For instance CalType shall look so:

public enum CalType {
SakaEra = 16,
ChineseLunar = 15,
KoreanAndJapaneseLunar = 14,
GregorianTransliteratedFrench = 12,
GregorianTransliteratedEnglish = 11,
GregorianArabic = 10,
GregorianMiddleEastFrench = 9,
HebrewLunar = 8,
Thai = 7,
HijriArabicLunar = 6,
KoreanTangunEra = 5,
TaiwanEra = 4,
JapaneseEmperorEra = 3,
Gregorian = 1,
NotSpecified = 0
}

If a fixed set of string values is used than create a class with members like this:

public static readonly string Value = "value"

If a value consists of multiple words, turn "This is a value" into the member name "ThisIsAValue" (camel case).

Each (!) class and property gets attributes:

- [Required] (only if the element's attribute is required)
- [Display(Name = "Name", Description= "Text")] (all, copy the docu from MSDN into the "Name" and "Text" parts respectively)

This ends up with several dozen of C# classes that form a hierarchy. The project shall be provided as C# class library and it shall compile.

Attributes are from System.ComponentModel.DataAnnotations namespace.

The classes do not need to do anything useful! They just has to be syntactically correct.

There is a project attached which gives the first steps and idea. It's NOT complete and it contains errors.

This task is not very qualified work, it's more or less a stupid conversion. You either do this for a very low rate by hand or you are very smart and find a way to automate this and then we'd pay a very high rate for a short time.

We're open for discussion about the best strategy.

To see that you understood the requirements just take the XML CHOICES element from the link above and convert it and it's children into a C# class.

Open Attachment