Validate XML with inline Schema : Schema « XML « ASP.Net






Validate XML with inline Schema

<%@ Page Language="C#"%>
<%@ 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 xmlPath = MapPath("AuthorsWithInlineSchema.xml");            
        XmlReader reader = null;        
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ValidationType = ValidationType.Schema;                
        settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
        //settings.ValidationFlags &= ~XmlSchemaValidationFlags.IgnoreInlineSchema;
        //settings.ValidationFlags &= ~XmlSchemaValidationFlags.IgnoreValidationWarnings;        
        settings.ValidationFlags &= XmlSchemaValidationFlags.ProcessInlineSchema;
        settings.ValidationFlags &= XmlSchemaValidationFlags.ReportValidationWarnings;        
        reader = XmlReader.Create(xmlPath, settings);
        while (reader.Read()) 
        {            
        }
        if (stringBuilder.ToString() == String.Empty)
            Response.Write("Validation completed successfully.");
        else
            Response.Write("Validation Failed. <br>" + stringBuilder.ToString());
    }

    void ValidationEventHandler(object sender, ValidationEventArgs args)
    {
        if (args.Severity == XmlSeverityType.Error)
        {
            stringBuilder.Append("Validation error: " + args.Message + "<br>");                
        }       
    }    
  
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Inline XSD Schema Validation</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>                
    </div>
    </form>
</body>
</html>


<%--
<?xml version="1.0"?>
<root xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="urn:authors">
  <!-- Start of Schema -->
  <xs:schema targetNamespace="urn:authors">
    <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>
  <!-- End of Schema -->
  <x:authors>
      <author>
        <authorID>000-00-0001</authorID>
        <lastName>Nancy</lastName>
        <firstName>Lee</firstName>
        <phone>999 999-9999</phone>
        <address>9999 York St.</address>
        <city>Regina</city>
        <state>LA</state>
        <zip>99999</zip>
        <contract>true</contract>
      </author>
      <author>
        <authorID>000-00-0002</authorID>
        <lastName>First</lastName>
        <firstName>Last</firstName>
        <phone>415 986-7020</phone>
        <address>No Name St.</address>
        <city>Vancouver</city>
        <state>BC</state>
        <zip>88888</zip>
        <contract>true</contract>
      </author> 
  </x:authors>
</root>



--%>
           
       








Related examples in the same category

1.Read XML Schema and compile
2.Create XML Schema