Read XML Schema and compile : Schema « XML « ASP.Net






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>
--%>
           
       








Related examples in the same category

1.Validate XML with inline Schema
2.Create XML Schema