Comparar esquemas XML com o DiffDog 2010

O DiffDog 2010 inclui uma nova ferramenta poderosa para comparar esquemas XML, que pode ser utilizada por desenvolvedores XML e outros para atualizar ficheiros de dados XML existentes à medida que os esquemas XML evoluem. Este artigo analisa um exemplo de utilização desta funcionalidade.

Antes de explorarmos a nova funcionalidade, vamos dar uma olhada rápida a dois esquemas XML utilizando a funcionalidade "Comparação de Ficheiros DiffDog". Como nas versões anteriores, os utilizadores do DiffDog 2010 podem comparar esquemas XML como documentos .xsd e exibir as diferenças num formato com cores e compatível com XML.

Esta é uma boa forma de identificar e gerir as diferenças em esquemas XML, especialmente quando se pretende analisar as alterações em esquemas XML de referência da indústria que evoluem ao longo do tempo.O que há de novo No DiffDog 2010, existe uma funcionalidade adicional Comparação de esquemas XML Uma opção que exibe graficamente dois esquemas XML lado a lado, identifica automaticamente elementos idênticos e permite aos utilizadores mapear as diferenças, gerando transformações XSL para atualizar os ficheiros de dados XML. Aqui está a primeira visualização que obtemos ao abrir os mesmos dois esquemas XML mostrados na comparação de ficheiros acima, utilizando a nova funcionalidade de comparação de esquemas XML.

Os elementos principais dos dois esquemas XML são automaticamente conectados. Podemos clicar no botão "Comparar" na barra de ferramentas para conectar automaticamente os elementos idênticos nos dois esquemas XML.

(É claro que também podemos selecionar "Comparar Esquemas XML" no menu de contexto ao clicar com o botão direito, ou escolher "Iniciar Comparação" no menu "Diferenças e Mesclagem", ou pressionar o atalho de teclado F5 – o DiffDog oferece várias opções para realizar a mesma tarefa, para que possa trabalhar da forma que preferir.)

Em seguida, podemos associar elementos com nomes diferentes nos dois Esquemas XML, conectando manualmente as setas entre eles. Neste exemplo, a maioria das alterações na versão do Esquema XML à direita simplesmente atribui novos nomes aos elementos, o que será mais claro quando o Esquema XML e os seus ficheiros de dados forem distribuídos na nossa empresa.

Quando todos os elementos são mapeados, podemos gerar um ficheiro XSLT para transformar ficheiros de dados XML existentes, com base no esquema XML apresentado à esquerda, de forma a refletir as alterações presentes na versão mais recente, mostrada à direita. Esta funcionalidade foi concebida para ajudar os desenvolvedores XML a evitar as tarefas morosas de escrever e depurar transformações XSL manualmente.

Aqui está um exemplo de um ficheiro de dados XML original, baseado no esquema XML apresentado no lado esquerdo, tal como visualizado no Altova XMLSpy:

O ficheiro de saída, após a aplicação da transformação XSL que criámos com o DiffDog 2010, é apresentado abaixo. Note a substituição do elemento "autor" por "escritor", "email" por "feedback", e assim por diante.

Se existirem muitos ficheiros XML que precisam de ser transformados, as funcionalidades de Gestão de Projetos do XMLSpy podem ajudar-nos a automatizar o processo. Podemos adicionar pastas externas a um projeto do XMLSpy.

Através da caixa de diálogo de propriedades do XMLSpy para cada pasta de projeto, podemos atribuir valores padrão para definir um esquema XML para validação, a transformação XSL e o destino do ficheiro de saída.

Agora, podemos selecionar a pasta de entrada na janela de assistência do projeto XMLSpy e transformar todos os ficheiros contidos nela com o atalho F10. Quando mapeámos originalmente os elementos do esquema XML no DiffDog, deixámos o elemento de publicação sem ligação no lado esquerdo, uma vez que não tinha um elemento correspondente na versão anterior do esquema. Isso significa que, quando transformarmos ficheiros de entrada XML utilizando o XSLT, a saída resultante não incluirá o elemento de publicação. Se a publicação for um elemento obrigatório, podemos recorrer ao Altova MapForce para uma solução rápida.

Uma das opções no DiffDog é gerar um mapeamento MapForce em vez de um XSLT. Quando escolhemos esta opção, o MapForce é iniciado com o nosso mapeamento DiffDog já carregado como um novo design MapForce, como mostrado abaixo.

É fácil melhorar a correspondência, adicionando um valor constante como valor padrão para o elemento de publicação.

Agora podemos guardar um ficheiro XSL do MapForce que reutiliza todas as associações de elementos que definimos originalmente no DiffDog e que adiciona um valor constante. Quando aplicamos o novo ficheiro XSL para transformar o nosso ficheiro XML original, obtemos um resultado que inclui o valor padrão para o elemento de publicação.

Esta publicação começou por descrever a nova funcionalidade de comparação de esquemas XML no DiffDog 2010. A apresentação de um exemplo simples, mas típico, do mundo real, evidenciou rapidamente tarefas adicionais que podem ser facilmente realizadas, aproveitando a integração estreita com o XMLSpy e o MapForce.

Todas estas ferramentas, e muitas outras, estão disponíveis com significativas poupanças no Altova MissionKit 2010, um conjunto integrado de ferramentas XML, de bases de dados e UML, concebido para satisfazer as diversas necessidades de desenvolvimento e gestão de dados dos arquitetos de software e desenvolvedores XML de hoje. Clique aqui para descarregar uma versão de avaliação gratuita hoje mesmo!