def METHOD_NAME(self):
    from ._arg import AAZObjectArg, AAZDictArg, AAZFreeFormDictArg, AAZListArg, AAZBaseArg
    assert self.schema is not None and isinstance(self.schema, AAZBaseArg)
    schema = self.schema
    schema_key = self.keys[0]
    idx = 1
    while idx < len(self.keys):
        key = self.keys[idx]
        if isinstance(schema, AAZObjectArg):
            try:
                schema = schema[key]  # pylint: disable=unsubscriptable-object
            except AAZUndefinedValueError:
                # show the help of current schema
                break
            key = f'.{key}'
        elif isinstance(schema, (AAZDictArg, AAZFreeFormDictArg)):
            try:
                schema = schema.Element
            except AAZUnknownFieldError:
                # show the help of current schema
                break
            key = '{}'
        elif isinstance(schema, AAZListArg):
            try:
                schema = schema.Element
            except AAZUnknownFieldError:
                # show the help of current schema
                break
            key = '[]'
        else:
            # show the help of current schema
            break
        schema_key += key
        idx += 1
    self._print_schema_basic(schema_key, schema)
    if isinstance(schema, AAZObjectArg):
        self._print_object_props_schema(schema, title="Object Properties")
    elif isinstance(schema, AAZDictArg) and isinstance(schema.Element, AAZObjectArg):
        self._print_object_props_schema(schema.Element, title="Dict Element Properties")
    elif isinstance(schema, AAZListArg) and isinstance(schema.Element, AAZObjectArg):
        self._print_object_props_schema(schema.Element, title="List Element Properties")
    _print_indent("")