Описание: Эта точка расширения позволяет определять внутренние схемы
соответствия идентификаторов XML с помощью элемента mapping. Затем эти схемы можно
применять при выполнении операций сравнения XML для уникальной идентификации элементов
XML по значению атрибута или по тексту в дочернем элементе.
Кроме того, дополнительно можно использовать элементы ordered, чтобы указать, что для прямого
потомка элемента необходимо выполнять упорядоченное (ordered) сравнение, а не неупорядоченное (unordered),
выполняемое по умолчанию.
Описание конфигурации:
<!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 Compare будет использоваться с алгоритмом Unordered, применяемым по умолчанию. (Однако, здесь расширение было отсоединено от модуля 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 определяет схему соответствия идентификаторов для файлов
plugin.xml Eclipse, файлов .classpath и файлов ANT.