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
- ButtonBase.cs
- CanonicalFontFamilyReference.cs
- FormViewCommandEventArgs.cs
- ImplicitInputBrush.cs
- SqlNodeAnnotations.cs
- JsonWriterDelegator.cs
- ContentType.cs
- DocumentApplication.cs
- DataServiceException.cs
- Material.cs
- DataGridViewRowHeaderCell.cs
- ProxyFragment.cs
- DoubleAverageAggregationOperator.cs
- AssemblyInfo.cs
- RoleBoolean.cs
- followingquery.cs
- Int32Rect.cs
- WsdlParser.cs
- DbConnectionFactory.cs
- ZipIOLocalFileBlock.cs
- InputScopeNameConverter.cs
- Pen.cs
- TableColumnCollection.cs
- PriorityQueue.cs
- MSG.cs
- InfoCardAsymmetricCrypto.cs
- DesignTimeHTMLTextWriter.cs
- DisplayClaim.cs
- FullTrustAssembliesSection.cs
- DeleteWorkflowOwnerCommand.cs
- WindowsListBox.cs
- RowType.cs
- MemoryMappedViewAccessor.cs
- WebPartZoneBase.cs
- OdbcHandle.cs
- ClientRolePrincipal.cs
- HtmlInputRadioButton.cs
- path.cs
- _UriSyntax.cs
- XmlSigningNodeWriter.cs
- SessionIDManager.cs
- Model3D.cs
- DoWorkEventArgs.cs
- CanExecuteRoutedEventArgs.cs
- AnonymousIdentificationModule.cs
- HtmlTextArea.cs
- PerformanceCounterPermission.cs
- EntityFunctions.cs
- QilXmlWriter.cs
- PropertyPathConverter.cs
- ByeOperation11AsyncResult.cs
- XmlSchemaAll.cs
- HtmlLink.cs
- TextEditorCopyPaste.cs
- SuppressIldasmAttribute.cs
- SQLInt32.cs
- TypeDescriptionProviderAttribute.cs
- DocumentCollection.cs
- PolicyStatement.cs
- SelectionBorderGlyph.cs
- CoTaskMemUnicodeSafeHandle.cs
- WizardPanel.cs
- DelegatingHeader.cs
- LinkConverter.cs
- RtfToXamlReader.cs
- FixedTextContainer.cs
- wgx_sdk_version.cs
- OrderPreservingSpoolingTask.cs
- DesignDataSource.cs
- SkinBuilder.cs
- SlipBehavior.cs
- CursorConverter.cs
- DelegateBodyWriter.cs
- CodeMemberField.cs
- PagePropertiesChangingEventArgs.cs
- httpstaticobjectscollection.cs
- DurationConverter.cs
- Transform3DGroup.cs
- URLAttribute.cs
- ObjectAnimationUsingKeyFrames.cs
- DbProviderServices.cs
- EntityParameter.cs
- InvalidBodyAccessException.cs
- ThreadExceptionEvent.cs
- PersistChildrenAttribute.cs
- JoinQueryOperator.cs
- LineSegment.cs
- CompilerParameters.cs
- MethodRental.cs
- PolicyLevel.cs
- RemotingException.cs
- unsafenativemethodstextservices.cs
- DependencyPropertyChangedEventArgs.cs
- GridViewRowPresenter.cs
- WizardStepBase.cs
- PeerName.cs
- ProtocolsConfigurationEntry.cs
- ClientRoleProvider.cs
- CodePageEncoding.cs
- dataprotectionpermissionattribute.cs