docs: def build(self, builder):
          """Build XML by appending to builder"""
          params = dict(SubjectKey=self.subject_key)
          params['mdsol:SubjectKeyType'] = self.subject_key_type
  
          if self.transaction_type is not None:
              params["TransactionType"] = self.transaction_type
  
          # mixins
          self.mixin()
          self.mixin_params(params)
  
          builder.start("SubjectData", params)
  
          # Ask children
          if self.audit_record is not None:
              self.audit_record.build(builder)
  
          if self.siteref:
              self.siteref.build(builder)
          else:
              builder.start("SiteRef", {'LocationOID': self.sitelocationoid})
              builder.end("SiteRef")
  
          for event in self.study_events:
              event.build(builder)
  
          if self.signature is not None:
              self.signature.build(builder)
  
          for annotation in self.annotations:
              annotation.build(builder)
  
          builder.end("SubjectData")