Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlILIndex.cs / 1305376 / XmlILIndex.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Xml.XPath; namespace System.Xml.Xsl.Runtime { ////// This class manages nodes from one input document, indexed by key value(s). /// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class XmlILIndex { private Dictionarytable; /// /// This constructor is internal so that external users cannot construct it (and therefore we do not have to test it separately). /// internal XmlILIndex() { this.table = new Dictionary(); } /// /// Add a node indexed by the specified key value. /// public void Add(string key, XPathNavigator navigator) { XmlQueryNodeSequence seq; if (!this.table.TryGetValue(key, out seq)) { // Create a new sequence and add it to the index seq = new XmlQueryNodeSequence(); seq.AddClone(navigator); this.table.Add(key, seq); } else { // The nodes are guaranteed to be added in document order with possible duplicates. // Add node to the existing sequence if it differs from the last one. Debug.Assert(navigator.ComparePosition(seq[seq.Count - 1]) >= 0, "Index nodes must be added in document order"); if (!navigator.IsSamePosition(seq[seq.Count - 1])) { seq.AddClone(navigator); } } } ////// Lookup a sequence of nodes that are indexed by the specified key value. /// Return a non-null empty sequence, if there are no nodes associated with the key. /// public XmlQueryNodeSequence Lookup(string key) { XmlQueryNodeSequence seq; if (!this.table.TryGetValue(key, out seq)) seq = new XmlQueryNodeSequence(); return seq; } } } // 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
- DecimalKeyFrameCollection.cs
- XmlDocumentSchema.cs
- BinarySecretKeyIdentifierClause.cs
- FrameworkTemplate.cs
- FindCriteria11.cs
- StatusBarItem.cs
- MobileContainerDesigner.cs
- CellRelation.cs
- ClickablePoint.cs
- FormsAuthenticationUserCollection.cs
- WindowsIPAddress.cs
- sqlser.cs
- AddressUtility.cs
- ObjectContextServiceProvider.cs
- TypeResolvingOptions.cs
- HostVisual.cs
- ToRequest.cs
- HtmlWindowCollection.cs
- Stroke2.cs
- Transform.cs
- NodeFunctions.cs
- Bidi.cs
- SendMessageRecord.cs
- MessagePropertyAttribute.cs
- FormClosingEvent.cs
- DocumentViewerHelper.cs
- VirtualizingStackPanel.cs
- WindowsGraphicsCacheManager.cs
- ExtensionQuery.cs
- BufferModeSettings.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ViewStateChangedEventArgs.cs
- FileDialogCustomPlacesCollection.cs
- DataGridRow.cs
- ParserOptions.cs
- Rfc2898DeriveBytes.cs
- TraceHandler.cs
- ToolBarButtonClickEvent.cs
- MultipleViewProviderWrapper.cs
- TemplatedMailWebEventProvider.cs
- OLEDB_Util.cs
- ErrorLog.cs
- XmlArrayItemAttribute.cs
- PolygonHotSpot.cs
- StaticSiteMapProvider.cs
- SimpleWorkerRequest.cs
- WriteTimeStream.cs
- QuinticEase.cs
- TreeViewAutomationPeer.cs
- ZoneButton.cs
- ToolboxItemFilterAttribute.cs
- TextEditorTyping.cs
- UrlAuthorizationModule.cs
- PrePostDescendentsWalker.cs
- WithStatement.cs
- CatalogZone.cs
- XamlDebuggerXmlReader.cs
- SyndicationCategory.cs
- dbenumerator.cs
- XsdDuration.cs
- SqlReorderer.cs
- SetIterators.cs
- DataTemplateKey.cs
- altserialization.cs
- SqlCacheDependency.cs
- OracleTransaction.cs
- FormViewUpdatedEventArgs.cs
- FamilyTypeface.cs
- ConfigurationManagerInternalFactory.cs
- SliderAutomationPeer.cs
- HasCopySemanticsAttribute.cs
- TabletDeviceInfo.cs
- DownloadProgressEventArgs.cs
- ToolStripItemClickedEventArgs.cs
- WorkflowOwnerAsyncResult.cs
- DbModificationCommandTree.cs
- SafeNativeMethods.cs
- SystemIPGlobalStatistics.cs
- WebPageTraceListener.cs
- GlobalDataBindingHandler.cs
- HttpListenerRequest.cs
- Processor.cs
- ClientUtils.cs
- EpmSyndicationContentSerializer.cs
- StyleCollection.cs
- ZeroOpNode.cs
- PagePropertiesChangingEventArgs.cs
- SHA256.cs
- DataSetMappper.cs
- DefaultValueTypeConverter.cs
- RoleService.cs
- MTConfigUtil.cs
- ColorTransformHelper.cs
- IListConverters.cs
- AssertUtility.cs
- StandardToolWindows.cs
- XmlEncoding.cs
- ParentQuery.cs
- SHA256Managed.cs
- XmlWrappingWriter.cs