Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlILIndex.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- PersonalizationEntry.cs
- WriteFileContext.cs
- ResourcePart.cs
- ResourcePart.cs
- ContentElementCollection.cs
- QuaternionAnimationBase.cs
- TextEditorTables.cs
- ILGenerator.cs
- TrackBar.cs
- DbConnectionPoolGroupProviderInfo.cs
- SmtpMail.cs
- BackgroundFormatInfo.cs
- ProcessThread.cs
- Selector.cs
- XmlSchema.cs
- RangeValidator.cs
- TrimSurroundingWhitespaceAttribute.cs
- PropertyGridEditorPart.cs
- UnsafeNativeMethods.cs
- FormsAuthenticationTicket.cs
- BuiltInExpr.cs
- XsdValidatingReader.cs
- ParameterToken.cs
- TimeoutStream.cs
- RegexTree.cs
- VisualBasicValue.cs
- WebColorConverter.cs
- HTTPNotFoundHandler.cs
- CodeTryCatchFinallyStatement.cs
- ComponentResourceManager.cs
- MaskedTextProvider.cs
- ListControl.cs
- RightsManagementEncryptionTransform.cs
- ButtonBase.cs
- Console.cs
- StylusPointPropertyUnit.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- SettingsBase.cs
- WebPartConnectionsDisconnectVerb.cs
- AdRotator.cs
- XPathMultyIterator.cs
- XmlElementCollection.cs
- GridViewUpdatedEventArgs.cs
- ProtocolsConfiguration.cs
- ValueCollectionParameterReader.cs
- WasAdminWrapper.cs
- GroupBoxRenderer.cs
- BamlLocalizer.cs
- CodeTypeReference.cs
- Border.cs
- TextRange.cs
- HostingPreferredMapPath.cs
- PerspectiveCamera.cs
- UserControlDocumentDesigner.cs
- WindowsGraphicsWrapper.cs
- BindingMemberInfo.cs
- TextRangeEditTables.cs
- ContourSegment.cs
- ScopelessEnumAttribute.cs
- WebPartConnectionsEventArgs.cs
- LinearGradientBrush.cs
- FontCacheUtil.cs
- PackageFilter.cs
- UniqueConstraint.cs
- AutomationElement.cs
- ProcessModelInfo.cs
- FilterInvalidBodyAccessException.cs
- EntityConnectionStringBuilder.cs
- MergePropertyDescriptor.cs
- IndentedWriter.cs
- HyperLinkField.cs
- QueryStringParameter.cs
- XmlHierarchicalEnumerable.cs
- _KerberosClient.cs
- ConfigurationStrings.cs
- RijndaelManaged.cs
- UniqueIdentifierService.cs
- ListSortDescription.cs
- SmtpNtlmAuthenticationModule.cs
- wpf-etw.cs
- WorkBatch.cs
- XPathScanner.cs
- CallSiteBinder.cs
- ByteAnimationBase.cs
- CommonObjectSecurity.cs
- CollectionsUtil.cs
- ContentFilePart.cs
- JsonWriterDelegator.cs
- DefinitionBase.cs
- EditorOptionAttribute.cs
- EdmItemCollection.cs
- GradientStop.cs
- Point3DAnimation.cs
- Native.cs
- SpeechRecognizer.cs
- MetadataArtifactLoaderFile.cs
- EditorZoneBase.cs
- DeferredBinaryDeserializerExtension.cs
- DataGridColumn.cs
- SessionStateItemCollection.cs