Invalid URI: The Uri string is too long

40,746

the problem is that the xml in your xmlreader.create function should be a uri if the argument is a string.

eg.

XmlReader reader = XmlReader.Create("http://ServerName/data/books.xml", settings);

In your case the xml file is being interpreted as the url and hence it is complaining about the limit.

look at this msdn doc XmlReader.Create Method for different overloaded methods..

I am guessing you should use the TextReader one.

Share:
40,746
chobo2
Author by

chobo2

Updated on July 29, 2022

Comments

  • chobo2
    chobo2 over 1 year

    I am trying to grab a schema and validate against my xml.

      XmlReaderSetting settings = new System.Xml.XmlReaderSettings();
                settings.Schemas.Add(null, "http://example.com/myschema.xsd");
                settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler); 
                settings.ValidationType = ValidationType.Schema;
                settings.IgnoreWhitespace = false;
                XmlReader reader = XmlReader.Create(xml, settings);
    

    I get

    Invalid URI: The Uri string is too long
    
    
    System.UriFormatException was unhandled   Message=Invalid URI: The Uri string is too long.   Source=System   StackTrace:
           at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
           at System.Uri..ctor(String uriString, UriKind uriKind)
           at System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
           at System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
           at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
           at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
           at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings)
           at ConsoleApplication2.Program.Main(String[] args) in Program.cs:line 42
           at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
           at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           at System.Threading.ThreadHelper.ThreadStart()   InnerException:
    

    Does not tell me what the max length is or anything. Anyone ever get this before?