/// <summary> /// Returns an INodeIterator instance that iterates the children /// of the current node; otherwise, <c>Null</c>. /// </summary> /// <returns></returns> public override INodeIterator GetChildren() { SifVersion version = Version; // Get all of the Element fields and children that match the // NodeTest into a list SifFormatter formatter = Adk.Dtd.GetFormatter(version); IList <Element> elements = formatter.GetContent(fSifElement, version); if (elements.Count == 0) { return(null); } else if (elements.Count == 1) { Element singleChild = elements[0]; if (singleChild is SimpleField) { return(new SingleNodeIterator(SimpleFieldPointer.Create(this, (SimpleField)singleChild))); } else { return(new SingleNodeIterator(Create(this, (SifElement)singleChild, version))); } } return(new AdkElementIterator(this, elements)); }