DiffDog 2010을 사용하여 XML 스키마 비교하기
DiffDog 2010에는 XML 개발자 및 기타 사용자들이 XML 스키마의 변화에 따라 기존 XML 데이터 파일을 업데이트할 수 있도록 돕는 강력한 새로운 도구가 포함되어 있습니다. 이번 글에서는 이 기능의 활용 사례를 살펴보겠습니다.
새로운 기능에 대해 자세히 알아보기 전에, DiffDog 파일 비교 기능을 사용하여 두 개의 XML 스키마를 간단히 비교해 보겠습니다. 물론, 이전 버전과 마찬가지로 DiffDog 2010 사용자들은 XML 스키마를 .xsd 파일로 비교하고, 색상으로 구분된 XML 형식으로 차이점을 확인할 수 있습니다.
![]()
이는 XML 스키마 간의 차이점을 식별하고 관리하는 좋은 방법이며, 특히 시간이 지남에 따라 변화하는 산업 표준 XML 스키마의 변경 사항을 검토하고자 할 때 유용합니다.새로운 소식은 무엇인가요 DiffDog 2010은 추가 기능입니다 XML 스키마 차이 분석 새로운 XML 스키마 비교 기능을 사용하여 위에서 파일 비교에 사용된 동일한 두 개의 XML 스키마를 열면, 다음과 같은 화면이 나타납니다. 이 기능은 두 개의 XML 스키마를 나란히 그래픽으로 표시하고, 동일한 요소를 자동으로 식별하며, 사용자가 차이점을 비교하고 XML 데이터 파일을 업데이트하기 위한 XSL 변환을 생성할 수 있도록 지원합니다.
![]()
두 개의 XML 스키마에서 공통적인 요소들은 자동으로 연결됩니다. 툴바의 "비교" 버튼을 클릭하면, 두 XML 스키마에서 동일한 요소들이 자동으로 연결됩니다.
![]()
(물론, 오른쪽 클릭 메뉴에서 "XML 스키마 비교"를 선택하거나, "차이점 및 병합" 메뉴에서 "비교 시작"을 선택하거나, F5 키를 눌러서도 동일한 작업을 수행할 수 있습니다. DiffDog는 다양한 옵션을 제공하므로, 사용자는 원하는 방식으로 작업할 수 있습니다.)
다음으로, 두 개의 XML 스키마에서 이름이 다른 요소를, 화살표를 사용하여 수동으로 연결하여 매핑할 수 있습니다. 이 예제에서는 오른쪽 XML 스키마의 버전에서 이루어진 대부분의 변경 사항은 단순히 요소에 더 명확한 이름을 부여하는 것입니다. 이렇게 하면 XML 스키마와 데이터 파일이 우리 기업 내에서 배포될 때 더 이해하기 쉬워집니다.
![]()
모든 요소가 매핑되면, 왼쪽의 XML 스키마를 기반으로 기존 XML 데이터 파일을 변환하는 XSLT 파일을 생성할 수 있습니다. 이를 통해 최신 버전의 오른쪽 스키마에 반영된 변경 사항을 적용할 수 있습니다. 이 기능은 XML 개발자들이 직접 XSL 변환 코드를 작성하고 디버깅하는 번거로운 작업을 줄여주는 것을 목표로 합니다.
![]()
다음은 왼쪽의 XML 스키마를 기반으로 작성된 원본 XML 데이터 파일의 예시이며, Altova XMLSpy에서 확인한 모습입니다
![]()
DiffDog 2010을 사용하여 생성한 XSL 변환을 적용한 후 생성된 파일의 내용은 아래와 같습니다. "author" 요소가 "writer"로, "email"이 "feedback"으로 대체된 것을 주목해 주세요.
![]()
변환해야 할 XML 파일이 많을 경우, XMLSpy의 "프로젝트 관리 기능은 이 과정을 자동화하는 데 도움을 줄 수 있습니다. XMLSpy 프로젝트에 외부 폴더를 추가할 수 있습니다.
![]()
각 프로젝트 폴더에 대해 XMLSpy의 속성 대화 상자를 사용하면, XML 스키마(검증용), XSL 변환, 그리고 출력 파일의 저장 위치에 대한 기본값을 설정할 수 있습니다.
![]()
이제 XMLSpy 프로젝트 도우미 창에서 입력 폴더를 선택하고, F10 키를 눌러 해당 폴더 내의 모든 파일을 한 번에 변환할 수 있습니다. DiffDog에서 XML 스키마 요소를 처음 매핑할 때, 이전 버전의 스키마에는 해당 요소가 없었기 때문에 "publication" 요소를 왼쪽에서 연결하지 않았습니다. 즉, XSLT를 사용하여 XML 입력 파일을 변환하면, 결과 출력에는 "publication" 요소가 포함되지 않습니다. 만약 "publication" 요소가 필수적인 경우, Altova MapForce를 사용하여 빠르게 해결할 수 있습니다. DiffDog의 옵션 중 하나는 XSLT 대신 MapForce 매핑을 생성하는 것입니다. 이 옵션을 선택하면, 아래와 같이 MapForce가 실행되고, DiffDog 매핑이 새로운 MapForce 디자인으로 미리 로드됩니다.
![]()
출판 요소에 대한 기본값으로 상수를 추가하면 매핑 기능을 쉽게 향상시킬 수 있습니다.
![]()
이제 MapForce에서 XSL 파일을 저장할 수 있습니다. 이 파일은 DiffDog에서 원래 설계했던 모든 요소 매핑을 재사용하고, 여기에 상수 값을 추가합니다. 이렇게 생성된 새로운 XSL 파일을 사용하여 원래 XML 데이터 파일을 변환하면, 결과적으로 출판 요소에 대한 기본값이 포함된 결과를 얻을 수 있습니다.
![]()
이 글은 DiffDog 2010의 새로운 XML 스키마 비교 기능에 대한 설명으로 시작되었습니다. 간단하지만 일반적인 실제 사례를 자세히 살펴보면서, XMLSpy 및 MapForce와의 긴밀한 통합을 통해 쉽게 수행할 수 있는 추가적인 작업들이 있음을 알 수 있었습니다.
이 세 가지 도구와 더 많은 기능들이 Altova MissionKit 2010에 포함되어 있으며, 이 제품은 XML, 데이터베이스, UML 도구를 통합하여 제공하여, 오늘날 소프트웨어 아키텍트와 XML 개발자의 다양한 개발 및 데이터 관리 요구를 충족하도록 설계되었습니다. 지금 바로 무료 체험판을 다운로드하세요