private void processSimpleType(XmlNode simpleTypeNode) { ClassBuilder cb = new ClassBuilder(); XmlNodeList children = simpleTypeNode.ChildNodes; foreach( XmlNode child in children ) { cb.Name = simpleTypeNode.Attributes["name"].Value.Replace( "cs:", ""); if( child.Name.Equals("xs:annotation") ) { XmlNode docmentation = getChild("xs:documentation", child); if( docmentation != null ) cb.Description = docmentation.Value; } else if( child.Name.Equals("xs:restriction") ) { XmlAttribute base_ = child.Attributes["base"]; if( base_ != null ) cb.Base_ = base_.Value.Replace("cs:", ""); XmlNode pattern = getChild("xs:pattern", child); if( pattern != null ) cb.RegExp = pattern.Attributes["value"].Value; } else if( child.Name.Equals("xs:list") ) { } else if( child.Name.Equals("xs:union") ) { XmlNodeList gcs = child.ChildNodes; foreach( XmlNode gc in gcs ) { if( gc.Name.Equals("xs:simpleType") ) processSimpleType(gc); } } else if( child.Name.Equals("xs:enumeration") ) { cb.addEnumeration( child.Attributes["value"].Value ); } else { } } Console.WriteLine(cb.writeClass()); }