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); } }
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); }
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); }