Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- PixelFormatConverter.cs
- RegexStringValidator.cs
- WebBrowserPermission.cs
- ListSortDescriptionCollection.cs
- DbProviderFactoriesConfigurationHandler.cs
- DataGridViewIntLinkedList.cs
- GlyphRunDrawing.cs
- RefExpr.cs
- PackageController.cs
- GraphicsPath.cs
- TemplateParser.cs
- ComponentManagerBroker.cs
- SafeNativeMethods.cs
- XMLSyntaxException.cs
- GlobalEventManager.cs
- Stylus.cs
- _NegotiateClient.cs
- TypeConverter.cs
- ListenerChannelContext.cs
- MatcherBuilder.cs
- WorkflowPageSetupDialog.cs
- TdsValueSetter.cs
- UpdateExpressionVisitor.cs
- _KerberosClient.cs
- TableDetailsCollection.cs
- XmlIterators.cs
- GeometryHitTestResult.cs
- SemanticValue.cs
- EventLogger.cs
- Roles.cs
- TableLayoutSettingsTypeConverter.cs
- SecurityPermission.cs
- WebRequestModuleElementCollection.cs
- ClientTargetCollection.cs
- basemetadatamappingvisitor.cs
- SiteMapDataSource.cs
- IApplicationTrustManager.cs
- DynamicResourceExtension.cs
- ShapeTypeface.cs
- MergeExecutor.cs
- FormViewPageEventArgs.cs
- SqlBuffer.cs
- XamlStyleSerializer.cs
- SizeConverter.cs
- UInt32.cs
- AutomationAttributeInfo.cs
- HtmlButton.cs
- SessionStateModule.cs
- XmlIterators.cs
- DecimalConstantAttribute.cs
- glyphs.cs
- InheritablePropertyChangeInfo.cs
- LockCookie.cs
- DesignerInterfaces.cs
- TextDecorationLocationValidation.cs
- MenuStrip.cs
- ContextStack.cs
- FontStyleConverter.cs
- MessageQueueInstaller.cs
- HtmlSelect.cs
- DispatcherExceptionEventArgs.cs
- BevelBitmapEffect.cs
- DockingAttribute.cs
- EnumerableRowCollection.cs
- CultureInfo.cs
- LookupBindingPropertiesAttribute.cs
- SafeNativeMethods.cs
- UndoEngine.cs
- AlphaSortedEnumConverter.cs
- Rotation3DAnimationUsingKeyFrames.cs
- ConfigPathUtility.cs
- MediaElement.cs
- WinCategoryAttribute.cs
- TableHeaderCell.cs
- EntityKeyElement.cs
- DesignParameter.cs
- UdpDiscoveryEndpointProvider.cs
- SchemaImporterExtensionElement.cs
- MatchingStyle.cs
- ParallelEnumerableWrapper.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ConditionCollection.cs
- GatewayDefinition.cs
- PropertyChangeTracker.cs
- ContravarianceAdapter.cs
- RegexCode.cs
- PersonalizationStateQuery.cs
- DocumentReferenceCollection.cs
- precedingsibling.cs
- HttpClientCertificate.cs
- SslStream.cs
- FormattedTextSymbols.cs
- SrgsElement.cs
- NullableDecimalAverageAggregationOperator.cs
- CellParaClient.cs
- DataGridViewImageCell.cs
- ColorConvertedBitmapExtension.cs
- WindowsFormsLinkLabel.cs
- PenLineCapValidation.cs
- VirtualPath.cs