public void XmlReaderAsALineInfoProvider()
{
string xmlSrc = "<root>\n" +
" <foo>\n" +
" FooText\n" +
" </foo>\n" +
"</root>";
XmlSchemaInfo info = new XmlSchemaInfo();
XmlSchemaValidator val = CreateValidator(CreateSchemaSetFromXml(xmlSrc));
XmlReader r = XmlReader.Create(new StringReader(xmlSrc));
val.LineInfoProvider = (r as IXmlLineInfo);
val.Initialize();
r.ReadStartElement("root");
val.ValidateElement("root", "", info);
val.ValidateEndOfAttributes(null);
try
{
r.ReadStartElement("foo");
val.ValidateElement("bar", "", info);
Assert.True(false);
}
catch (XmlSchemaValidationException e)
{
Assert.Equal(e.LineNumber, 2);
Assert.Equal(e.LinePosition, 8);
}
return;
}
}