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
- TabControlDesigner.cs
- ChannelManagerService.cs
- DoubleConverter.cs
- SpAudioStreamWrapper.cs
- HostProtectionPermission.cs
- TypeConstant.cs
- TreeView.cs
- AppDomainInstanceProvider.cs
- TextContainerChangeEventArgs.cs
- XPathSelfQuery.cs
- ThreadSafeMessageFilterTable.cs
- DataChangedEventManager.cs
- TimeoutValidationAttribute.cs
- Pointer.cs
- CodeDomConfigurationHandler.cs
- RepeaterItemEventArgs.cs
- WorkflowItemsPresenter.cs
- Update.cs
- CharacterMetrics.cs
- Size3DConverter.cs
- Inflater.cs
- DataGridViewCellLinkedList.cs
- CodeTypeMember.cs
- HighContrastHelper.cs
- ReliableSessionElement.cs
- XmlBindingWorker.cs
- WebPartTracker.cs
- FeatureManager.cs
- printdlgexmarshaler.cs
- HuffmanTree.cs
- ColorKeyFrameCollection.cs
- WindowsListViewItemCheckBox.cs
- ApplicationFileParser.cs
- SqlXmlStorage.cs
- ZoneMembershipCondition.cs
- MimePart.cs
- MethodImplAttribute.cs
- Site.cs
- NameTable.cs
- RegexReplacement.cs
- ProvideValueServiceProvider.cs
- CreateParams.cs
- BackStopAuthenticationModule.cs
- DiscoveryDefaults.cs
- _CacheStreams.cs
- TextSelectionHighlightLayer.cs
- MediaContextNotificationWindow.cs
- TypeKeyValue.cs
- TlsSspiNegotiation.cs
- SaveRecipientRequest.cs
- TypeGeneratedEventArgs.cs
- X509Extension.cs
- UnlockInstanceAsyncResult.cs
- LinqDataSourceView.cs
- Metafile.cs
- SerializerDescriptor.cs
- StringUtil.cs
- XmlILIndex.cs
- XslCompiledTransform.cs
- Int16Converter.cs
- FtpWebRequest.cs
- SearchForVirtualItemEventArgs.cs
- CaseInsensitiveOrdinalStringComparer.cs
- HttpModuleCollection.cs
- Rect3D.cs
- ProviderConnectionPointCollection.cs
- ContextQuery.cs
- StyleCollection.cs
- CapiNative.cs
- ReferenceEqualityComparer.cs
- MemberInitExpression.cs
- SystemUnicastIPAddressInformation.cs
- Sql8ExpressionRewriter.cs
- IUnknownConstantAttribute.cs
- AdCreatedEventArgs.cs
- BaseDataListPage.cs
- ISAPIApplicationHost.cs
- InkPresenter.cs
- Monitor.cs
- EmptyStringExpandableObjectConverter.cs
- CatalogZone.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- Decorator.cs
- PngBitmapDecoder.cs
- ManifestSignatureInformation.cs
- CompilerCollection.cs
- BitmapEffectOutputConnector.cs
- DirectionalLight.cs
- TemplateParser.cs
- RecipientInfo.cs
- LinkAreaEditor.cs
- MsmqEncryptionAlgorithm.cs
- PropertyEmitter.cs
- ComplexBindingPropertiesAttribute.cs
- SqlDataSourceCommandEventArgs.cs
- DependencyObjectPropertyDescriptor.cs
- cookiecontainer.cs
- DataSourceControl.cs
- PeerToPeerException.cs
- ECDsaCng.cs