public IEnumerable<ContentValidation.IValidator> ExtractValidators( XDocument xdoc ) { var xmlnsmgr = new System.Xml.XmlNamespaceManager(new System.Xml.NameTable()); // Extract namespace details foreach (var node in xdoc.XPathSelectElements("/contentValidators/namespaces/add")) { xmlnsmgr.AddNamespace ( node.Attribute("prefix").Value, node.Attribute("namespace").Value ); } // Extract document validators foreach (var node in xdoc.XPathSelectElements("/contentValidators/documentValidation")) { var d = new ContentValidation.DocumentValidator() { NamespaceManager = xmlnsmgr }; if (null != this.Logs) foreach (var l in this.Logs) d.Logs.Add(l); if (null != this.TimedLogs) foreach (var l in this.TimedLogs) d.TimedLogs.Add(l); foreach (var validatorNode in node.XPathSelectElements("./*")) { var v = this.ExtractValidator(validatorNode); v.NamespaceManager = xmlnsmgr; d.Validators.Add(v); } yield return d; } // Extract element validators foreach (var node in xdoc.XPathSelectElements("/contentValidators/elementValidation")) { var selector = node.Attribute("selector").Value; var e = new ContentValidation.ElementValidator() { NamespaceManager = xmlnsmgr, XPathSelector = selector }; if (null != this.Logs) foreach (var l in this.Logs) e.Logs.Add(l); if (null != this.TimedLogs) foreach (var l in this.TimedLogs) e.TimedLogs.Add(l); foreach (var validatorNode in node.XPathSelectElements("./*")) { var v = this.ExtractValidator(validatorNode); v.NamespaceManager = xmlnsmgr; e.Validators.Add(v); } yield return e; } }
public IEnumerable <ContentValidation.IValidator> ExtractValidators ( XDocument xdoc ) { var xmlnsmgr = new System.Xml.XmlNamespaceManager(new System.Xml.NameTable()); // Extract namespace details foreach (var node in xdoc.XPathSelectElements("/contentValidators/namespaces/add")) { xmlnsmgr.AddNamespace ( node.Attribute("prefix").Value, node.Attribute("namespace").Value ); } // Extract document validators foreach (var node in xdoc.XPathSelectElements("/contentValidators/documentValidation")) { var d = new ContentValidation.DocumentValidator() { NamespaceManager = xmlnsmgr }; if (null != this.Logs) { foreach (var l in this.Logs) { d.Logs.Add(l); } } if (null != this.TimedLogs) { foreach (var l in this.TimedLogs) { d.TimedLogs.Add(l); } } foreach (var validatorNode in node.XPathSelectElements("./*")) { var v = this.ExtractValidator(validatorNode); v.NamespaceManager = xmlnsmgr; d.Validators.Add(v); } yield return(d); } // Extract element validators foreach (var node in xdoc.XPathSelectElements("/contentValidators/elementValidation")) { var selector = node.Attribute("selector").Value; var e = new ContentValidation.ElementValidator() { NamespaceManager = xmlnsmgr, XPathSelector = selector }; if (null != this.Logs) { foreach (var l in this.Logs) { e.Logs.Add(l); } } if (null != this.TimedLogs) { foreach (var l in this.TimedLogs) { e.TimedLogs.Add(l); } } foreach (var validatorNode in node.XPathSelectElements("./*")) { var v = this.ExtractValidator(validatorNode); v.NamespaceManager = xmlnsmgr; e.Validators.Add(v); } yield return(e); } }