File: System\Xml\Core\XmlParserContext.cs
Project: ndp\fx\src\Xml\System.Xml.csproj (System.Xml)
//------------------------------------------------------------------------------
// <copyright file="XmlParserContext.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
 
using System.Xml;
using System.Text;
using System;
 
namespace System.Xml {
    // Specifies the context that the XmLReader will use for xml fragment
    public class XmlParserContext {
    
        private XmlNameTable            _nt             = null;
        private XmlNamespaceManager     _nsMgr          = null;
        private String                  _docTypeName    = String.Empty;
        private String                  _pubId          = String.Empty;
        private String                  _sysId          = String.Empty;
        private String                  _internalSubset = String.Empty;
        private String                  _xmlLang        = String.Empty;
        private XmlSpace                _xmlSpace;
        private String                  _baseURI        = String.Empty;
        private Encoding                _encoding       = null;
        
        public XmlParserContext(XmlNameTable nt, XmlNamespaceManager nsMgr,String xmlLang, XmlSpace xmlSpace)
        : this(nt, nsMgr, null, null, null, null, String.Empty, xmlLang, xmlSpace)
        {
            // Intentionally Empty
        }
 
        public XmlParserContext(XmlNameTable nt, XmlNamespaceManager nsMgr,String xmlLang, XmlSpace xmlSpace, Encoding enc)
        : this(nt, nsMgr, null, null, null, null, String.Empty, xmlLang, xmlSpace, enc)
        {
            // Intentionally Empty
        }
 
        public XmlParserContext(XmlNameTable nt, XmlNamespaceManager nsMgr, String docTypeName,
                  String pubId, String sysId, String internalSubset, String baseURI,
                  String xmlLang, XmlSpace xmlSpace) 
        : this(nt, nsMgr, docTypeName, pubId, sysId, internalSubset, baseURI, xmlLang, xmlSpace, null)
        {
            // Intentionally Empty
        }
        
        public XmlParserContext(XmlNameTable nt, XmlNamespaceManager nsMgr, String docTypeName,
                          String pubId, String sysId, String internalSubset, String baseURI,
                          String xmlLang, XmlSpace xmlSpace, Encoding enc)
        {
            
            if (nsMgr != null) {
                if (nt == null) {
                    _nt = nsMgr.NameTable;
                }
                else {
                    if ( (object)nt != (object)  nsMgr.NameTable ) {
                        throw new XmlException(Res.Xml_NotSameNametable, string.Empty);
                    }
                    _nt = nt;
                }
            }
            else {
                _nt = nt;
            }
            
            _nsMgr              = nsMgr;
            _docTypeName        = (null == docTypeName ? String.Empty : docTypeName);
            _pubId              = (null == pubId ? String.Empty : pubId);
            _sysId              = (null == sysId ? String.Empty : sysId);
            _internalSubset     = (null == internalSubset ? String.Empty : internalSubset);
            _baseURI            = (null == baseURI ? String.Empty : baseURI);
            _xmlLang            = (null == xmlLang ? String.Empty : xmlLang);
            _xmlSpace           = xmlSpace;
            _encoding           = enc;
            
        }
 
        public XmlNameTable NameTable {
            get {
                return _nt;            
            }
            set {
                _nt = value;
            }            
        }
 
        public XmlNamespaceManager  NamespaceManager {
            get {
                return _nsMgr;            
            }
            set {
                _nsMgr = value;
            }            
        }
 
        public String  DocTypeName {
            get {
                return _docTypeName;            
            }
            set {
                _docTypeName = (null == value ? String.Empty : value);
            }            
        }
 
        public String PublicId {
            get {
                return _pubId;            
            }
            set {
                _pubId = (null == value ? String.Empty : value);
            }            
        }
 
        public String SystemId {
            get {
                return _sysId;       
            }
            set {
                _sysId = (null == value ? String.Empty : value);
            }            
        }
 
        public String BaseURI {
            get {
                return _baseURI;       
            }
            set {
                _baseURI = (null == value ? String.Empty : value);
            }            
        }
 
        public String InternalSubset {
            get {
                return _internalSubset;       
            }
            set {
                _internalSubset = (null == value ? String.Empty : value);
            }            
        }
 
        public String XmlLang {
            get {
                return _xmlLang;       
            }
            set {
                _xmlLang = (null == value ? String.Empty : value);
            }            
        }
 
        public XmlSpace XmlSpace {
            get {
                return _xmlSpace;       
            }
            set {
                _xmlSpace = value;
            }            
        }
 
        public Encoding Encoding {
            get {
                return _encoding;       
            }
            set {
                _encoding = value;
            }            
        }
 
        internal bool HasDtdInfo {
            get {
                return ( _internalSubset != string.Empty || _pubId != string.Empty || _sysId != string.Empty );
            }
        }
 
    } // class XmlContext
} // namespace System.Xml