Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- AssemblyCollection.cs
- FormViewPageEventArgs.cs
- QueryPageSettingsEventArgs.cs
- SetStoryboardSpeedRatio.cs
- Point3DAnimationUsingKeyFrames.cs
- PublishLicense.cs
- RuleInfoComparer.cs
- UnsafeNativeMethods.cs
- QilStrConcat.cs
- safex509handles.cs
- ComponentCodeDomSerializer.cs
- CustomErrorsSection.cs
- Solver.cs
- BamlResourceSerializer.cs
- FactoryMaker.cs
- UpdateRecord.cs
- TreePrinter.cs
- ManagedFilter.cs
- XmlnsCompatibleWithAttribute.cs
- ReadOnlyMetadataCollection.cs
- ColumnReorderedEventArgs.cs
- HGlobalSafeHandle.cs
- LayoutEditorPart.cs
- BaseTemplateCodeDomTreeGenerator.cs
- followingquery.cs
- ItemsPanelTemplate.cs
- UnsupportedPolicyOptionsException.cs
- MarkupObject.cs
- SiteMap.cs
- BaseTemplateParser.cs
- AtlasWeb.Designer.cs
- ElementNotEnabledException.cs
- IPAddressCollection.cs
- TraceData.cs
- VScrollBar.cs
- MatrixKeyFrameCollection.cs
- OdbcErrorCollection.cs
- ImageList.cs
- AdCreatedEventArgs.cs
- SqlUtils.cs
- ListChangedEventArgs.cs
- URI.cs
- ConfigurationSection.cs
- ReflectionServiceProvider.cs
- BidOverLoads.cs
- CompareValidator.cs
- ProxyWebPartManager.cs
- DiscoveryMessageSequence.cs
- HttpCacheVary.cs
- XamlPathDataSerializer.cs
- ViewGenerator.cs
- SchemaReference.cs
- Rotation3D.cs
- DebugViewWriter.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- PreservationFileWriter.cs
- XMLDiffLoader.cs
- FastEncoderStatics.cs
- CodeMethodInvokeExpression.cs
- WindowsFormsHelpers.cs
- GridViewEditEventArgs.cs
- initElementDictionary.cs
- HttpContextBase.cs
- ModulesEntry.cs
- XmlDataProvider.cs
- EFColumnProvider.cs
- MergeLocalizationDirectives.cs
- OLEDB_Enum.cs
- DefaultHttpHandler.cs
- ErrorProvider.cs
- GuidelineCollection.cs
- LogicalTreeHelper.cs
- ExpressionVisitorHelpers.cs
- TabPanel.cs
- MetadataExchangeBindings.cs
- ObjectQueryProvider.cs
- Token.cs
- StrokeNodeOperations.cs
- TriggerCollection.cs
- DeploymentSection.cs
- TraceHandlerErrorFormatter.cs
- X509Certificate2.cs
- behaviorssection.cs
- TableCellCollection.cs
- ConversionContext.cs
- ImmutableClientRuntime.cs
- _ShellExpression.cs
- ResourceExpression.cs
- WebPartCollection.cs
- BaseTemplateParser.cs
- Brushes.cs
- NetworkCredential.cs
- FamilyCollection.cs
- CompiledXpathExpr.cs
- FormParameter.cs
- ScriptingSectionGroup.cs
- CompositeFontParser.cs
- DoubleLink.cs
- RoutedEvent.cs
- Menu.cs