Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathAxisIterator.cs / 1 / 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.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GifBitmapDecoder.cs
- DesignerObjectListAdapter.cs
- ArgumentOutOfRangeException.cs
- PropertyChangedEventArgs.cs
- SqlProfileProvider.cs
- SmiEventSink.cs
- DbDataReader.cs
- ConnectionManagementSection.cs
- SocketAddress.cs
- QilInvoke.cs
- DetailsViewUpdateEventArgs.cs
- MailAddressCollection.cs
- DataPagerFieldCollection.cs
- TypeForwardedFromAttribute.cs
- UIElementCollection.cs
- ObjectNavigationPropertyMapping.cs
- StoryFragments.cs
- TemplateControl.cs
- SmtpFailedRecipientsException.cs
- ServiceContractAttribute.cs
- DurableMessageDispatchInspector.cs
- ColumnPropertiesGroup.cs
- XpsS0ValidatingLoader.cs
- Configuration.cs
- BamlBinaryReader.cs
- JapaneseLunisolarCalendar.cs
- WorkflowValidationFailedException.cs
- FirstMatchCodeGroup.cs
- DictionarySectionHandler.cs
- CustomErrorsSection.cs
- DataServiceResponse.cs
- Rotation3DAnimation.cs
- ChainedAsyncResult.cs
- ToolStripSettings.cs
- InstanceOwner.cs
- HwndKeyboardInputProvider.cs
- DoubleAnimationUsingKeyFrames.cs
- XmlSchemaAny.cs
- BaseCodePageEncoding.cs
- DbException.cs
- SiteMap.cs
- dataprotectionpermissionattribute.cs
- CompilerParameters.cs
- WeakHashtable.cs
- XmlSchemaAny.cs
- BaseProcessor.cs
- WebRequestModulesSection.cs
- HTMLTagNameToTypeMapper.cs
- SqlBuffer.cs
- VectorKeyFrameCollection.cs
- ToolStripSystemRenderer.cs
- CodeCastExpression.cs
- XmlDigitalSignatureProcessor.cs
- InputScope.cs
- DataSvcMapFileSerializer.cs
- UnicastIPAddressInformationCollection.cs
- FixedPageProcessor.cs
- AlphabetConverter.cs
- UserPreferenceChangingEventArgs.cs
- EventLogPermission.cs
- StringBuilder.cs
- XmlStreamStore.cs
- StatusBarAutomationPeer.cs
- Group.cs
- CodeAttributeDeclaration.cs
- ScrollChrome.cs
- RootCodeDomSerializer.cs
- SqlExpressionNullability.cs
- WindowsTab.cs
- PolicyManager.cs
- XmlSchemaExternal.cs
- DataSvcMapFile.cs
- ObjectDataSourceFilteringEventArgs.cs
- columnmapfactory.cs
- ScrollProviderWrapper.cs
- DodSequenceMerge.cs
- AutoSizeComboBox.cs
- QueueException.cs
- StaticResourceExtension.cs
- IssuanceLicense.cs
- BindingListCollectionView.cs
- ConstantCheck.cs
- XmlTextReader.cs
- DbgUtil.cs
- MultipleViewPattern.cs
- UserControl.cs
- SafeNativeMemoryHandle.cs
- VectorCollectionConverter.cs
- IISUnsafeMethods.cs
- ErrorFormatter.cs
- XmlSchemaIdentityConstraint.cs
- CompiledQuery.cs
- SiteMapDataSource.cs
- Pair.cs
- SchemaSetCompiler.cs
- StaticExtensionConverter.cs
- ZoneMembershipCondition.cs
- ResXResourceWriter.cs
- OdbcConnectionStringbuilder.cs
- PageParserFilter.cs