[Zope-dev] allowable object ids

Andreas Kostyrka andreas@mtg.co.at
23 Nov 2002 23:37:28 +0100


Am Sam, 2002-11-23 um 18.30 schrieb Jamie Heilman:
> Turns out you can create objects with an id of . or .. although you
Well, you can access these properties/objects from DTML/Python. Not from
ZPublisher (the URL->Object Request Broker).
 
> can't access them.  (which is to say I couldn't figure out how, though
> I didn't try ZServer standalone and I suppose apache might be doing
> something to the URI)  You can't create objects with ids containing +
> or % or a host of other characters though (and btw the error message
> you get when you try is horrid, those characters are not illegal in
> URLs, illegal in the zope object model perhaps, but not URLs).  I'm
> currious, why aren't arbitrary characters allowed in object ids?
Well, because of the implementation details, it is not possible to allow
certain ids (things that start with '_' or 'aq_', etc.).

Why % is not allowed I can only guess at, but I'd assume that the
authors tried to get "sane" ids. It's a bit like the Unix Filesystem. By
definition it allows all characters except '\0' and '/'. Still it's
rather stupid and inconvienent to use exotic characters.

By the way, you can look
Zope/lib/python/OFS/ObjectManager.py:checkValidId (line 49) to see what
is allowed and what not.

Andreas