From: Hungerburg <pc...@my...> - 2014-01-26 19:52:48
|
Am 2014-01-16 22:46, schrieb Hungerburg: > Am 2014-01-16 21:09, schrieb wol...@ex...: >> I have been debugging this issue today and my findings are as follows: >> a problem only arises if you use a character from the list of reserved >> characters (including @/!;,: etc.). eXide, dashboard and Java admin >> client will encode those (@ becomes %40). However, webdav clients >> (oXygen and finder) do not! I’m not sure if this is due to the client >> or the server-side interface. Consequently if you create a collection >> using a reserved character via webdav, you cannot access it through >> other clients and vice versa. Mostly the problems arise, because it is impossible, to convert a URI to a string, and then to a URI back again without risking corruption. Repeat: this will not work reliably, unless the string represents a fully qualified URI. The code of class XmldbURI shows some confusion about that. In the beginning it says, it is only about paths, but then it provides methods to extract a scheme etc. From time to time, this will fail. Please read attached patch: It may be a starting point to let eXist-db gracefully handle most of the characters, that are problematic in URIs. The comments should be helpful, if a little casual in tone. Please find scripts to create such names at https://github.com/eXist-db/exist/issues/44 The patch tries to be unobtrusive and respect the expectations of users of the xmldb functions. It is tested with curl and davfs. The names look nice too in dashboard-browser, eXide and the old admin panel. Caveats: Some interoperabilty issues remain, eg. some parts of eXist want double-encoded special chars and umlauts etc. You should not give in into this. Also, it is assumed, that server operating systems have utf-8 clean filesystems for storing binaries. Possibly others… Kind regards -- peter |