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
- SessionStateModule.cs
- _FtpControlStream.cs
- SHA256Managed.cs
- TopClause.cs
- Model3DGroup.cs
- EntityDataSourceColumn.cs
- NativeMethods.cs
- HtmlContainerControl.cs
- CommonRemoteMemoryBlock.cs
- TextSelectionHighlightLayer.cs
- UnsignedPublishLicense.cs
- InkCanvasAutomationPeer.cs
- CollectionViewGroup.cs
- DaylightTime.cs
- Int16.cs
- WebPartRestoreVerb.cs
- DependencyPropertyDescriptor.cs
- TypeForwardedToAttribute.cs
- WebServiceReceiveDesigner.cs
- ProfessionalColorTable.cs
- ImpersonationContext.cs
- DateBoldEvent.cs
- BuildProviderAppliesToAttribute.cs
- TextEditorThreadLocalStore.cs
- MessageRpc.cs
- ContactManager.cs
- XmlName.cs
- Command.cs
- SQLInt16.cs
- CompiledXpathExpr.cs
- SqlProvider.cs
- Visual3D.cs
- _RequestCacheProtocol.cs
- WorkflowOperationBehavior.cs
- MemoryStream.cs
- TextRangeProviderWrapper.cs
- CodeDOMProvider.cs
- InputElement.cs
- ImpersonateTokenRef.cs
- Mappings.cs
- BasicHttpSecurityMode.cs
- ApplicationCommands.cs
- Camera.cs
- NetCodeGroup.cs
- UnmanagedMarshal.cs
- ContentValidator.cs
- ScrollChangedEventArgs.cs
- SharedPerformanceCounter.cs
- MultiBinding.cs
- ErrorWrapper.cs
- SqlConnectionFactory.cs
- DataGridViewCellFormattingEventArgs.cs
- PropertyFilter.cs
- PrintDialogException.cs
- DataGridAutomationPeer.cs
- InstancePersistenceException.cs
- QueryComponents.cs
- MetadataUtil.cs
- TaskFactory.cs
- RepeaterItem.cs
- EnumerableWrapperWeakToStrong.cs
- LogFlushAsyncResult.cs
- ModuleBuilderData.cs
- OrderedDictionary.cs
- DataGridViewTopLeftHeaderCell.cs
- DispatcherOperation.cs
- ToolBar.cs
- XmlDownloadManager.cs
- EntityCollectionChangedParams.cs
- TextTreeRootNode.cs
- XamlPoint3DCollectionSerializer.cs
- Column.cs
- Stopwatch.cs
- EdmMember.cs
- GenericUriParser.cs
- DataControlFieldCollection.cs
- KeyValuePair.cs
- WindowHideOrCloseTracker.cs
- ResourcePool.cs
- ECDsa.cs
- ControlEvent.cs
- JumpItem.cs
- LinqTreeNodeEvaluator.cs
- WindowsAuthenticationModule.cs
- SevenBitStream.cs
- ContentControl.cs
- _AcceptOverlappedAsyncResult.cs
- FileSystemInfo.cs
- Calendar.cs
- TrackingMemoryStreamFactory.cs
- SelectionWordBreaker.cs
- CharEnumerator.cs
- WizardPanel.cs
- LogicalExpr.cs
- ApplicationActivator.cs
- ImageIndexEditor.cs
- _ListenerResponseStream.cs
- TdsParserSessionPool.cs
- FieldNameLookup.cs
- ToolConsole.cs