É
possível mapear nós de elemento e atributo do documento de origem para um documento
de destino.
Sobre Esta Tarefa
As combinações de mapeamento a seguir são aceitáveis:
- um atributo para um atributo
- um atributo para um elemento
- um elemento para um elemento
- um elemento para um atributo
- muitos nós para um nó
As instruções a seguir se aplicam à perspectiva Recurso,
mas também funcionarão em várias outras perspectivas.
Para criar um mapeamento, conclua
as seguintes etapas:
Procedimento
- Abra seu arquivo de mapeamento no editor de mapeamento XML.
- Selecione um ou mais elementos ou atributos no documento de origem. Utilize a tecla Ctrl para selecionar mais de um elemento ou atributo.
- Selecione um elemento ou atributo no documento de destino.
- Clique com o botão direito do mouse no documento de origem ou destino e clique em Criar Transformação. Os nós serão mapeados uns para os outros.
Para especificar o tipo de transformação, clique na caixa de tipo de transformação entre os nós.
É possível selecionar uma das opções a seguir:
| Opção |
Descrição |
| Mover |
Esse tipo copia dados de uma origem para um destino. |
| Concat |
Esse tipo cria uma concatenação de cadeia que permite recuperar
dados de duas ou mais entidades para ligá-las em um único resultado. |
| Mapa sequencial |
Esse tipo permite que o mapa efetue callout para outros mapas, mas
outros mapas não podem chamá-lo. Somente pode ser utilizado dentro do mapa atual. Se as entradas e saídas forem matrizes, o mapa seqüencial é iterado implicitamente sobre as entradas. |
| Submapa |
Esse tipo faz referência a outro mapa. Ele chama ou invoca um mapa a partir deste ou de outro arquivo de mapeamento. A escolha desse tipo de transformação é mais efetiva para fins de reutilização. |
| Subcadeia |
Esse tipo extrai informações, conforme necessário. Por exemplo, a subcadeia lastname,
firstname com um delimitador "," e um índice de subcadeia de 0 retorna o valor
lastname. Se o índice da subcadeia fosse alterado para 1, agora
a saída seria firstname. |
| Grupo |
Esse tipo pega uma matriz ou coleta de dados e agrupa em uma coleta de
uma coleta. Essencialmente, é uma matriz contendo uma matriz. O agrupamento é feito no nível do campo, o que significa que ele é feito selecionando um campo da coleção de entrada, tal como "departamento". |
| Normalizar |
Esse tipo
normaliza a cadeia de entrada. Ele pode ser utilizado, por exemplo, para remover ocorrências múltiplas de espaço em branco (como espaços, tabulações ou retornos). |
| Customizada |
Esse tipo permite inserir código customizado
ou chamar um código de referência para ser utilizado
na transformação.
É possível estender as funções de transformação incorporadas, utilizando as expressões XPath customizadas e os modelos XSLT. |
Exemplo
Para remover um mapeamento, clique com o botão direito do mouse na conexão do mapeamento e selecione
Excluir.
Mapeando para elementos com conteúdo vazio
O mapeamento para
um elemento XML sem nenhum conteúdo (por exemplo, <Person/>) é diferente do mapeamento
para um elemento XML que contém dados de caractere (por exemplo, <Person>Molly</Person>).
No segundo caso, o mapeamento significa que os dados do nó de origem serão utilizados como dados de caractere
para o elemento de destino. No entanto, no primeiro caso, o mapeamento não surte nenhum efeito sobre o XSLT que
é gerado.
Em um DTD, um elemento sem nenhum conteúdo é especificado por meio do uso da palavra-chave
'EMPTY' (por exemplo, <!ELEMENT Person EMPTY>).
Em um esquema XML, isso não é tão direto. Uma das maneiras sintaticamente compactas de se especificar um
elemento de conteúdo vazio em um esquema XML é definir um tipo complexo sem nenhum conteúdo simples ou
conteúdo complexo (por exemplo, <xsd:element name="Person"> <xsd:complexType/></xsd:element>).
Isso é interpretado como uma abreviação para conteúdo complexo que restringe anyType.