def registerPlexObject(cls):
etype = getattr(cls, '<STR_LIT>', cls.TYPE)<EOL>ehash = '<STR_LIT>' % (cls.TAG, etype) if etype else cls.TAG<EOL>if ehash in PLEXOBJECTS:<EOL><INDENT>raise Exception('<STR_LIT>' %<EOL>(cls.__name__, cls.TAG, etype, PLEXOBJECTS[ehash].__name__))<EOL><DEDENT>PLEXOBJECTS[ehash] = cls<EOL>return cls<EOL>
Registry of library types we may come across when parsing XML. This allows us to
        define a few helper functions to dynamically convery the XML into objects. See
        buildItem() below for an example.