Tip2014. 12. 11. 01:30
반응형

 이클립스(eclipse)에서 xml파일(맵핑이나 설정파일 등등)을 편집할 경우 자동완성 기능이 지원됩니다. 하지만 이런 자동완성 기능도 인터넷을 사용할 수 없는 환경에서는 잘 동작하지 않는 경우가 있습니다. 개발 현장에 따라서 보안 혹은 인프라 문제로 인터넷을 사용할 수 없는 경우가 있으므로 문법 오류나 개발상 불편을 초래하게 됩니다.(혹은 마크업 구조를 다외우는 초인적인 분들이 존재하실지도?!?!) 


 이런 자동완성 기능은 xml과 같은 마크업 문서의 형식을 정의하는 DTD(Document Type Definition)를 참조하여 제공되고 있으며 해당 파일의 상단에 DOCTYPE으로 선언되어 있습니다.


<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


 위의 샘플은 mybatis맵퍼 설정 파일의 DOCTYPE 선언부로서 키타입(PUBLIC), 키(-//mybatis.org//DTD Mapper 3.0//EN), 로케이션(http://mybatis.org/dtd/mybatis-3-mapper.dtd) 세개의 파트로 구분됩니다. 위의 샘플에서 마지막에 있는 URL부분이 로케이션 입니다. 위의 로케이션의 URL을 이용하여 DTD정의 파일을 참조하고 있습니다. 실제 DTD파일은 아래와 같은 구조로 되어 있으며 요소의 리스트와 속성등을 정의 합니다.


mybatis-3-mapper.dtd



 이클립스에서 해당 xml 편집시 DTD파일을 참조하여 로컬에 캐싱하여 사용하게 됩니다. 이러한 캐시는 Preferences > General > Network Connections > Cache 를 참조하면 아래처럼 확인이 가능합니다.




 위와 같이 참조되는 DTD를 인터넷이 안되는 환경에서 추가하기 위해서는 아래처럼 Preferences > XML > XML Catalog 다이얼로그를 이용합니다.





 다이얼로그에서 Add버튼을 클릭하면 아래와 같이 DTD추가 화면이 표시 됩니다.




 로케이션 부분에 별도로 다운받은 DTD파일의 경로를 지정하고 Key type과 Key 해당 파일을 참조하여 내용을 추가해 주면 해당 xml파일의 자동완성기능의 사용이 가능해 집니다.


 

 위에서 소개한 순서대로 DTD파일을 추가하면 인터넷이 안되는 경우에도 자동완성 기능을 사용할 수 있게됨으로서 개발상의 실수를 줄일고 효율을 올릴 수 있을듯 합니다.수 있습니다.



Posted by Reiphiel