Provider is the one that understands a given URI and does something with it. JDBC connection string is a real life example. When you try to create a Connection, registered drivers are asked if they understand that connection string (which is nothing but a URI), so the drivers are the providers in this case. In case of file:// the file system is the provider.
pre condition could be anything that is required by the provider to access that url. In other words, if the provider understand the uri but is unable to work with it because something is wrong with it or something is missing. I don't have an example but if you need more details, you will need to check with the JavaDoc published by Oracle.