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
- AuthenticationException.cs
- BehaviorEditorPart.cs
- AdornerPresentationContext.cs
- ReadOnlyTernaryTree.cs
- DesignerActionKeyboardBehavior.cs
- EventEntry.cs
- QilExpression.cs
- IteratorFilter.cs
- ColumnMapTranslator.cs
- LinqDataView.cs
- RegistryConfigurationProvider.cs
- FontUnit.cs
- ClientEventManager.cs
- HtmlElementErrorEventArgs.cs
- ListViewEditEventArgs.cs
- StrongNameIdentityPermission.cs
- ExpressionBinding.cs
- RawStylusInputCustomDataList.cs
- GenericUI.cs
- Rectangle.cs
- SqlMultiplexer.cs
- ExceptionUtil.cs
- CustomErrorsSectionWrapper.cs
- KeyTime.cs
- AnnotationAdorner.cs
- ColumnHeaderConverter.cs
- XPathItem.cs
- DoubleAnimationClockResource.cs
- Version.cs
- EventLogger.cs
- RuntimeWrappedException.cs
- ConfigViewGenerator.cs
- NewArrayExpression.cs
- CodeRegionDirective.cs
- DataListDesigner.cs
- NotifyParentPropertyAttribute.cs
- _AutoWebProxyScriptEngine.cs
- TimeSpan.cs
- DataSourceHelper.cs
- RuleElement.cs
- UIElement3D.cs
- TextBoxAutomationPeer.cs
- TargetParameterCountException.cs
- NullableConverter.cs
- TdsParameterSetter.cs
- ListView.cs
- XmlText.cs
- SqlCommand.cs
- FilterElement.cs
- reliableinputsessionchannel.cs
- Message.cs
- EntityDataSourceStatementEditorForm.cs
- ObjectDataSourceView.cs
- XdrBuilder.cs
- XmlChildNodes.cs
- CardSpacePolicyElement.cs
- UriGenerator.cs
- EnumConverter.cs
- TraceRecords.cs
- DrawingAttributesDefaultValueFactory.cs
- InfiniteTimeSpanConverter.cs
- EditorBrowsableAttribute.cs
- HtmlInputImage.cs
- TokenBasedSetEnumerator.cs
- SystemBrushes.cs
- ObjectDataSource.cs
- CopyAttributesAction.cs
- InputMethodStateChangeEventArgs.cs
- PresentationAppDomainManager.cs
- EncoderNLS.cs
- JsonClassDataContract.cs
- SelectionPattern.cs
- MatrixTransform3D.cs
- InvokeGenerator.cs
- SoapBinding.cs
- InsufficientMemoryException.cs
- rsa.cs
- CollectionViewSource.cs
- XmlnsCache.cs
- SmtpLoginAuthenticationModule.cs
- CodeExpressionCollection.cs
- ListViewDeleteEventArgs.cs
- ObjectMaterializedEventArgs.cs
- WorkflowMarkupElementEventArgs.cs
- EraserBehavior.cs
- ActivitySurrogateSelector.cs
- TokenFactoryFactory.cs
- PenThreadPool.cs
- ControlEvent.cs
- TextEditor.cs
- Comparer.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- DataPagerFieldItem.cs
- AspProxy.cs
- SerializationAttributes.cs
- DiscoveryInnerClientAdhoc11.cs
- TemplateKey.cs
- Equal.cs
- HashCryptoHandle.cs
- DescriptionAttribute.cs