Exemple #1
0
        public static XmlReader CreateReader(XmlReader baseReader, WhitespaceRuleLookup wsRules)
        {
            if (wsRules == null)
            {
                return(baseReader);    // There is no rules to process
            }
            XmlReaderSettings readerSettings = baseReader.Settings;

            if (readerSettings != null)
            {
                if (readerSettings.IgnoreWhitespace)
                {
                    return(baseReader);        // V2 XmlReader that strips all WS
                }
            }
            else
            {
                XmlTextReader txtReader = baseReader as XmlTextReader;
                if (txtReader != null && txtReader.WhitespaceHandling == WhitespaceHandling.None)
                {
                    return(baseReader);        // V1 XmlTextReader that strips all WS
                }
                XmlTextReaderImpl txtReaderImpl = baseReader as XmlTextReaderImpl;
                if (txtReaderImpl != null && txtReaderImpl.WhitespaceHandling == WhitespaceHandling.None)
                {
                    return(baseReader);        // XmlTextReaderImpl that strips all WS
                }
            }
            return(new WhitespaceRuleReader(baseReader, wsRules));
        }
        internal XmlQueryContext(XmlQueryRuntime runtime, object defaultDataSource, XmlResolver dataSources, XsltArgumentList argList, WhitespaceRuleLookup wsRules) {
            this.runtime = runtime;
            this.dataSources = dataSources;
            this.dataSourceCache = new Hashtable();
            this.argList = argList;
            this.wsRules = wsRules;

            if (defaultDataSource is XmlReader) {
                this.readerSettings = new QueryReaderSettings((XmlReader) defaultDataSource);
            }
            else {
                // Consider allowing users to set DefaultReaderSettings in XsltArgumentList
                // readerSettings = argList.DefaultReaderSettings;
                this.readerSettings = new QueryReaderSettings(new NameTable());
            }

            if (defaultDataSource is string) {
                // Load the default document from a Uri
                this.defaultDataSource = GetDataSource(defaultDataSource as string, null);

                if (this.defaultDataSource == null)
                    throw new XslTransformException(Res.XmlIl_UnknownDocument, defaultDataSource as string);
            }
            else if (defaultDataSource != null) {
                this.defaultDataSource = ConstructDocument(defaultDataSource, null, null);
            }
        }
Exemple #3
0
        private QueryReaderSettings _readerSettings; // If we create reader out of stream we will use these settings

        /// <summary>
        /// This constructor is internal so that external users cannot construct it (and therefore we do not have to test it separately).
        /// </summary>
        internal XmlQueryContext(XmlQueryRuntime runtime, object defaultDataSource, XmlResolver dataSources, XsltArgumentList argList, WhitespaceRuleLookup wsRules)
        {
            _runtime         = runtime;
            _dataSources     = dataSources;
            _dataSourceCache = new Hashtable();
            _argList         = argList;
            _wsRules         = wsRules;

            if (defaultDataSource is XmlReader)
            {
                _readerSettings = new QueryReaderSettings((XmlReader)defaultDataSource);
            }
            else
            {
                // Consider allowing users to set DefaultReaderSettings in XsltArgumentList
                // readerSettings = argList.DefaultReaderSettings;
                _readerSettings = new QueryReaderSettings(new NameTable());
            }

            if (defaultDataSource is string)
            {
                // Load the default document from a Uri
                _defaultDataSource = GetDataSource(defaultDataSource as string, null);

                if (_defaultDataSource == null)
                {
                    throw new XslTransformException(SR.XmlIl_UnknownDocument, defaultDataSource as string);
                }
            }
            else if (defaultDataSource != null)
            {
                _defaultDataSource = ConstructDocument(defaultDataSource, null, null);
            }
        }
 public static XmlReader CreateReader(XmlReader baseReader, WhitespaceRuleLookup wsRules)
 {
     if (wsRules == null)
     {
         return baseReader;    // There is no rules to process
     }
     XmlReaderSettings readerSettings = baseReader.Settings;
     if (readerSettings != null)
     {
         if (readerSettings.IgnoreWhitespace)
         {
             return baseReader;        // V2 XmlReader that strips all WS
         }
     }
     else
     {
         XmlTextReader txtReader = baseReader as XmlTextReader;
         if (txtReader != null && txtReader.WhitespaceHandling == WhitespaceHandling.None)
         {
             return baseReader;        // V1 XmlTextReader that strips all WS
         }
         XmlTextReaderImpl txtReaderImpl = baseReader as XmlTextReaderImpl;
         if (txtReaderImpl != null && txtReaderImpl.WhitespaceHandling == WhitespaceHandling.None)
         {
             return baseReader;        // XmlTextReaderImpl that strips all WS
         }
     }
     return new WhitespaceRuleReader(baseReader, wsRules);
 }
Exemple #5
0
        private QueryReaderSettings readerSettings; // If we create reader out of stream we will use these settings

        /// <summary>
        /// This constructor is internal so that external users cannot construct it (and therefore we do not have to test it separately).
        /// </summary>
        internal XmlQueryContext(XmlQueryRuntime runtime, object defaultDataSource, XmlResolver dataSources, XsltArgumentList argList, WhitespaceRuleLookup wsRules)
        {
            this.runtime         = runtime;
            this.dataSources     = dataSources;
            this.dataSourceCache = new Hashtable();
            this.argList         = argList;
            this.wsRules         = wsRules;

            if (defaultDataSource is XmlReader)
            {
                this.readerSettings = new QueryReaderSettings((XmlReader)defaultDataSource);
            }
            else
            {
                this.readerSettings = new QueryReaderSettings(new NameTable());
            }

            if (defaultDataSource is string)
            {
                // Load the default document from a Uri
                this.defaultDataSource = GetDataSource(defaultDataSource as string, null);

                if (this.defaultDataSource == null)
                {
                    throw new XslTransformException(Res.XmlIl_UnknownDocument, defaultDataSource as string);
                }
            }
            else if (defaultDataSource != null)
            {
                this.defaultDataSource = ConstructDocument(defaultDataSource, null, null);
            }
        }
        private WhitespaceRuleReader(XmlReader baseReader, WhitespaceRuleLookup wsRules) : base(baseReader) {
            Debug.Assert(wsRules != null);

            this.val = null;
            this.stkStrip = new BitStack();
            this.shouldStrip = false;
            this.preserveAdjacent = false;

            this.wsRules = wsRules;
            this.wsRules.Atomize(baseReader.NameTable);
        }
        private WhitespaceRuleReader(XmlReader baseReader, WhitespaceRuleLookup wsRules) : base(baseReader)
        {
            Debug.Assert(wsRules != null);

            _val              = null;
            _stkStrip         = new BitStack();
            _shouldStrip      = false;
            _preserveAdjacent = false;

            _wsRules = wsRules;
            _wsRules.Atomize(baseReader.NameTable);
        }