In This Article
  • GraphSchema
  • GraphSchemaNameLike
  • GraphSchemaEvents
  • # GraphSchema ```ts /** * A GraphSchema defines a related set of graph categories and properties. */ export declare class GraphSchema { constructor(name: GraphSchemaNameLike); /** * Gets the graph that owns the schema. */ get graph(): Graph | undefined; /** * Gets the name of the schema. */ get name(): GraphSchemaNameLike; /** * Gets the child schemas of this schema. */ get schemas(): GraphSchemaCollection; /** * Gets the categories defined by this schema. */ get categories(): GraphCategoryCollection; /** * Gets the properties defined by this schema. */ get properties(): GraphPropertyCollection; /** * Gets the data types defined by this schema. */ get dataTypes(): DataTypeCollection; /** * Creates a subscription for a set of named events. */ subscribe(events: GraphSchemaEvents): EventSubscription; /** * Determines whether this schema contains the provided schema as a child or grandchild. */ hasSchema(schema: GraphSchema | GraphSchemaNameLike): boolean; /** * Adds a child schema to this schema. */ addSchema(schema: GraphSchema): this; /** * Creates an iterator for all schemas within this schema (including this schema). */ allSchemas(): IterableIterator; /** * Finds a category in this schema or its descendants. */ findCategory(id: GraphCategoryIdLike): GraphCategory | undefined; /** * Creates an iterator for the categories in this schema or its descendants with the provided ids. */ findCategories(...categoryIds: GraphCategoryIdLike[]): IterableIterator; /** * Finds a property in this schema or its descendants. */ findProperty(id: GraphPropertyIdLike): GraphProperty | undefined; /** * Creates an iterator for the properties in this schema or its descendants with the provided ids. */ findProperties(...propertyIds: GraphPropertyIdLike[]): IterableIterator; /** * Finds a data type in this schema or its descendants. */ findDataType(name: DataTypeNameLike, packageQualifier?: string): DataType | undefined; } ``` ### See Also * [EventSubscription](events.md#eventsubscription) * [DataType](dataType.md#datatype) * [DataTypeCollection](dataTypeCollection.md#datatypecollection) * [DataTypeNameLike](dataType.md#datatypenamelike) * [GraphCategory](graphCategory.md#graphcategory) * [GraphCategoryCollection](graphCategoryCollection.md#graphcategorycollection) * [GraphCategoryIdLike](graphCategory.md#graphcategoryidlike) * [GraphProperty](graphProperty.md#graphproperty) * [GraphPropertyCollection](graphPropertyCollection.md#graphpropertycollection) * [GraphPropertyIdLike](graphProperty.md#graphpropertyidlike) * [GraphSchemaCollection](graphSchemaCollection.md#graphschemacollection) * [GraphSchemaEvents](#graphschemaevents) * [GraphSchemaNameLike](#graphschemanamelike) * [Graph](graph.md#graph) * [API Documentation](index.md) # GraphSchemaNameLike ```ts /** * Represents a valid value for the name of a GraphSchema. */ export declare type GraphSchemaNameLike = string | symbol; ``` ### See Also * [GraphSchema](#graphschema) * [API Documentation](index.md) # GraphSchemaEvents ```ts export interface GraphSchemaEvents { /** * An event raised when the schema or one of its child schemas has changed. */ onChanged?: () => void; } ``` ### See Also * [GraphSchema](#graphschema) * [API Documentation](index.md)