Compartilhar via


Diretiva de modelo de membro

A diretiva *Member também é um constructo. O valor desse constructo é um nome de modelo. Esse nome de modelo deve aparecer na lista *Membros do modelo de host (ou seja, o modelo no qual a produção reside) ou na lista *Membros da qual o modelo de host herda (direta ou indiretamente). O constructo *Member pode conter um atributo filho opcional chamado *Occurs.

*Ocorre especifica o número de instâncias associadas ao modelo especificado pela produção *Members, que pode aparecer em uma instância do modelo de host. As instâncias que se associam a modelos derivam do modelo nomeado pela produção *Members contarão como uma ocorrência de uma instância desse modelo. Se o número dessas ocorrências estiver dentro do intervalo definido pela diretiva *Occurs , a diretiva *Member será avaliada como TRUE; caso contrário, a diretiva será avaliada como FALSE. Modelos de atributo ou constructo (*Tipo: CONSTRUCT ou *Tipo: ATRIBUTO) podem ser referenciados em um constructo *Member . O constructo *Member que aparece dentro de uma diretiva *Production não é o mesmo que a diretiva *Members que aparece como um filho de uma diretiva *Template. *Member é um constructo e é singular, e *Members é um atributo e é plural (termina com a letra "s").

*Ocorre especifica o número de instâncias associadas ao modelo especificado pela produção *Members. Um valor específico pode ser especificado ou um intervalo de valores pode ser especificado usando um par de números separados por um hífen (-). Se um intervalo for especificado, o primeiro número deverá ser menor que o segundo. Números negativos não são permitidos. O intervalo permitido inclui os pontos de extremidade especificados. O valor 0 é permitido. O curinga gpd (*) é permitido e corresponde a qualquer valor que varia de 0 a infinito. Se o curinga (*) aparecer como o ponto de extremidade superior de um intervalo, não haverá limite superior. Se o curinga aparecer como o limite inferior de um intervalo, o limite superior será ignorado. O número ou par de números pode ser colocado entre colchetes ([]) para ênfase visual.

Se o atributo *Occurs for omitido do constructo *Member , um intervalo de 0 a infinito (ou seja, [0-*]) será assumido e a produção *Member sempre será avaliada como TRUE.

Quando um *Member produção nomeia um modelo de construção, a contagem *Occurs não distingue entre as diferentes instâncias do constructo. Portanto, três instâncias diferentes de um constructo que estão associadas ao mesmo modelo terão a mesma contagem de ocorrências que três instâncias idênticas do mesmo constructo.

Por exemplo, se PaperSize e InputSlot estiverem associados ao mesmo modelo e se *Recurso: PaperSize for definido duas vezes, a contagem de ocorrências será duas. Se *Recurso: PaperSize for definido uma vez e *Recurso: InputSlot for definido duas vezes, a contagem de ocorrências será de três.

Nenhum outro atributo ou constructo é permitido dentro da diretiva *Member .

Quando a diretiva *Members está em conjunto com o processo de associação de modelo, a diretiva *Members tenta associar um modelo a cada elemento filho que aparece dentro de um constructo. Mas ele não especifica quantas vezes um elemento filho pode aparecer ou especificar dependências entre ou entre elementos filho. A diretiva *Production é responsável por especificar esses requisitos. Observe que a diretiva *Members ainda é necessária mesmo quando você usa a diretiva *Production.