A correlação de dados consiste em duas partes. Uma parte é a origem dos dados e a outra é o consumidor dos dados. A classe-base para todas as origens de dados chama-se Origem de Dados e a para o consumidor chama-se Substituto.
Um elemento de modelo na extensão de protocolo que pode conter origens de dados deve ser marcado como um host de origem de dados pela implementação da interface DataSourceHost. Um elemento de modelo que pode conter consumidores de origens de dados deve ser marcado como um host de consumidor pela implementação da interface DataSourceConsumer.
O diagrama a seguir mostra o relacionamento entre a origem de dados e o consumidor:
Uma extensão de protocolo pode fornecer seu próprio conjunto de origens de dados integradas utilizando o ponto de extensão descrito no tópico "Pontos de Extensão".
O diagrama a seguir mostra o relacionamento entre essas classes:
O tipo de consumidor básico fornecido é um Substituto. O diagrama a seguir mostra a estrutura do Substituto: