Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathAxisIterator.cs / 1305376 / XPathAxisIterator.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;
using System.Globalization;
internal abstract class XPathAxisIterator: XPathNodeIterator {
internal XPathNavigator nav;
internal XPathNodeType type;
internal string name;
internal string uri;
internal int position;
internal bool matchSelf;
internal bool first = true;
public XPathAxisIterator(XPathNavigator nav, bool matchSelf) {
this.nav = nav;
this.matchSelf = matchSelf;
}
public XPathAxisIterator(XPathNavigator nav, XPathNodeType type, bool matchSelf) : this(nav, matchSelf) {
this.type = type;
}
public XPathAxisIterator(XPathNavigator nav, string name, string namespaceURI, bool matchSelf) : this(nav, matchSelf) {
if (name == null) throw new ArgumentNullException("name");
if (namespaceURI == null) throw new ArgumentNullException("namespaceURI");
this.name = name;
this.uri = namespaceURI;
}
public XPathAxisIterator(XPathAxisIterator it) {
this.nav = it.nav.Clone();
this.type = it.type;
this.name = it.name;
this.uri = it.uri;
this.position = it.position;
this.matchSelf = it.matchSelf;
this.first = it.first;
}
public override XPathNavigator Current {
get { return nav; }
}
public override int CurrentPosition {
get { return position; }
}
// Nodetype Matching - Given nodetype matches the navigator's nodetype
//Given nodetype is all . So it matches everything
//Given nodetype is text - Matches text, WS, Significant WS
protected virtual bool Matches {
get {
if (name == null) {
return (
type == nav.NodeType ||
type == XPathNodeType.All ||
type == XPathNodeType.Text && (
nav.NodeType == XPathNodeType.Whitespace ||
nav.NodeType == XPathNodeType.SignificantWhitespace
)
);
} else {
return(
nav.NodeType == XPathNodeType.Element &&
(name.Length == 0 || name == nav.LocalName) &&
(uri == nav.NamespaceURI)
);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- URLAttribute.cs
- Canvas.cs
- ParsedAttributeCollection.cs
- X509WindowsSecurityToken.cs
- CompositeControl.cs
- ChameleonKey.cs
- SerializerWriterEventHandlers.cs
- ToolStripPanelDesigner.cs
- EnumType.cs
- Hash.cs
- VisualState.cs
- StylusPointProperties.cs
- CommandField.cs
- WpfKnownTypeInvoker.cs
- DataGridViewRowCollection.cs
- ToolStripDropDown.cs
- PointAnimationUsingKeyFrames.cs
- AppDomainProtocolHandler.cs
- DefaultValueAttribute.cs
- InkCanvasAutomationPeer.cs
- Nodes.cs
- DecoderReplacementFallback.cs
- ResourceBinder.cs
- RestHandlerFactory.cs
- StateItem.cs
- TraceUtility.cs
- MutexSecurity.cs
- ConfigErrorGlyph.cs
- AudioFileOut.cs
- UniqueTransportManagerRegistration.cs
- EntityDataSourceContextCreatedEventArgs.cs
- DbConnectionFactory.cs
- ParallelTimeline.cs
- WindowsPen.cs
- EventWaitHandleSecurity.cs
- SortFieldComparer.cs
- SerialPort.cs
- KnownTypeHelper.cs
- RegistryPermission.cs
- ClassHandlersStore.cs
- NavigationProperty.cs
- Boolean.cs
- UIntPtr.cs
- DbXmlEnabledProviderManifest.cs
- TableItemPattern.cs
- WebFaultException.cs
- DoubleIndependentAnimationStorage.cs
- ProcessHostFactoryHelper.cs
- CreateUserWizardAutoFormat.cs
- FixedPosition.cs
- PropertyChangedEventArgs.cs
- UrlMappingCollection.cs
- HtmlTableRow.cs
- CodeAccessPermission.cs
- DescendantBaseQuery.cs
- ReadOnlyDataSource.cs
- ProtocolInformationReader.cs
- ContentOperations.cs
- SqlLiftWhereClauses.cs
- CriticalExceptions.cs
- xmlglyphRunInfo.cs
- AppDomainCompilerProxy.cs
- SortDescription.cs
- Attributes.cs
- GlyphRunDrawing.cs
- ListViewItem.cs
- ClipboardData.cs
- ClientApiGenerator.cs
- HttpInputStream.cs
- Axis.cs
- ElementNotEnabledException.cs
- TypeDescriptionProvider.cs
- ValueConversionAttribute.cs
- DbConnectionPool.cs
- ColumnResult.cs
- IItemProperties.cs
- ConstructorNeedsTagAttribute.cs
- remotingproxy.cs
- ClientBuildManager.cs
- RefreshPropertiesAttribute.cs
- ClientUrlResolverWrapper.cs
- DynamicFilterExpression.cs
- DataException.cs
- DynamicObject.cs
- WindowsPrincipal.cs
- ApplicationProxyInternal.cs
- KeyProperty.cs
- ButtonChrome.cs
- translator.cs
- LinqDataSourceSelectEventArgs.cs
- IdleTimeoutMonitor.cs
- ServiceObjectContainer.cs
- IncrementalReadDecoders.cs
- ToolStripEditorManager.cs
- Pair.cs
- CardSpaceSelector.cs
- Component.cs
- WindowsScroll.cs
- StringOutput.cs
- OracleRowUpdatedEventArgs.cs