using System.Collections.Generic;
using Maroontress.Oxbind;
public sealed class Program
public static void Main()
var xml = @"<movie title='Avatar'>
<director name='James Cameron'/>
<cast>Sam Worthington</cast>
var reader = new StringReader(xml);
var factory = new OxbinderFactory();
var binder = factory.Of<Movie>();
var movie = binder.NewInstance(reader);
Console.WriteLine($"movie: {movie.title}");
Console.WriteLine($"director : {movie.director.Name}");
Console.WriteLine($"year: {movie.release.Year}");
foreach (var cast in movie.casts)
Console.WriteLine("cast: " + cast.Name);
public sealed class Movie
private static readonly Schema TheSchema = Schema.Of(
Mandatory.Of<Director>(),
public Director director;
public IEnumerable<Cast> casts;
public sealed class Director
public string Name => name;
public sealed class Release
public string Year => year;
public string Name => text;