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
- ItemContainerGenerator.cs
- _LocalDataStoreMgr.cs
- BrowserCapabilitiesFactory.cs
- KeyConstraint.cs
- securitycriticaldataformultiplegetandset.cs
- WorkflowViewStateService.cs
- ExplicitDiscriminatorMap.cs
- WebCategoryAttribute.cs
- FtpCachePolicyElement.cs
- ClientData.cs
- HttpCookiesSection.cs
- SecurityKeyIdentifier.cs
- COAUTHINFO.cs
- TypeElement.cs
- EditBehavior.cs
- SmiSettersStream.cs
- HitTestDrawingContextWalker.cs
- ObjectContextServiceProvider.cs
- ResourceDescriptionAttribute.cs
- NamespaceMapping.cs
- InvokeMemberBinder.cs
- InternalPermissions.cs
- DataServiceQueryProvider.cs
- ComponentDispatcherThread.cs
- TextRenderer.cs
- COM2TypeInfoProcessor.cs
- CompilerInfo.cs
- SplitterEvent.cs
- WorkflowViewStateService.cs
- OdbcUtils.cs
- OdbcConnectionStringbuilder.cs
- ImageBrush.cs
- ProxyManager.cs
- StreamUpgradeProvider.cs
- DrawingVisualDrawingContext.cs
- DrawingBrush.cs
- DispatcherExceptionFilterEventArgs.cs
- ResourcePermissionBase.cs
- Expressions.cs
- KeyConverter.cs
- SqlVersion.cs
- XmlQueryContext.cs
- OleDbParameterCollection.cs
- EdmToObjectNamespaceMap.cs
- FixUpCollection.cs
- ToolStripItemTextRenderEventArgs.cs
- XDRSchema.cs
- Int32Converter.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- CancelEventArgs.cs
- ClientData.cs
- TreeNodeCollectionEditorDialog.cs
- SendingRequestEventArgs.cs
- GetPageCompletedEventArgs.cs
- IndexedEnumerable.cs
- BindingValueChangedEventArgs.cs
- WmfPlaceableFileHeader.cs
- ConnectorMovedEventArgs.cs
- KeyedCollection.cs
- Baml2006KnownTypes.cs
- ScriptingRoleServiceSection.cs
- ProfileModule.cs
- DataGridViewBindingCompleteEventArgs.cs
- regiisutil.cs
- HttpDictionary.cs
- StateItem.cs
- MergablePropertyAttribute.cs
- EventMappingSettings.cs
- EditorAttributeInfo.cs
- CodeExporter.cs
- Random.cs
- CngUIPolicy.cs
- SecurityException.cs
- NonSerializedAttribute.cs
- LogRecordSequence.cs
- StructuralType.cs
- InputProviderSite.cs
- SpecularMaterial.cs
- ParameterReplacerVisitor.cs
- SpeakProgressEventArgs.cs
- ThreadInterruptedException.cs
- WebPartDeleteVerb.cs
- AddInControllerImpl.cs
- _TimerThread.cs
- PropertyGridEditorPart.cs
- SessionStateContainer.cs
- RemoteWebConfigurationHostStream.cs
- Attributes.cs
- DropShadowEffect.cs
- _FtpControlStream.cs
- DataGridComponentEditor.cs
- QueryAccessibilityHelpEvent.cs
- XslVisitor.cs
- SqlBuilder.cs
- XamlReaderHelper.cs
- ISFTagAndGuidCache.cs
- ExpressionEditorAttribute.cs
- HttpContextServiceHost.cs
- TextSimpleMarkerProperties.cs
- XmlSerializerNamespaces.cs