public FilteredElement(XmlElement element, IXmlToClrAdapter adapter) { this.Element = element; this.Name = adapter.GetClrName(element.LocalName, element.Prefix, element.NamespaceURI); if (this.Element.HasAttributes) { this.Attributes = Enumerable.Where <XmlAttribute>(Enumerable.OfType <XmlAttribute>((IEnumerable)this.Element.Attributes), (Func <XmlAttribute, bool>)(attrib => adapter.ShouldProcessAttribute(attrib.LocalName, attrib.Prefix, attrib.NamespaceURI))); } if (!this.Element.HasChildNodes) { return; } this.ChildElements = Enumerable.Where <XmlElement>(Enumerable.Select <XmlNode, XmlElement>(Enumerable.Where <XmlNode>(Enumerable.OfType <XmlNode>((IEnumerable)this.Element.ChildNodes), (Func <XmlNode, bool>)(node => node is XmlElement)), (Func <XmlNode, XmlElement>)(node => (XmlElement)node)), (Func <XmlElement, bool>)(elem => adapter.ShouldProcessElement(elem.LocalName, elem.Prefix, elem.NamespaceURI))); }
public static void Import(string xmlFileName, IXmlToClrAdapter resolver) { new XmlToClrImporter(resolver).ImportFromFile(xmlFileName); }
private XmlToClrImporter(IXmlToClrAdapter resolver) { this.xmlToClrAdapter = resolver; this.stringTypeDescription = XmlToClrImporter.ClrTypeDescription.CreateLeaf(this.xmlToClrAdapter.StringType); this.leafTypes.Add(this.stringTypeDescription); }