Mega Code Archive

 
Categories / ASP.Net / XML
 

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