Introduction
This post explains how to apply XML Schema Definition Language(XSD) to Extensible Markup Language (XML) document. Basics of XSD.
Create an XML Document
- Start Visual Studio .NET
- Create a new XML File.
- Add the following data to the XML Document
<Employee EmployeeID="123"> <EmployeeName>James Bond</EmployeeName> </Employee>
4. Save the file as Employee.xml file
Create the XSD Schema, and Link to XML Document
1. Start Visual Studio .NET
2. Create a new empty text file
3. Add the following XSD Schema definitions to describe the XML document.
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Employee"> <xsd:complexType> <xsd:sequence> <xsd:element name="EmployeeName" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="EmployeeID" use="required" type="xsd:int"/> </xsd:complexType> </xsd:element> </xsd:schema>
4. Save the file as Employee.xsd
5. Open the original Employee.xml file, and link it to the XSD schema as follows
<?xml version="1.0"?> <Employee EmployeeID="123" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Employee.xsd"> <EmployeeName>Rugby jersey</EmployeeName> </Employee>
6. Save the modified xml as EmployeeWithXSD.xml.
Validate XML Document
1. Load the EmployeeWithXSD.xml using XmlTextReader as follows:
XmlTextReader r = new XmlTextReader("C:\\EmployeeWithXSD.xml");XmlValidatingReader v = new XmlValidatingReader(r);v.ValidationType = ValidationType.Schema;v.ValidationEventHandler += new ValidationEventHandler(MyValidationEventHandler);
while (v.Read()) { // Can add code here to process the content. } v.Close(); // Check whether the document is valid or invalid. if (isValid) Console.WriteLine("Document is valid"); else Console.WriteLine("Document is invalid");
public static void MyValidationEventHandler(object sender, ValidationEventArgs args) { isValid = false; Console.WriteLine("Validation event\n" + args.Message); }
2. Build and run the application to use the XSD schema to validate the XML
document.
Validating the XML Document using XSD…
You’ve been kicked (a good thing) – Trackback from DotNetKicks.com…
Above code is not work properly
It is really very helpful for me to understand clearly about applying XSD validation in the XML file.
Thanks,
Deva
The problem is when you are supplied with an XML file that does *not* reference your XSD? I discuss how to validate that the XML file references the XSD and the validates against the XSD here http://skotl.blogspot.com/2009/07/validating-xml-files-against-xsd.html