manywaypark's Blog
개발, 검색, 함수

emacs의 nxml-mode를 사용하면, emacs에서 xml 파일들을 쉽게 편집할 수 있다.
nxml은 내부적으로 validation에 relaxng라는 xml schema 표기 형식을 사용하는데, docbook이나 xhtml같은 널리 쓰이는 문서형식에 대해서는 /usr/share/emacs/site-lisp/nxml-mode/schema/ 디렉토리에 *.rnc 파일들이 준비되어 있어서 쓰는데 별 문제가 없다. 그런데, custom dtd나 schema를 쓰려면 어떻게 해야할까?
trang을 사용해서 변환하면 된다.
$ trang /path/to/custom.dtd /path/to/custom.rnc
emacs의 메뉴에서 XML > Set Schema > File... 선택후 /path/to/custom.rnc를 입력하면 즉시 편집중인 문서의 validation을 실행하고 결과를 상태표시줄에 표시한다.
에러 있는 부분은 빨간 밑줄이 쳐지며, <C-c C-n>으로 에러있는 곳으로 바로 움직일 수도 있다.
유용한 편집 팁을 하나만 더 소개하자면, 마크업 부분 입력(eg, <do) 후에 <C-return>을 눌러보자. schema 상에서 그곳에 삽입을 허용하는 do로 시작하는 tag들이 예쁘게 줄을 선다 (문맥감지 자동완성 기능이라 맘대로 명명했다).

James Clark에게 경의를...

happy hackin'

2012-12-15:
상기 자동 완성 기능(nxml-complete)은 M-TAB으로 변경 되었다.
http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-03/msg00696.html
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6776

예전 스타일로 쓰고 싶다면 ~/.emacs에 다음과 같은 내용을 추가하자.
;; nxml mode key binding(old style): complete w/ C-return
(add-hook 'nxml-mode-hook
          '(lambda ()
             (define-key nxml-mode-map [C-return] 'nxml-complete)))


댓글을 달아 주세요

분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 받은 트랙백

02-25 13:35