public MetaDomainModelBuilder DomainNodeType(string name, string extends)
 {
     _currentProperty = null;
     _currentReference = null;
     _currentDomainNodeType = new DomainNodeType
     {
         Name = name,
         Extends = extends
     };
     _result.DomainNodeTypes.Add(_currentDomainNodeType);
     return this;
 }
 public DataLayerMetaDomainModel()
     : base("DataLayer")
 {
     Uri = "http://bax.org/tree2soft/treemodel/datalayer";
     Author = "Stefano Bassoli";
     Version = "1.0.0";
     m.Property pDomain = new m.Property()
     {
         Name = "Domain",
         Domain = "String",
         RequireDataType = true
     };
     m.Property pCaption = new m.Property()
     {
         Name = "Caption",
         Domain = "String"
     };
     m.Property pManySideRole = new m.Property()
     {
         Name = "ManySideRole",
         Domain = "String"
     };
     m.Property pOneSideRole = new m.Property()
     {
         Name = "OneSideRole",
         Domain = "String"
     };
     m.DomainNodeType cDataLayer = new m.DomainNodeType
     {
         Name = "DataLayer"
     };
     cDataLayer.IsIDomainModel = true;
     m.DomainNodeType cTable = new m.DomainNodeType
     {
         Name = "Table"
     };
     cTable.Properties.Add(pCaption);
     m.Reference rDataLayerTables = new m.Reference()
     {
         Name = "DataLayer",
         ManySideRole = "Tables"
     };
     cTable.References.Add(rDataLayerTables);
     m.DomainNodeType cColumn = new m.DomainNodeType()
     {
         Name = "Column",
     };
     cColumn.Properties.Add(pDomain);
     cColumn.Properties.Add(pCaption);
     m.Reference rTableColumns = new m.Reference()
     {
         Name = "Table",
         ManySideRole = "Columns",
         OneSideRole = "Table"
     };
     cColumn.References.Add(rTableColumns);
     m.DomainNodeType cReference = new m.DomainNodeType
     {
         Name = "Reference"
     };
     cReference.Properties.Add(pManySideRole);
     cReference.Properties.Add(pOneSideRole);
     m.Reference rTableReferences = new m.Reference()
     {
         Name = "Table",
         ManySideRole = "References"
     };
     cReference.References.Add(rTableReferences);
     this.DomainNodeTypes.Add(cDataLayer);
     this.DomainNodeTypes.Add(cTable);
     this.DomainNodeTypes.Add(cColumn);
     this.DomainNodeTypes.Add(cReference);
 }