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
- ProfileBuildProvider.cs
- MenuItemStyleCollection.cs
- MissingFieldException.cs
- URLMembershipCondition.cs
- FullTrustAssemblyCollection.cs
- EditorPartCollection.cs
- StackOverflowException.cs
- ReadOnlyDictionary.cs
- DefaultExpressionVisitor.cs
- DataGridCellInfo.cs
- DbParameterCollectionHelper.cs
- Utils.cs
- InvalidFilterCriteriaException.cs
- SingleResultAttribute.cs
- DispatcherHooks.cs
- RealizationDrawingContextWalker.cs
- WebPartConnectionsCancelVerb.cs
- DefaultSerializationProviderAttribute.cs
- ReferentialConstraint.cs
- PagesChangedEventArgs.cs
- FontFamilyValueSerializer.cs
- WebConfigurationFileMap.cs
- Pen.cs
- WindowsSolidBrush.cs
- Int64.cs
- GuidTagList.cs
- RequestedSignatureDialog.cs
- SqlTrackingWorkflowInstance.cs
- DefaultParameterValueAttribute.cs
- DataGridViewColumnCollection.cs
- EnumerableCollectionView.cs
- MenuTracker.cs
- Models.cs
- OracleEncoding.cs
- MenuAutoFormat.cs
- Timer.cs
- DataGridSortCommandEventArgs.cs
- Stream.cs
- FixedSOMGroup.cs
- CompleteWizardStep.cs
- MatchingStyle.cs
- SqlDataSourceFilteringEventArgs.cs
- Logging.cs
- GridViewDeletedEventArgs.cs
- SingleKeyFrameCollection.cs
- SafeNativeMethods.cs
- RequestTimeoutManager.cs
- ListControl.cs
- ContentPosition.cs
- IdleTimeoutMonitor.cs
- EnumerableValidator.cs
- SiteMapDataSourceDesigner.cs
- AnchorEditor.cs
- SurrogateSelector.cs
- FormsAuthentication.cs
- CatalogPartChrome.cs
- ThreadStateException.cs
- ISessionStateStore.cs
- SafeNativeMethods.cs
- ResourceReferenceExpression.cs
- KeyValueInternalCollection.cs
- DataSysAttribute.cs
- CleanUpVirtualizedItemEventArgs.cs
- LineMetrics.cs
- ProxyWebPartConnectionCollection.cs
- EntityDataSourceReferenceGroup.cs
- DesignColumn.cs
- GAC.cs
- Predicate.cs
- SynchronizingStream.cs
- FacetValueContainer.cs
- XmlSchemaCollection.cs
- ObjectItemCachedAssemblyLoader.cs
- _NetRes.cs
- TextViewBase.cs
- BamlBinaryWriter.cs
- SqlInternalConnection.cs
- HwndProxyElementProvider.cs
- JsonReader.cs
- ToolBarButtonClickEvent.cs
- SrgsSemanticInterpretationTag.cs
- Baml6Assembly.cs
- TimeZone.cs
- XmlImplementation.cs
- DataKeyArray.cs
- CodeFieldReferenceExpression.cs
- DataSetViewSchema.cs
- TemporaryBitmapFile.cs
- DockingAttribute.cs
- DataGridTableStyleMappingNameEditor.cs
- PreservationFileWriter.cs
- SectionInformation.cs
- XmlQueryRuntime.cs
- ModelVisual3D.cs
- TileModeValidation.cs
- WebZone.cs
- SByteConverter.cs
- DataGridColumnCollection.cs
- SoundPlayer.cs
- ClaimTypeElementCollection.cs