This is called by ConsumeAttributes when HandlesNamedPorts is true. This method does nothing for obj objects that are not instances of Northwoods.Go.GoGroup. For each Northwoods.Go.GoPort that is an immediate child object of the node, and that has a group child name, it calls GoXmlTransformer.StringAttr to read an identifier for that port. If the identifier is a non-empty string, it calls GoXmlReader.MakeShared to define the ID for that port. These port identifiers are not at all related to an Northwoods.Go.IGoIdentifiablePart.Northwoods.Go.IGoIdentifiablePart.PartID. If the identifier is an empty string, the port will not get a shared identifier, so it will not be able to be found by other attributes/properties that refer to it, but the port remains on the node. If the attribute is not present in the element, the port is removed from the node.