---
title: "开发者的生活从来都不是简单的"
date: "2009-12-22"
tags: 
  - "altova-xmlspy"
  - "diff-merge-tool"
  - "diffdog"
  - "mapforce"
  - "missionkit"
  - "v2010"
  - "xml-schema"
  - "xmlspy"
  - "xslt"
description: 探索如何利用Altova的工具，如DiffDog和MapForce，通过简化复杂项目的模式比较、文档生成和版本控制，从而优化XML开发流程。
---
Status: #blog

Tags:  #altova-xmlspy #diff-merge-tool #diffdog #mapforce #missionkit #v2010 #xml-schema #xmlspy #xslt

Categories: [Altova](/blog/zh/category/altova.md) 
# 开发者的生活从来都不是简单的

本月早些时候，我们在博客文章中提到了 [比较 XML 模式](https://www.altova.com/blog/2009/12/comparing-xml-schemas-with-diffdog-2010.html) 我们展示了一个真实但经过简化示例，以说明一项新功能的强大之处 [DiffDog 2010](https://www.altova.com/zh/diffdog/diff-merge-tool.html) 用于比较 XML 模式，并通过生成 XSL 转换来更新相应的 XML 数据文件。 在实际工作中，XML开发人员的项目通常不会像我们举的例子那样简单和直接。 在这篇文章中，我们将探讨开发人员每天可能遇到的常见问题，以及[Altova MissionKit](https://www.altova.com/zh/missionkit/software-development-tools.html)如何简化复杂流程，从而提高工作效率。 **更长的XML模式和更大的映射** 您的XML模式可能不像我们之前文章中展示的那么短和简单，并且您很可能希望在进行XML模式迁移的过程中，定期保存您的工作。 DiffDog 允许您将映射关系保存为 XML Schema 比较文件，您可以稍后重新加载该文件以继续工作，或者与同事分享。 

[![DiffDog：XML 模式比较对话框](https://lh5.ggpht.com/_REdrfeVqYdU/SzEckzkE6-I/AAAAAAAAAHs/43HDdrzCZRk/Snap1_thumb%5B1%5D.gif?imgmax=800 "DiffDog Save XML Schema Comparison dialog")](http://lh3.ggpht.com/_REdrfeVqYdU/SzEckls_CfI/AAAAAAAAAHo/I6vZooy2Q2g/s1600-h/Snap1%5B3%5D.gif) 

如果您需要定期比较两个XML Schema，那么XML Schema比较文档可以为您节省大量时间。 

**嵌入式 XML 模式赋值** 

以下截图展示了我们原始示例中的 XML 数据文件，但有一个重要的区别。在这个版本中，"story" 元素包含了对 XML Schema 的嵌入式引用，具体位于第 2 行。 

[![XMLSpy XML 编辑器视图](https://lh3.ggpht.com/_REdrfeVqYdU/SzEcljNnFeI/AAAAAAAAAH0/c8WJ6IuJ0ls/Snap2_thumb%5B1%5D.gif?imgmax=800 "XMLSpy XML Editor view")](http://lh3.ggpht.com/_REdrfeVqYdU/SzEclOjdSPI/AAAAAAAAAHw/2wTHTtdg10g/s1600-h/Snap2%5B3%5D.gif) 

当我们使用在 DiffDog 中创建的简单 XSLT 转换该文件时，新的 XML 数据文件将不会包含更新后的 XML Schema 引用。在之前的博文中，嵌入式 XML Schema 引用并不是问题，因为我们使用了 XMLSpy 的“项目/属性”菜单选项，为每个文件夹指定默认的 XML Schema。如果需要转换大量的 XML 数据文件，并且这些文件需要嵌入式 XML Schema 引用，我们可以利用 [MapForce](https://www.altova.com/zh/mapforce.html) 的一个附加功能。我们可以像在之前的博文中那样，将我们在 DiffDog 中的映射导出到 MapForce，然后使用 MapForce 输出组件的“组件设置”对话框，以包含 XML Schema 引用。 

[![MapForce 组件设置对话框](https://lh4.ggpht.com/_REdrfeVqYdU/SzEcmfChRiI/AAAAAAAAAH8/tGORyl1w_gg/Snap3_thumb%5B1%5D.gif?imgmax=800 "MapForce Component Settings dialog")](http://lh3.ggpht.com/_REdrfeVqYdU/SzEcl-Ma0kI/AAAAAAAAAH4/rQp0GvZuSco/s1600-h/Snap3%5B3%5D.gif) 

**记录您的工作** 

开发人员可能会因为试图追溯历史而降低工作效率，尤其是在项目早期版本发布后数月甚至数年，需要进行额外修改时。MapForce [生成文档](https://www.altova.com/zh/mapforce/data-mapping-documentation.html) 这个功能可以帮助我们避免这种令人沮丧的体验。MapForce 会以 Microsoft Word、RTF 或 HTML 格式记录 XML 模式中每个元素的映射关系。无论我们选择哪种格式，生成的文档都是一个优秀的独立项目成果，或者它可以进一步编辑并包含在更大的报告中。 

[![MapForce 生成文档对话框](https://lh4.ggpht.com/_REdrfeVqYdU/SzEcnZ_160I/AAAAAAAAAIE/dM-qziNrA1Q/Snap4_thumb%5B1%5D.gif?imgmax=800 "MapForce Generate Documentation dialog")](http://lh5.ggpht.com/_REdrfeVqYdU/SzEcmxpIZzI/AAAAAAAAAIA/yjU4IWTfEhQ/s1600-h/Snap4%5B3%5D.gif) 

我们可以将 MapForce 的映射文档与使用 XMLSpy 生成的每个 XML 模式版本的完整描述相结合 [XML 模式编辑器](https://www.altova.com/zh/xmlspy/xml-schema-editor.html) 文档功能。 

**版本控制/源代码管理** 

源代码/版本控制系统允许开发团队紧密合作，共同处理同一个项目，而无需担心互相覆盖对方的修改。由于在设计过程的每个阶段都会保存一份源代码，因此在需要时，可以很容易地查看或恢复到之前的版本。Altova 在 XMLSpy 中实现了 Microsoft 源代码控制接口 (MSSCCI) 1.1 至 1.3 版本，并测试了对许多流行的[源代码控制系统](https://www.altova.com/zh/solutions/source-control.html)的支持，因此我们可以在整个开发企业中管理 XML Schema 演进项目中的文件。此外，DiffDog 可以作为默认的比较工具与源代码控制系统集成。DiffDog 甚至可以生成各种格式的差异报告文件。 

亲自体验一下，[Altova MissionKit](https://www.altova.com/zh/missionkit/software-development-tools.html)中的工具如何简化您自己的XML、Web服务、数据集成、XML发布、XBRL以及UML建模开发项目的复杂性——[立即下载免费的30天试用版](https://www.altova.com/zh/download/missionkit/software_development_tools_enterprise.html)！
