docs: def parse_xml_node(self, node):
          '''Parse an xml.dom Node object representing a service port connector into
          this object.
  
          '''
          self.connector_id = node.getAttributeNS(RTS_NS, 'connectorId')
          self.name = node.getAttributeNS(RTS_NS, 'name')
          if node.hasAttributeNS(RTS_NS, 'transMethod'):
              self.trans_method = node.getAttributeNS(RTS_NS,
                                                           'transMethod')
          else:
              self.trans_method = ''
          self.comment = node.getAttributeNS(RTS_EXT_NS, 'comment')
          if node.hasAttributeNS(RTS_EXT_NS, 'visible'):
              visible = node.getAttributeNS(RTS_EXT_NS, 'visible')
              if visible == 'true' or visible == '1':
                  self.visible = True
              else:
                  self.visible = False
  
          if node.getElementsByTagNameNS(RTS_NS, 'sourceServicePort').length != 1:
              raise InvalidServicePortConnectorNodeError
          self.source_service_port = TargetPort().parse_xml_node(\
                  node.getElementsByTagNameNS(RTS_NS, 'sourceServicePort')[0])
          if node.getElementsByTagNameNS(RTS_NS, 'targetServicePort').length != 1:
              raise InvalidServicePortConnectorNodeError
          self.target_service_port = TargetPort().parse_xml_node(\
                  node.getElementsByTagNameNS(RTS_NS, 'targetServicePort')[0])
          for c in get_direct_child_elements_xml(node, prefix=RTS_EXT_NS,
                                                 local_name='Properties'):
              name, value = parse_properties_xml(c)
              self._properties[name] = value
          return self