Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Data / XmlNamespaceMappingCollection.cs / 1 / XmlNamespaceMappingCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implementation of XmlNamespaceMappingCollection object. // // Specs: http://avalon/connecteddata/M5%20Specs/XmlDataSource.mht // http://avalon/connecteddata/M5%20Specs/WCP%20DataSources.mht // //--------------------------------------------------------------------------- using System; using System.Collections; // IEnumerator using System.Collections.Generic; // ICollectionusing System.Xml; using System.Windows.Markup; using MS.Utility; namespace System.Windows.Data { /// /// XmlNamespaceMappingCollection Class /// Used to declare namespaces to be used in Xml data binding XPath queries /// [Localizability(LocalizationCategory.NeverLocalize)] public class XmlNamespaceMappingCollection : XmlNamespaceManager, ICollection, IAddChildInternal { /// /// Constructor /// public XmlNamespaceMappingCollection() : base(new NameTable()) {} #region IAddChild ////// IAddChild implementation /// /// void IAddChild.AddChild(object value) { AddChild(value); } ////// /// IAddChild implementation /// /// protected virtual void AddChild(object value) { XmlNamespaceMapping mapping = value as XmlNamespaceMapping; if (mapping == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMapping, value.GetType().FullName), "value"); Add(mapping); } ////// IAddChild implementation /// /// void IAddChild.AddText(string text) { AddText(text); } ////// IAddChild implementation /// /// protected virtual void AddText(string text) { if (text == null) throw new ArgumentNullException("text"); XamlSerializerUtil.ThrowIfNonWhiteSpaceInAddText(text, this); } #endregion #region ICollection/// /// Add XmlNamespaceMapping /// ///mapping is null public void Add(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); // this.AddNamespace(mapping.Prefix, mapping.Uri.OriginalString); } ////// Remove all XmlNamespaceMappings /// ////// This is potentially an expensive operation. /// It may be cheaper to simply create a new XmlNamespaceMappingCollection. /// public void Clear() { int count = Count; XmlNamespaceMapping[] array = new XmlNamespaceMapping[count]; CopyTo(array, 0); for (int i = 0; i < count; ++i) { Remove(array[i]); } } ////// Add XmlNamespaceMapping /// ///mapping is null public bool Contains(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); return (this.LookupNamespace(mapping.Prefix) == mapping.Uri.OriginalString); } ////// Copy XmlNamespaceMappings to array /// public void CopyTo(XmlNamespaceMapping[] array, int arrayIndex) { if (array == null) throw new ArgumentNullException("array"); int i = arrayIndex; int maxLength = array.Length; foreach (XmlNamespaceMapping mapping in this) { if (i >= maxLength) throw new ArgumentException(SR.Get(SRID.Collection_CopyTo_NumberOfElementsExceedsArrayLength, "arrayIndex", "array")); array[i] = mapping; ++ i; } } ////// Remove XmlNamespaceMapping /// ////// true if the mapping was removed /// ///mapping is null public bool Remove(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); if (Contains(mapping)) { this.RemoveNamespace(mapping.Prefix, mapping.Uri.OriginalString); return true; } return false; } ////// Count of the number of XmlNamespaceMappings /// public int Count { get { int count = 0; foreach (XmlNamespaceMapping mapping in this) { ++ count; } return count; } } ////// Value to indicate if this collection is read only /// public bool IsReadOnly { get { return false; } } ////// IEnumerable implementation. /// ////// This enables the serializer to serialize the contents of the XmlNamespaceMappingCollection. /// The default namespaces (xnm, xml, and string.Empty) are not included in this enumeration. /// public override IEnumerator GetEnumerator() { return ProtectedGetEnumerator(); } ////// IEnumerable (generic) implementation. /// IEnumeratorIEnumerable .GetEnumerator() { return ProtectedGetEnumerator(); } /// /// Protected member for use by IEnumerable implementations. /// protected IEnumeratorProtectedGetEnumerator() { IEnumerator enumerator = BaseEnumerator; while (enumerator.MoveNext()) { string prefix = (string) enumerator.Current; // ignore the default namespaces added automatically in the XmlNamespaceManager if (prefix == "xmlns" || prefix == "xml") continue; string ns = this.LookupNamespace(prefix); // ignore the empty prefix if the namespace has not been reassigned if ((prefix == string.Empty) && (ns == string.Empty)) continue; Uri uri = new Uri(ns, UriKind.RelativeOrAbsolute); XmlNamespaceMapping xnm = new XmlNamespaceMapping(prefix, uri); yield return xnm; } } // The iterator above cannot access base.GetEnumerator directly - this // causes build warning 1911, and makes MoveNext throw a security // exception under partial trust (bug 1785518). Accessing it indirectly // through this property fixes the problem. private IEnumerator BaseEnumerator { get { return base.GetEnumerator(); } } #endregion ICollection } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implementation of XmlNamespaceMappingCollection object. // // Specs: http://avalon/connecteddata/M5%20Specs/XmlDataSource.mht // http://avalon/connecteddata/M5%20Specs/WCP%20DataSources.mht // //--------------------------------------------------------------------------- using System; using System.Collections; // IEnumerator using System.Collections.Generic; // ICollectionusing System.Xml; using System.Windows.Markup; using MS.Utility; namespace System.Windows.Data { /// /// XmlNamespaceMappingCollection Class /// Used to declare namespaces to be used in Xml data binding XPath queries /// [Localizability(LocalizationCategory.NeverLocalize)] public class XmlNamespaceMappingCollection : XmlNamespaceManager, ICollection, IAddChildInternal { /// /// Constructor /// public XmlNamespaceMappingCollection() : base(new NameTable()) {} #region IAddChild ////// IAddChild implementation /// /// void IAddChild.AddChild(object value) { AddChild(value); } ////// /// IAddChild implementation /// /// protected virtual void AddChild(object value) { XmlNamespaceMapping mapping = value as XmlNamespaceMapping; if (mapping == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMapping, value.GetType().FullName), "value"); Add(mapping); } ////// IAddChild implementation /// /// void IAddChild.AddText(string text) { AddText(text); } ////// IAddChild implementation /// /// protected virtual void AddText(string text) { if (text == null) throw new ArgumentNullException("text"); XamlSerializerUtil.ThrowIfNonWhiteSpaceInAddText(text, this); } #endregion #region ICollection/// /// Add XmlNamespaceMapping /// ///mapping is null public void Add(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); // this.AddNamespace(mapping.Prefix, mapping.Uri.OriginalString); } ////// Remove all XmlNamespaceMappings /// ////// This is potentially an expensive operation. /// It may be cheaper to simply create a new XmlNamespaceMappingCollection. /// public void Clear() { int count = Count; XmlNamespaceMapping[] array = new XmlNamespaceMapping[count]; CopyTo(array, 0); for (int i = 0; i < count; ++i) { Remove(array[i]); } } ////// Add XmlNamespaceMapping /// ///mapping is null public bool Contains(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); return (this.LookupNamespace(mapping.Prefix) == mapping.Uri.OriginalString); } ////// Copy XmlNamespaceMappings to array /// public void CopyTo(XmlNamespaceMapping[] array, int arrayIndex) { if (array == null) throw new ArgumentNullException("array"); int i = arrayIndex; int maxLength = array.Length; foreach (XmlNamespaceMapping mapping in this) { if (i >= maxLength) throw new ArgumentException(SR.Get(SRID.Collection_CopyTo_NumberOfElementsExceedsArrayLength, "arrayIndex", "array")); array[i] = mapping; ++ i; } } ////// Remove XmlNamespaceMapping /// ////// true if the mapping was removed /// ///mapping is null public bool Remove(XmlNamespaceMapping mapping) { if (mapping == null) throw new ArgumentNullException("mapping"); if (mapping.Uri == null) throw new ArgumentException(SR.Get(SRID.RequiresXmlNamespaceMappingUri), "mapping"); if (Contains(mapping)) { this.RemoveNamespace(mapping.Prefix, mapping.Uri.OriginalString); return true; } return false; } ////// Count of the number of XmlNamespaceMappings /// public int Count { get { int count = 0; foreach (XmlNamespaceMapping mapping in this) { ++ count; } return count; } } ////// Value to indicate if this collection is read only /// public bool IsReadOnly { get { return false; } } ////// IEnumerable implementation. /// ////// This enables the serializer to serialize the contents of the XmlNamespaceMappingCollection. /// The default namespaces (xnm, xml, and string.Empty) are not included in this enumeration. /// public override IEnumerator GetEnumerator() { return ProtectedGetEnumerator(); } ////// IEnumerable (generic) implementation. /// IEnumeratorIEnumerable .GetEnumerator() { return ProtectedGetEnumerator(); } /// /// Protected member for use by IEnumerable implementations. /// protected IEnumeratorProtectedGetEnumerator() { IEnumerator enumerator = BaseEnumerator; while (enumerator.MoveNext()) { string prefix = (string) enumerator.Current; // ignore the default namespaces added automatically in the XmlNamespaceManager if (prefix == "xmlns" || prefix == "xml") continue; string ns = this.LookupNamespace(prefix); // ignore the empty prefix if the namespace has not been reassigned if ((prefix == string.Empty) && (ns == string.Empty)) continue; Uri uri = new Uri(ns, UriKind.RelativeOrAbsolute); XmlNamespaceMapping xnm = new XmlNamespaceMapping(prefix, uri); yield return xnm; } } // The iterator above cannot access base.GetEnumerator directly - this // causes build warning 1911, and makes MoveNext throw a security // exception under partial trust (bug 1785518). Accessing it indirectly // through this property fixes the problem. private IEnumerator BaseEnumerator { get { return base.GetEnumerator(); } } #endregion ICollection } } // 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
- OdbcRowUpdatingEvent.cs
- CommandDesigner.cs
- Splitter.cs
- SafeNativeMethods.cs
- BackgroundFormatInfo.cs
- ExpressionVisitorHelpers.cs
- OleCmdHelper.cs
- Query.cs
- RegionInfo.cs
- JavaScriptSerializer.cs
- HttpServerProtocol.cs
- CodeBlockBuilder.cs
- ImportContext.cs
- CodeVariableReferenceExpression.cs
- PartitionResolver.cs
- InputBinder.cs
- RectValueSerializer.cs
- TextCharacters.cs
- DataStorage.cs
- ConnectionsZone.cs
- ListViewItem.cs
- LinkedResourceCollection.cs
- FontFamily.cs
- XMLUtil.cs
- DBSqlParserColumnCollection.cs
- ChildDocumentBlock.cs
- EntityObject.cs
- HtmlInputFile.cs
- WebPartConnectionsConnectVerb.cs
- ReachDocumentReferenceSerializerAsync.cs
- ContentPropertyAttribute.cs
- DbConnectionInternal.cs
- WindowsEditBoxRange.cs
- ScriptRegistrationManager.cs
- DesignerView.Commands.cs
- MetabaseSettingsIis7.cs
- SrgsDocument.cs
- XmlEnumAttribute.cs
- XamlToRtfWriter.cs
- WebPartEditorOkVerb.cs
- StorageRoot.cs
- NamespaceList.cs
- PermissionListSet.cs
- RegionData.cs
- Model3DGroup.cs
- CodeGeneratorOptions.cs
- ArgumentOutOfRangeException.cs
- TagPrefixCollection.cs
- CompareInfo.cs
- Axis.cs
- EventSourceCreationData.cs
- EastAsianLunisolarCalendar.cs
- ErrorInfoXmlDocument.cs
- ThreadStartException.cs
- exports.cs
- HitTestParameters3D.cs
- InplaceBitmapMetadataWriter.cs
- DataBindingCollection.cs
- StyleXamlTreeBuilder.cs
- DirectoryInfo.cs
- AnnotationAdorner.cs
- EntityKeyElement.cs
- TwoPhaseCommit.cs
- FontSource.cs
- FormViewModeEventArgs.cs
- ExpressionConverter.cs
- InheritanceAttribute.cs
- OledbConnectionStringbuilder.cs
- QueryOutputWriter.cs
- DES.cs
- MaskedTextBox.cs
- PackageDigitalSignatureManager.cs
- TimeStampChecker.cs
- EntityDataSourceView.cs
- SystemDropShadowChrome.cs
- BindingNavigator.cs
- ServicePointManager.cs
- AppDomainCompilerProxy.cs
- DeleteBookmarkScope.cs
- ObjectContextServiceProvider.cs
- Vector3dCollection.cs
- GroupLabel.cs
- PrivilegeNotHeldException.cs
- Int32.cs
- CodeComment.cs
- LeftCellWrapper.cs
- GeneratedCodeAttribute.cs
- DataObjectCopyingEventArgs.cs
- ISAPIApplicationHost.cs
- TreeBuilderXamlTranslator.cs
- CallContext.cs
- AncillaryOps.cs
- SafeWaitHandle.cs
- TextDecoration.cs
- PreservationFileReader.cs
- ScrollBarRenderer.cs
- AutoResetEvent.cs
- WebServiceResponse.cs
- PropertyChangingEventArgs.cs
- SiteMapNodeItemEventArgs.cs