docs: def build(self, builder):
          """Build XML by appending to builder"""
          params = dict(
              OID=self.oid,
              Active=bool_to_true_false(self.active),
              BypassDuringMigration=bool_to_true_false(self.bypass_during_migration),
              NeedsRetesting=bool_to_true_false(self.needs_retesting),
          )
  
          if self.variable_oid is not None:
              params["VariableOID"] = self.variable_oid
  
          if self.field_oid is not None:
              params["FieldOID"] = self.field_oid
  
          if self.form_oid is not None:
              params["FormOID"] = self.form_oid
  
          if self.folder_oid is not None:
              params["FolderOID"] = self.folder_oid
  
          if self.record_position is not None:
              params["RecordPosition"] = str(self.record_position)
  
          if self.form_repeat_number is not None:
              params["FormRepeatNumber"] = str(self.form_repeat_number)
  
          if self.folder_repeat_number is not None:
              params["FolderRepeatNumber"] = str(self.folder_repeat_number)
  
          if self.all_variables_in_folders is not None:
              params["AllVariablesInFolders"] = bool_to_true_false(
                  self.all_variables_in_folders
              )
  
          if self.all_variables_in_fields is not None:
              params["AllVariablesInFields"] = bool_to_true_false(
                  self.all_variables_in_fields
              )
  
          if self.logical_record_position is not None:
              params["LogicalRecordPosition"] = self.logical_record_position.value
  
          builder.start("mdsol:DerivationDef", params)
          for step in self.derivation_steps:
              step.build(builder)
          builder.end("mdsol:DerivationDef")