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 / AttributeQuery.cs / 1 / AttributeQuery.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 AttributeQuery : BaseAxisQuery { private bool onAttribute = false; public AttributeQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type) : base(qyParent, Name, Prefix, Type) {} private AttributeQuery(AttributeQuery other) : base(other) { this.onAttribute = other.onAttribute; } public override void Reset() { onAttribute = false; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (! onAttribute) { currentNode = qyInput.Advance(); if (currentNode == null) { return null; } position = 0; currentNode = currentNode.Clone(); onAttribute = currentNode.MoveToFirstAttribute(); } else { onAttribute = currentNode.MoveToNextAttribute(); } if (onAttribute) { Debug.Assert(! currentNode.NamespaceURI.Equals(XmlReservedNs.NsXmlNs)); if (matches(currentNode)) { position++; return currentNode; } } } // while } public override XPathNavigator MatchNode(XPathNavigator context) { if (context != null) { if (context.NodeType == XPathNodeType.Attribute && matches(context)) { XPathNavigator temp = context.Clone(); if (temp.MoveToParent()) { return qyInput.MatchNode(temp); } } } return null; } public override XPathNodeIterator Clone() { return new AttributeQuery(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 AttributeQuery : BaseAxisQuery { private bool onAttribute = false; public AttributeQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type) : base(qyParent, Name, Prefix, Type) {} private AttributeQuery(AttributeQuery other) : base(other) { this.onAttribute = other.onAttribute; } public override void Reset() { onAttribute = false; base.Reset(); } public override XPathNavigator Advance() { while (true) { if (! onAttribute) { currentNode = qyInput.Advance(); if (currentNode == null) { return null; } position = 0; currentNode = currentNode.Clone(); onAttribute = currentNode.MoveToFirstAttribute(); } else { onAttribute = currentNode.MoveToNextAttribute(); } if (onAttribute) { Debug.Assert(! currentNode.NamespaceURI.Equals(XmlReservedNs.NsXmlNs)); if (matches(currentNode)) { position++; return currentNode; } } } // while } public override XPathNavigator MatchNode(XPathNavigator context) { if (context != null) { if (context.NodeType == XPathNodeType.Attribute && matches(context)) { XPathNavigator temp = context.Clone(); if (temp.MoveToParent()) { return qyInput.MatchNode(temp); } } } return null; } public override XPathNodeIterator Clone() { return new AttributeQuery(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
- HTMLTagNameToTypeMapper.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- DataRelation.cs
- ModuleBuilderData.cs
- CreateSequenceResponse.cs
- WindowPattern.cs
- SimpleLine.cs
- UIElementCollection.cs
- SafeIUnknown.cs
- WrappedKeySecurityToken.cs
- XmlSchemaGroup.cs
- NullableFloatMinMaxAggregationOperator.cs
- RectIndependentAnimationStorage.cs
- URI.cs
- X509SubjectKeyIdentifierClause.cs
- XPathBuilder.cs
- Translator.cs
- DocumentManager.cs
- XPathPatternParser.cs
- __ConsoleStream.cs
- Converter.cs
- ICspAsymmetricAlgorithm.cs
- GuidelineSet.cs
- EmbeddedMailObject.cs
- PolicyStatement.cs
- PersonalizationStateInfo.cs
- sqlmetadatafactory.cs
- CharStorage.cs
- PropertyInformation.cs
- RuleRefElement.cs
- ResourceExpression.cs
- ThemeDictionaryExtension.cs
- Dump.cs
- LocationUpdates.cs
- ErrorWrapper.cs
- DefaultParameterValueAttribute.cs
- TypeSystem.cs
- ToolStripControlHost.cs
- FilterUserControlBase.cs
- TypeSystem.cs
- TdsParserSessionPool.cs
- ConfigurationLockCollection.cs
- CodeFieldReferenceExpression.cs
- DotExpr.cs
- AspNetSynchronizationContext.cs
- MsmqHostedTransportConfiguration.cs
- MediaCommands.cs
- WindowsFormsHostPropertyMap.cs
- Message.cs
- UIElementIsland.cs
- MenuCommand.cs
- TransportContext.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- XmlILConstructAnalyzer.cs
- CodeCatchClauseCollection.cs
- ToolStripLabel.cs
- ImageBrush.cs
- IteratorFilter.cs
- ObjectManager.cs
- PnrpPeerResolver.cs
- Trigger.cs
- ConnectionString.cs
- CodePageUtils.cs
- QuestionEventArgs.cs
- ListItemCollection.cs
- CrossContextChannel.cs
- GridProviderWrapper.cs
- LinqDataSourceView.cs
- XmlSortKeyAccumulator.cs
- HttpCapabilitiesBase.cs
- XamlNamespaceHelper.cs
- newitemfactory.cs
- TextViewSelectionProcessor.cs
- DigitalSignatureProvider.cs
- DataProtection.cs
- DateTimeOffset.cs
- IOException.cs
- DataTemplateSelector.cs
- EditCommandColumn.cs
- FontStretchConverter.cs
- RuntimeConfig.cs
- AQNBuilder.cs
- PropertyConverter.cs
- SystemException.cs
- String.cs
- AssemblySettingAttributes.cs
- WebUtil.cs
- MailSettingsSection.cs
- NestPullup.cs
- EntityDataSourceWizardForm.cs
- ObservableCollection.cs
- _SSPISessionCache.cs
- LineGeometry.cs
- DropTarget.cs
- DBCommand.cs
- FloaterParaClient.cs
- PinnedBufferMemoryStream.cs
- HtmlInputImage.cs
- ELinqQueryState.cs
- Gdiplus.cs