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
- Storyboard.cs
- CursorConverter.cs
- ReadOnlyAttribute.cs
- OleDbTransaction.cs
- DeflateInput.cs
- FastPropertyAccessor.cs
- RectangleHotSpot.cs
- DataListItemEventArgs.cs
- CultureMapper.cs
- RotationValidation.cs
- UITypeEditor.cs
- ManipulationStartedEventArgs.cs
- ReaderWriterLock.cs
- Reference.cs
- SQLDecimalStorage.cs
- WsdlExporter.cs
- contentDescriptor.cs
- ListViewUpdateEventArgs.cs
- DesignerActionItemCollection.cs
- FacetDescription.cs
- CompositeActivityValidator.cs
- BinaryReader.cs
- ColumnHeaderConverter.cs
- DataKeyCollection.cs
- ReferenceService.cs
- TextContainerChangeEventArgs.cs
- CubicEase.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- OleTxTransactionInfo.cs
- ProcessModule.cs
- Queue.cs
- WindowProviderWrapper.cs
- ExecutionEngineException.cs
- ReachBasicContext.cs
- EndEvent.cs
- JobPageOrder.cs
- MasterPageBuildProvider.cs
- SqlDataSourceCache.cs
- BufferModesCollection.cs
- cookieexception.cs
- UnsafeNativeMethods.cs
- AnnotationAdorner.cs
- ImageMetadata.cs
- TreePrinter.cs
- SessionPageStatePersister.cs
- ToolCreatedEventArgs.cs
- DataViewManager.cs
- NamespaceList.cs
- PersistChildrenAttribute.cs
- DefaultAuthorizationContext.cs
- CapabilitiesUse.cs
- CmsInterop.cs
- XPathNavigatorReader.cs
- TagMapCollection.cs
- Html32TextWriter.cs
- PageCodeDomTreeGenerator.cs
- ListDictionary.cs
- HttpModulesSection.cs
- XmlSchemaDatatype.cs
- GenericIdentity.cs
- NativeRightsManagementAPIsStructures.cs
- MetafileHeaderWmf.cs
- WinInetCache.cs
- BackStopAuthenticationModule.cs
- unsafeIndexingFilterStream.cs
- RoleGroupCollection.cs
- MailAddressCollection.cs
- WebContext.cs
- WindowsToolbarAsMenu.cs
- SolidColorBrush.cs
- VBIdentifierName.cs
- XPathNodeIterator.cs
- RenderData.cs
- SaveFileDialog.cs
- OutputCacheModule.cs
- TreeNode.cs
- RewritingProcessor.cs
- EntityCommandDefinition.cs
- BigInt.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ButtonStandardAdapter.cs
- ThumbAutomationPeer.cs
- EntityContainerEntitySet.cs
- AbsoluteQuery.cs
- UserPreferenceChangingEventArgs.cs
- WebPartsPersonalization.cs
- TitleStyle.cs
- TypeLibConverter.cs
- MetadataPropertyAttribute.cs
- sitestring.cs
- RefType.cs
- Timeline.cs
- CallbackBehaviorAttribute.cs
- InputProcessorProfiles.cs
- ContentPropertyAttribute.cs
- TypeSystemProvider.cs
- GCHandleCookieTable.cs
- FindRequestContext.cs
- XPathSelfQuery.cs
- CompModSwitches.cs