描述:此扩展点允许使用 mapping 元素定义内部“XML 标识映射”方案。然后当执行 XML
比较以通过子元素中的某个属性或文本的值来唯一地标识 XML 元素时,可使用这些方案。
此外,还可以使用 ordered 元素来指定应以有序方式(而不是缺省无序方式)比较元素的直系子代。
配置标记:
<!ELEMENT idmap (mapping*)>
<!ATTLIST idmap
name
CDATA #REQUIRED
extension
CDATA
>
<extension
point="org.eclipse.compare.structureMergeViewers">
<structureMergeViewer
extensions="xml,classpath,cd"
class="org.eclipse.compare.xml.XMLStructureViewerCreator">
</structureMergeViewer>
警告:如果扩展被关联多次,将仅考虑第一次关联。另外,如果定义了重复的扩展,内部“标识映射方案”的优先级别将高于用户“标识映射方案”的优先级别。
警告:当(从 plugin.xml 中)除去具有扩展关联的内部“标识映射方案”时,必须重新装入 XML 比较插件以取消它与扩展的关联。否则,第一次将文件与此扩展进行比较时,XML 比较插件将与缺省无序算法配合使用。(但是,此时已取消扩展与 XML 插件的关联,因为已装入了该插件。)
<!ELEMENT mapping EMPTY>
<!ATTLIST mapping
signature
CDATA #REQUIRED
id CDATA #REQUIRED
id-source CDATA
>
<!ELEMENT ordered EMPTY>
<!ATTLIST ordered
signature
CDATA #REQUIRED
>
<idmap name="ANT">
<mapping signature="project" id="name"/>
<mapping signature="project>target" id="name"/>
<ordered signature="project>target"/>
<idmap>
以下示例演示使用子元素的文本作为标识的情况:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
提供的实现:
XML 比较插件为 Eclipse plugin.xml 文件定义“标识映射方案”,一个用于 .classpath 文件,另一个用于 Ant 文件。