Code:
/ DotNET / DotNET / 8.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
- XmlValidatingReader.cs
- TextReturnReader.cs
- ComponentResourceKey.cs
- GlyphRunDrawing.cs
- AdornerDecorator.cs
- IndexerNameAttribute.cs
- SymmetricKey.cs
- ExpressionConverter.cs
- CSharpCodeProvider.cs
- FormCollection.cs
- QilInvoke.cs
- PagerSettings.cs
- DynamicValidatorEventArgs.cs
- XPathDocumentNavigator.cs
- DocumentXmlWriter.cs
- ObjectReaderCompiler.cs
- CompModHelpers.cs
- Utilities.cs
- datacache.cs
- LinqDataSourceStatusEventArgs.cs
- ButtonColumn.cs
- EntityDesignPluralizationHandler.cs
- NamespaceQuery.cs
- ExpressionReplacer.cs
- AbsoluteQuery.cs
- HtmlInputReset.cs
- Misc.cs
- StateWorkerRequest.cs
- ListItemCollection.cs
- Label.cs
- RegistryKey.cs
- X509Chain.cs
- Attributes.cs
- WebPartsSection.cs
- RelatedView.cs
- ClientTargetCollection.cs
- PeerApplicationLaunchInfo.cs
- ResourceReader.cs
- SmtpDigestAuthenticationModule.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ScopelessEnumAttribute.cs
- SqlNotificationRequest.cs
- WebControlAdapter.cs
- ToolbarAUtomationPeer.cs
- SpeechDetectedEventArgs.cs
- DeadCharTextComposition.cs
- CustomExpressionEventArgs.cs
- FileSystemInfo.cs
- ExpressionBuilder.cs
- ToolStripHighContrastRenderer.cs
- Storyboard.cs
- LocatorPartList.cs
- DesignerCategoryAttribute.cs
- TreeNodeMouseHoverEvent.cs
- BlurBitmapEffect.cs
- TreeNodeStyleCollection.cs
- DataPagerFieldItem.cs
- KeyGestureConverter.cs
- ValidationVisibilityAttribute.cs
- StringHandle.cs
- CoTaskMemHandle.cs
- ToolTipAutomationPeer.cs
- RuntimeConfig.cs
- ThousandthOfEmRealPoints.cs
- InkCanvas.cs
- ResourceDefaultValueAttribute.cs
- EmptyEnumerable.cs
- TextTreeExtractElementUndoUnit.cs
- MouseGestureConverter.cs
- ReadOnlyPropertyMetadata.cs
- StrokeFIndices.cs
- TraceProvider.cs
- NativeMethodsOther.cs
- GlobalItem.cs
- MetadataUtilsSmi.cs
- LogWriteRestartAreaAsyncResult.cs
- SqlSelectStatement.cs
- TreeViewItemAutomationPeer.cs
- shaper.cs
- OdbcErrorCollection.cs
- DockAndAnchorLayout.cs
- ISessionStateStore.cs
- HttpApplication.cs
- CompositeDuplexElement.cs
- DragEventArgs.cs
- ConsoleCancelEventArgs.cs
- DataPagerFieldCollection.cs
- MachineKeySection.cs
- TextTreeFixupNode.cs
- FocusTracker.cs
- LoaderAllocator.cs
- CallbackValidatorAttribute.cs
- CheckBox.cs
- PreservationFileWriter.cs
- TemplatePropertyEntry.cs
- TransformerTypeCollection.cs
- DataGridState.cs
- IPEndPoint.cs
- PathFigure.cs
- ExpanderAutomationPeer.cs