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
- RelationshipConverter.cs
- XmlStreamNodeWriter.cs
- DetailsViewPageEventArgs.cs
- ToolbarAUtomationPeer.cs
- DataGridViewCellStyleBuilderDialog.cs
- XmlCDATASection.cs
- OleDbReferenceCollection.cs
- SqlInfoMessageEvent.cs
- EDesignUtil.cs
- XmlWrappingWriter.cs
- WindowPatternIdentifiers.cs
- GreaterThan.cs
- CasesDictionary.cs
- PropertyValidationContext.cs
- Util.cs
- DataObjectFieldAttribute.cs
- XsdDateTime.cs
- EventHandlersDesigner.cs
- Misc.cs
- SerializationSectionGroup.cs
- ResourcePermissionBaseEntry.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- SystemIPInterfaceStatistics.cs
- FormsAuthenticationConfiguration.cs
- MouseActionConverter.cs
- GridViewAutoFormat.cs
- StringValidatorAttribute.cs
- ProbeMatchesMessage11.cs
- DataListItem.cs
- OrthographicCamera.cs
- TextEffectResolver.cs
- RegexParser.cs
- PathParser.cs
- ProfileGroupSettingsCollection.cs
- BitmapEffectRenderDataResource.cs
- WebPartConnectionsConnectVerb.cs
- XmlSchemaImporter.cs
- Visual.cs
- _LocalDataStore.cs
- ColumnBinding.cs
- CodeRegionDirective.cs
- SqlClientWrapperSmiStreamChars.cs
- BuildProvidersCompiler.cs
- SqlDataSourceConnectionPanel.cs
- CreateUserErrorEventArgs.cs
- TypeLibConverter.cs
- ToolboxComponentsCreatingEventArgs.cs
- MaterializeFromAtom.cs
- CodeVariableReferenceExpression.cs
- ApplicationFileCodeDomTreeGenerator.cs
- GcHandle.cs
- StreamSecurityUpgradeInitiator.cs
- HotCommands.cs
- CodeTypeReferenceExpression.cs
- PageTrueTypeFont.cs
- TranslateTransform.cs
- StrokeDescriptor.cs
- WebPartActionVerb.cs
- WebPartConnectionCollection.cs
- SspiWrapper.cs
- RectangleGeometry.cs
- Typography.cs
- CodeCatchClauseCollection.cs
- VBIdentifierName.cs
- PolyQuadraticBezierSegment.cs
- DefaultDiscoveryService.cs
- AttachmentCollection.cs
- MatchingStyle.cs
- SqlMethods.cs
- EmbeddedMailObjectsCollection.cs
- Variable.cs
- MultiByteCodec.cs
- PointAnimation.cs
- SqlDataSourceQueryConverter.cs
- TimeSpanOrInfiniteValidator.cs
- DisposableCollectionWrapper.cs
- RegionData.cs
- DecoderBestFitFallback.cs
- StateManagedCollection.cs
- HtmlObjectListAdapter.cs
- _ScatterGatherBuffers.cs
- BufferedGraphicsManager.cs
- HttpModuleActionCollection.cs
- SecurityException.cs
- HtmlHead.cs
- TextEndOfParagraph.cs
- SqlNotificationEventArgs.cs
- Queue.cs
- RowCache.cs
- SkewTransform.cs
- NavigationFailedEventArgs.cs
- InProcStateClientManager.cs
- View.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DbCommandDefinition.cs
- BinaryExpressionHelper.cs
- TypedServiceChannelBuilder.cs
- DesignerLabelAdapter.cs
- GC.cs
- TableSectionStyle.cs