Esta lição examina melhor o modelo de entrada JET, como se navega
com as expressões XPath e como as ações JET estão relacionadas ao modelo de entrada. Diferente
de outras lições no tutorial, esta lição não inclui qualquer animação.
O modelo de entrada JET A seguir estão as características dos
modelos de entrada que você cria utilizando a funcionalidade de autoria da transformação JET:
- O modelo é hierárquico e possui um único elemento-raiz
- Cada tipo de elemento no modelo pode conter atributos, os quais possuem valores
de cadeia
- A restrição do elemento sempre especifica uma cardinalidade de zero ou maior que zero
Os recursos do modelo são deliberadamente restritivos para
facilitar a criação rápida de transformações de modelo em texto sem exigir
que o usuário tenha uma compreensão profunda do design do metamodelo.
Passagem
do modelo por transformações JET e chamada de ação
O editor de Autoria JET
gera código para passar o modelo de entrada. Esse código está localizado no
modelo main.jet e tem as seguintes características:
- O código gerado executa uma primeira passagem profunda do modelo.
- O modelo é passado duas vezes. A primeira passagem avalia as expressões dos atributos
derivados. A segunda passagem chama as ações JET que criam projetos,
pastas e arquivos. As ações JET que criam arquivos são denominadas ações do Arquivo JET
e elas chamam modelos JET.
- Durante o processamento, cada elemento de modelo é atribuído a uma variável XPath.
O nome dessa variável é definido na visualização Propriedades para o tipo de
elemento que é visível na área do editor. Por padrão, o nome da variável
é igual ao nome do elemento de modelo. A variável pode ser distinta
do nome do elemento porque as variáveis XPath são sempre prefixadas por um
cifrão ($) em uma expressão XPath.
- Durante o processamento de um elemento, o primeiro passo calcula os atributos
derivados, o segundo passo executa ações JET e então os elementos de modelo filho
são processados.
- As variáveis XPath que estão associadas ao elemento atual e todos
os seus elementos pai ficam disponíveis durante o cálculo do atributo derivado e
a chamada da ação JET. Portanto, qualquer cálculo de atributo derivado, ação JET
ou modelo JET chamados por uma ação do arquivo JET podem fazer referência ao elemento
processado atualmente ou qualquer um de seus elementos pai utilizando uma variável XPath.
Como exemplo, considere o modelo descrito neste módulo. A imagem
a seguir mostra o conteúdo do esquema de Entrada e as ações de saída.
A
ação Criar arquivo: letter.html e o modelo JET associado (modelos/letter.html.jet)
são chamados toda vez que um elemento de correio é encontrado sob o elemento-raiz.
Ambos a ação e o modelo têm acesso a duas variáveis XPath, $mailing
e $root. Os parâmetros da ação e as substituições de texto podem utilizar quaisquer atributos
que pertençam aos tipos de elemento correio e raiz.
Expressões XPath
e elementos de modelo de renomeação
As expressões XPath que são criadas
utilizando a funcionalidade de autoria de transformação JET estão sempre no
formato $variable/@attribute. A funcionalidade de autoria JET refatora essas
expressões se o nome da variável ou o tipo de elemento é renomeado. No entanto,
essa refatoração não é estendida para modelos JET. Isto é, a renomeação de uma variável
ou tipo de elemento no editor de Autoria JET quebra quaisquer expressões XPath nos
modelos JET que utilizam o nome antigo da variável.