Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

XML validation

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="XmlValidation" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Xml Validation</title> </head> <body>     <form id="form1" runat="server">     <div class="Box">     <asp:RadioButton id="optValid"                       runat="server"                       Text="Use Data.xml"                       Checked="True"                       GroupName="Valid">         </asp:RadioButton>     <asp:button id="cmdValidate"                  runat="server"                  Text="Validate XML"                  OnClick="cmdValidate_Click">         </asp:button>     </div>   <div>     <asp:Label id="lblStatus" runat="server" EnableViewState="False"></asp:Label>     </div>     </form> </body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml.Schema; using System.IO; using System.Xml; public partial class XmlValidation : System.Web.UI.Page {   protected void cmdValidate_Click(object sender, EventArgs e)   {     string filePath = "Data.xml";       lblStatus.Text = "";     XmlReaderSettings settings = new XmlReaderSettings();         settings.Schemas.Add("yourURI",Request.PhysicalApplicationPath + "Data.xsd");     settings.ValidationType = ValidationType.Schema;     settings.ValidationEventHandler += new ValidationEventHandler(ValidateHandler);     FileStream fs = new FileStream(filePath, FileMode.Open);          XmlReader r = XmlReader.Create(fs, settings);     while (r.Read())     {     }     fs.Close();     lblStatus.Text += "<br />Complete.";   }   public void ValidateHandler(Object sender, ValidationEventArgs e)   {     lblStatus.Text += "Error: " + e.Message + "<br />";   } } File: Data.xml <?xml version="1.0" standalone="yes"?> <SuperProProductList xmlns="yourURI" >     <Product ID="1" Name="Chair">         <Price>49.33</Price>     </Product>     <Product ID="2" Name="Car">         <Price>43398.55</Price>     </Product>     <Product ID="3" Name="Fresh Fruit Basket">         <Price>49.99</Price>     </Product> </SuperProProductList> File: Data.xsd <?xml version="1.0"?> <xs:schema     targetNamespace="yourURI"     xmlns:xs="http://www.w3.org/2001/XMLSchema"     elementFormDefault="qualified"  >   <xs:element name="SuperProProductList">     <xs:complexType>       <xs:sequence maxOccurs="unbounded">         <xs:element name="Product">           <xs:complexType>             <xs:sequence>               <xs:element name="Price" minOccurs="1" type="xs:double" />             </xs:sequence>             <xs:attribute name="ID" use="required" type="xs:int" />             <xs:attribute name="Name" use="required"  type="xs:string" />           </xs:complexType>         </xs:element>         </xs:sequence>       </xs:complexType>   </xs:element> </xs:schema>