public XQueryStepExpr(XQueryPathExprType type, XQueryContext queryContext) : base(queryContext) { m_type = type; switch (m_type) { case XQueryPathExprType.Self: m_iter = new PathExprIterator(SelfIterator); break; case XQueryPathExprType.Child: m_iter = new PathExprIterator(ChildIterator); break; case XQueryPathExprType.Descendant: case XQueryPathExprType.DescendantOrSelf: m_iter = new PathExprIterator(DescendantIterator); break; case XQueryPathExprType.Attribute: m_iter = new PathExprIterator(AttributeIterator); break; case XQueryPathExprType.Following: m_iter = new PathExprIterator(FollowingIterator); break; case XQueryPathExprType.FollowingSibling: m_iter = new PathExprIterator(FollowingSiblingIterator); break; case XQueryPathExprType.Parent: m_iter = new PathExprIterator(ParentIterator); break; case XQueryPathExprType.Ancestor: case XQueryPathExprType.AncestorOrSelf: m_iter = new PathExprIterator(AncestorIterator); break; case XQueryPathExprType.Preceding: m_iter = new PathExprIterator(PrecedingIterator); break; case XQueryPathExprType.PrecedingSibling: m_iter = new PathExprIterator(PrecedingSiblingIterator); break; case XQueryPathExprType.Namespace: m_iter = new PathExprIterator(NamespaceIterator); break; default: throw new ArgumentException("type"); } }
public XQueryStepExpr(object nodeTest, XQueryPathExprType type, XQueryContext queryContext) : this(type, queryContext) { if (nodeTest is XmlQualifiedNameTest) m_nameTest = (XmlQualifiedNameTest)nodeTest; else if (nodeTest is XQuerySequenceType) m_typeTest = (XQuerySequenceType)nodeTest; else throw new ArgumentException("nodeTest"); }