File: System\Xml\Xsl\XsltOld\OutputScope.cs
Project: ndp\fx\src\XmlUtils\System.Data.SqlXml.csproj (System.Data.SqlXml)
//------------------------------------------------------------------------------
// <copyright file="OutputScope.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
 
namespace System.Xml.Xsl.XsltOld {
    using Res = System.Xml.Utils.Res;
    using System;
    using System.Diagnostics;
    using System.Xml;
 
    internal class OutputScope : DocumentScope {
        private string           name;
        private string           nsUri;
        private string           prefix;
        private XmlSpace         space;
        private string           lang;
        private bool             mixed;
        private bool             toCData;
        private HtmlElementProps htmlElementProps; // in HTML output -- atomized name of element
 
        internal string Name {
            get { return this.name; }
        }
        internal string Namespace {
            get { return this.nsUri; }
        }
        internal string Prefix {
            get { return this.prefix; }
            set { this.prefix = value; }
        }
        internal XmlSpace Space {
            get { return this.space; }
            set { this.space = value; }
        }
        internal string Lang {
            get { return this.lang; }
            set { this.lang = value; }
        }
        internal bool Mixed {
            get { return this.mixed; }
            set { this.mixed = value; }
        }
        internal bool ToCData {
            get { return this.toCData; }
            set { this.toCData = value; }
        }
        internal HtmlElementProps HtmlElementProps {
            get { return this.htmlElementProps; }
            set { this.htmlElementProps = value; }
        }
 
        internal OutputScope() {
            Init(string.Empty, string.Empty, string.Empty, XmlSpace.None, string.Empty, false);
        }
 
        internal void Init(string name, string nspace, string prefix, XmlSpace space, string lang, bool mixed) {
            this.scopes           = null;
            this.name             = name;
            this.nsUri            = nspace;
            this.prefix           = prefix;
            this.space            = space;
            this.lang             = lang;
            this.mixed            = mixed;
            this.toCData          = false;
            this.htmlElementProps = null;
        }
 
        internal bool FindPrefix(string urn, out string prefix) {
            Debug.Assert(urn != null);
 
            for (NamespaceDecl scope = this.scopes; scope != null; scope = scope.Next) {
                if (Ref.Equal(scope.Uri, urn) &&
                    scope.Prefix != null            &&
                    scope.Prefix.Length > 0) {
                    prefix = scope.Prefix;
                    return true;
                }
            }
 
            prefix = string.Empty;
            return false;
        }
    }
}