Condividi tramite


Direttiva Modello membro

La direttiva *Member è anche un costrutto. Il valore di questo costrutto è un nome di modello. Questo nome di modello deve essere visualizzato nell'elenco *Membri del modello host (ovvero il modello in cui risiede la produzione) o nell'elenco *Membri da cui eredita il modello host (direttamente o indirettamente). Il costrutto *Member può contenere un attributo figlio facoltativo denominato *Si verifica.

*Si verifica specifica il numero di istanze associate al modello specificato dall'oggetto *Members production, che potrebbe essere visualizzato all'interno di un'istanza del modello host. Le istanze che si associano a modelli derivano dal modello denominato dall'ambiente di produzione *Members verranno conteggiati come occorrenze di un'istanza di tale modello. Se il numero di tali occorrenze rientra nell'intervallo definito dalla direttiva *Occurs , la direttiva *Member restituirà TRUE; in caso contrario, la direttiva restituirà FALSE. È possibile fare riferimento a modelli di attributo o costrutto (*Tipo: CONSTRUCT o *Type: ATTRIBUTE) in un costrutto *Member . Il costrutto *Member visualizzato all'interno di una direttiva *Production non corrisponde alla direttiva *Members visualizzata come figlio di una direttiva *Template. *Member è un costrutto ed è singolare e *Members è un attributo ed è plurale (termina con la lettera "s").

*Si verifica specifica il numero di istanze associate al modello specificato dall'oggetto *Members production. È possibile specificare un valore specifico oppure specificare un intervallo di valori usando una coppia di numeri separati con un trattino (-). Se viene specificato un intervallo, il primo numero deve essere inferiore al secondo. I numeri negativi non sono consentiti. L'intervallo consentito include gli endpoint specificati. Il valore 0 è consentito. Il carattere jolly GPD (*) è consentito e corrisponde a qualsiasi valore compreso tra 0 e infinito. Se il carattere jolly (*) viene visualizzato come endpoint superiore di un intervallo, non esiste alcun limite massimo. Se il carattere jolly viene visualizzato come limite inferiore di un intervallo, il limite superiore viene ignorato. Il numero o la coppia di numeri possono essere racchiusi tra parentesi quadre ([]) per l'enfasi visiva.

Se l'attributo *Si verifica viene omesso dal costrutto *Member , viene considerato un intervallo compreso tra 0 e infinito (ovvero [0-*]) e la produzione *Member restituirà sempre TRUE.

Quando un *Member modello di produzione assegna un nome a un modello di costrutto, il conteggio *Si verifica non distingue tra le diverse istanze del costrutto. Quindi, tre istanze diverse di un costrutto associate allo stesso modello avranno lo stesso numero di occorrenze di tre istanze identiche dello stesso costrutto.

Ad esempio, se PaperSize e InputSlot sono associati allo stesso modello e se *Feature: PaperSize è definito due volte, il conteggio delle occorrenze sarà due. Se *Feature: PaperSize viene definito una volta e *Feature: InputSlot è definito due volte, il conteggio delle occorrenze sarà tre.

Nessun altro attributo o costrutto è consentito all'interno della direttiva *Member .

Quando la direttiva *Members è in combinazione con il processo di associazione di modelli, la direttiva *Members tenta di associare un modello a ogni elemento figlio visualizzato all'interno di un costrutto. Ma non specifica il numero di volte in cui un elemento figlio può apparire o specificare eventuali dipendenze tra o tra gli elementi figlio. La direttiva *Production è responsabile della specifica di questi requisiti. Si noti che la direttiva *Members è ancora necessaria anche quando si usa la direttiva *Production.