// Creates a XmlValidatingReader suitable for parsing InnerXml strings
private XmlReader CreateInnerXmlValidatingReader(String xmlFragment, XmlNodeType nt, XmlParserContext context, XmlDocument doc)
{
XmlNodeType contentNT = nt;
if (contentNT == XmlNodeType.Entity || contentNT == XmlNodeType.EntityReference)
{
contentNT = XmlNodeType.Element;
}
XmlValidatingReader xmlvr = new XmlValidatingReader(xmlFragment, contentNT, context);
if (doc.DocumentType != null)
{
xmlvr.Namespaces = doc.DocumentType.ParseWithNamespaces;
}
if (doc.HasSetResolver)
{
xmlvr.XmlResolver = doc.GetResolver();
}
xmlvr.ValidationType = ValidationType.None;
if (!(doc.ActualLoadingStatus))
{
xmlvr.DisableUndeclaredEntityCheck = true;
}
// all these settings are alreay the default setting in XmlTextReader
xmlvr.EntityHandling = EntityHandling.ExpandCharEntities;
if (nt == XmlNodeType.Entity || nt == XmlNodeType.EntityReference)
{
xmlvr.Read(); //this will skip the first element "wrapper"
xmlvr.ResolveEntity();
}
return(xmlvr);
}