| File: FrameworkFork\Microsoft.Xml\Xml\Serialization\XmlSerializerNamespaces.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. namespace Microsoft.Xml.Serialization { using System.Reflection; using System.Collections; using System.IO; using Microsoft.Xml.Schema; using System; /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public class XmlSerializerNamespaces { private Hashtable _namespaces = null; /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.XmlSerializerNamespaces"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public XmlSerializerNamespaces() { } /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.XmlSerializerNamespaces1"]/*' /> /// <internalonly/> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public XmlSerializerNamespaces(XmlSerializerNamespaces namespaces) { _namespaces = (Hashtable)namespaces.Namespaces.Clone(); } /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.XmlSerializerNamespaces2"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public XmlSerializerNamespaces(XmlQualifiedName[] namespaces) { for (int i = 0; i < namespaces.Length; i++) { XmlQualifiedName qname = namespaces[i]; Add(qname.Name, qname.Namespace); } } /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.Add"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public void Add(string prefix, string ns) { // parameter value check if (prefix != null && prefix.Length > 0) XmlConvert.VerifyNCName(prefix); if (ns != null && ns.Length > 0) XmlConvert.ToUri(ns); AddInternal(prefix, ns); } internal void AddInternal(string prefix, string ns) { Namespaces[prefix] = ns; } /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.ToArray"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public XmlQualifiedName[] ToArray() { if (NamespaceList == null) return new XmlQualifiedName[0]; return (XmlQualifiedName[])NamespaceList.ToArray(typeof(XmlQualifiedName)); } /// <include file='doc\XmlSerializerNamespaces.uex' path='docs/doc[@for="XmlSerializerNamespaces.Count"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public int Count { get { return Namespaces.Count; } } internal ArrayList NamespaceList { get { if (_namespaces == null || _namespaces.Count == 0) return null; ArrayList namespaceList = new ArrayList(); foreach (string key in Namespaces.Keys) { namespaceList.Add(new XmlQualifiedName(key, (string)Namespaces[key])); } return namespaceList; } } internal Hashtable Namespaces { get { if (_namespaces == null) _namespaces = new Hashtable(); return _namespaces; } set { _namespaces = value; } } internal string LookupPrefix(string ns) { if (string.IsNullOrEmpty(ns)) return null; if (_namespaces == null || _namespaces.Count == 0) return null; foreach (string prefix in _namespaces.Keys) { if (!string.IsNullOrEmpty(prefix) && (string)_namespaces[prefix] == ns) { return prefix; } } return null; } } }