docstr: Valid whether useAnnotation and searchSpacePath is coexist
  spec_key: 'advisor' or 'tuner'
  builtin_name: 'builtinAdvisorName' or 'builtinTunerName'
docstr_tok: ["Valid","whether","useAnnotation","and","searchSpacePath","is","coexist","spec_key",":","'advisor","'","or","'tuner'","builtin_name",":","'builtinAdvisorName","'","or","'builtinTunerName","'"]
code: def validate_annotation_content(
      self, experiment_config, spec_key, builtin_name
  ):
      """
      Valid whether useAnnotation and searchSpacePath is coexist
      spec_key: 'advisor' or 'tuner'
      builtin_name: 'builtinAdvisorName' or 'builtinTunerName'
      """
      if experiment_config.get("useAnnotation"):
          if experiment_config.get("searchSpacePath"):
              raise SchemaError(
                  "If you set useAnnotation=true, please leave searchSpacePath empty"
              )
      else:
          # validate searchSpaceFile
          if (
              experiment_config[spec_key].get(builtin_name)
              == "NetworkMorphism"
          ):
              return
          if experiment_config[spec_key].get(builtin_name):
              if experiment_config.get("searchSpacePath") is None:
                  raise SchemaError("Please set searchSpacePath!")
              self.validate_search_space_content(experiment_config)
  
imports: import json
  import os
  from schema import And, Optional, Or, Regex, Schema, SchemaError
  from nni.tools.package_utils.tuner_factory import create_validator_instance
  from .common_utils import get_yml_content, print_warning
  from .constants import SCHEMA_PATH_ERROR, SCHEMA_RANGE_ERROR, SCHEMA_TYPE_ERROR
label_desc: Use image node_id 6 for calling the NNIConfigSchema obj's underlying member method code with example usage: obj.validate_annotation_content(experiment_config, spec_key, builtin_name) without return types