설명: 이 확장점을 통해 mapping 요소를 사용하여 내부
XML ID 맵핑 체계를 정의할 수 있습니다. 이 체계는 하위 요소의 텍스트나 속성의 값으로 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>
경고: 확장자가 두 번 이상 연관될 경우, 첫 번째 연관만 고려됩니다. 또한 중복 확장자가 정의된 경우 내부 ID 맵핑 설계가 사용자 ID 맵핑 체계보다 우선합니다.
경고: 확장자 연관이 있는 내부 ID 맵핑 설계가 제거될 경우(plugin.xml에서), XML 비교 플러그인을 다시 로드하여 확장자에서 연관을 해제해야 합니다. 그렇지 않을 경우, 이 확장자와의 첫 번째 파일 비교에서 기본 Unordered 알고리즘과 함께 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>
다음 예제는 하위 요소의 텍스트가 ID로 사용되는 경우를 보여줍니다.
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
제공되는 구현:
XML 비교 플러그인은 Eclipse plugin.xml 파일에 대해 ID 맵핑 설계를 정의합니다(.classpath 파일에 대해 하나, ANT 파일에 대해 하나)