Writing and parsing currently distinguish between URLs that can be written relatively and those that cannot. URLs with a relative scheme http://url.spec.whatwg.org/#relative-scheme have a relative syntax and the others do not. Fragment makes sense to have on both, although for setting hash (not getting) I ended up special casing the scheme "javascript" because that would make little sense.
For query I think I might have made the wrong judgment, it is currently not supported. mailto: I suppose is an obvious candidate where it does make sense to have it separate and not rely on the mailto: specific-processing for that, but for data: and javascript: (again) and also about: it is less clear. Does anyone know whether Internet Explorer supports "about:blank?test"? Always parsing query in the base URL parser is also closer to STD 66. (Browser support is all over the map. For "mailto:test?test" Firefox gives neither pathname/search, Opera/Safari give pathname/search, Chrome only gives pathname, which is "test?test". No access to Internet Explorer unfortunately.) -- http://annevankesteren.nl/
