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); } }
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); } }
public void Load(Compiler compiler, object stylesheet, XmlResolver xmlResolver) { Debug.Assert(compiler != null); _compiler = compiler; _xmlResolver = xmlResolver ?? XmlNullResolver.Singleton; XmlReader reader = stylesheet as XmlReader; if (reader != null) { _readerSettings = new QueryReaderSettings(reader); Load(reader); } else { // We should take DefaultReaderSettings from Compiler.Settings.DefaultReaderSettings. string uri = stylesheet as string; if (uri != null) { // If xmlResolver == null, then the original uri will be resolved using XmlUrlResolver XmlResolver origResolver = xmlResolver; if (xmlResolver == null || xmlResolver == XmlNullResolver.Singleton) origResolver = new XmlUrlResolver(); Uri resolvedUri = origResolver.ResolveUri(null, uri); if (resolvedUri == null) { throw new XslLoadException(SR.Xslt_CantResolve, uri); } _readerSettings = new QueryReaderSettings(new NameTable()); using (reader = CreateReader(resolvedUri, origResolver)) { Load(reader); } } else { IXPathNavigable navigable = stylesheet as IXPathNavigable; if (navigable != null) { reader = XPathNavigatorReader.Create(navigable.CreateNavigator()); _readerSettings = new QueryReaderSettings(reader.NameTable); Load(reader); } else { Debug.Fail("Should never get here"); } } } Debug.Assert(compiler.Root != null); compiler.StartApplyTemplates = f.ApplyTemplates(nullMode); ProcessOutputSettings(); foreach (AttributeSet attSet in compiler.AttributeSets.Values) { CheckAttributeSetsDfs(attSet); // Check attribute sets for circular references using dfs marking method } }
public void Load(Compiler compiler, object stylesheet, XmlResolver xmlResolver) { Debug.Assert(compiler != null); this.compiler = compiler; this.xmlResolver = xmlResolver ?? XmlNullResolver.Singleton; XmlReader reader = stylesheet as XmlReader; if (reader != null) { readerSettings = new QueryReaderSettings(reader); LoadStylesheet(reader, /*include:*/false); } else { // We should take DefaultReaderSettings from Compiler.Settings.DefaultReaderSettings. string uri = stylesheet as string; if (uri != null) { // If xmlResolver == null, then the original uri will be resolved using XmlUrlResolver XmlResolver origResolver = xmlResolver ?? new XmlUrlResolver(); Uri resolvedUri = origResolver.ResolveUri(null, uri); if (resolvedUri == null) { throw new XslLoadException(Res.Xslt_CantResolve, uri); } readerSettings = new QueryReaderSettings(new NameTable()); using (reader = CreateReader(resolvedUri, origResolver)) { LoadStylesheet(reader, /*include:*/false); } } else { IXPathNavigable navigable = stylesheet as IXPathNavigable; if (navigable != null) { reader = XPathNavigatorReader.Create(navigable.CreateNavigator()); readerSettings = new QueryReaderSettings(reader.NameTable); LoadStylesheet(reader, /*include:*/false); } else { Debug.Fail("Should never get here"); } } } Process(); }