Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / NamespaceQuery.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Compiler.cs
- GlyphingCache.cs
- ControlPropertyNameConverter.cs
- CustomError.cs
- PolyQuadraticBezierSegment.cs
- ChangePasswordDesigner.cs
- SchemaImporterExtensionsSection.cs
- XmlAttribute.cs
- Transform3D.cs
- DebugController.cs
- QilFunction.cs
- MediaCommands.cs
- RijndaelCryptoServiceProvider.cs
- ConditionalBranch.cs
- TextHidden.cs
- Win32Interop.cs
- FormViewUpdateEventArgs.cs
- NativeMethods.cs
- DetailsViewInsertEventArgs.cs
- AdornerHitTestResult.cs
- IsolatedStoragePermission.cs
- MailBnfHelper.cs
- CellPartitioner.cs
- SingleAnimationBase.cs
- OdbcDataReader.cs
- PrintingPermissionAttribute.cs
- RemotingConfigParser.cs
- __Error.cs
- _NtlmClient.cs
- ToolBarButtonClickEvent.cs
- TraceListener.cs
- UnsupportedPolicyOptionsException.cs
- DataGridAddNewRow.cs
- ModifierKeysValueSerializer.cs
- ParsedAttributeCollection.cs
- RootBuilder.cs
- DataGridPagerStyle.cs
- WmfPlaceableFileHeader.cs
- SQLMembershipProvider.cs
- DrawingImage.cs
- FileIOPermission.cs
- ConfigPathUtility.cs
- XmlQueryTypeFactory.cs
- DockingAttribute.cs
- AppSettings.cs
- ProfileSettings.cs
- QueryParameter.cs
- SqlFileStream.cs
- TrackingProfileDeserializationException.cs
- XmlSchemaNotation.cs
- NativeRightsManagementAPIsStructures.cs
- GifBitmapDecoder.cs
- JpegBitmapEncoder.cs
- wpf-etw.cs
- ResolvedKeyFrameEntry.cs
- ResourceWriter.cs
- NumericUpDownAccelerationCollection.cs
- AttachedAnnotationChangedEventArgs.cs
- ComponentCommands.cs
- HtmlListAdapter.cs
- DrawingContext.cs
- MobileControlsSection.cs
- IndexedWhereQueryOperator.cs
- AmbientEnvironment.cs
- SpeakProgressEventArgs.cs
- EntityType.cs
- MultipleViewProviderWrapper.cs
- Random.cs
- TraceFilter.cs
- SettingsPropertyIsReadOnlyException.cs
- SqlBulkCopyColumnMappingCollection.cs
- InstalledVoice.cs
- DescendantOverDescendantQuery.cs
- Group.cs
- Symbol.cs
- KeyInstance.cs
- ToolStripManager.cs
- DataGridCellInfo.cs
- RankException.cs
- EntityCommandDefinition.cs
- XmlSerializer.cs
- StylusButtonEventArgs.cs
- Nodes.cs
- DataControlFieldsEditor.cs
- StoreAnnotationsMap.cs
- DocumentPage.cs
- XmlSchemaSimpleTypeList.cs
- ProcessInfo.cs
- BStrWrapper.cs
- CurrentChangingEventManager.cs
- MDIControlStrip.cs
- Vector3DConverter.cs
- COM2Enum.cs
- ObjectStateEntry.cs
- SubtreeProcessor.cs
- SqlFormatter.cs
- GraphicsPathIterator.cs
- DeclarativeCatalogPart.cs
- SamlAdvice.cs
- Monitor.cs