> I'm a bit confused about what characters we're disallowing in property
> names, and about the reasons we're disallowing them.
> My understanding was that we had a problem with ":" in a property
> name, due to a WebDAV protocol problem. We all agreed this was a bug.
> Ben Reser went to fix it one way, but ended up having to fix it
> another way, see issue #1807 for details.
> Now we're talking about "/" being disallowed in property names. Why
> is it disallowed? I'm not saying there should be no limitations on
> property names -- newlines and other control chars seem like a bad
> idea, for example. But "/"? What's wrong with "/"?
In WebDAV properties are marshalled as XML elements, that is, a property
name must be a valid XML name. XML defines the set of chracters allowed
in names in
Note that this is similar to allowed characters in variable names in
common programming languages; you can't have whitespace or a "/" in them.
> If the issue is that a particular transport layer (DAV) makes it
> difficult to allow certain otherwise-desirable chars, then we have a
> bug in our transport layer, and should treat it as such. Now, maybe
> we need to disallow those chars in propset for a while, until we fix
> the bug. But we shouldn't be treating this as a permanent and
There is no simple way to fix that bug, except for adding a new layer of
character escaping. I don't think this is a good idea.
> acceptable state of affairs. The property namespace is Subversion's;
> the fact that we use XML or XML-based protocols is an implementation
> detail that shouldn't be leaking out into userland.
> Is there some more subtle issue here? Is it that we need to limit
> these properties because DAV has its own idea of properties and we
> want to remain compatible with DAV clients? If so, perhaps we should
> be thinking of a compatibility strategy other than "Limit everyone to
> whatever DAV can handle."
> (Are there other chars we don't allow, and if so, why?)
I'd like to understand why someone would *want* to use these
non-XML-name characters inside *identifiers* (and this is what property
names are). Keep in mind that identifiers are *not* meant to be used in
a UI; you need a separate layer of I18N on top of that anyway.
Best regards, Julian
<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Wed Jul 21 18:50:04 2004