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
- XmlCollation.cs
- RTLAwareMessageBox.cs
- SingleAnimation.cs
- IndentTextWriter.cs
- TextServicesLoader.cs
- UnsafeNativeMethods.cs
- SqlDataSourceCache.cs
- SqlError.cs
- MultiViewDesigner.cs
- Policy.cs
- BoundConstants.cs
- PrePostDescendentsWalker.cs
- HttpValueCollection.cs
- NaturalLanguageHyphenator.cs
- ProfileElement.cs
- TypeGeneratedEventArgs.cs
- FormViewCommandEventArgs.cs
- TextEditorCharacters.cs
- AttachedProperty.cs
- BaseCodeDomTreeGenerator.cs
- RadioButtonFlatAdapter.cs
- MetadataException.cs
- CoTaskMemUnicodeSafeHandle.cs
- MethodAccessException.cs
- XsltInput.cs
- MbpInfo.cs
- MediaScriptCommandRoutedEventArgs.cs
- FamilyMapCollection.cs
- AsymmetricCryptoHandle.cs
- WsatStrings.cs
- RuntimeConfigLKG.cs
- HttpWriter.cs
- ReadWriteObjectLock.cs
- SqlUdtInfo.cs
- Rect3D.cs
- AdapterDictionary.cs
- HyperlinkAutomationPeer.cs
- ResourceAttributes.cs
- TreeViewCancelEvent.cs
- ThrowHelper.cs
- Parameter.cs
- OptimizerPatterns.cs
- SoapElementAttribute.cs
- SwitchAttribute.cs
- Point.cs
- WebPartZone.cs
- RecordConverter.cs
- SqlExpander.cs
- MultipleViewPatternIdentifiers.cs
- ModifierKeysConverter.cs
- AnnotationMap.cs
- CompoundFileDeflateTransform.cs
- TimeSpanSecondsConverter.cs
- VideoDrawing.cs
- ChannelRequirements.cs
- DataServiceClientException.cs
- StylusTip.cs
- KeyValuePairs.cs
- DataSvcMapFileSerializer.cs
- EpmContentDeSerializerBase.cs
- SecurityMode.cs
- DataTableNewRowEvent.cs
- RequestStatusBarUpdateEventArgs.cs
- WindowsListView.cs
- MSHTMLHost.cs
- Accessible.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- PageAsyncTaskManager.cs
- ServiceMemoryGates.cs
- BigInt.cs
- CapabilitiesSection.cs
- DesignerLinkAdapter.cs
- ComEventsInfo.cs
- TemplatedMailWebEventProvider.cs
- TrackingCondition.cs
- Geometry3D.cs
- SoapEnvelopeProcessingElement.cs
- TextBoxRenderer.cs
- XmlUnspecifiedAttribute.cs
- TextOutput.cs
- AbstractDataSvcMapFileLoader.cs
- Constraint.cs
- DocumentSchemaValidator.cs
- CodeAttributeArgumentCollection.cs
- BamlVersionHeader.cs
- Binding.cs
- ClientScriptManagerWrapper.cs
- _TimerThread.cs
- CodeAttachEventStatement.cs
- PropertyMapper.cs
- DesignTimeTemplateParser.cs
- IListConverters.cs
- GAC.cs
- ViewStateModeByIdAttribute.cs
- WebPartsPersonalization.cs
- ProtocolProfile.cs
- AllMembershipCondition.cs
- DataGridViewImageCell.cs
- MediaTimeline.cs
- ApplicationServiceHelper.cs