EPUB 제작의 기초/EPUBCheck 오류

Duplicate "IDname" 파일을 분석하는 동안 "오류"가 발견되었습니다.

내.맘.대.로 2024. 9. 4. 09:31

링크(팝업) 주석, 또는 내부 링크를 연결한 책에서 이런 오류가 생길 수 있습니다.

인디자인 같은 조판 프로그램에서 EPUB으로 추출한 후 파일을 합치거나 해도 이런 오류가 생길 수 있지요.

 

Col: 18: ERROR(RSC-005): Duplicate "IDname" 파일을 분석하는 동안 "오류"가 발견되었습니다.

 

이 오류는 HTML의 ID 생성 규칙을 알아야 해결 할 수 있습니다.

 

ID는 프래그먼트 식별자를 이용해 다른 위치를 가리키기 위한 고유 식별자입니다.

말이 어렵지요?

 

프래그먼트 식별자는 URL 또는 소스의 경로(파일 위치 표시할 때 src="../path/file.xhtml"로 쓰는)를 지정할 때 사용하는 규칙이에요. html 파일은 수백 줄 이상 내용이 들어갈 때가 많습니다. 링크를 걸면서 특정 위치, 예를 들어 특정 소제목이나 본문 중간 어디쯤에 있는 단어나 이미지를 가리키고 싶을 때 쓰는 것이지요.

홈페이지 주소라면 이렇게 표시합니다.

 

https://example.com/content.html#fragmentID

 

EPUB에서 내부 링크를 걸었다면 이렇게 되지요.

 

<a href="../Content/Conteht.xhtml#fragmentID">

 

경로 뒤에 붙은 #fragmentID를 프래그먼트 식별자라고 합니다.

그리고 프래그먼트 식별자가 가리키는 곳에 고유 식별자, ID가 있습니다.

'고유'란 단어의 뜻을 아시지요? 국어시간이 아니니 설명은 넘어가고...

 

고유식별자는 HTML 태그에 id="fragmentID" 처럼 붙입니다.

 

<p id="fragmentID ">.....</p>

 

만약 content.xhtml 파일에 fragmentID가 두개라면 어떻게 될까요?

 

<p id="fragmentID">여기에 링크를 걸어야 합니다.</p>

....

<p>id="fragmentID">여기에도 링크를 걸어야 합니다.</p>

 

이렇게 되어 있다면 <a href="../Content/Conteht.xhtml#fragmentID">이 링크는 어디로 이동할까요?

같은 파일 안에 동일한 ID가 두개 이상 있을 경우 링크로 연결을 할 수 없습니다. 둘 중 어디를 가리키는지 확인할 수 없으니까요.

그래서 같은 파일 안에 ID 이름은 반드시 하나만 존재해야 합니다.

fragmentID01, fragmentID02, fragmentID03...이렇게요.

 

그런데 편집을 하다 몇 번까지 만들었는지 잊고 같은 ID를 썼다면

fragmentID01, fragmentID02, fragmentID03, fragmentID03, fragmentID04

 

EPUBCheck가

Duplicate "fragmentID03" 파일을 분석하는 동안 "오류"가 발견되었습니다.

Duplicate "fragmentID03" 파일을 분석하는 동안 "오류"가 발견되었습니다.

라는 오류를 표시합니다.

이 오류는 항상 2개 이상 표시가 됩니다. fragmentID03이 최소 2개가 있는데 둘 중 어느 ID가 제대로 된 값인지 EPUBCheck는 알 수 없거든요. 그래서 두개(혹은 그 이상) 위치를 모두 오류메시지에 표시를 합니다. 

 

수정 방법은 간단합니다. ID 이름을 바꾸면 돼요.

단, ID 이름을 바꾼 후 프래그먼트 식별자의 ID도 함께 수정을 해 줘야돼요.

그렇지 않으면 Col: 37: ERROR(RSC-012): Fragment 식별자가 정의되지 않았습니다.라는 오류가 표시되거든요.이 오류는 다음 글에서 설명하겠습니다.

반응형