private static void Main(string[] args) { XmlSchemaSet schemaSet = new XmlSchemaSet(); schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallback); schemaSet.Add("http://www.w3.org/2001/XMLSchema", "C:\\Chandan\\myxsdfile.xsd"); schemaSet.Compile(); XmlSchema xmlSchema = null; foreach (XmlSchema schema in schemaSet.Schemas()) { xmlSchema = schema; } DataSet myDS = new DataSet(); myDS.ReadXmlSchema("C:\\Chandan\\myxsdfile.xsd"); foreach (object item in xmlSchema.Items) { XmlSchemaElement schemaElement = item as XmlSchemaElement; XmlSchemaComplexType complexType = item as XmlSchemaComplexType; if (schemaElement != null) { Console.Out.WriteLine("Schema Element: {0}", schemaElement.Name); XmlSchemaType schemaType = schemaElement.SchemaType; XmlSchemaComplexType schemaComplexType = schemaType as XmlSchemaComplexType; if (schemaComplexType != null) { XmlSchemaParticle particle = schemaComplexType.Particle; XmlSchemaSequence sequence = particle as XmlSchemaSequence; if (sequence != null) { foreach (XmlSchemaElement childElement in sequence.Items) { Console.Out.WriteLine(" Element/Type: {0}:{1}", childElement.Name, childElement.SchemaTypeName.Name); } } if (schemaComplexType.AttributeUses.Count > 0) { IDictionaryEnumerator enumerator = schemaComplexType.AttributeUses.GetEnumerator(); while (enumerator.MoveNext()) { XmlSchemaAttribute attribute = (XmlSchemaAttribute)enumerator.Value; Console.Out.WriteLine(" Attribute/Type: {0}", attribute.Name); } } } } else if (complexType != null) { Console.Out.WriteLine("Complex Type: {0}", complexType.Name); OutputElements(complexType.Particle); if (complexType.AttributeUses.Count > 0) { IDictionaryEnumerator enumerator = complexType.AttributeUses.GetEnumerator(); while (enumerator.MoveNext()) { XmlSchemaAttribute attribute = (XmlSchemaAttribute)enumerator.Value; Console.Out.WriteLine(" Attribute/Type: {0}", attribute.Name); } } } Console.Out.WriteLine(); } Console.Out.WriteLine(); Console.In.ReadLine(); }