public void InvalidXMLUnitTest()
{
Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
if (m_eventDialogSchema == null)
{
Console.WriteLine("Loading XSD schema for dialog event package, takes a while...");
m_eventDialogSchema = new XmlSchemaSet();
XmlReader schemaReader = new XmlTextReader(SIPSorcery.SIP.Properties.Resources.EventDialogSchema, XmlNodeType.Document, null);
m_eventDialogSchema.Add(m_dialogXMLNS, schemaReader);
}
// The mandatory version attribue on dialog-info is missing.
string invalidDialogInfoXMLStr =
"<?xml version='1.0' encoding='utf-16'?>" +
"<dialog-info state='full' entity='sip:[email protected]' xmlns='urn:ietf:params:xml:ns:dialog-info'>" +
" <dialog id='as7d900as8' call-id='a84b4c76e66710' local-tag='1928301774' direction='initiator'>" +
" <state event='rejected' code='486'>terminated</state>" +
" </dialog>" +
"</dialog-info>";
XDocument eventDialogDoc = XDocument.Parse(invalidDialogInfoXMLStr);
eventDialogDoc.Validate(m_eventDialogSchema, (o, e) =>
{
Console.WriteLine("XSD validation " + e.Severity + " event: " + e.Message);
if (e.Severity == XmlSeverityType.Error)
{
throw e.Exception;
}
});
Console.WriteLine("-----------------------------------------");
}