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
- DebugManager.cs
- XmlObjectSerializer.cs
- ResXFileRef.cs
- PageEventArgs.cs
- WorkflowEnvironment.cs
- NTAccount.cs
- TextHintingModeValidation.cs
- ExceptionUtility.cs
- CachedPathData.cs
- SafePEFileHandle.cs
- Viewport3DVisual.cs
- MimeMapping.cs
- ErasingStroke.cs
- RemoteWebConfigurationHost.cs
- CodePageUtils.cs
- CollectionEditor.cs
- CodeTypeDeclarationCollection.cs
- Executor.cs
- ModelFunction.cs
- InternalPermissions.cs
- CollectionChangeEventArgs.cs
- CheckableControlBaseAdapter.cs
- ClientConfigPaths.cs
- HwndStylusInputProvider.cs
- RectangleHotSpot.cs
- Page.cs
- SafeNativeMethods.cs
- TextServicesCompartmentContext.cs
- ColorConvertedBitmapExtension.cs
- TdsParserStaticMethods.cs
- Camera.cs
- ScriptRef.cs
- GlyphsSerializer.cs
- CollectionContainer.cs
- MailWriter.cs
- MimeFormatExtensions.cs
- TreeNodeBinding.cs
- EntityPropertyMappingAttribute.cs
- Timeline.cs
- DisplayInformation.cs
- SHA256Managed.cs
- ProfileGroupSettingsCollection.cs
- NameValueConfigurationCollection.cs
- FormsIdentity.cs
- ArgumentsParser.cs
- FileUtil.cs
- XmlBufferedByteStreamReader.cs
- ReadOnlyCollectionBase.cs
- BCLDebug.cs
- Rect.cs
- StateMachineSubscriptionManager.cs
- RoleManagerModule.cs
- WebPartPersonalization.cs
- RangeContentEnumerator.cs
- ClientSideProviderDescription.cs
- TextLineResult.cs
- DataGridViewDataConnection.cs
- ChannelServices.cs
- Matrix.cs
- XmlSchemaType.cs
- ContentPlaceHolder.cs
- Cursor.cs
- PropertyNames.cs
- ProfileGroupSettingsCollection.cs
- PriorityQueue.cs
- XPathBuilder.cs
- SqlPersonalizationProvider.cs
- ToolStripDropTargetManager.cs
- MenuBase.cs
- BaseInfoTable.cs
- GroupBoxDesigner.cs
- JournalEntryStack.cs
- ColorPalette.cs
- SettingsPropertyCollection.cs
- SectionRecord.cs
- UnaryNode.cs
- SecurityChannelFactory.cs
- documentsequencetextpointer.cs
- RadioButtonPopupAdapter.cs
- FormsAuthenticationUser.cs
- dbdatarecord.cs
- XmlNotation.cs
- CompoundFileStorageReference.cs
- DbModificationCommandTree.cs
- GeneralTransformCollection.cs
- PageStatePersister.cs
- NumericUpDown.cs
- BuildResultCache.cs
- BooleanFunctions.cs
- PrePrepareMethodAttribute.cs
- ClientRuntimeConfig.cs
- WindowsComboBox.cs
- ServiceOperationUIEditor.cs
- DockProviderWrapper.cs
- DataGridViewCellValidatingEventArgs.cs
- RegisteredScript.cs
- NamespaceCollection.cs
- Timer.cs
- XdrBuilder.cs
- TableRowGroup.cs