Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / NamespaceQuery.cs / 1 / NamespaceQuery.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 sealed class NamespaceQuery : BaseAxisQuery {
private bool onNamespace;
public NamespaceQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type) : base(qyParent, Name, Prefix, Type) {}
private NamespaceQuery(NamespaceQuery other) : base(other) {
this.onNamespace = other.onNamespace;
}
public override void Reset() {
onNamespace = false;
base.Reset();
}
public override XPathNavigator Advance() {
while (true) {
if (!onNamespace) {
currentNode = qyInput.Advance();
if (currentNode == null) {
return null;
}
position = 0;
currentNode = currentNode.Clone();
onNamespace = currentNode.MoveToFirstNamespace();
} else {
onNamespace = currentNode.MoveToNextNamespace();
}
if (onNamespace) {
if (matches(currentNode)) {
position++;
return currentNode;
}
}
} // while
} // Advance
public override bool matches(XPathNavigator e) {
Debug.Assert(e.NodeType == XPathNodeType.Namespace);
if (e.Value.Length == 0) {
Debug.Assert(e.LocalName.Length == 0, "Only xmlns='' can have empty string as a value");
// Namespace axes never returns xmlns='',
// because it's not a NS declaration but rather undeclaration.
return false;
}
if (NameTest) {
return Name.Equals(e.LocalName);
} else {
return true;
}
}
public override XPathNodeIterator Clone() { return new NamespaceQuery(this); }
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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 sealed class NamespaceQuery : BaseAxisQuery {
private bool onNamespace;
public NamespaceQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type) : base(qyParent, Name, Prefix, Type) {}
private NamespaceQuery(NamespaceQuery other) : base(other) {
this.onNamespace = other.onNamespace;
}
public override void Reset() {
onNamespace = false;
base.Reset();
}
public override XPathNavigator Advance() {
while (true) {
if (!onNamespace) {
currentNode = qyInput.Advance();
if (currentNode == null) {
return null;
}
position = 0;
currentNode = currentNode.Clone();
onNamespace = currentNode.MoveToFirstNamespace();
} else {
onNamespace = currentNode.MoveToNextNamespace();
}
if (onNamespace) {
if (matches(currentNode)) {
position++;
return currentNode;
}
}
} // while
} // Advance
public override bool matches(XPathNavigator e) {
Debug.Assert(e.NodeType == XPathNodeType.Namespace);
if (e.Value.Length == 0) {
Debug.Assert(e.LocalName.Length == 0, "Only xmlns='' can have empty string as a value");
// Namespace axes never returns xmlns='',
// because it's not a NS declaration but rather undeclaration.
return false;
}
if (NameTest) {
return Name.Equals(e.LocalName);
} else {
return true;
}
}
public override XPathNodeIterator Clone() { return new NamespaceQuery(this); }
}
}
// 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
- GatewayDefinition.cs
- DeferrableContent.cs
- DescriptionAttribute.cs
- ByteKeyFrameCollection.cs
- ToolStripControlHost.cs
- Gdiplus.cs
- StructuredType.cs
- Bezier.cs
- DESCryptoServiceProvider.cs
- FunctionImportMapping.cs
- InvalidPrinterException.cs
- ConfigXmlCDataSection.cs
- ObjectQueryState.cs
- ServerIdentity.cs
- WrappedIUnknown.cs
- StatusCommandUI.cs
- UrlPropertyAttribute.cs
- ConfigurationLocation.cs
- DigitShape.cs
- Stacktrace.cs
- XpsResourceDictionary.cs
- AutomationPeer.cs
- ToolStripInSituService.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ComplexBindingPropertiesAttribute.cs
- CodeDirectoryCompiler.cs
- ChannelCacheSettings.cs
- XmlValidatingReader.cs
- RemotingConfigParser.cs
- SHA512CryptoServiceProvider.cs
- ControlTemplate.cs
- Size3D.cs
- ClientSession.cs
- CompiledIdentityConstraint.cs
- Switch.cs
- ImportContext.cs
- HtmlInputHidden.cs
- ToolStripContentPanelDesigner.cs
- SqlDataSourceFilteringEventArgs.cs
- externdll.cs
- AppModelKnownContentFactory.cs
- UITypeEditor.cs
- TabControlCancelEvent.cs
- GroupItemAutomationPeer.cs
- TransformedBitmap.cs
- DurationConverter.cs
- ListViewItem.cs
- PageThemeParser.cs
- DrawingContextWalker.cs
- HttpHandler.cs
- HttpServerVarsCollection.cs
- DoubleIndependentAnimationStorage.cs
- StreamInfo.cs
- CompositeScriptReferenceEventArgs.cs
- TextPointerBase.cs
- ProfileGroupSettings.cs
- ResourcePermissionBaseEntry.cs
- arabicshape.cs
- DBDataPermissionAttribute.cs
- TemplateParser.cs
- BorderGapMaskConverter.cs
- MenuCommandsChangedEventArgs.cs
- FontStretchConverter.cs
- SymbolEqualComparer.cs
- XPathSingletonIterator.cs
- PeerToPeerException.cs
- ContainerAction.cs
- BitmapEffectDrawing.cs
- ConfigurationManagerHelperFactory.cs
- XmlSchemaExporter.cs
- XmlEntityReference.cs
- DataTableCollection.cs
- EdmFunction.cs
- LinqDataSourceDeleteEventArgs.cs
- DependencyObject.cs
- DataFormats.cs
- precedingsibling.cs
- ProxyWebPartConnectionCollection.cs
- OutputScopeManager.cs
- ScrollBar.cs
- TextEditorThreadLocalStore.cs
- RelationshipEnd.cs
- ObjectDataSourceStatusEventArgs.cs
- AlignmentYValidation.cs
- DictionaryTraceRecord.cs
- ConfigurationException.cs
- Win32KeyboardDevice.cs
- BitmapScalingModeValidation.cs
- ColorContext.cs
- MULTI_QI.cs
- FontWeight.cs
- HeaderedContentControl.cs
- Lookup.cs
- CmsUtils.cs
- CookieHandler.cs
- EntityDataSourceContainerNameConverter.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ImpersonationContext.cs
- RuleSetDialog.cs
- InputElement.cs