public XElement Serialize()
{
XElement root = new XElement( XmlRootElementName );
root.Add( new XElement( "name", Name ) );
if ( CreatedBy != null ) {
XElement created = new XElement( "created" );
created.Add( new XAttribute( "by", CreatedBy ) );
created.Add( new XAttribute( "on", CreatedDate.ToCompactString() ) );
root.Add( created );
}
if ( EditedBy != null ) {
XElement edited = new XElement( "edited" );
edited.Add( new XAttribute( "by", EditedBy ) );
edited.Add( new XAttribute( "on", EditedDate.ToCompactString() ) );
root.Add( edited );
}
root.Add( Bounds.Serialize() );
root.Add( Controller.Serialize() );
return root;
}