XML Git Diff 视图
在规范化结构结果之外,逐行对比原始 XML 文本。
XML 结果页提供两个互补的视图。数据对比用于判断解析后的 XML 在当前规则下是否存在差异,Git Diff 用于查看原始输入文本的逐行变化。结合两者可以区分语义变化与重新排版。
打开 Git Diff
- 输入基准与对照 XML 文档并运行对比。
- 在结果页顶部工具栏中,将视图从数据对比切换为 Git Diff。
- 在并排差异编辑器中查看左侧的原始基准文本和右侧的原始对照文本。
Git Diff 为只读视图。如需修改输入,请返回编辑器;如需修改语义对比选项,请切回提供设置控件的数据对比视图。
为什么两种视图可能不同
| 问题 | 数据对比 | Git Diff |
|---|---|---|
| 对比什么? | 解析后的元素、属性和文本 | 每个编辑器中输入的原始文本 |
| 选项影响什么? | 重复元素匹配和大小写处理 | 无影响;原始文本差异保持不变 |
| 缩进和换行重要吗? | 不重要 | 文本发生变化时重要 |
| 属性顺序重要吗? | 不重要 | 属性在源码中移动时会显示差异 |
| 重复元素顺序重要吗? | 取决于所选对比方法 | 重新排序可能显示为文本变化 |
| 结果适合什么? | 解释结构和值变化 | 定位准确的源码编辑与格式变化 |
例如,只修改缩进或属性顺序时,数据对比可能仍显示相同,而 Git Diff 会展示源码编辑。数据对比会忽略注释,但 Git Diff 仍能看到注释变化。CDATA 写法和数字拼写也可能只改变文本,而不改变规范化后的结构值。
反过来也成立。启用忽略大小写选项可以消除数据对比中的差异,却不会移除 Git Diff 中的大小写变化。选择无序可以让重新排序的重复元素在语义上相等,但不会消除原始文本中的移动。
正确理解两种视图
需要新增、删除或变更 XML 值的具体路径和差异类型时,请使用数据对比。其编辑器显示由解析值重新构建的 XML,因此注释、原始缩进、CDATA 写法和数字拼写不保证保留。
需要审查实际提交的文本时,请使用 Git Diff,例如纯空白编辑、注释、属性布局,或 2.5 与 2.50 之类的数字拼写变化。它对比的是原始文本,而不是规范化结果。
“Git Diff”这个名称描述的是熟悉的并排展示方式,并不表示它会对比提交、分支或仓库历史。两份输入仍必须是格式良好的 XML,才能生成结果页。
推荐的审查顺序
- **从数据对比开始。**选择符合文档含义的 XML 对比规则。
- **检查报告的路径。**尤其在插入或删除后,确认重复元素按预期对齐。
- **遇到不明噪声时切换到 Git Diff。**检查不构成语义差异的格式、注释、属性顺序或拼写变化。
- **返回数据对比修改设置。**Git Diff 始终是原始文本的只读视图,不能用于验证语义选项是否生效。