Beispiel #1
0
 /// <summary>
 /// Gets XmlResolver - default or custom, with user credentials or not.
 /// </summary>
 /// <param name="credentials">User credentials</param>    
 /// <param name="options">Parsed command line options</param>
 public static XmlResolver GetXmlResolver(NetworkCredential credentials, NXsltOptions options, bool prohibitDTD)
 {
     XmlResolver resolver;
     Type resolverType;
     if (options.ResolverTypeName != null)
     {
         //Custom resolver
         try
         {
             resolverType = TypeUtils.FindType(options, options.ResolverTypeName);
         }
         catch (Exception e)
         {
             throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message);
         }
         if (!typeof(XmlResolver).IsAssignableFrom(resolverType))
         {
             //Type is not XmlResolver
             throw new NXsltException(NXsltStrings.ErrorTypeNotXmlResolver, options.ResolverTypeName);
         }
         try
         {
             resolver = (XmlResolver)Activator.CreateInstance(resolverType);
         }
         catch (Exception e)
         {
             throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message);
         }
     }
     else
     {
         if (prohibitDTD)
         {
             resolver = new XmlUrlResolver();
         }
         else
         {
             resolver = new DTDAllowingResolver();
         }
     }
     //Set credentials if any
     if (credentials != null)
     {
         resolver.Credentials = credentials;
     }
     return resolver;
 }