Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / DescendantQuery.cs / 1 / DescendantQuery.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
using System;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
internal class DescendantQuery : DescendantBaseQuery {
XPathNodeIterator nodeIterator;
internal DescendantQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis)
: base(qyParent, Name, Prefix, Type, matchSelf, abbrAxis) {}
public DescendantQuery(DescendantQuery other) : base(other) {
this.nodeIterator = Clone(other.nodeIterator);
}
public override void Reset() {
nodeIterator = null;
base.Reset();
}
public override XPathNavigator Advance() {
while (true) {
if (nodeIterator == null) {
position = 0;
XPathNavigator nav = qyInput.Advance();
if (nav == null) {
return null;
}
if (NameTest) {
if (TypeTest == XPathNodeType.ProcessingInstruction) {
nodeIterator = new IteratorFilter(nav.SelectDescendants(TypeTest, matchSelf), Name);
} else {
nodeIterator = nav.SelectDescendants(Name, Namespace, matchSelf);
}
} else {
nodeIterator = nav.SelectDescendants(TypeTest, matchSelf);
}
}
if (nodeIterator.MoveNext()) {
position++;
currentNode = nodeIterator.Current;
return currentNode;
} else {
nodeIterator = null;
}
}
}
public override XPathNodeIterator Clone() { return new DescendantQuery(this); }
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripProfessionalLowResolutionRenderer.cs
- SiteMapDataSource.cs
- ReturnEventArgs.cs
- ErrorHandlerModule.cs
- VectorAnimationBase.cs
- AutomationProperties.cs
- DataControlFieldCollection.cs
- QualificationDataAttribute.cs
- CodeAccessPermission.cs
- NotConverter.cs
- StreamUpgradeInitiator.cs
- EventRecordWrittenEventArgs.cs
- TableLayoutPanelCellPosition.cs
- DesignerForm.cs
- XhtmlConformanceSection.cs
- CaseInsensitiveComparer.cs
- InitializeCorrelation.cs
- Point3DCollectionConverter.cs
- TypeSystem.cs
- ADConnectionHelper.cs
- ConnectionPointCookie.cs
- ResourceReferenceExpressionConverter.cs
- SqlNamer.cs
- DataGridSortingEventArgs.cs
- MissingManifestResourceException.cs
- TextLine.cs
- coordinator.cs
- SQLInt16.cs
- ReplacementText.cs
- MachineKeyConverter.cs
- _RequestCacheProtocol.cs
- GridViewPageEventArgs.cs
- XsdBuilder.cs
- ListViewTableCell.cs
- SpotLight.cs
- ThemeableAttribute.cs
- SizeChangedInfo.cs
- AlternateView.cs
- HtmlTitle.cs
- ScriptModule.cs
- Vector3DValueSerializer.cs
- StateChangeEvent.cs
- Scheduling.cs
- HostUtils.cs
- SqlSelectClauseBuilder.cs
- LocatorBase.cs
- WebBrowserContainer.cs
- XmlDigitalSignatureProcessor.cs
- SmtpNegotiateAuthenticationModule.cs
- SchemaEntity.cs
- FollowerQueueCreator.cs
- MarshalDirectiveException.cs
- SqlConnectionString.cs
- XmlSerializationWriter.cs
- ReceiveCompletedEventArgs.cs
- WindowsProgressbar.cs
- ProgramNode.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataControlFieldTypeEditor.cs
- ObjectResult.cs
- SplashScreen.cs
- Events.cs
- SoapEnumAttribute.cs
- AjaxFrameworkAssemblyAttribute.cs
- EventLogEntryCollection.cs
- Underline.cs
- Simplifier.cs
- CoreSwitches.cs
- CqlLexer.cs
- SecurityVerifiedMessage.cs
- IEnumerable.cs
- SqlDataSource.cs
- FullTrustAssemblyCollection.cs
- XmlResolver.cs
- CallSiteBinder.cs
- WebPartZoneCollection.cs
- GeometryModel3D.cs
- DropDownHolder.cs
- coordinatorscratchpad.cs
- SwitchElementsCollection.cs
- EncodingDataItem.cs
- ResourceReferenceExpression.cs
- ScrollContentPresenter.cs
- TextRangeProviderWrapper.cs
- BinaryObjectReader.cs
- TextSelectionHelper.cs
- HttpRequestCacheValidator.cs
- WebPartUserCapability.cs
- CultureMapper.cs
- DBBindings.cs
- Triangle.cs
- SessionParameter.cs
- ByteStreamGeometryContext.cs
- GraphicsState.cs
- RegexMatchCollection.cs
- EntityKey.cs
- ModifierKeysValueSerializer.cs
- Utils.cs
- ProfileService.cs
- LookupNode.cs