foreach (XmlSchema schema1 in schemaSet.Schemas()) { compiledSchema = schema1; } foreach (XmlSchemaObject schemaObject in compiledSchema.Items) { //Console.WriteLine(schemaObject.GetType()); if (schemaObject.GetType() == typeof(XmlSchemaElement)) { XmlSchemaElement elementType = (XmlSchemaElement)schemaObject; Console.WriteLine("{0}{1}", "xmlschemaelement:", elementType.Name); } if (schemaObject.GetType() == typeof(XmlSchemaSimpleType)) { XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)schemaObject; Console.WriteLine("{0} {1}", simpleType.Name, simpleType.Datatype.ValueType); } if (schemaObject.GetType() == typeof(XmlSchemaComplexType)) { XmlSchemaComplexType complexType = (XmlSchemaComplexType)schemaObject; Console.WriteLine("{0}{1}", "xmlschemacomplexType:", complexType.Name);//, complexType.Datatype.ValueType); //ProcessElement(schemaObject as XmlSchemaElement); ProcessSchemaObject(schemaObject); } if (schemaObject.GetType() == typeof(XmlSchemaSequence)) { Console.WriteLine("insequence"); } } Console.ReadLine(); xtr.Close(); } private static void ProcessElement(XmlSchemaElement elem) { //Determine the complex nodes on XTree if (elem.ElementSchemaType is XmlSchemaComplexType) { Console.WriteLine("Object\"Complex Element\" : {0}", elem.Name); //Console.WriteLine("test ls" + ls.Count); XmlSchemaComplexType ct = elem.ElementSchemaType as XmlSchemaComplexType; ProcessSchemaObject(ct.ContentTypeParticle); } else { //Determine the Basic nodes on XTree Console.WriteLine("Basic Element : {0}", elem.Name); //Console.WriteLine("test ls for basic.. " + ls.Count); } } private static void ProcessSchemaObject(XmlSchemaObject obj) { if (obj is XmlSchemaElement) ProcessElement(obj as XmlSchemaElement); if (obj is XmlSchemaComplexType) { //XmlSchemaElement se = obj as XmlSchemaElement; Console.WriteLine("Debug : {0}", obj.GetType()); ProcessElement(obj as XmlSchemaElement); } } }
if (elem.ElementSchemaType is XmlSchemaComplexType) { Console.WriteLine("Object\"Complex Element\" : {0}", elem.Name); //Console.WriteLine("test ls" + ls.Count); XmlSchemaComplexType ct = elem.ElementSchemaType as XmlSchemaComplexType; ProcessSchemaObject(ct.ContentTypeParticle); }
XmlSchemaComplexType
XmlSchemaElement
if (obj is XmlSchemaComplexType) { //XmlSchemaElement se = obj as XmlSchemaElement; Console.WriteLine("Debug : {0}", obj.GetType()); ProcessElement(obj as XmlSchemaElement); }
elem
ProcessElement
null
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)