A content repository comprises repository items that correspond to documents maintained in a hierarchical name space. A content repository typically serves as a source of content items to display to a user, directly or as an element in a page.

An SQL repository implemented through the Generic SQL Adapter connector can act as a content repository, storing content items that are displayed in pages. Because the GSARepository class implements two interfaces—atg.repository.Repository and atg.repository.content.ContentRepository—and a repository can contain multiple repository item types, a single repository can contain both content repository items (arranged in a hierarchical structure with folders that can contain repository items and other folders) and non-content repository items (arranged in a flat structure).

You can use a content repository to serve targeted content, as described in the Creating Rules for Targeting Content and Setting Up Targeting Services chapters of the ATG Personalization Programming Guide. A product catalog in a commerce application is also typically a content repository, as described in the Using and Extending the Default Catalog chapter of the ATG Commerce Programming Guide.

Note that the essential feature of a content repository is that it represents a hierarchical structure of folders and repository items, like a directory structure. The repository items themselves do not necessarily represent content that is displayed in a Web application, although in most cases they do. What is significant is whether the repository items are maintained in a hierarchical structure.

You can define one or more item descriptors in an SQL repository to be a content item descriptor that defines a type of ContentRepositoryItem. When you retrieve one of these items by calling any Repository methods, the repository item implements the atg.repository.content.ContentRepositoryItem interface. You can have other item descriptors in the same repository that do not implement this interface and do not define content items.

The Repository Loader is a utility that handles the work of creating and updating content repository items from documents on your file system. The repository template can be configured so the loader assigns the values of your content repository item’s properties from selected portions of these documents while still allowing access to the entire document. These properties include metadata about the document file such as its length and the time it was last modified. The Repository Loader can be configured to periodically scan the file system and synchronize it with the repository representation, adding, updating and deleting content repository items as necessary. See the Repository Loader chapter for more information.