Eclipse 플랫폼 XML 비교

XML 비교 플러그인을 사용하여 두 XML 문서의 구조 비교를 수행할 수 있습니다. 이 비교를 통해 추가 또는 제거된 XML 요소를 표시하는 차이 트리를 리턴하고 XML 요소가 수정된 경우 속성 또는 본문 텍스트와 관련된 차이를 리턴합니다.

플러그인 설치

플러그인 사용

플러그인은 확장자가 .xml인 파일을 비교할 때 자동으로 사용됩니다.
기본적으로 XML은 XML 요소가 문서에 나타나는 순서를 무시하는 정렬되지 않은 비교 메소드를 사용하며 가장 유사한 요소와 일치하도록 XML 요소를 일치시킵니다. 또한 XML 요소가 문서에 나타나는 순서대로 정확히 XML 요소를 간단히 비교하는 정렬된 비교 메소드가 있습니다. 대부분의 경우 이 비교 메소드는 많이 사용되지 않습니다.
비교 메소드는 구조 보기의 도구 모음에 있는 드롭 다운 목록에서 변경될 수 있습니다.

XML 문서에 속성 또는 하위 요소의 텍스트로 고유하게 식별할 수 있는 요소가 있는 경우 이러한 XML 문서 유형에서 ID 맵핑 설계를 작성하는 것이 좋습니다.

플러그인 사용에 관한 자세한 정보는 학습서 및 예제를 참조하십시오.

ID 맵핑 설계

ID 맵핑 설계는 XML 요소에 이 요소를 고유하게 식별하는 속성 또는 하위 요소의 텍스트를 지정합니다. 이를 통해 비교 프로세스에서 오른쪽 요소들이 일치되며 서로를 비교합니다. XML 요소에 지정된 ID 맵핑이 없는 경우 일반 일치 알고리즘이 사용됩니다. 하지만 이 일반 일치 알고리즘에서 항상 원하는 결과를 리턴하지는 않습니다. 일반 일치 알고리즘에서는 차이를 최소화하도록 비교하려는 두 개의 구문 분석된 트리의 노드에서 일치하는 노드를 찾기 때문입니다. 종종 서로 일치하는 두 XML 요소는 구조적으로 유사하지만 완전히 다른 두 개의 정보 엔티티를 표시하는 결과가 발생합니다.

정렬된 항목

정렬되지 않은 기본 비교를 사용할 때(ID 맵핑과 무관함) 특정 요소의 하위가 보통의 정렬되지 않은 메소드 대신 정렬된 형태로 비교하도록 지정해야 하는 경우가 종종 있습니다. 예를 들어 ANT 파일을 비교할 때 대상 요소의 하위가 나타나는 순서가 중요합니다.
이러한 경우 정렬된 항목을 작성할 수 있습니다. 정렬된 항목은 해당 경로로 식별된 xml 요소의 바로 하위를 정렬된 형태로 비교하도록 지정합니다. 하지만 속성은 계속 정렬되지 않은 방법으로 비교됩니다. 이러한 하위의 하위는 별도로 지정하지 않는 한 정렬되지 않은 방식으로 계속 비교됩니다.

ID 맵핑 설계 및 정렬된 항목 정의

ID 맵핑 설계는 세 가지 방법으로 작성될 수 있습니다.
  1. idMapping 확장점을 확장하여
  2. XML 비교 환경 설정 페이지를 사용하여
  3. 도구 모음의 새 ID 맵 설계 작성 단추컨텍스트 메뉴를 사용하여
메소드 1은 내부 맵핑 설계를 작성합니다. 내부 ID 맵핑 설계는 런타임 시 편집될 수 없습니다. 하지만 환경 설정 페이지에서 사본 편집 단추를 사용하여 내부 ID 맵핑 설계의 편집 가능한 사본을 작성할 수 있습니다.
메소드 2 및 3은 사용자 맵핑 설계를 작성합니다. 이러한 설계는 런타임 시 사용자가 작성하여 환경 설정 페이지에서 언제든지 수정될 수 있습니다.

내부 및 사용자 맵핑 설계를 파일 확장자와 연관시킬 수 있습니다. 따라서 이 파일 확장자를 가지는 두 XML 파일을 비교하는 경우 이 확장자를 가지는 특정 ID 맵핑 설계를 자동으로 사용합니다.

특정 XML 요소에서 ID 맵핑을 작성 또는 편집할 때 4개의 항목을 지정해야 합니다(예제 참조).

  1. 요소 이름.
  2. 요소 경로. 이 경로는 XML 문서의 루트에서 요소의 상위까지의 요소 경로입니다.
  3. 요소를 식별하는 ID의 이름
  4. 확장점 3의 ID 이름이 요소의 속성 이름 또는 해당 요소의 하위 이름 여부를 표시하는 항목(두 경우 모두 이 하위 요소의 텍스트가 ID로 사용됨).


확장점

XML 비교 플러그인에서 하나의 확장점만 사용 가능합니다. 이 확장점은 내부 ID 맵핑 설계를 작성할 때 사용됩니다.