This looks fine as well.

Suggestion / Idea:  To help limit the number of symbols users need to import, maybe add:

     new_portgroup = staticmethod(PortgroupXML)

Not sure if that works, but in any case, just to make it easy to return a new PortgroupXML instance to user.  Just an idea/option.