Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press
Buy directly from Paradoxal Press at $33.99 (Save 43%)
Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA
|
Listing 21-5 extracted from chapter XML
Listing 21-4< > Listing 21-6
This listing can be compiled with the command line: csc.exe /target:exe Example_21_5.cs Errors: 0 Warnings: 0
Example_21_5.cs
using System;
using System.Xml;
using System.Xml.Schema;
class Program {
static void Main() {
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add( String.Empty,
@"C:\books.xsd");
settings.Schemas.Compile();
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += ValidatingProblemHandler;
settings.ValidationFlags =
XmlSchemaValidationFlags.ReportValidationWarnings;
XmlReader xtr = XmlReader.Create(@"C:\books.xml",settings);
string sIndent = string.Empty;
string sElem = string.Empty;
while ( xtr.Read() ) {
if ( xtr.NodeType == XmlNodeType.Element ) {
sIndent = string.Empty;
for (int i = 0; i < xtr.Depth; i++) sIndent += " ";
sElem = xtr.Name;
if ( xtr.MoveToFirstAttribute() )
do
Console.WriteLine("{0}{1} Attr:{2}" ,
sIndent , sElem , xtr.Value );
while ( xtr.MoveToNextAttribute() );
}
else if (xtr.NodeType == XmlNodeType.Text)
Console.WriteLine("{0}{1} Val:{2}",sIndent,sElem,xtr.Value);
}
}
static void ValidatingProblemHandler(object sender,
ValidationEventArgs e) {
if (e.Severity == XmlSeverityType.Warning) {
Console.Write("WARNING: "); Console.WriteLine(e.Message);
} else if (e.Severity == XmlSeverityType.Error) {
Console.Write("ERROR: "); Console.WriteLine(e.Message);
}
}
}
Copyright Patrick Smacchia 2006 2007
|