Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / MergeFilterQuery.cs / 2 / MergeFilterQuery.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.Xml.Xsl; using System.Collections.Generic; internal sealed class MergeFilterQuery : CacheOutputQuery { private Query child; public MergeFilterQuery(Query input, Query child) : base(input) { this.child = child; } private MergeFilterQuery(MergeFilterQuery other) : base(other) { this.child = Clone(other.child); } public override void SetXsltContext(XsltContext xsltContext) { base.SetXsltContext(xsltContext); child.SetXsltContext(xsltContext); } public override object Evaluate(XPathNodeIterator nodeIterator) { base.Evaluate(nodeIterator); while (input.Advance() != null) { child.Evaluate(input); XPathNavigator node; while ((node = child.Advance()) != null) { Insert(outputBuffer, node); } } return this; } public override XPathNavigator MatchNode(XPathNavigator current) { XPathNavigator context = child.MatchNode(current); if (context == null) { return null; } context = input.MatchNode(context); if (context == null) { return null; } Evaluate(new XPathSingletonIterator(context.Clone(), /*moved:*/true)); XPathNavigator result = Advance(); while (result != null) { if (result.IsSamePosition(current)) { return context; } result = Advance(); } return null; } public override XPathNodeIterator Clone() { return new MergeFilterQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); input.PrintQuery(w); child.PrintQuery(w); w.WriteEndElement(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntryPointNotFoundException.cs
- HyperlinkAutomationPeer.cs
- WSHttpSecurity.cs
- SelectorItemAutomationPeer.cs
- TemplateNodeContextMenu.cs
- ParserContext.cs
- WebPartManagerInternals.cs
- AttachedAnnotationChangedEventArgs.cs
- EntityContainerEmitter.cs
- AxHost.cs
- wpf-etw.cs
- HebrewCalendar.cs
- TableParaClient.cs
- Transactions.cs
- DataGridViewCellStyle.cs
- StrokeIntersection.cs
- TranslateTransform.cs
- FileVersion.cs
- __Filters.cs
- CollectionViewSource.cs
- CounterSampleCalculator.cs
- BlurEffect.cs
- Clipboard.cs
- Pen.cs
- ScriptMethodAttribute.cs
- SafeNativeMethods.cs
- InlineUIContainer.cs
- ThreadPoolTaskScheduler.cs
- Expression.cs
- FormClosedEvent.cs
- SessionSwitchEventArgs.cs
- SoapCommonClasses.cs
- ProcessProtocolHandler.cs
- LockedHandleGlyph.cs
- ObjectMemberMapping.cs
- WinFormsSpinner.cs
- SkewTransform.cs
- SafeViewOfFileHandle.cs
- DataGridViewRowPostPaintEventArgs.cs
- DataServicePagingProviderWrapper.cs
- EditingMode.cs
- JsonCollectionDataContract.cs
- ByteFacetDescriptionElement.cs
- RootDesignerSerializerAttribute.cs
- FontStyles.cs
- PrintController.cs
- WsdlEndpointConversionContext.cs
- ButtonFieldBase.cs
- EditorZone.cs
- ToolStrip.cs
- Int32CollectionConverter.cs
- Table.cs
- RegexCode.cs
- SmtpClient.cs
- SmiConnection.cs
- IndexerNameAttribute.cs
- EventDescriptor.cs
- RootCodeDomSerializer.cs
- PropertyGridCommands.cs
- CalendarButton.cs
- CompoundFileReference.cs
- TraceSwitch.cs
- StateChangeEvent.cs
- MimeTypeAttribute.cs
- Trace.cs
- WebBrowserUriTypeConverter.cs
- ITextView.cs
- PropertyItem.cs
- PathBox.cs
- EntityDataSourceWrapperCollection.cs
- ConcurrentQueue.cs
- XmlEncodedRawTextWriter.cs
- NameTable.cs
- SizeIndependentAnimationStorage.cs
- HttpInputStream.cs
- ValidationUtility.cs
- ParagraphVisual.cs
- PublishLicense.cs
- KeyboardEventArgs.cs
- AuthenticationConfig.cs
- Win32Exception.cs
- EntityViewGenerationConstants.cs
- TableColumn.cs
- MetafileHeader.cs
- CodeAttributeArgument.cs
- CodeCompiler.cs
- ServiceParser.cs
- Latin1Encoding.cs
- ConsoleTraceListener.cs
- SettingsAttributes.cs
- XmlQueryType.cs
- BridgeDataReader.cs
- DefinitionUpdate.cs
- JapaneseCalendar.cs
- WebPartConnectVerb.cs
- COM2IDispatchConverter.cs
- ControlSerializer.cs
- FileLevelControlBuilderAttribute.cs
- FactoryGenerator.cs
- Rect.cs