# A2uiCompositeSchema

Artifact: [androidx.a2ui:a2ui-model](https://developer.android.com/jetpack/androidx/releases/a2ui) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/model/schema/A2uiCompositeSchema.kt+class:androidx.a2ui.model.schema.A2uiCompositeSchema) Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

*** ** * ** ***


```
abstract class A2uiCompositeSchema : A2uiSchema
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.a2ui.model.schema.A2uiSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema) ||
|   | ↳ | [androidx.a2ui.model.schema.A2uiCompositeSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema) |

Known direct subclasses [A2uiAccessibilityAttributesSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiAccessibilityAttributesSchema), [A2uiActionSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiActionSchema), [A2uiCheckRuleSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiCheckRuleSchema), [A2uiCheckableSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiCheckableSchema), [A2uiChildListSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiChildListSchema), [A2uiComponentCommonSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiComponentCommonSchema), [A2uiComponentIdSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiComponentIdSchema), [A2uiDataBindingSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDataBindingSchema), [A2uiDynamicBooleanSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicBooleanSchema), [A2uiDynamicNumberSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicNumberSchema), [A2uiDynamicStringListSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicStringListSchema), [A2uiDynamicStringSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicStringSchema), [A2uiDynamicValueSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicValueSchema), [A2uiFunctionCallSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiFunctionCallSchema)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiAccessibilityAttributesSchema` | Holds accessibility properties for assistive technologies. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiActionSchema` | Standard interactions that dispatch events or call client functions. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiCheckRuleSchema` | Validates input components. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiCheckableSchema` | Enables client-side check validations. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiChildListSchema` | Specifies child component identifiers. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiComponentCommonSchema` | Defines shared attributes for all components. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiComponentIdSchema` | Represents unique identifiers for components within a surface. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDataBindingSchema` | Points to values within the data model. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicBooleanSchema` | Represents boolean values from literals, data bindings, or function calls. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicNumberSchema` | Represents number values from literals, data bindings, or function calls. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicStringListSchema` | Represents string lists from literals, data bindings, or function calls. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicStringSchema` | Represents string values from literals, data bindings, or function calls. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiDynamicValueSchema` | Represents values from literals, data bindings, or function calls. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/commontypes/A2uiFunctionCallSchema` | Configures client function invocations. |

*** ** * ** ***

Schema node that is defined by using other schema nodes.

Subclasses of this abstract class define a schema using `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema` components returned by `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#getDefinition()`. Supports reusable definitions in the `$defs` section of the generated JSON Schema when `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#definitionName()` is specified.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#A2uiCompositeSchema()()` |

| ### Public functions |
|---|---|
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `abstract https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#getDefinition()()` Returns the underlying schema definition. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#hashCode()()` |
| `open https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#toJsonElement()()` Serializes this schema to a JSON Schema string representation. |

| ### Public properties |
|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#definitionName()` Name of this schema within the `$defs` section of the generated JSON Schema. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchemaKeyword<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#keywords()` List of JSON Schema keywords applied to this schema node. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#schemaId()` Root schema ID used to reference this sub-schema. |

### Inherited functions

From [androidx.a2ui.model.schema.A2uiSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema#toJsonSchema()()`

Serializes this schema to a JSON Schema string representation.

### Inherited properties

From [androidx.a2ui.model.schema.A2uiSchema](https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema) `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema#description()`

Semantic description of the schema.

## Public constructors

### A2uiCompositeSchema

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
A2uiCompositeSchema()
```

## Public functions

### equals

```
open operator fun equals(other: Any?): Boolean
```

### getDefinition

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
abstract fun getDefinition(): A2uiSchema
```

Returns the underlying schema definition.

Concrete subclasses must implement this to return the actual schema details that this schema wraps.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiSchema` | the underlying schema definition |

### hashCode

```
open fun hashCode(): Int
```

### toJsonElement

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
open fun toJsonElement(): JsonElement
```

Serializes this schema to a JSON Schema string representation.

If `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#definitionName()` is non-null, this generates a `$ref` schema pointing to the definition instead of the full schema. Otherwise, it delegates to `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#getDefinitionJsonSchema()`.

| Returns |
|---|---|
| `https://kotlinlang.org/api/kotlinx.serialization/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html` | the serialized JSON Schema string |

## Public properties

### definitionName

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
open val definitionName: String?
```

Name of this schema within the `$defs` section of the generated JSON Schema.

If non-null, nested references to this schema will generate a `$ref` pointing to this definition name instead of inlining the full schema. Use this to avoid duplicating complex schemas in components.

### keywords

```
open val keywords: List<A2uiSchemaKeyword<Any>>
```

List of JSON Schema keywords applied to this schema node.

### schemaId

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
open val schemaId: String?
```

Root schema ID used to reference this sub-schema.

Non-null values prepend this ID to the `$ref` path when serializing this schema.

- Format when non-null: `"$schemaId#/$defs/$definitionName"`

- Format when null: `"#/$defs/$definitionName"`

Note: This has no effect if `https://developer.android.com/reference/kotlin/androidx/a2ui/model/schema/A2uiCompositeSchema#definitionName()` is null.