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
- Signature.cs
- GridViewColumnCollectionChangedEventArgs.cs
- UidPropertyAttribute.cs
- Stylus.cs
- ObfuscateAssemblyAttribute.cs
- CachedFontFamily.cs
- Drawing.cs
- OperationResponse.cs
- invalidudtexception.cs
- HashCodeCombiner.cs
- Canvas.cs
- RectValueSerializer.cs
- unsafenativemethodsother.cs
- ComponentManagerBroker.cs
- Int32Storage.cs
- GridViewDeletedEventArgs.cs
- BulletDecorator.cs
- OutputCacheSettingsSection.cs
- NativeMethods.cs
- RecordManager.cs
- MultiSelector.cs
- VectorCollection.cs
- MessageSmuggler.cs
- ObjectItemCollection.cs
- sqlmetadatafactory.cs
- RIPEMD160.cs
- WebPartZoneDesigner.cs
- ToolbarAUtomationPeer.cs
- BitStack.cs
- SqlRowUpdatedEvent.cs
- UpdatableGenericsFeature.cs
- DataGridViewLinkCell.cs
- PasswordTextNavigator.cs
- Axis.cs
- StateMachineDesignerPaint.cs
- MessageAction.cs
- OptimalTextSource.cs
- ContainerUIElement3D.cs
- AutomationIdentifier.cs
- XmlReader.cs
- BitmapEffectOutputConnector.cs
- HandleDictionary.cs
- Preprocessor.cs
- HttpContext.cs
- TemplateControlCodeDomTreeGenerator.cs
- Attribute.cs
- AuthorizationSection.cs
- DocumentPage.cs
- TextEvent.cs
- Point3DConverter.cs
- JsonFormatGeneratorStatics.cs
- AsyncResult.cs
- MenuItemStyle.cs
- BeginStoryboard.cs
- TagPrefixAttribute.cs
- DesignerWithHeader.cs
- Bitmap.cs
- DictionarySectionHandler.cs
- mactripleDES.cs
- ConnectionManagementSection.cs
- LogicalExpressionTypeConverter.cs
- TextBounds.cs
- PreviewPageInfo.cs
- VerticalAlignConverter.cs
- OdbcException.cs
- NestPullup.cs
- TcpAppDomainProtocolHandler.cs
- CustomAttributeBuilder.cs
- ConfigurationManagerHelperFactory.cs
- InstanceHandleReference.cs
- TextServicesCompartment.cs
- ImageAttributes.cs
- AuthorizationSection.cs
- SecureStringHasher.cs
- FastEncoder.cs
- ParameterCollection.cs
- VScrollProperties.cs
- HandleCollector.cs
- CodeTypeDelegate.cs
- UInt32.cs
- TrackingStringDictionary.cs
- Color.cs
- XmlResolver.cs
- TypeDescriptionProviderAttribute.cs
- HttpHostedTransportConfiguration.cs
- WebPartDisplayMode.cs
- AutomationTextAttribute.cs
- BaseInfoTable.cs
- ValidationResult.cs
- XmlStreamNodeWriter.cs
- HwndHostAutomationPeer.cs
- ChannelSinkStacks.cs
- Rect3D.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- __Error.cs
- UserThread.cs
- LinkArea.cs
- LassoSelectionBehavior.cs
- HttpCacheVary.cs
- CapabilitiesState.cs