[홈으로] [게시판]

SGML을 XML로 변환하기

James Clark의 SX를 사용하면 됩니다. http://www.jclark.com/sp/sx.htm

오픈 소스 버전인 OSX를 사용할 수도 있습니다. 데비안 패키지에는 OSX만 있는 듯 합니다. http://www.openjade.org

방법

xml로 바꾸기

osx -b euckr -x lower UsingDocBook.sgml > UsingDocBook.xml

UsingDocBook.sgml은 euc-kr 인코딩으로 작성되어 있는 경우입니다.

-b 옵션이 입력, 출력 인코딩을 지정하는데, euc-kr로 '맞게' 지정하면 "unkown sgml character" 에러가 납니다. 'euckr'이라고 일부러 틀리게 지정해서 그냥 한글이 통과되도록 했는데.. 좋은 방법이 있는지 모르겠습니다. utf-8로 파일을 변환하고 -b utf-8로 옵션을 줘봐도 마찬가지입니다. 일단 sgml 한글 문서의 경우에 백프로 euc-kr로 봐도 무방하니까.. 대강 이런 식으로 버틸 수 있을 것 같습니다.

-x lower 옵션은 태그를 모두 소문자로 일관되도록 합니다.

utf-8로 바꾸기

출력된 xml 문서는 utf-8로 바꿔주는 것이 좋을 것 같습니다. iconv를 사용하면 됩니다.

iconv -f euc-kr -t utf-8 UsingDocBook.xml > UsingDocBook.utf-8.xml

이쁘게 만들기

출력된 소스가 좀 보기 싫은데, tidy의 xml 기능을 사용해 정리할 수 있습니다.

tidy -xml -utf8 -indent UsingDocBook.utf-8.xml > UsingDocBook.utf-8.tidy.xml

-xml 옵션이 xml을 다룬다는 점을 알려주고, -utf8이 입력, 출력 인코딩, -indent가 태그를 들여쓰기 한다는 점을 나타냅니다.

문제점

osx로 변환했을 때 <!DOCTYPE >이 날아가 버리기 때문에, 따로 삽입을 해줘야 하는 것 같습니다. 그리고 &lt; &gt; 같은 것이 [lt ]의 형태로 변환되는데 왜 그런지 모르겠습니다.(어떤 것은 변환되고 어떤것은 그대로임)

programlisting이나 screen 같은 경우에 줄바꿈이나 스페이스가 유지되어야 하는데, tidy를 사용하면 이것이 무시되어 '이쁘게'되어 버립니다.

제일 위로
최종 수정 일시: 02월 12일(2004년) 07:58 PM 편집 | 정보 | 차이 | 비슷한페이지 | DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular