Mega Code Archive

 
Categories / ASP.Net / XML
 

Read XML Schema and compile

<%@ Page Language="C#"%> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Reflection" %> <%@ Import Namespace="System.Xml" %> <%@ Import Namespace="System.Xml.Schema" %> <script runat="server">         private StringBuilder stringBuilder = new StringBuilder();     void Page_Load(object sender, EventArgs e)     {                 string xsdPath = MapPath("Authors.xsd");                 XmlSchema schema = null;         FileStream stream = new FileStream(xsdPath, FileMode.Open);         schema = XmlSchema.Read(stream, new ValidationEventHandler(ValidationEventHandler));         stream.Close();                 schema.Compile(new ValidationEventHandler(ValidationEventHandler));                 if (schema.IsCompiled)             DisplaySchemaObjects(schema);                 else             Response.Write("Schema Reading Failed. <br>" + stringBuilder.ToString());     }          void DisplaySchemaObjects(XmlSchema schema)     {         foreach (XmlSchemaElement elem in schema.Elements.Values)         {                         if (elem.ElementSchemaType is XmlSchemaComplexType)             {                                 Response.Write("Complex Element: " + elem.Name + "<br>");                 XmlSchemaComplexType ct = (XmlSchemaComplexType)elem.ElementSchemaType;                                                 //Process the XmlSchemaComplexType                             }         }                  }     void ValidationEventHandler(object sender, ValidationEventArgs args)     {                 stringBuilder.Append("Validation error: " + args.Message + "<br>");                     }        </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Reading XSD Schema</title> </head> <body>     <form id="form1" runat="server">     <div>                     </div>     </form> </body> </html> <%-- Authors.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">   <xs:element name="authors">     <xs:complexType>       <xs:sequence>         <xs:element maxOccurs="unbounded" name="author">           <xs:complexType>             <xs:sequence>               <xs:element name="authorID" type="xs:string" />               <xs:element name="lastName" type="xs:string" />               <xs:element name="firstName" type="xs:string" />               <xs:element name="phone" type="xs:string" />               <xs:element name="address" type="xs:string" />               <xs:element name="city" type="xs:string" />               <xs:element name="state" type="xs:string" />               <xs:element name="zip" type="xs:unsignedInt" />               <xs:element name="contract" type="xs:boolean" />             </xs:sequence>           </xs:complexType>         </xs:element>       </xs:sequence>     </xs:complexType>   </xs:element> </xs:schema> --%>