Contents
see List이클립스 오프라인 환경에서 XML 자동완성 설정하기
인터넷이 안되는 폐쇄망 환경에서 이클립스 XML 에디터가 DTD/XSD를 가져오지 못해 자동완성이 안 될 때 해결하는 방법입니다.
언제 필요한가요?
- 폐쇄망(인터넷 차단) 개발 환경
- 외부 DTD/XSD 접근이 차단된 경우
- XML 편집 시 자동완성이 느리거나 타임아웃 발생
- Spring, MyBatis 등의 XML 설정 파일 편집 시
문제 상황
XML 파일 상단의 DOCTYPE이나 schemaLocation이 외부 URL을 참조하면, 이클립스가 해당 URL에 접근하려다 타임아웃되거나 실패합니다.
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">해결 방법 1: XML Catalog 설정
1. Window → Preferences
2. XML → XML Catalog 선택
3. Add 버튼 클릭
4. Location: 로컬 DTD/XSD 파일 경로
Key Type: Public ID 또는 URI
Key: 원래 외부 URL
예시:
- Location: /home/user/dtd/mybatis-3-mapper.dtd
- Key Type: Public ID
- Key: -//mybatis.org//DTD Mapper 3.0//EN해결 방법 2: 네트워크 타임아웃 조정
1. Window → Preferences
2. General → Network Connections
3. Connection timeout, Read timeout 값을 낮게 설정 (예: 1000ms)
또는 프록시 설정:
- Active Provider: Manual
- 빈 프록시 설정으로 외부 연결 차단해결 방법 3: DTD/XSD 다운로드 비활성화
1. Window → Preferences
2. XML → XML Files → Validation
3. "Honour all XML schema locations" 해제
4. "Use grammar specified in document" 해제자주 사용하는 DTD/XSD 로컬 등록
MyBatis
Location: mybatis-3-mapper.dtd (로컬 파일)
Key Type: Public ID
Key: -//mybatis.org//DTD Mapper 3.0//EN
Location: mybatis-3-config.dtd
Key Type: Public ID
Key: -//mybatis.org//DTD Config 3.0//ENSpring
Location: spring-beans-4.3.xsd
Key Type: URI
Key: http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
Location: spring-context-4.3.xsd
Key Type: URI
Key: http://www.springframework.org/schema/context/spring-context-4.3.xsdweb.xml (Servlet)
Location: web-app_3_1.xsd
Key Type: URI
Key: http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdDTD/XSD 파일 구하기
# 온라인 환경에서 미리 다운로드
curl -O http://mybatis.org/dtd/mybatis-3-mapper.dtd
curl -O http://mybatis.org/dtd/mybatis-3-config.dtd
# Spring (Maven 로컬 저장소에서)
~/.m2/repository/org/springframework/spring-beans/4.3.x/
→ spring-beans-4.3.x.jar 압축 해제 후 META-INF 폴더프로젝트별 설정
프로젝트 우클릭 → Properties → XML Catalog
→ 해당 프로젝트에만 적용되는 카탈로그 설정eclipse.ini 설정 (선택)
# 외부 연결 완전 차단
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=
org.eclipse.ecf.provider.filetransfer.httpclient4확인 방법
- XML 파일 열기
- Ctrl + Space로 자동완성 테스트
- 에러 마커 사라졌는지 확인
- Window → Show View → Error Log에서 네트워크 오류 확인