Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / XmlDocumentViewSchema.cs / 1 / XmlDocumentViewSchema.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design { using System.Collections; using System.Collections.Specialized; using System.Diagnostics; using System.Xml; using System.Xml.XPath; ////// A class to expose hierarchical schema from an XmlDocument object. /// This is used by data source designers to enable data-bound to /// traverse their schema at design time. /// internal sealed class XmlDocumentViewSchema : IDataSourceViewSchema { private string _name; private OrderedDictionary _children; private ArrayList _attrs; private IDataSourceViewSchema[] _viewSchemas; private IDataSourceFieldSchema[] _fieldSchemas; private bool _includeSpecialSchema; public XmlDocumentViewSchema(string name, Pair data, bool includeSpecialSchema) { _includeSpecialSchema = includeSpecialSchema; Debug.Assert(name != null && name.Length > 0); Debug.Assert(data != null); _children = (OrderedDictionary)data.First; Debug.Assert(_children != null); _attrs = (ArrayList)data.Second; Debug.Assert(_attrs != null); _name = name; } public string Name { get { return _name; } } public IDataSourceViewSchema[] GetChildren() { if (_viewSchemas == null) { _viewSchemas = new IDataSourceViewSchema[_children.Count]; int i = 0; foreach (DictionaryEntry de in _children) { _viewSchemas[i] = new XmlDocumentViewSchema((string)de.Key, (Pair)de.Value, _includeSpecialSchema); i++; } } return _viewSchemas; } public IDataSourceFieldSchema[] GetFields() { if (_fieldSchemas == null) { // The three extra slots are for the "special" field names int specialSchemaCount = (_includeSpecialSchema ? 3 : 0); _fieldSchemas = new IDataSourceFieldSchema[_attrs.Count + specialSchemaCount]; if (_includeSpecialSchema) { _fieldSchemas[0] = new XmlDocumentFieldSchema("#Name"); _fieldSchemas[1] = new XmlDocumentFieldSchema("#Value"); _fieldSchemas[2] = new XmlDocumentFieldSchema("#InnerText"); } for (int i = 0; i < _attrs.Count; i++) { _fieldSchemas[i + specialSchemaCount] = new XmlDocumentFieldSchema((string)_attrs[i]); } } return _fieldSchemas; } } } // 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
- SharedConnectionInfo.cs
- NetWebProxyFinder.cs
- BufferedReadStream.cs
- TypeForwardedToAttribute.cs
- MsmqProcessProtocolHandler.cs
- WindowsListViewGroupHelper.cs
- Panel.cs
- BStrWrapper.cs
- Size3DConverter.cs
- OleDbEnumerator.cs
- EntitySetBaseCollection.cs
- BitmapSource.cs
- AccessibleObject.cs
- SecurityContextSecurityTokenAuthenticator.cs
- CodeCommentStatementCollection.cs
- HMACSHA512.cs
- TaskFactory.cs
- SamlSerializer.cs
- mediapermission.cs
- PropagatorResult.cs
- TimerElapsedEvenArgs.cs
- SecurityCriticalDataForSet.cs
- x509store.cs
- WpfGeneratedKnownTypes.cs
- ConversionValidationRule.cs
- GroupBoxRenderer.cs
- DataBoundControl.cs
- FormConverter.cs
- ProcessStartInfo.cs
- OperandQuery.cs
- WorkflowRuntimeService.cs
- XmlTextAttribute.cs
- WebCategoryAttribute.cs
- SQLConvert.cs
- PassportIdentity.cs
- IsolatedStorageFileStream.cs
- AsyncContentLoadedEventArgs.cs
- EpmSourceTree.cs
- TypeElementCollection.cs
- webproxy.cs
- MouseDevice.cs
- WorkflowDesignerColors.cs
- DataGridViewCheckBoxCell.cs
- SimpleApplicationHost.cs
- PriorityBinding.cs
- SettingsPropertyValue.cs
- SimpleFileLog.cs
- PreservationFileWriter.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SimpleApplicationHost.cs
- SQLInt32Storage.cs
- ObjectCacheSettings.cs
- ConfigurationSectionHelper.cs
- UpdateExpressionVisitor.cs
- CurrencyWrapper.cs
- TreeViewItemAutomationPeer.cs
- AssemblyUtil.cs
- TreeNodeEventArgs.cs
- TextCharacters.cs
- PointCollection.cs
- Monitor.cs
- DockProviderWrapper.cs
- TypeHelpers.cs
- ListBase.cs
- FontFamilyValueSerializer.cs
- DataContractSerializerServiceBehavior.cs
- CacheAxisQuery.cs
- ClosableStream.cs
- DispatcherExceptionEventArgs.cs
- EntitySet.cs
- CollectionExtensions.cs
- ProfileBuildProvider.cs
- ProxyWebPartConnectionCollection.cs
- NonParentingControl.cs
- UserCancellationException.cs
- ScaleTransform.cs
- ConfigurationSectionGroupCollection.cs
- XmlSchema.cs
- CatalogZoneBase.cs
- GraphicsState.cs
- SmiEventSink_DeferedProcessing.cs
- Attributes.cs
- SupportsEventValidationAttribute.cs
- PropertyChangeTracker.cs
- LineMetrics.cs
- BamlMapTable.cs
- ThreadInterruptedException.cs
- InputProviderSite.cs
- Msec.cs
- nulltextcontainer.cs
- EnumDataContract.cs
- DateTimeConverter2.cs
- PersonalizationStateInfoCollection.cs
- XmlSerializerSection.cs
- M3DUtil.cs
- ColumnResizeAdorner.cs
- PasswordRecovery.cs
- PageThemeParser.cs
- SchemaImporterExtensionElementCollection.cs
- Positioning.cs