Microsoft, this especially goes to you.
It's confusing as heck when protocol-declarative dead URLs are used as URIs. It's bad netiquitte, very rude, please don't do that.
As many people know, a URI is an identifier, whereas a URL is a locator. The former is a unique ID for a resource, the latter tells the world how to access the resource over the Internet. They are often one and the same, but a URI is expected to never change without suggesting the change of the resource itself, whereas a URL can point anywhere at any time.
URLs are, in fact, URIs, although URIs are not necessarily always URLs. The url http://cachefile.net/scripts/jquery/1.2.2/jquery-1.2.2.js is also a URI that identifies the specific location of the given resource.
However, in the view of some people, the URI http://schemas.xmlsoap.org/soap/envelope/ is not a URL. Actually, in this case, it happens to be a URL because if you navigate to that URI it will actually return a schema document. But what would happen if there was no document that was returned from that URL? Would it be valid URI? Sure.
Some people, such as Microsoft, think that because you can have a URI that can look like a URL without being a URL and it can still be a URI, you should. No, Microsoft, and whoever else does this. You shouldn't.
Don't get me wrong, URIs that are not URLs are an acceptable practice in general. My issue is that the scheme of "http" should not be present in the URI if HTTP is not relevant to identifying it. A valid URI that is not a URL would be xmlschema://schemas.microsoft.com/2003/10/Serialization/Arrays, whereas an unacceptable URI that is not a URL would be http://schemas.microsoft.com/2003/10/Serialization/Arrays.
If you're going to put HTTP as the scheme of a URI, put a web site there and make it accessible. I would much prefer that a web site that contains http://schemas.microsoft.com/2003/10/Serialization/Arrays be at the specified location than be presented with the URI of xmlschema://schemas.microsoft.com/2003/10/Serialization/Arrays, but to have the HTTP URI with no web site provisioning what the URI is communicating to the reader is just wrong.
I don't take exception to URIs containing tempuri.org, which is shown with a scheme of "http". That is a stub that Visual Studio / .NET throws in that is the maintainer's responsibility to revise. Same with datacontract.org, which I find showing up in WCF communications. Furthermore, using the TLD of ".org" is unacceptable as it suggests that an organizational entity is behind the URI. A more appropriate TLD is no TLD at all, really. Follow "tempuri" with a single dot ("xmlschema://tempuri./resource"), which globalizes the name.