public void ValidXMLUnitTest()
{
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);
}
string validDialogInfoXMLStr =
"<?xml version='1.0' encoding='utf-16'?>" +
"<dialog-info version='1' state='full' entity='sip:[email protected]'" +
" xmlns='urn:ietf:params:xml:ns:dialog-info' xmlns:ss='sipsorcery:dialog-info'>" +
" <dialog id='as7d900as8' call-id='a84b4c76e66710' local-tag='1928301774' direction='initiator'>" +
" <state event='remote-bye' code='486'>terminated</state>" +
" <duration>13</duration>" +
" <local>" +
" <identity>sip:[email protected];user=phone</identity>" +
" <cseq>2</cseq>" +
" </local>" +
" <remote>" +
" <identity display-name='Joe Bloggs'>sip:[email protected]</identity>" +
" <target uri='sip:[email protected]:5070' />" +
" <cseq>1</cseq>" +
" <ss:sdp/>" +
" </remote>" +
" </dialog>" +
"</dialog-info>";
XDocument eventDialogDoc = XDocument.Parse(validDialogInfoXMLStr);
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("-----------------------------------------");
}