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
- InkSerializer.cs
- StringArrayConverter.cs
- Size.cs
- RemoteWebConfigurationHostServer.cs
- ProjectionCamera.cs
- EmptyEnumerator.cs
- FormViewUpdatedEventArgs.cs
- WindowsFormsDesignerOptionService.cs
- XmlQueryContext.cs
- DataGridViewCellStateChangedEventArgs.cs
- WebConfigurationHostFileChange.cs
- TextMarkerSource.cs
- TypeLibConverter.cs
- AppDomainProtocolHandler.cs
- EmissiveMaterial.cs
- WebBrowser.cs
- DrawingImage.cs
- HitTestParameters3D.cs
- EntityDataSourceStatementEditorForm.cs
- SqlParameter.cs
- WsdlInspector.cs
- DocumentXmlWriter.cs
- BindingContext.cs
- TTSEngineTypes.cs
- ModifierKeysConverter.cs
- BooleanStorage.cs
- UrlPath.cs
- Path.cs
- PhysicalFontFamily.cs
- HtmlHead.cs
- MemberNameValidator.cs
- StyleCollection.cs
- XXXInfos.cs
- DBConcurrencyException.cs
- NameValueSectionHandler.cs
- ActivityExecutor.cs
- Cell.cs
- FunctionParameter.cs
- ListView.cs
- FastPropertyAccessor.cs
- SwitchAttribute.cs
- PropertyNames.cs
- xml.cs
- ErrorProvider.cs
- DomNameTable.cs
- NameValueFileSectionHandler.cs
- PackageDigitalSignatureManager.cs
- LateBoundBitmapDecoder.cs
- ImageDrawing.cs
- FlowSwitch.cs
- GridViewEditEventArgs.cs
- WindowsToolbarAsMenu.cs
- MenuItemCollection.cs
- SqlBulkCopyColumnMapping.cs
- CommandManager.cs
- WindowsScrollBar.cs
- PackageDigitalSignature.cs
- AdornerLayer.cs
- DiscoveryServiceExtension.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- OleDbParameterCollection.cs
- TableColumn.cs
- AppSettingsReader.cs
- COAUTHINFO.cs
- BindingsSection.cs
- XmlDataSourceNodeDescriptor.cs
- ContentElement.cs
- SR.cs
- SqlBuffer.cs
- PipelineModuleStepContainer.cs
- HandlerBase.cs
- EventManager.cs
- JumpList.cs
- NumericExpr.cs
- TokenCreationParameter.cs
- CornerRadiusConverter.cs
- IIS7WorkerRequest.cs
- VirtualDirectoryMappingCollection.cs
- SqlDataReader.cs
- SymLanguageType.cs
- TabControl.cs
- ChangeProcessor.cs
- PageVisual.cs
- OleDbConnection.cs
- CommonDialog.cs
- SubtreeProcessor.cs
- SourceElementsCollection.cs
- LinqDataView.cs
- Visual3D.cs
- MemberMemberBinding.cs
- Bidi.cs
- ManifestSignedXml.cs
- PermissionToken.cs
- DetailsViewUpdatedEventArgs.cs
- AssemblyAssociatedContentFileAttribute.cs
- WindowsEditBox.cs
- XmlBoundElement.cs
- XpsFixedPageReaderWriter.cs
- DesignerValidationSummaryAdapter.cs
- SingleAnimationUsingKeyFrames.cs