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