Mapeamento e transformação de dados XML com caracteres curinga no MapForce
MapForce 2014 agora suporta o mapeamento de caracteres curinga XML, o que permite criar um mecanismo de extensão integrado para esquemas XML, implementado como xs:any ou xs:anyAttribute.
Considere este fragmento XML visualizado no programa XMLSpy:

Esta pequena parte de um ficheiro muito extenso mostra dois pontos de trajetória registados durante uma viagem de carro por um dispositivo GPS da Garmin. Os dados XML seguem o esquema XML GPX, com extensões da Garmin para adicionar valores de velocidade e direção. O mapeamento de caracteres curinga em XML permite mapear estas extensões no MapForce, tal como qualquer outro elemento definido explicitamente no esquema XML.
Vamos supor que queremos ler o ficheiro .gpx e extrair a velocidade máxima registada para uma viagem:
!--mais--
Podemos iniciar um novo projeto de mapeamento no MapForce ao importar um ficheiro .gpx como componente de entrada. O MapForce apresenta uma visão de todos os elementos definidos no esquema XML correspondente e disponíveis para mapeamento. A captura de ecrã abaixo mostra a parte do esquema XML relativa aos pontos de trajetória:

A latitude, a longitude, a altitude e a hora aparecem imediatamente após o elemento "trkpt" e definem os dados presentes no fragmento XML. Os seguintes elementos – desde a variação magnética ("magvar") até o ID da estação DGPS ("dgpsid") – são todos opcionais e não aparecem no ficheiro de dados da Garmin.
Os elementos de velocidade e trajetória não estão definidos neste esquema XML. Em vez disso, a velocidade e a trajetória são permitidos com base em xs:any no final da imagem. Clicar no ícone ao lado de xs:any abre uma janela de diálogo que permite importar outro esquema XML que define as extensões e cria um "wrapper" para combinar o esquema XML original com as extensões. Após a importação, os novos elementos são exibidos no componente de origem e podem ser mapeados:

Organização de dados no mapeamento
Os ficheiros de exemplo instalados com o MapForce incluem um mapeamento chamado FindHighestTemperatures.mfd, que podemos usar como exemplo para extrair a velocidade máxima do nosso ficheiro, utilizando uma função de ordenação:

Esta função ordena todos os valores de velocidade, do mais alto para o mais baixo, e, em seguida, envia apenas o primeiro valor para a saída. A opção de ordenação "Z-A" (de Z a A) ordena automaticamente dados numéricos do valor mais alto para o valor mais baixo.
Converter valores no mapeamento
Finalmente, precisamos converter a velocidade de metros por segundo para milhas por hora, arredondar o resultado para duas casas decimais e adicionar algum texto descritivo:

O resultado da função de concatenação de strings mostrada acima é escrito no ficheiro de texto de saída:

Note que não foi necessário converter explicitamente a velocidade de um tipo de dado numérico para uma string à medida que passámos de uma função para outra. O MapForce trata automaticamente a conversão do tipo de dado. Aqui está uma visão simplificada do mapeamento completo, com comentários sobre as principais operações:

Clique na imagem ou clique aqui para ver a imagem em tamanho completo.
O site da Altova inclui formação online gratuita para o MapForce. Pode até mesmo descarregar uma versão de avaliação gratuita do MapForce e começar a aprimorar as suas competências em mapeamento e transformação de dados já hoje!