EPUB 3.3

W3C 권고안

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2026/REC-epub-33-20260113/
최신 게시 버전:
https://www.w3.org/TR/epub-33/
최신 편집자 초안:
https://w3c.github.io/epub-specs/epub33/core/
이력:
https://www.w3.org/standards/history/epub-33/
커밋 이력
테스트 스위트:
https://w3c.github.io/epub-tests/index.html
구현 보고서:
https://w3c.github.io/epub-specs/epub33/reports/
편집자:
Matt Garrish (DAISY Consortium)
Ivan Herman (W3C)
이전 편집자:
Dave Cramer (W3C 초청 전문가)
피드백:
GitHub w3c/epub-specs (풀 리퀘스트, 새 이슈, 열린 이슈)
public-pm-wg@w3.org 제목 줄은 [epub-33] … 메시지 주제 …로 해 주십시오(아카이브)
정오표:
https://w3c.github.io/epub-specs/epub33/errata.html

다음도 참조하십시오 번역.


초록

EPUB® 3는 디지털 출판물 및 문서를 위한 배포 및 교환 형식을 정의합니다. EPUB 형식은 구조화되고 의미적으로 향상된 웹 콘텐츠 — HTML, CSS, SVG 및 기타 리소스를 포함 — 를 단일 파일 컨테이너로 배포하기 위해 표현, 패키징 및 인코딩하는 수단을 제공합니다.

이 명세는 EPUB 출판물의 저작 요구사항을 정의하며, 이 표준의 세 번째 주요 개정판을 나타냅니다.

이 문서의 상태

이 섹션은 이 문서가 공개된 시점의 상태를 설명합니다. 현재 W3C 출판물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.

이 문서는 Publishing Maintenance Working GroupRecommendation 트랙을 사용하여 Recommendation으로 공개했습니다.

W3C는 이 명세를 웹의 표준으로 널리 배포할 것을 권고합니다.

W3C Recommendation은 광범위한 합의 형성 이후 W3C와 그 회원들이 승인하고, Working Group 구성원들이 구현에 대해 로열티 없는 라이선스를 약속한 명세입니다. 이 Recommendation의 향후 업데이트에는 새 기능이 포함될 수 있습니다.

이 문서는 W3C 특허 정책에 따라 운영되는 그룹이 작성했습니다. W3C는 이 그룹의 산출물과 관련하여 제출된 모든 특허 공개의 공개 목록을 유지하며, 해당 페이지에는 특허를 공개하기 위한 지침도 포함되어 있습니다. 개인이 필수 청구항을 포함한다고 믿는 특허에 대해 실제 지식을 가지고 있는 경우, 그 개인은 W3C 특허 정책 제6절에 따라 해당 정보를 공개해야 합니다.

이 문서는 2025년 8월 18일 W3C Process Document의 적용을 받습니다.

1. 소개

1.1 개요

이 섹션은 비규범적입니다.

EPUB 3는 디지털 도서(전자책)를 위한 형식으로 널리 채택되어 왔으며, 이번 개정판은 복잡한 레이아웃, 풍부한 미디어와 상호작용성, 전 세계 타이포그래피 기능을 포함하여 더 넓은 범위의 출판 요구사항을 더 잘 지원하도록 이 형식의 기능을 계속 확장합니다. 출판자는 도서, 잡지, 교육용·전문용·과학용 출판물을 포함한 폭넓은 콘텐츠에 EPUB 3 형식을 활용할 것으로 예상됩니다.

이 명세는 EPUB 3의 핵심을 나타내며, 이 표준의 산출물인 EPUB 출판물에 대한 적합성 요구사항을 포함합니다. EPUB 3를 구성하는 다른 명세는 다음과 같습니다.

이러한 명세는 EPUB 3에 속하는 것으로 인정되는 공식 목록을 나타내며, 표준의 일부로 규범적으로 참조되는 기능을 포함합니다. 확장 명세의 개발은 주기적으로 EPUB 출판물에 새로운 기능을 추가합니다. 표준의 핵심 개정판 밖에서 정의된 특징과 기능은 이 명세에서 공식적으로 인정되지 않더라도 EPUB 제작자와 읽기 시스템 개발자가 사용할 수 있습니다.

비규범적인 EPUB 3 Overview [epub-overview-33]는 EPUB 3에 대한 일반적인 소개를 제공합니다. 이전 버전에서의 기술적 변경 목록도 변경 로그에서 확인할 수 있습니다.

1.2 구성

이 섹션은 비규범적입니다.

이 섹션은 이 명세가 정의하는 중심 산출물인 EPUB 출판물을 통해 이 명세의 구성을 검토합니다.

가장 기본적인 의미에서 EPUB 출판물은 콘텐츠를 논리적 순서로 제시하기 위해 해당 리소스를 렌더링하는 방법에 대한 지침을 포함한 리소스 묶음입니다. EPUB 출판물에서 허용되는 리소스의 유형과 그 사용에 대한 제한은 3. 출판물 리소스에서 정의됩니다.

파일 확장자가 .epub인 ZIP 기반 아카이브는 배포를 위해 EPUB 출판물의 리소스를 묶습니다. EPUB 출판물은 적합한 ZIP 아카이브이므로 많은 소프트웨어 프로그램으로 압축을 풀 수 있어 제작과 소비가 모두 단순해집니다.

컨테이너 형식은 압축된 콘텐츠가 EPUB 출판물을 나타낸다는 것을 판별하는 수단 (mimetype 파일)을 제공할 뿐 아니라, 비규범 리소스를 위한 보편적으로 명명된 디렉터리(/META-INF)도 제공합니다. 이러한 리소스 중 핵심은 container.xml 파일이며, 이 파일은 읽기 시스템을 사용 가능한 패키지 문서로 안내합니다. 컨테이너 형식에 대한 자세한 내용은 4. Open Container Format (OCF)을 참조하십시오.

EPUB 출판물은 일반적으로 하나의 패키지 문서로 표현됩니다. 이 문서는 읽기 시스템이 사용자에게 콘텐츠를 제시하는 데 사용하는 메타데이터를 포함합니다. 예를 들어 책장에 표시할 제목과 저자, 그리고 콘텐츠가 리플로우 가능한지 또는 고정 레이아웃인지 여부 같은 렌더링 메타데이터가 포함됩니다. 또한 리소스의 매니페스트를 제공하고, 사용자가 콘텐츠를 진행해 나갈 때 문서를 렌더링할 기본 순서를 나열하는 스파인을 포함합니다. 패키지 문서에 대한 요구사항은 5. 패키지 문서를 참조하십시오.

EPUB 출판물의 실제 콘텐츠 — 사용자가 읽기 시작할 때 제시되는 내용 — 는 Open Web Platform을 기반으로 하며 XHTML과 SVG 두 가지 유형으로 제공됩니다. 이러한 문서는 EPUB 콘텐츠 문서라고 하며, 일반적으로 올바른 렌더링에 필요한 이미지, 오디오 및 비디오 클립, 스크립트, 스타일 시트 같은 여러 추가 리소스를 참조합니다.

EPUB 콘텐츠 문서를 만들기 위한 규칙과 요구사항에 대한 자세한 정보는 6. EPUB 콘텐츠 문서를 참조하고, 접근성 요구사항은 [epub-a11y-11]를 참조하십시오.

EPUB 출판물에는 EPUB 탐색 문서라는 또 다른 핵심 파일도 포함됩니다. 이 문서는 목차와 같은 중요한 탐색 기능을 제공하여 사용자가 콘텐츠를 빠르고 쉽게 탐색할 수 있게 합니다. 탐색 문서는 특수한 유형의 XHTML 콘텐츠 문서이며, EPUB 제작자가 이를 콘텐츠 안에서 사용할 수도 있게 합니다(즉, 기계 처리를 위한 목차와 사용자 소비를 위한 또 다른 목차를 따로 만들지 않도록 함). 이 문서에 대한 자세한 내용은 7. EPUB 탐색 문서를 참조하십시오.

EPUB 출판물은 기본적으로 사용 가능한 화면 공간에 맞게 리플로우되도록 의도됩니다. 이미지 및/또는 CSS 위치 지정을 사용하여 픽셀 단위로 정밀한 고정 레이아웃을 가진 출판물을 만드는 것도 가능합니다. 레이아웃을 제어하는 메타데이터는 8. 레이아웃 렌더링 제어에서 정의됩니다.

미디어 오버레이 문서는 EPUB 콘텐츠 문서를 보완합니다. 이 문서는 EPUB 콘텐츠 문서의 텍스트를 사전 녹음된 오디오와 동기화하기 위한 선언적 마크업을 제공합니다. 그 결과 읽기 시스템이 내레이션에 맞춰 텍스트를 강조 표시하는 낭독 경험을 만들 수 있습니다. 미디어 오버레이 문서의 정의는 9. 미디어 오버레이를 참조하십시오.

개념적으로는 단순하지만 EPUB 출판물은 여기서 제시한 것처럼 ZIP 패키지 안의 HTML 페이지와 종속 자산의 모음 이상입니다. EPUB 출판물이 읽기 경험을 향상하기 위해 제공하는 주요 특징과 기능에 대한 추가 정보는 참조된 명세에서 확인할 수 있으며, EPUB 3의 기능에 대한 더 일반적인 소개는 비규범적인 [epub-overview-33]에서 제공합니다.

읽기 시스템에 대한 처리 요구사항은 [epub-rs-33]를 참조하십시오. EPUB 제작자가 EPUB 출판물을 만들기 위해 그 문서를 반드시 읽을 필요는 없지만, 읽기 시스템이 콘텐츠를 어떻게 제시하는지 이해하면 사용자에게 최적으로 제시되는 출판물을 만드는 데 도움이 될 수 있습니다.

1.3 다른 명세와의 관계

이 섹션은 비규범적입니다.

주의

EPUB 3가 기반으로 삼는 기술은 끊임없이 진화하고 있습니다. 일반적으로 "living" 또는 "evergreen" 표준이라고 불리는 일부 표준은 매일 변경될 수 있으며, EPUB 출판물의 유효성에 미치는 영향은 즉각적입니다. 다른 표준은 업데이트 빈도가 낮으며, EPUB 3가 새 개정을 거치기 전까지는 변경 사항이 EPUB 출판물에 영향을 주지 않을 수 있습니다.

모든 경우에, 이전에는 유효했던 기능이 더 이상 사용되지 않게 될 수 있습니다 (예: 지원 부족 또는 보안 문제 때문). 따라서 EPUB 제작자는 폭넓은 지원이 없는 기능을 사용할 때 주의해야 하며 EPUB 적합성 검사기를 최신 상태로 유지해야 합니다.

1.3.1 HTML과의 관계

[html] 표준은 지속적으로 진화하고 있으며, 더 이상 버전별 릴리스가 없습니다. 이 표준은 다시 MathML, SVG, CSS, JavaScript와 같이 계속 진화하는 여러 기술을 참조합니다.

EPUB에 대한 이 접근 방식의 이점은 EPUB 출판물이 새로운 개정 없이도 항상 웹의 변경 사항을 따라갈 수 있다는 것입니다. 그러나 EPUB 제작자는 자신의 프로세스를 최신 상태로 유지하기 위해 HTML 및 HTML이 참조하는 다양한 기술의 변경 사항을 추적해야 합니다.

이 명세에서 정의하는 XHTML 프로필은 달리 명시되지 않는 한 의미, 구조 및 처리 동작의 모든 정의를 HTML에서 상속합니다.

또한 이 명세는 EPUB 제작자가 XHTML 콘텐츠 문서에 포함할 수 있는 [html] 문서 모델에 대한 확장 집합을 정의합니다.

1.3.2 SVG와의 관계

이 명세는 [svg]의 특정 버전을 참조하지 않고 날짜 없는 참조를 사용합니다. 이 참조에 모호성이 있는 경우에는 최신 권고 명세가 권위 있는 참조입니다.

이 접근 방식은 EPUB이 SVG 표준의 변경 사항을 항상 따라가도록 보장합니다. 그러나 EPUB 제작자는 자신의 프로세스를 최신 상태로 유지하기 위해 SVG 표준의 변경 사항을 추적해야 합니다.

1.3.3 CSS와의 관계

EPUB 3는 CSS Working Group Snapshot [csssnapshot]에서 정의한 CSS를 지원합니다. EPUB 3는 전 세계 언어에 대한 일관된 지원을 보장하기 위해 일부 접두사 CSS 속성도 유지합니다.

1.3.4 MathML과의 관계

EPUB 3는 Presentation Markup [mathml3]만 지원합니다. Content Markup구조화된 마크업 주석 안에서만 허용됩니다.

1.3.5 SMIL과의 관계

이 명세는 [smil3]의 하위 집합에 의존하며, 9.2.2 미디어 오버레이 문서 정의에서 정의하는 미디어 오버레이 요소와 속성은 이 하위 집합에서 파생됩니다.

1.3.6 URL과의 관계

이 명세는 EPUB 출판물에서 표현된 URL과 관련된 용어 및 처리에 대해 [url] 표준을 참조합니다. 새롭거나 개정된 웹 형식은 이 표준을 채택할 것으로 예상되지만, 그 전까지는 이 명세가 일부 형식의 내부 요구사항(예: 유효한 상대 경로)과 충돌할 수 있습니다. 특히 국제화된 URL 사용과 관련하여 그렇습니다. 어떤 형식이 국제화된 URL을 허용하지 않는 경우(즉, URL이 [rfc3986] 또는 이전 규격을 준수해야 하는 경우), 해당 요구사항이 그 리소스 내에서 우선합니다.

1.4 용어

이 명세는 EPUB 3에 특화된 다음 용어를 정의합니다.

참고

한 섹션에서 용어가 처음 나타나는 경우에만 해당 정의로 링크됩니다.

codec

Codec은 최적의 압축을 위해 설계되었거나 최적화된 스트리밍 기능을 제공하는 비디오 및 오디오 미디어 유형처럼, 고유한 이진 형식 특성을 가진 콘텐츠를 가리킵니다.

container resource

출판물 리소스EPUB 컨테이너 안에 위치한 리소스를 말합니다. 이는 EPUB 컨테이너 안에 있지 않은 원격 리소스와 대비됩니다.

리소스 위치에 대한 미디어 유형별 규칙은 3.6 리소스 위치를 참조하십시오.

container root URL

URL [url]로서, OCF 추상 컨테이너를 나타내는 루트 디렉터리의 URL입니다. 이는 구현별로 다르지만, EPUB 제작자는 이것이 4.2.5 OCF 추상 컨테이너의 URL에서 정의한 속성을 가진다고 가정해야 합니다.

content URL

URL로서, OCF 추상 컨테이너 안의 파일 또는 디렉터리의 URL이며, 4.2.5 OCF 추상 컨테이너의 URL에서 정의됩니다.

core media type resource

출판물 리소스3.2 핵심 미디어 유형에 나열된 MIME 미디어 유형 [rfc2046] 중 하나를 준수하여, 따라서 폴백을 제공할 필요가 없는 리소스를 말합니다 (cf. 외부 리소스).

"core media type resource"라는 명칭은 리소스가 EPUB 콘텐츠 문서외부 콘텐츠 문서의 렌더링에 사용될 때만 적용됩니다. 예를 들어 핵심 미디어 유형 리소스가 EPUB 콘텐츠 문서의 미디어 유형도 갖고 있지 않다면, 폴백 없이 스파인에서 사용할 수 없습니다.

EPUB conformance checker

EPUB 출판물에 대해 이 명세의 요구사항을 검증하고 그 적합성을 보고하는 애플리케이션입니다.

EPUB container
OCF ZIP container

EPUB 출판물을 위한 ZIP 기반 패키징 및 배포 형식이며, 4.3 OCF ZIP 컨테이너에서 정의됩니다.

EPUB container와 OCF ZIP container는 동의어입니다.

EPUB content document

출판물 리소스스파인 또는 매니페스트 폴백 체인에서 참조되며, XHTML 또는 SVG 콘텐츠 문서 정의 중 하나를 준수하는 리소스를 말합니다.

EPUB 콘텐츠 문서는 EPUB 출판물의 콘텐츠 전체 또는 일부 (즉, 텍스트, 시각 및/또는 오디오 콘텐츠)를 포함합니다.

EPUB 제작자폴백 제공 없이 EPUB 콘텐츠 문서를 스파인에 포함할 수 있습니다.

EPUB creator

EPUB 출판물을 제작하는 개인, 조직 또는 프로세스입니다.

참고

EPUB 출판물의 제작에는 많은 개인의 작업이 관여하는 경우가 많으며, 여러 조직에 걸쳐 나뉠 수 있습니다(예: 출판사가 작업의 전부 또는 일부를 외주하는 경우). EPUB 출판물을 제작하는 데 사용되는 프로세스에 따라 책임은 조직(예: 출판사), 출판물을 준비하는 개인 (예: 기술 편집자), 또는 자동 절차(예: 출판 파이프라인의 일부)에 있을 수 있습니다. 그 결과 모든 당사자나 프로세스가 모든 요구사항이 충족되도록 보장할 책임을 지는 것은 아니지만, 최종 EPUB 출판물의 적합성에 책임을 지는 EPUB 제작자는 항상 존재합니다.

이 명세의 이전 버전에서는 EPUB 제작자를 Author라고 불렀습니다.

EPUB manifest (또는 manifest)

패키지 문서에서 출판물 리소스를 나열하는 섹션입니다.

자세한 내용은 5.6.1 manifest 요소를 참조하십시오.

EPUB navigation document

인간과 기계가 읽을 수 있는 전역 탐색 정보를 포함하는 XHTML 콘텐츠 문서의 특수화입니다. EPUB 탐색 문서는 7. EPUB 탐색 문서에서 표현된 제약을 준수합니다.

EPUB publication

EPUB 컨테이너에 패키징된 상호 관련 리소스 집합으로 구성된 논리적 문서 엔티티입니다.

EPUB 출판물은 일반적으로 하나의 지적 또는 예술적 저작물을 나타내지만, 이 명세는 콘텐츠의 성격을 제한하지 않습니다.

EPUB reading system (또는 reading system)

이 명세에 적합한 방식으로 사용자에게 제시하기 위해 EPUB 출판물을 처리하는 시스템입니다.

EPUB spine (또는 spine)

패키지 문서에서 EPUB 콘텐츠 문서외부 콘텐츠 문서의 순서 있는 목록을 정의하는 섹션입니다. 이 목록은 EPUB 출판물의 기본 읽기 순서를 나타냅니다.

자세한 내용은 5.7.1 spine 요소를 참조하십시오.

exempt resource

Exempt resources는 출판물 리소스의 특수한 분류로, 읽기 시스템이 그 렌더링을 지원할 필요는 없지만 EPUB 제작자도 이를 위한 폴백을 제공할 필요가 없습니다.

자세한 내용은 3.4 면제 리소스를 참조하십시오.

file name

OCF 추상 컨테이너 안의 모든 유형의 파일 이름을 말하며, 디렉터리인지 또는 디렉터리 안의 파일인지 여부와 무관합니다.

file path

파일 또는 디렉터리의 파일 경로는 루트 디렉터리를 기준으로 한 전체 경로이며, 4.2.4 파일 경로 도출에서 지정한 알고리즘으로 정의됩니다.

fixed-layout document

EPUB 콘텐츠 문서 중 고정 치수를 가지며 스파인에서 직접 참조되는 문서입니다. 고정 레이아웃 문서는 패키지 문서에서 pre-paginated로 지정되며, 이는 8.2 고정 레이아웃에서 정의됩니다.

foreign content document

출판물 리소스스파인 itemref 요소에서 참조되거나, 매니페스트 폴백 체인에서 참조되며, EPUB 콘텐츠 문서가 아닌 모든 리소스를 말합니다.

외부 콘텐츠 문서가 스파인 itemref 요소에서 참조되는 경우, 적어도 하나의 EPUB 콘텐츠 문서를 포함하는 매니페스트 폴백 체인이 필요합니다.

참고

XHTML과 SVG를 제외하고, 모든 핵심 미디어 유형 리소스는 스파인에서 직접 참조될 때 외부 콘텐츠 문서가 됩니다.

foreign resource

MIME 미디어 유형 [rfc2046]을 가진 출판물 리소스3.2 핵심 미디어 유형에 나열된 어떤 유형과도 일치하지 않는 리소스입니다. 외부 리소스는 3.3 외부 리소스에서 정의한 폴백 요구사항의 적용을 받습니다.

"foreign resource"라는 명칭은 EPUB 콘텐츠 문서외부 콘텐츠 문서의 렌더링에 사용되는 리소스에만 적용됩니다.

참고

Foreign resource와 foreign content document는 서로 바꿔 쓸 수 있는 용어가 아닙니다. 스파인에서 사용될 때 외부로 간주되는 리소스의 유형은 EPUB 콘텐츠 문서에서 사용될 때 외부로 간주되는 리소스의 유형보다 더 넓습니다.

linked resource

패키지 문서link 요소에서만 참조되는 리소스입니다(즉, EPUB 출판물의 렌더링에 함께 사용되지 않음).

링크된 리소스는 출판물 리소스가 아니지만 EPUB 컨테이너에 저장될 수 있습니다. 폴백은 필요하지 않습니다.

media overlay document

XHTML 콘텐츠 문서를 사전 녹음된 오디오 내레이션과 연결하여, 9. 미디어 오버레이에서 정의한 동기화 재생 경험을 제공하는 XML 문서입니다.

non-codec

Non-codec은 내부 데이터 구조의 특성상 압축으로 이점을 얻는 콘텐츠 유형을 가리킵니다. 예를 들어 HTML, CSS 등 문자 문자열에 기반한 파일 형식이 있습니다.

OCF abstract container

OCF 추상 컨테이너는 OCF ZIP 컨테이너의 콘텐츠를 위한 파일 시스템 모델을 정의하며, 이는 4.2 OCF 추상 컨테이너에서 정의됩니다.

package document

EPUB 출판물의 렌더링을 설명하는 출판물 리소스이며, 5. 패키지 문서에서 정의됩니다. 패키지 문서는 EPUB 출판물에 대한 메타 정보를 담고, 리소스의 매니페스트를 제공하며, 기본 읽기 순서를 정의합니다.

publication resource

EPUB 출판물의 논리와 렌더링에 기여하는 콘텐츠 또는 지침을 포함하는 리소스입니다. 이 리소스가 없으면 읽기 시스템EPUB 제작자가 의도한 대로 EPUB 출판물을 렌더링하지 못할 수 있습니다. 출판물 리소스의 예로는 패키지 문서, EPUB 콘텐츠 문서, CSS 스타일 시트, 오디오, 비디오, 이미지, 포함된 글꼴 및 스크립트가 있습니다.

EPUB 제작자는 출판물 리소스를 패키지 문서의 매니페스트에 나열해야 하며, 일반적으로 모두 EPUB 컨테이너에 묶습니다 (예외적으로 3.6 리소스 위치에 나열된 리소스는 EPUB 컨테이너 밖에 위치시킬 수 있음).

참고

외부 하이퍼링크에서 식별되는 웹상의 리소스 (예: [html] a 요소의 href 속성에서 참조되는 리소스)는 출판물 리소스가 아닙니다.

Data urls도 출판물 리소스가 아닙니다 — 이는 포함된 리소스의 일부로 간주됩니다.

remote resource

출판물 리소스EPUB 컨테이너 바깥, 일반적으로 웹에 위치한 리소스입니다.

EPUB 컨테이너 안의 출판물 리소스는 컨테이너 리소스라고 합니다.

리소스 위치에 대한 미디어 유형별 규칙은 3.6 리소스 위치를 참조하십시오.

root directory

루트 디렉터리는 OCF 추상 컨테이너 파일 시스템의 기반을 나타냅니다. 이 디렉터리는 본질적으로 가상입니다.

scripted content document

스크립팅을 포함하는 EPUB 콘텐츠 문서, 또는 [html] form 요소를 포함하는 XHTML 콘텐츠 문서입니다.

자세한 내용은 6.3.2 스크립팅을 참조하십시오.

SVG content document

EPUB 콘텐츠 문서6.2 SVG 콘텐츠 문서에서 표현된 제약을 준수하는 문서입니다.

synthetic spread

장치 화면에서 인접한 두 페이지를 동시에 렌더링하는 것입니다.

top-level content document

EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서 중 직접 또는 폴백 체인을 통해 스파인에서 참조되는 문서입니다.

unique identifier

EPUB 출판물에 대한 기본 식별자입니다. 고유 식별자는 unique-identifier 속성으로 지정된 패키지 문서 안의 dc:identifier 요소의 입니다.

콘텐츠의 중대한 개정, 축약 등은 새 고유 식별자를 필요로 합니다.

viewport

EPUB 읽기 시스템에서 EPUB 출판물이 사용자에게 시각적으로 렌더링되는 영역입니다.

XHTML content document

EPUB 콘텐츠 문서6.1 XHTML 콘텐츠 문서에서 정의한 [html] 프로필을 준수하는 문서입니다.

XHTML 콘텐츠 문서는 [html]에서 정의한 XML 구문을 사용합니다.

1.5 적합성

비규범으로 표시된 섹션뿐 아니라, 이 명세의 모든 저작 지침, 다이어그램, 예제 및 참고는 비규범적입니다. 이 명세의 그 밖의 모든 내용은 규범적입니다.

이 문서에서 핵심어 MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD, 그리고 SHOULD NOT은 여기에 표시된 것처럼 모두 대문자로 나타날 때에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석되어야 합니다.

모든 알고리즘 설명은 비규범적입니다.

1.6 저작 축약 표기

이 섹션은 비규범적입니다.

패키지 문서 메타데이터 예제에서는 예약된 접두사가 선언 없이 사용됩니다.

Dublin Core 요소 [dcterms]에 대한 참조는 dc: 접두사를 사용합니다. 이 접두사는 그 사용이 유효하려면 패키지 문서에서 선언되어야 합니다 (xmlns:dc="http://purl.org/dc/elements/1.1/")

epub 네임스페이스 접두사 [xml-names]도 항상 명시적 선언이 있는 것은 아니지만 요소와 속성에서 사용됩니다 (xmlns:epub="http://www.idpf.org/2007/ops").

2. EPUB 출판물 적합성

EPUB 출판물은 다음을 만족해야 합니다.

또한 모든 출판물 리소스는 3. 출판물 리소스의 요구사항을 MUST 준수해야 합니다.

이 명세의 나머지 부분은 구체적인 적합성 세부사항을 다룹니다.

2.1 적합성 검사

이 섹션은 비규범적입니다.

이 명세의 복잡성과 EPUB 출판물에서 사용되는 기술의 수 때문에, EPUB 제작자는 자신의 콘텐츠의 적합성을 검증하기 위해 EPUB 적합성 검사기를 사용하는 것이 권장됩니다.

EPUBCheck는 출판 업계에서 사용하는 사실상의 EPUB 적합성 검사기이며, EPUB의 각 새 버전에 맞춰 업데이트되어 왔습니다. 이는 여러 저작 도구에 통합되어 있으며, 대체 인터페이스와 다른 언어로도 제공됩니다(자세한 내용은 Apps and Tools 페이지를 참조하십시오).

EPUB 제작자는 자신의 EPUB 출판물을 검증할 때 이 명세의 요구사항 (키워드 "MUST", "MUST NOT" 및 "REQUIRED"로 식별되는 관행)을 위반하지 않는지 확인해야 합니다. 이러한 유형의 문제는 종종 EPUB 출판물이 렌더링되지 않거나 일관되지 않은 방식으로 렌더링되는 결과를 낳습니다. 이러한 문제는 일반적으로 오류 또는 치명적 오류로 보고됩니다.

EPUB 제작자는 또한 자신의 EPUB 출판물이 이 명세의 권고사항 (키워드 "SHOULD", "SHOULD NOT" 및 "RECOMMENDED"로 식별되는 관행)을 위반하지 않는지 확인해야 합니다. 이러한 관행을 따르지 않아도 유효하지 않은 EPUB 출판물이 되는 것은 아니지만, 상호운용성 문제와 사용자 읽기 경험에 영향을 미치는 기타 문제로 이어질 수 있습니다. 이러한 문제는 일반적으로 경고로 보고됩니다.

참고

EPUB 출판물의 공급업체, 배포업체 및 기타 소매업체는 EPUB 적합성 검사기에서 문제가 하나도 없다는 결과만을 근거로 수락 또는 거부를 결정하기 전에 권장 관행의 중요성을 고려해야 합니다. EPUB 제작자가 모든 경우에 권장 관행을 따를 수 없는 정당한 이유가 있을 수 있습니다.

3. 출판물 리소스

3.1 소개

이 섹션은 비규범적입니다.

EPUB 출판물은 여러 다른 범주의 리소스로 구성되며, 이 범주들이 모두 상호 배타적인 것은 아닙니다. 어떤 리소스는 출판물 리소스이고, 어떤 것은 그렇지 않습니다. 일부 출판물 리소스는 기본적으로 스파인에서 허용되지만, 그 밖의 모든 리소스에는 폴백이 필요합니다. 일부 리소스는 EPUB 콘텐츠 문서의 렌더링에 사용될 수 있으며, 다른 리소스는 폴백과 함께만 사용할 수 있습니다.

각 리소스 범주의 기술적 정의를 읽어 이러한 차이를 이해하려는 것은 복잡할 수 있습니다. 범주화를 더 쉽게 이해할 수 있도록, 이 소개에서는 리소스가 어떻게 그룹화되고 참조되는지 설명하기 위해 서로 다른 평면이라는 개념을 사용합니다.

세 평면은 다음과 같습니다.

동일한 리소스가 둘 이상의 평면에 존재할 수 있으며, 이 명세에서는 어떤 평면을 논의하는지에 따라 다르게 참조됩니다. 예를 들어 EPUB 콘텐츠 문서의 렌더링에 사용되는 핵심 미디어 유형 리소스(콘텐츠 평면)는 스파인에도 나열되어 있다면 외부 콘텐츠 문서(스파인 평면)가 될 수도 있습니다.

다음 섹션에서는 이러한 평면을 더 자세히 설명합니다.

참고

리소스가 서로 다른 평면에 어떻게 들어맞는지 보여주는 상세한 예제는 H.1 리소스를 참조하십시오.

3.1.1 매니페스트 평면

매니페스트 평면EPUB 출판물의 모든 리소스를 정의합니다. 이는 패키지 문서매니페스트와 유사하지만, 그 목록에 없는 리소스도 포함합니다.

이 그룹의 주요 리소스는 출판물 리소스로 지정되며, 이는 EPUB 출판물을 사용자에게 렌더링하는 데 사용되는 모든 리소스입니다. EPUB 제작자는 항상 이러한 리소스를 manifest 요소에 나열해야 합니다.

출판물 리소스는 스파인 평면콘텐츠 평면에서의 사용에 따라 추가로 분류됩니다.

매니페스트 평면에는 링크된 리소스 집합도 포함됩니다. 이러한 리소스는 직접 렌더링과는 부수적인 관계에 있습니다. 예를 들어 메타데이터 레코드와 외부 콘텐츠로의 링크 (예: EPUB 출판물을 구매할 위치)가 여기에 포함됩니다.

출판물 리소스와 달리, 이러한 리소스는 패키지 문서 매니페스트에 나열되지 않습니다 (즉, EPUB 출판물 렌더링에 필수적이지 않기 때문입니다). 대신 패키지 문서 메타데이터의 link 요소에서 정의됩니다. 이러한 요소는 매니페스트 item 요소가 출판물 리소스를 정의하는 방식과 유사하게 그 성격과 목적을 정의합니다. (이런 방식으로, 이는 매니페스트의 확장과 같습니다.)

링크된 리소스에 대한 자세한 내용은 5.5.6 link 요소를 참조하십시오.

매니페스트 평면의 리소스는 때때로 위치한 장소에 따라 다시 나뉩니다. 대부분의 출판물 리소스는 EPUB 컨테이너 안에 위치해야 하지만(이를 컨테이너 리소스라고 함), EPUB 3는 오디오, 비디오, 글꼴 및 스크립트 데이터 리소스를 컨테이너 밖에 호스팅하는 것을 허용합니다. 이러한 예외는 EPUB 출판물의 다운로드와 로딩 속도를 높이기 위해 만들어졌습니다. 이러한 리소스는 일반적으로 상당히 크며, 글꼴의 경우 표시에는 필수적이지 않기 때문입니다. 원격으로 호스팅되는 경우 이러한 출판물 리소스는 원격 리소스라고 합니다.

링크된 리소스는 EPUB 출판물 렌더링에 필수적이지 않으므로, 그 위치에 대한 요구사항이 없으며 따라서 위치에 따른 특별한 명칭도 없습니다. EPUB 컨테이너 안에 있을 수도 있고 바깥에 있을 수도 있습니다.

참고

EPUB 컨테이너 밖의 하이퍼링크된 콘텐츠(예: 웹 페이지)는 출판물 리소스가 아니므로 매니페스트에 나열되지 않습니다. 읽기 시스템은 일반적으로 이러한 링크를 EPUB 출판물의 일부가 아니라 별도의 브라우저 인스턴스에서 엽니다.

3.1.2 스파인 평면

스파인 평면스파인이 설정한 기본 읽기 순서에 사용되는 리소스를 정의하며, 여기에는 선형 및 비선형 콘텐츠가 모두 포함됩니다. 스파인은 사용자가 EPUB 출판물을 진행함에 따라 이러한 리소스를 어떻게 로드할지 읽기 시스템에 지시합니다. 많은 리소스가 EPUB 컨테이너에 묶일 수 있지만, 모두가 기본적으로 스파인에서 허용되는 것은 아닙니다.

EPUB 3는 EPUB 콘텐츠 문서라는 특별한 리소스 분류를 정의하며, EPUB 제작자는 이를 아무 제한 없이 스파인에서 사용할 수 있습니다. EPUB 콘텐츠 문서는 XHTML 콘텐츠 문서SVG 콘텐츠 문서를 모두 포함합니다.

외부 콘텐츠 문서라고 하는 다른 유형의 리소스를 스파인에서 사용하려면 EPUB 콘텐츠 문서로의 폴백을 포함해야 합니다. 이 확장성 모델은 EPUB 제작자가 형식을 실험할 수 있게 하면서도, 외부 콘텐츠 문서에 대한 지원이 보장되지 않으므로 읽기 시스템이 항상 사용자가 읽을 수 있는 무언가를 렌더링할 수 있게 보장합니다.

매니페스트 폴백이라는 메커니즘을 통해 EPUB 제작자는 외부 콘텐츠 문서에 대한 폴백을 제공할 수 있습니다. 이 모델에서는 외부 콘텐츠 문서의 매니페스트 항목이 읽기 시스템이 해당 형식을 지원하지 않을 때 시도할 수 있는 다음 가능한 리소스를 가리키는 fallback 속성을 포함해야 합니다. 흔하지는 않지만, 폴백 리소스가 또 다른 폴백을 지정할 수 있으므로 체인이 여러 리소스 깊이로 이어질 수 있습니다. 유일한 요구사항은 매니페스트 폴백 체인 안에 적어도 하나의 EPUB 콘텐츠 문서가 있어야 한다는 것입니다.

폴백 체인의 모든 리소스는 스파인에 직접 나열되지는 않지만, 읽기 시스템이 그중 어느 것이든 사용할 수 있으므로 스파인의 일부로, 나아가 스파인 평면의 일부로 간주됩니다.

자세한 내용은 3.5.1 매니페스트 폴백을 참조하십시오.

주의

매니페스트 폴백은 EPUB의 기술적 요구사항을 충족하지만, 읽기 시스템에서 실질적인 지원은 거의 없습니다. 그 사용은 읽을 수 없는 출판물로 이어질 수 있으므로 강하게 권장되지 않습니다.

참고

EPUB 콘텐츠 문서에 매니페스트 폴백을 제공하는 것은 가능하지만, 필수도 아니고 일반적이지도 않습니다. 예를 들어 스크립트 콘텐츠 문서는 스크립팅을 지원하지 않는 읽기 시스템을 위해 스크립트 없는 대체 항목으로 폴백할 수 있습니다.

3.1.3 콘텐츠 평면

콘텐츠 평면EPUB 콘텐츠 문서외부 콘텐츠 문서를 렌더링할 때 사용되는 리소스를 분류합니다. 이러한 유형의 리소스에는 포함된 미디어, CSS 스타일 시트, 스크립트 및 글꼴이 포함됩니다. 이러한 리소스는 읽기 시스템 지원에 따라 세 범주로 나뉩니다. 핵심 미디어 유형 리소스, 외부 리소스, 그리고 면제 리소스입니다.

핵심 미디어 유형 리소스는 읽기 시스템이 지원해야 하는 리소스이므로, EPUB 또는 외부 콘텐츠 문서에서 제한 없이 사용할 수 있습니다. 핵심 미디어 유형 리소스에 대한 자세한 내용은 3.2 핵심 미디어 유형을 참조하십시오.

참고

핵심 미디어 유형 리소스라는 사실이 읽기 시스템이 항상 그 리소스를 렌더링한다는 뜻은 아닙니다. 모든 읽기 시스템이 EPUB 3의 모든 기능을 지원하는 것은 아니기 때문입니다. 예를 들어 뷰포트가 없는 읽기 시스템은 이미지와 같은 시각 콘텐츠를 렌더링하지 않습니다.

핵심 미디어 유형 리소스의 반대는 외부 리소스입니다. 이는 읽기 시스템이 렌더링을 지원한다고 보장되지 않는 리소스입니다. 따라서 스파인에서 외부 콘텐츠 문서를 사용할 때 렌더링을 보장하기 위해 폴백이 필요한 것과 유사하게, 콘텐츠 문서에서 외부 리소스를 사용할 때도 폴백이 필요합니다. 이러한 폴백은 두 가지 방법 중 하나로 제공됩니다. 호스트 형식의 기능을 사용하거나 매니페스트 폴백을 사용하는 방법입니다.

선호되는 방법은 호스트 형식의 폴백 기능을 사용하는 것입니다. 예를 들어 많은 HTML 요소는 내재적 폴백 기능을 가지고 있습니다. 한 예는 picture 요소 [html]로, EPUB 제작자가 여러 대체 이미지 형식을 지정할 수 있게 합니다.

내재적 폴백 방법을 사용할 수 없는 경우 매니페스트 폴백을 사용하는 것도 가능하지만, 이 방법은 이전 섹션에서 주의한 것처럼 권장되지 않습니다. 외부 리소스에 대한 자세한 내용은 3.3 외부 리소스를 참조하십시오.

핵심 미디어 유형 리소스와 외부 리소스 사이에 있는 것이 면제 리소스입니다. 이는 읽기 시스템이 이를 렌더링한다고 보장할 수 없다는 점에서 외부 리소스와 가장 밀접하게 관련됩니다. 그러나 핵심 미디어 유형과 마찬가지로 폴백이 필요하지 않습니다.

면제 리소스는 핵심 미디어 유형이 정의되어 있지 않지만 폴백을 제공하는 것이 번거롭거나 불필요한 특정 경우를 다루는 경향이 있습니다. 여기에는 비디오 삽입, 접근성 트랙 추가, 그리고 [html] link 요소에서 리소스로 링크하는 것이 포함됩니다.

이러한 예외에 대한 자세한 내용은 3.4 면제 리소스를 참조하십시오.

참고

핵심 미디어 유형 리소스에서 흔히 혼동되는 지점은 XHTML과 SVG가 각각의 EPUB 콘텐츠 문서 정의를 준수해야 한다는 요구사항과 함께 핵심 미디어 유형 리소스로 나열된다는 점입니다. 이를 통해 EPUB 제작자는 XHTML 및 SVG 문서를 EPUB 콘텐츠 문서 안에 삽입하면서도 저작 및 읽기 시스템 지원에 대한 요구사항의 일관성을 유지할 수 있습니다.

실제로 이는 EPUB 제작자가 XHTML 및 SVG 핵심 미디어 유형 리소스를 아무 수정이나 폴백 없이 스파인에 넣을 수 있음을 의미합니다(이들은 또한 적합한 XHTML 및 SVG 콘텐츠 문서이기도 함). 하지만 이는 고유한 경우입니다. 그 밖의 모든 핵심 미디어 유형 리소스는 스파인에서 사용될 때 외부 콘텐츠 문서가 됩니다(즉, 외부 콘텐츠 문서는 XHTML 및 SVG를 제외한 모든 외부 리소스와 모든 핵심 미디어 유형 리소스를 포함합니다).

3.2 핵심 미디어 유형

EPUB 제작자EPUB 콘텐츠 문서외부 콘텐츠 문서에서 사용되는 경우, 다음 표에 정의된 MIME 미디어 유형 [rfc2046] 명세를 준수하는 출판물 리소스를 폴백 없이 MAY 포함할 수 있습니다. 이러한 리소스는 핵심 미디어 유형 리소스로 분류됩니다.

XHTML 콘텐츠 문서SVG 콘텐츠 문서를 제외하고, EPUB 제작자는 스파인에서 직접 참조되는 핵심 미디어 유형 리소스에 대해 매니페스트 폴백MUST 제공해야 합니다. 이 경우 해당 리소스는 외부 콘텐츠 문서입니다.

표의 열은 다음 정보를 나타냅니다.

미디어 유형 콘텐츠 유형 정의 적용 대상
이미지
image/gif [gif] GIF 이미지
image/jpeg [jpeg] JPEG 이미지
image/png [png] PNG 이미지
image/svg+xml SVG 콘텐츠 문서 SVG 문서
image/webp [rfc9649] WebP 이미지
오디오
audio/mpeg [mp3] MP3 오디오
audio/mp4 [mpeg4-audio], [mp4] MP4 컨테이너를 사용하는 AAC LC 오디오
audio/ogg; codecs=opus [rfc7845] OGG 컨테이너를 사용하는 OPUS 오디오
스타일
text/css CSS 스타일 시트 CSS 스타일 시트.
글꼴
  1. font/ttf
  2. application/font-sfnt
[truetype] TrueType 글꼴
  1. font/otf
  2. application/font-sfnt
  3. application/vnd.ms-opentype
[opentype] OpenType 글꼴
  1. font/woff
  2. application/font-woff
[woff] WOFF 글꼴
font/woff2 [woff2] WOFF2 글꼴
기타
application/xhtml+xml XHTML 콘텐츠 문서 XML 구문을 사용하는 HTML 문서 [html].
  1. application/javascript
  2. application/ecmascript
  3. text/javascript
[rfc4329] 스크립트.
application/x-dtbncx+xml [opf-201] 레거시 NCX.
application/smil+xml 미디어 오버레이 EPUB 미디어 오버레이 문서
참고

핵심 미디어 유형 리소스로 포함된다고 해서 모든 읽기 시스템이 해당 리소스의 렌더링을 지원한다는 뜻은 아닙니다. 읽기 시스템 지원은 애플리케이션의 기능에도 달려 있습니다(예: 뷰포트가 있는 읽기 시스템은 이미지 핵심 미디어 유형 리소스를 지원해야 하지만, 뷰포트가 없는 읽기 시스템은 그렇지 않습니다). 어떤 읽기 시스템의 렌더링 기능이 어떤 핵심 미디어 유형 리소스 지원을 요구하는지에 대한 자세한 내용은 핵심 미디어 유형 [epub-rs-33]을 참조하십시오.

Working Group은 일반적으로 웹 브라우저 코어 — EPUB 3 읽기 시스템이 기반으로 삼는 렌더링 엔진 — 에서 폭넓게 지원되는 형식만 핵심 미디어 유형 리소스로 포함합니다. 이는 EPUB 출판물 렌더링의 예측 가능성을 보장하기 위한 읽기 시스템 개발자와 EPUB 제작자 사이의 합의입니다.

3.3 외부 리소스

외부 리소스핵심 미디어 유형 리소스와 달리, EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서에서 사용될 때 읽기 시스템 지원이 보장되지 않는 리소스입니다.

EPUB 제작자는 외부 리소스에 대해 폴백을 MUST 제공해야 하며, 폴백은 다음 형식 중 하나를 취합니다.

참고

요소가 제공하는 내재적 폴백 기능은 [html] 및 [svg] 명세를 참조하십시오.

3.5.2 내재적 폴백도 특정 요소에 대해 폴백이 어떻게 해석되는지에 대한 추가 정보를 제공합니다.

3.4 면제 리소스

면제 리소스외부 리소스핵심 미디어 유형 리소스와 속성을 공유합니다. 이는 외부 리소스와 가장 유사하며, 읽기 시스템 지원이 보장되지 않는다는 점에서 그렇습니다. 그러나 핵심 미디어 유형 리소스와 마찬가지로 폴백이 필요하지 않습니다.

면제 리소스에는 소수의 특수한 경우만 있습니다. 예를 들어 비디오는 현재 핵심 미디어 유형 비디오 형식에 대한 합의가 없기 때문에(즉, 폴백할 형식이 없기 때문에) 폴백에서 면제됩니다. 마찬가지로 오디오 및 비디오 트랙은 EPUB 제작자가 읽기 시스템이 가장 잘 지원하는 어떤 형식이든 사용하여 접근성 요구사항을 충족할 수 있도록 면제됩니다.

다음 목록은 EPUB 제작자가 이를 사용할 수 있는 위치에 대한 제한을 포함하여, 콘텐츠별 면제 리소스의 경우를 자세히 설명합니다.

글꼴

글꼴 핵심 미디어 유형으로 이미 다루지 않은 모든 글꼴 리소스는 면제 리소스입니다.

이 면제는 읽기 시스템 지원 기대와 무관하게 EPUB 제작자가 어떤 글꼴 형식이든 폴백 없이 사용할 수 있게 합니다. 지원되지 않는 경우 CSS 규칙이 폴백 글꼴을 보장하기 때문입니다.

자세한 내용은 글꼴에 대한 읽기 시스템 지원 요구사항 [epub-rs-33]을 참조하십시오.

트랙

[webvtt] 캡션, 자막 및 설명과 같은 모든 오디오 및 비디오 트랙 중 [htmltrack 요소에서 참조되는 것은 면제 리소스입니다.

비디오

[html] video 요소에서 참조되는 모든 비디오 코덱 — 자식 source 요소를 포함 — 은 면제 리소스입니다.

참고

읽기 시스템은 H.264 [h264] 및 VP8 [rfc6386] 비디오 코덱 중 적어도 하나를 지원하도록 권장되지만, 비디오 코덱 지원은 적합성 요구사항이 아닙니다. EPUB 제작자는 포함할 비디오 형식을 결정할 때 채택 범위, 재생 품질 및 기술 로열티와 같은 요소를 고려해야 합니다.

참고

위에서 만든 면제는 스파인에는 적용되지 않습니다. 면제 리소스가 스파인에서 사용되고, 그것이 동시에 EPUB 콘텐츠 문서가 아니라면, 그 맥락에서는 폴백이 필요합니다.

콘텐츠별 면제에 더해, 리소스는 다음 조건을 만족하면 면제 리소스로 분류됩니다.

이 면제는 EPUB 제작자가 EPUB 읽기 시스템이 사용할 목적이 아닌 리소스를 EPUB 컨테이너에 포함할 수 있게 합니다. 이 면제의 주요 사례는 데이터 파일이 EPUB 출판물과 함께 이동할 수 있도록 하는 것입니다. 이는 스크립트가 구성 EPUB 콘텐츠 문서에서 사용하기 위한 것이든, 외부 애플리케이션이 사용하기 위한 것이든 상관없습니다(예: 과학 저널은 EPUB 컨테이너에서 추출하는 방법에 대한 지침과 함께 데이터 세트를 포함할 수 있습니다).

또한 EPUB 제작자는 읽기 시스템이나 EPUB 적합성 검사기가 해당 리소스의 폴백 기능을 이해할 필요 없이 외부 콘텐츠 문서에서 외부 리소스를 사용할 수 있습니다 (즉, 외부 콘텐츠 문서에 대한 폴백 요구사항이 그 안의 모든 렌더링 문제를 포괄합니다). 해당 리소스가 EPUB 콘텐츠 문서에서 참조되지 않으므로, 자동으로 폴백에서 면제됩니다.

3.5 리소스 폴백

3.5.1 매니페스트 폴백

매니페스트 폴백은 패키지 문서의 기능으로, 출판물 리소스에 대한 매니페스트 폴백 체인을 만들어 읽기 시스템이 렌더링할 수 있는 대체 형식을 선택할 수 있게 합니다.

폴백 체인은 매니페스트 item 요소의 fallback 속성을 사용하여 생성됩니다. 이 속성은 현재 item의 폴백인 다른 매니페스트 itemID [xml]를 참조합니다. 주어진 itemfallback 속성에서 시작하여 읽기 시스템이 도달할 수 있는 모든 참조의 순서 있는 목록이 그 item에 대한 전체 폴백 체인을 나타냅니다. 이 체인은 또한 EPUB 제작자가 선호하는 폴백 순서를 나타냅니다.

매니페스트 폴백에는 두 가지 경우가 있습니다.

스파인 폴백

EPUB 제작자는 외부 콘텐츠 문서에 대해 폴백 체인을 MUST 지정하여 읽기 시스템이 항상 스파인 항목을 렌더링할 수 있게 해야 합니다. 이 경우 체인은 적어도 하나의 EPUB 콘텐츠 문서MUST 포함해야 합니다.

EPUB 제작자는 EPUB 콘텐츠 문서에 대해 폴백을 MAY 제공할 수 있습니다 (예: 스크립트 콘텐츠에 대한 폴백을 제공하기 위해).

폴백 체인이 둘 이상의 EPUB 콘텐츠 문서를 포함하는 경우, EPUB 제작자는 properties 속성을 사용하여 각각의 목적을 구분할 수 있습니다.

콘텐츠 폴백
참고

콘텐츠 폴백의 원래 목적은 [html] img 요소에 대한 폴백 이미지를 지정하는 것이었습니다. HTML은 이제 이미지에 대한 내재적 폴백 메커니즘을 가지므로, 콘텐츠 폴백의 사용은 강하게 권장되지 않습니다. EPUB 제작자는 항상 [html] 및 [svg]의 내재적 폴백 기능을 사용하여 폴백 콘텐츠를 제공해야 합니다.

EPUB 제작자는 참조하는 요소가 내재적 폴백 기능을 가지지 않는 경우 외부 리소스에 대해 콘텐츠 폴백을 MUST 제공해야 합니다. 이 경우 폴백 체인은 적어도 하나의 핵심 미디어 유형 리소스MUST 포함해야 합니다.

EPUB 제작자는 핵심 미디어 유형 리소스에 대해서도 매니페스트 폴백을 MAY 제공할 수 있습니다(예: 읽기 시스템이 둘 이상의 이미지 형식 중에서 선택할 수 있게 하기 위해).

지정된 매니페스트 폴백의 유형과 관계없이, 폴백 체인은 체인 안의 item 요소에 대한 자기 참조나 순환 참조를 MUST NOT 포함해야 합니다.

참고

data URL로 표현된 리소스에는 매니페스트 폴백을 사용할 수 없으므로, EPUB 제작자는 내재적 폴백 메커니즘을 사용할 수 있는 경우에만 외부 리소스를 data URL로 표현할 수 있습니다.

3.5.2 내재적 폴백

다음 섹션들은 특정 요소의 내재적 폴백 요구사항에 대한 추가 설명을 제공합니다.

3.5.2.1 HTML audiovideo 폴백

EPUB 제작자는 오디오 외부 리소스에 대한 내재적 폴백으로 [html플로우 콘텐츠미디어 요소 (즉, audio 또는 video) 안에 삽입하여 사용해서는 MUST NOT 됩니다. 오직 자식 source 요소 [html]만 내재적 폴백 기능을 제공합니다.

audio 또는 video 요소를 인식하지 못하는 오래된 읽기 시스템(예: EPUB 2 읽기 시스템)만 삽입된 콘텐츠를 렌더링합니다. 읽기 시스템이 이러한 요소는 지원하지만 사용 가능한 미디어 형식은 지원하지 않는 경우, 삽입된 콘텐츠를 사용자에게 렌더링하지 않습니다.

참고

폴백 요구사항은 audiovideo 요소에서 참조되는 오디오 외부 리소스에만 적용됩니다. 비디오 리소스에는 폴백이 필요하지 않습니다. 비디오는 면제 리소스입니다.

3.5.2.2 HTML img 폴백

[html] img 요소에 EPUB 제작자가 지정할 수 있는 소스가 다양하기 때문에, 그 사용에는 다음 폴백 조건이 적용됩니다.

  • 그것이 picture 요소의 자식인 경우:

    • EPUB 제작자가 srcsrcset 속성을 지정하는 경우, 그 속성에서 핵심 미디어 유형 리소스를 MUST 참조해야 합니다; 그리고
    • 각 형제 source 요소는 srcsrcset 속성에서 핵심 미디어 유형 리소스MUST 참조해야 합니다. 단, type 속성에 외부 리소스의 MIME 미디어 유형 [rfc2046]을 지정하는 경우는 예외입니다.
  • 그 밖의 경우, EPUB 제작자가 매니페스트 폴백을 정의한다면 srcsrcset 속성에서 외부 리소스를 MAY 참조할 수 있습니다.
3.5.2.3 HTML script 요소

데이터 블록은 이를 포함하는 XHTML 콘텐츠 문서와는 별도의 MIME 미디어 유형 [rfc2046]을 가지지만, [html] script 요소에 대해 그러한 메커니즘이 지정되어 있지 않으므로 내재적 폴백을 제공할 수 없습니다. 또한 데이터 블록은 EPUB 컨테이너 안의 독립 파일로 정의될 수 없고 항상 인라인 script 요소로 삽입되므로 매니페스트 폴백을 제공하는 것도 불가능합니다.

하지만 script 요소는 사용자 콘텐츠를 나타내지 않습니다 — 데이터 블록은 스크립트로 조작되지 않는 한 렌더링되지 않으며, 스크립트가 렌더링하는 콘텐츠에는 이미 핵심 미디어 유형 요구사항이 있습니다 — 따라서 원시 데이터에 대한 폴백을 요구하는 것은 유용한 목적을 제공하지 않습니다.

따라서 EPUB 제작자가 스크립팅 목적으로 데이터 블록을 포함할 수 있도록, 이러한 데이터 블록은 폴백 요구사항에서 면제됩니다.

참고

이 면제는 데이터 블록을 데이터 파일에 대한 면제와 일치시킵니다.

참고

[svg]는 공개 시점에 데이터 블록을 정의하지 않지만, 향후 업데이트에서 이 개념이 추가된다면 동일한 제외가 적용됩니다.

3.6 리소스 위치

EPUB 제작자는 다음 유형의 출판물 리소스EPUB 컨테이너 밖에 호스팅할 수 MAY 있습니다.

EPUB 제작자는 그 밖의 모든 리소스를 EPUB 컨테이너 안에 MUST 저장해야 합니다.

가능한 경우 모든 리소스를 EPUB 컨테이너 안에 저장하는 것이 강하게 권장됩니다. 이렇게 하면 연결 상태와 무관하게 사용자가 전체 표현에 접근할 수 있기 때문입니다.

리소스가 EPUB 컨테이너 밖에 위치해야 하는 경우, EPUB 제작자는 자신의 출판물과 사용자가 네트워크 공격에 노출되는 위협을 제한하기 위해 보안 https URI 스킴 [rfc9110]을 통해 이를 참조할 것을 RECOMMENDED 합니다. 읽기 시스템http와 같은 안전하지 않은 스킴을 사용해 참조된 원격 리소스를 로드하지 않을 수 있습니다.

출판물 리소스 위치에 대한 이러한 규칙은 주어진 리소스가 핵심 미디어 유형 리소스인지 외부 리소스인지와 관계없이 적용됩니다.

참고

매니페스트 item원격 리소스를 참조한다는 것을 표시하는 방법에 대한 자세한 내용은 remote-resources 속성을 참조하십시오.

3.7 Data URL

data: URL 스킴 [rfc2397]은 리소스를 URL 문자열에 직접 인코딩하는 데 사용됩니다. 이 스킴의 장점은 EPUB 제작자가 리소스를 다른 리소스 안에 삽입하여 외부 파일이 필요 없게 할 수 있다는 것입니다.

EPUB 제작자는 다음 시나리오에서 data URL을 사용해서는 MUST NOT 됩니다. 이러한 경우 최상위 콘텐츠 문서 또는 최상위 브라우징 컨텍스트 [html]가 될 수 있기 때문입니다.

참고

data URL 사용에 대한 이러한 제한은 보안 문제를 방지하고, 읽기 시스템이 사용자를 다음에 어디로 이동시킬지 결정할 수 있게 하기 위한 것입니다 (즉, data URL은 스파인에서 참조될 수 없기 때문입니다).

data URL의 금지된 사용 목록은 이를 허용하는 각 표준이 진화함에 따라 변경될 수 있습니다.

삽입의 결과로, data URL의 데이터는 매니페스트 보고 목적에서 자체적인 고유 출판물 리소스로 간주되지 않습니다 (즉, 이를 포함하는 출판물 리소스만 나열됩니다). 그러나 이 데이터는 자체 미디어 유형을 가지므로 여전히 외부 리소스 제한의 적용을 받습니다. 따라서 EPUB 제작자는 data URL을 핵심 미디어 유형 리소스로 인코딩하거나, 호스트 형식의 내재적 폴백 메커니즘을 사용하여 폴백을 MUST 제공해야 합니다.

3.8 File URL

file: URL 스킴은 [rfc8089]에서 "호스트(‘파일 시스템’)의 구조화된 객체 명명 및 접근 환경에 저장된 객체(‘파일’)를 식별하는" 것으로 정의됩니다. 이는 일반적으로 로컬 운영 시스템에서 파일을 가져오는 데 사용됩니다.

서로 다른 호스트 간에 전송될 수 있는 EPUB 출판물에서 file URL을 사용하는 것은 보안 위험을 나타내며 상호운용성도 없습니다. 그 결과 EPUB 제작자는 EPUB 출판물에서 file URL을 MUST NOT 사용해야 합니다.

3.9 XML 적합성

XML 기반 미디어 유형 [rfc2046]인 모든 출판물 리소스는 다음을 만족해야 합니다.

위 제약은 주어진 출판물 리소스가 핵심 미디어 유형 리소스인지 외부 리소스인지와 관계없이 적용됩니다.

참고

[html] 및 [svg]는 XML base 속성 [xmlbase]에 대한 지원을 제거하고 있습니다. EPUB 제작자는 이 기능의 사용을 피해야 합니다.

4. Open Container Format (OCF)

4.1 소개

이 섹션은 비규범적입니다.

OCF는 EPUB 출판물에 필요한 컨테이너 기술입니다. OCF는 다음 워크플로에서 역할을 할 수 있습니다.

이 섹션은 파일 컬렉션을 추상적으로 구조화하는 규칙, 즉 "추상 컨테이너"를 정의합니다. 또한 이 추상 컨테이너를 ZIP 아카이브 안에서 표현하는 규칙, 즉 "물리 컨테이너"도 정의합니다. ZIP 물리 컨테이너에 대한 규칙은 [odf]에서 사용하는 ZIP 기술을 기반으로 합니다.

OCF는 또한 이 기능이 필요한 EPUB 출판물을 위해 삽입된 글꼴을 난독화하는 표준 방법도 정의합니다.

4.2 OCF 추상 컨테이너

4.2.1 소개

이 섹션은 비규범적입니다.

OCF 추상 컨테이너 파일 시스템 모델은 하나의 공통 루트 디렉터리를 사용합니다. 모든 컨테이너 리소스는 루트 디렉터리를 머리로 하는 디렉터리 트리 안에 위치하지만, 이 명세는 그 리소스에 대한 특정 파일 시스템 구조를 의무화하지 않습니다.

파일 시스템 모델에는 루트 디렉터리의 직접 자식이며 다음 특수 파일을 저장하는 META-INF라는 필수 디렉터리도 포함됩니다.

container.xml [required]

EPUB 출판물을 정의하는 하나 이상의 패키지 문서를 식별합니다.

signatures.xml [optional]

여러 자산에 대한 디지털 서명을 포함합니다.

encryption.xml [optional]

출판물 리소스의 암호화에 대한 정보를 포함합니다. 이 파일은 EPUB 제작자글꼴 난독화를 사용할 때 필수입니다.

metadata.xml [optional]

OCF ZIP 컨테이너에 대한 메타데이터를 저장하는 데 사용됩니다.

rights.xml [optional]

디지털 권리에 대한 정보를 저장하는 데 사용됩니다.

manifest.xml [optional]

Open Document Format [odf]에서 허용하는 컨테이너 콘텐츠의 매니페스트입니다.

META-INF 디렉터리 안의 여러 파일에 대한 적합성 요구사항은 4.2.6 META-INF 디렉터리를 참조하십시오.

4.2.2 파일 및 디렉터리 구조

OCF 추상 컨테이너의 가상 파일 시스템은 컨테이너의 모든 콘텐츠에 대해 하나의 공통 루트 디렉터리MUST 가져야 합니다.

OCF 추상 컨테이너는 컨테이너 루트 디렉터리의 직접 자식인 META-INF라는 구성 파일용 디렉터리를 MUST 포함해야 합니다. 이 디렉터리의 콘텐츠에 대한 요구사항은 4.2.6 META-INF 디렉터리를 참조하십시오.

루트 디렉터리의 파일 이름 mimetypeOCF ZIP 컨테이너에서 사용하도록 예약되어 있으며, 이는 4.3 OCF ZIP 컨테이너에서 설명합니다.

META-INF 디렉터리 안의 파일과 mimetype 파일은 출판물 리소스가 아니므로 매니페스트에 나열되어서는 MUST NOT 됩니다.

EPUB 제작자는 그 밖의 모든 파일을 META-INF 디렉터리 안이 아닌 한, 루트 디렉터리의 자손인 OCF 추상 컨테이너 안의 임의 위치에 배치할 수 MAY 있습니다. EPUB 제작자는 EPUB 출판물에서 META-INF 디렉터리 안의 파일을 참조해서는 MUST NOT 됩니다.

참고

일부 읽기 시스템패키지 문서가 저장된 디렉터리 밖의 리소스에 대한 접근을 제공하지 않습니다. 따라서 EPUB 제작자는 상호운용성 문제를 피하기 위해 모든 리소스를 패키지 문서를 포함하는 디렉터리 또는 그 아래에 배치해야 합니다.

이 문제는 출판물의 여러 렌디션을 만들 때 [epub-multi-rend-11] 더 흔히 발생합니다.

4.2.3 파일 경로 및 파일 이름

OCF 추상 컨테이너의 맥락에서, 파일 경로파일 이름스칼라 값 문자열 [infra]입니다(즉, 그 값은 대소문자를 구분합니다).

또한 다음 제한은 대부분의 운영 체제에서 파일 경로와 파일 이름을 수정 없이 사용할 수 있도록 설계되었습니다.

  • 파일 이름은 255바이트를 초과해서는 MUST NOT 됩니다.

  • OCF 추상 컨테이너 안의 모든 디렉터리 또는 파일의 파일 경로는 65535바이트를 초과해서는 MUST NOT 됩니다.

  • 일반적으로 사용되는 운영 체제에서 다음 문자를 일관되게 지원하지 않을 수 있으므로, 파일 이름은 다음 [unicode] 문자를 사용해서는 MUST NOT 됩니다.

    • SOLIDUS: / (U+002F)

    • QUOTATION MARK: " (U+0022)

    • ASTERISK: * (U+002A)

    • 마지막 문자로서의 FULL STOP: . (U+002E)

    • COLON: : (U+003A)

    • LESS-THAN SIGN: < (U+003C)

    • GREATER-THAN SIGN: > (U+003E)

    • QUESTION MARK: ? (U+003F)

    • REVERSE SOLIDUS: \ (U+005C)

    • VERTICAL LINE: | (U+007C)

    • DEL (U+007F)

    • C0 범위 (U+0000 … U+001F)

    • C1 범위 (U+0080 … U+009F)

    • Private Use Area (U+E000 … U+F8FF)

    • 모든 Unicode Non Characters, 구체적으로:

      • Basic Multilingual Plane의 32개 연속 문자 (U+FDD0 … U+FDEF)

      • Basic Multilingual Plane의 마지막 두 코드 포인트 (U+FFFEU+FFFF)

      • Supplementary Planes 끝의 마지막 두 코드 포인트 (U+1FFFE, U+1FFFF … U+EFFFE, U+EFFFF)

    • Specials (U+FFF0 … U+FFFF)

    • Supplementary Private Use Area-A (U+F0000 … U+FFFFF)

    • Supplementary Private Use Area-B (U+100000 … U+10FFFF)

    참고

    Unicode Character Database [uax44]에는 사용이 폐기된 문자 목록도 포함되어 있습니다. EPUB 제작자는 이러한 문자도 피하는 것이 권장됩니다. EPUB 적합성 검사기가 그 사용을 표시할 것으로 예상되기 때문입니다.

  • 이전 읽기 시스템과의 호환성을 위해, 파일 이름은 SPACE (U+0020) 문자를 포함해서는 SHOULD NOT 됩니다.

  • 같은 디렉터리 안의 모든 파일 이름은 Unicode 정준 정규화 [uax15]와 이후 전체 대소문자 접기를 [unicode] 적용한 결과가 고유해야 MUST 합니다. (자세한 내용은 Unicode Canonical Case Fold Normalization Step [charmod-norm]를 참조하십시오.)

참고

EPUB 제작자가 리소스를 동적으로 통합하는 경우 (즉, 이름 지정이 자신의 통제 밖에 있는 경우), 파일 이름을 255바이트 제한 안에 유지하기 위한 자동 잘라내기가 손상을 초래할 수 있음을 알아야 합니다. 이는 UTF-8 같은 다중 바이트 인코딩에서 바이트와 문자의 차이 때문이며, 따라서 문자 중간에서 잘라내는 것을 피하는 것이 중요합니다. 자세한 내용은 [international-specs]의 "문자열 길이 잘라내기 또는 제한" 섹션을 참조하십시오.

참고

콘텐츠의 상호운용성이 핵심인 경우 EPUB 제작자는 파일 이름 지정에 극도로 주의해야 합니다. 제한 문자 목록은 알려진 일부 문제 영역을 피하는 데 도움을 주기 위한 것이지만, 그 밖의 모든 Unicode 문자가 지원됨을 보장하지는 않습니다. Unicode 지원은 이전 EPUB 반복판보다 훨씬 나아졌지만, 이전 도구와 도구 체인을 여전히 마주칠 수 있습니다(예: [us-ascii]만 지원하는 ZIP 도구).

4.2.4 파일 경로 도출

OCF 추상 컨테이너 안의 파일 또는 디렉터리 file이 주어졌을 때 파일 경로를 도출하려면, 다음 단계를 적용합니다 ([infra]의 용어를 사용해 표현):

  1. path를 빈 목록으로 둡니다.
  2. currentfile로 둡니다.
  3. current루트 디렉터리가 아닌 동안:
    1. current앞에 추가파일 이름path에 넣습니다;
    2. currentcurrent의 부모 디렉터리로 설정합니다.
  4. U+002F (/) 문자를 사용해 path연결한 결과를 반환합니다.

4.2.5 OCF 추상 컨테이너의 URL

컨테이너 루트 URLURL [url]이며, 루트 디렉터리의 URL입니다. 이는 구현별로 다르지만, EPUB 제작자는 이것이 다음 속성을 가진다고 MUST 가정해야 합니다.

OCF 추상 컨테이너 안의 파일 또는 디렉터리의 콘텐츠 URL은 해당 파일의 파일 경로를 컨테이너 루트 URL을 base로 하여 구문 분석한 결과입니다.

참고

컨테이너 루트 URL은 읽기 시스템EPUB 컨테이너의 루트에 할당하는 URL입니다. 이는 일반적으로 읽기 시스템이 내부적으로 컨테이너 파일 시스템을 어떻게 구현하는지에 따라 달라집니다.

그러나 읽기 시스템은 임의의 URL을 사용할 수 없으며, 위에서 정의한 제약을 준수하는 URL을 사용해야 합니다. 이러한 제약은 EPUB 안에서 발견되는 모든 상대 URL 문자열이 항상 컨테이너 안의 리소스 URL로 구문 분석되도록 보장합니다(그 리소스가 존재할 수도 있고 존재하지 않을 수도 있음). 이러한 제약의 주된 이유는 구문 분석된 URL이 컨테이너 파일 밖으로 "누출"되어 발생할 수 있는 잠재적 런타임 보안 문제를 피하기 위한 것입니다.

예를 들어 https://localhost:12345/ 또는 https://www.example.org:12345/ 같은 URL은 이러한 속성을 준수합니다. 그러나 https://localhost:12345/path/to.epub/, file:///path/to.epub#path=/, 또는 jar:file:/path/to.epub!/EPUB/ 같은 URL은 그렇지 않습니다(이 세 예제를 base로 하여 URL 문자열 ".."를 구문 분석하면 각각 https://localhost:12345/path/, file:///path/, 그리고 구문 분석 오류가 반환됩니다). 위에서 정의한 속성을 준수하는 URL을 루트 디렉터리에 할당하는 것은 읽기 시스템의 책임입니다.

참고

구문 분석은 파일 경로의 일부 문자를 그 퍼센트 인코딩 대체 형태로 바꿀 수 있습니다. 예를 들어 A/B/C/file name.xhtmlA/B/C/file%20name.xhtml이 됩니다.

문자열 urlvalid-relative-ocf-URL-with-fragment string입니다. 이는 path-relative-scheme-less-url string이고, 선택적으로 U+0023 (#)url-fragment string이 뒤따르며, 다음 단계가 true를 반환하는 경우입니다.

  1. 컨테이너 루트 URLhttps://a.example.org/A/로 설정합니다.

    설명

    알고리즘의 목표는 url이 컨테이너 밖으로 "누출"되는 것으로 보일 수 있는지 감지하는 것입니다. 이를 위해 표준 URL 구문 분석 알고리즘을 인공 루트 URL과 함께 사용하며, "누출" 감지는 구문 분석 결과를 첫 번째 테스트 경로 세그먼트(A)의 존재와 비교하여 수행합니다. (이 알고리즘의 목적상 인공 컨테이너 루트 URL은 첫 번째 테스트 경로 세그먼트를 사용함으로써 필수 속성을 의도적으로 위반합니다.)

  2. baseurl이 사용되는 컨텍스트(문서 또는 환경)에서 정의되고 패키지 문서의 콘텐츠 URL에 따른 url 구문 분석에 반드시 사용해야 하는 base URL로 둡니다 (5.2 패키지 문서의 URL 구문 분석 참조).

    설명

    패키지 문서 안의 URL인 경우 base 변수는 패키지 문서의 콘텐츠 URL로 설정됩니다. META-INF 디렉터리 안의 문서인 경우, base 변수는 컨테이너 루트 URL로 설정됩니다(4.2.6.2 META-INF 디렉터리의 URL 구문 분석 참조). XHTML 콘텐츠 문서 안의 URL인 경우, 구문 분석에 사용되는 base URL은 HTML 표준에서 정의됩니다. 일반적으로 이는 콘텐츠 문서의 콘텐츠 URL입니다(권장되지 않는 base 요소가 사용되지 않는 한).

  3. testURLRecordurlbase와 함께 URL parser를 적용한 결과로 둡니다.
  4. testURLStringAtestURLRecordURL Serializer를 적용한 결과로 둡니다.
  5. 컨테이너 루트 URLhttps://b.example.org/B/로 설정합니다.

    설명

    서로 다른 인공 컨테이너 루트 URL 설정으로 같은 단계를 두 번 반복하는 이유는 url 문자열이 /A/도 포함하는 경우 발생할 수 있는 충돌을 피하기 위해서입니다. 예를 들어 url../../A/doc.xhtml인 경우를 고려하십시오.

  6. baseurl이 사용되는 컨텍스트(문서 또는 환경)에서 정의되고 패키지 문서의 콘텐츠 URL에 따른 url 구문 분석에 반드시 사용해야 하는 base URL로 설정합니다(5.2 패키지 문서의 URL 구문 분석 참조).
  7. testURLRecordurlbase와 함께 URL parser를 적용한 결과로 설정합니다.
  8. testURLStringBtestURLRecordURL Serializer를 적용한 결과로 둡니다.
  9. testURLStringAhttps://a.example.org/로 시작하지 않거나 testURLStringBhttps://b.example.org/로 시작하지 않으면, true를 반환합니다.

    설명

    결과 중 어느 하나라도 테스트 URL 호스트를 공유하지 않으면, 이는 url 또는 그 base URL(예: HTML에서 base 요소로 명시적으로 설정된 경우)이 절대이며 컨테이너 밖을 가리킨다는 뜻입니다. 이는 허용됩니다.

  10. testURLStringAhttps://a.example.org/A/로 시작하고 testURLStringBhttps://b.example.org/B/로 시작하면, true를 반환합니다.

    설명

    첫 번째 테스트 경로 세그먼트(A, 각각 B)의 존재는 URL이 컨테이너 밖으로 누출되지 않음을 나타냅니다.

  11. false를 반환합니다.

OCF 추상 컨테이너에서 모든 URL 문자열은 absolute-url-with-fragment string 또는 valid-relative-ocf-URL-with-fragment string이어야 MUST 합니다.

또한 모든 relative-URL-with-fragment strings [url]는 구문 분석 후 OCF 추상 컨테이너 안에 존재하는 파일의 콘텐츠 URL과 같아야 MUST 합니다.

참고

URL 문자열에 대한 이러한 제약은 다음을 의미합니다.

  • / (U+002F)로 시작하는 상대 URL 문자열(예: /EPUB/content.xhtml)은 허용되지 않습니다;
  • 대상 파일에 도달하는 데 필요한 것보다 더 많은 double-dot URL path segments를 포함하는 상대 URL 문자열(예: EPUB/../../../../config.xml)은 허용되지 않습니다;
  • 그 밖의 모든 절대 또는 상대 URL 문자열은 허용됩니다.

어떤 경우에도 위에서 설명한 허용되지 않는 URL 문자열조차 구문 분석 후에는 컨테이너 밖으로 "누출"되지 않습니다(이 섹션의 첫 번째 참고에서 설명한 것처럼). 그럼에도 불구하고 비적합 또는 레거시 읽기 시스템 및 도구 체인과의 더 나은 상호운용성을 위해 허용되지 않습니다.

4.2.6 META-INF 디렉터리

4.2.6.1 OCF 추상 컨테이너에 포함

모든 OCF 추상 컨테이너는 자신의 루트 디렉터리 안에 META-INF라는 디렉터리를 MUST 포함해야 합니다.

이 디렉터리는 구성 파일, 특히 4.2.6.3 예약된 파일에서 정의한 파일을 위해 예약됩니다.

4.2.6.2 META-INF 디렉터리의 URL 구문 분석

META-INF 디렉터리에 위치한 파일에서 사용되는 URL 문자열 url을 구문 분석하려면, URL parser컨테이너 루트 URLbase로 하여 urlMUST 적용해야 합니다.

4.2.6.3 예약된 파일
4.2.6.3.1 컨테이너 파일(container.xml)

META-INF 디렉터리 안의 REQUIRED container.xml 파일은 OCF 추상 컨테이너에서 사용할 수 있는 패키지 문서를 식별합니다.

달리 지정하지 않는 한, 이 섹션에서 정의하는 모든 [xml] 요소는 urn:oasis:names:tc:opendocument:xmlns:container 네임스페이스 [xml-names]에 속합니다.

이 파일의 콘텐츠는 다른 네임스페이스의 모든 요소와 속성(그러한 요소의 모든 속성과 콘텐츠 포함)을 제거한 후, 이 섹션의 정의에 대해 유효해야 MUST 합니다.

참고

XML Schema도 이 파일의 콘텐츠를 비공식적으로 정의합니다.

4.2.6.3.1.1 container 요소

container 요소는 container.xml 파일의 모든 정보를 캡슐화합니다.

요소 이름:

container

사용법:

container.xml 파일의 REQUIRED 루트 요소 [xml].

속성:
version [required]
이 속성은 "1.0" 값을 가져야 MUST 합니다.
콘텐츠 모델:

이 순서로:

4.2.6.3.1.2 rootfiles 요소

rootfiles 요소는 EPUB 컨테이너에서 사용할 수 있는 패키지 문서 목록을 포함합니다.

요소 이름:

rootfiles

사용법:

containerREQUIRED 첫 번째 자식.

속성:

없음

콘텐츠 모델:
4.2.6.3.1.3 rootfile 요소

rootfile 요소는 EPUB 컨테이너 안의 하나의 패키지 문서 위치를 식별합니다.

요소 이름:

rootfile

사용법:

rootfiles 요소의 자식으로 사용합니다. 반복 가능.

속성:
full-path [required]

패키지 문서의 위치를 식별합니다.

이 속성의 값은 path-relative-scheme-less-URL string [url]이어야 MUST 합니다. 경로는 루트 디렉터리를 기준으로 합니다.

media-type [required]

패키지 문서의 미디어 유형을 식별합니다.

이 속성의 값은 "application/oebps-package+xml"이어야 MUST 합니다.

콘텐츠 모델:

비어 있음

EPUB 제작자가 둘 이상의 rootfile 요소를 정의하는 경우, 각각은 동일한 EPUB 버전을 준수하는 패키지 문서를 참조해야 MUST 합니다. 각 패키지 문서는 EPUB 출판물의 하나의 렌더링을 나타냅니다.

참고

EPUB 컨테이너는 둘 이상의 패키지 문서를 참조할 수 있는 기능을 제공하지만, 이 명세는 사용할 수 있는 옵션을 해석하거나 선택하는 방법을 정의하지 않습니다. 콘텐츠의 둘 이상의 렌더링을 묶는 방법에 대한 자세한 내용은 [epub-multi-rend-11]을 참조하십시오.

4.2.6.3.1.6 예제

이 섹션은 비규범적입니다.

4.2.6.3.2 암호화 파일(encryption.xml)

META-INF 디렉터리 안의 OPTIONAL encryption.xml 파일은 컨테이너 콘텐츠에 대한 모든 암호화 정보를 담습니다. EPUB 제작자가 컨테이너 안의 리소스를 암호화하는 경우, 사용된 암호화에 대한 정보를 제공하기 위해 encryption.xml 파일을 MUST 포함해야 합니다.

4.2.6.3.2.1 encryption 요소
요소 이름:

encryption

네임스페이스:

urn:oasis:names:tc:opendocument:xmlns:container

사용법:

encryption.xml 파일의 REQUIRED 루트 요소 [xml].

속성:

없음

콘텐츠 모델:

임의 순서로:

  • EncryptedKey [1개 이상]
  • EncryptedData [1개 이상]

encryption 요소는 [xmlenc-core1]에서 정의한 EncryptedKeyEncryptedData 유형의 자식 요소를 포함합니다.

EncryptedKey 요소는 컨테이너에서 사용된 각 암호화 키를 설명하며, EncryptedData 요소는 각 암호화된 파일을 설명합니다. 각 EncryptedData 요소는 XML Encryption에 설명된 대로 EncryptedKey 요소를 참조합니다.

참고

XML Schemaencryption.xml 파일의 콘텐츠를 비공식적으로 정의합니다.

OCF는 개별 파일을 독립적으로 암호화하여, 보안 일부를 성능 향상과 맞바꾸고 컨테이너 콘텐츠를 점진적으로 복호화할 수 있게 합니다. 이 방식의 암호화는 전체 패키지의 디렉터리 구조와 파일 이름 지정을 노출합니다.

OCF는 XML Encryption [xmlenc-core1]을 사용하여 암호화를 위한 프레임워크를 제공하고, 다양한 알고리즘을 사용할 수 있게 합니다. XML Encryption은 임의 데이터를 암호화하고 그 결과를 XML로 표현하는 절차를 지정합니다. OCF 추상 컨테이너가 비 XML 데이터를 포함할 수 있더라도, EPUB 제작자는 XML Encryption을 사용하여 OCF 추상 컨테이너의 모든 데이터를 암호화할 수 있습니다. OCF 암호화는 컨테이너 안의 전체 파일 암호화만 지원하며, 파일의 일부는 지원하지 않습니다. EPUB 제작자는 encryption.xml 파일이 존재할 때 이를 암호화해서는 MUST NOT 됩니다.

암호화된 데이터는 OCF 추상 컨테이너에서 암호화되지 않은 데이터를 대체합니다. 예를 들어 EPUB 제작자가 photo.jpeg라는 이미지를 암호화하는 경우, photo.jpeg 리소스의 콘텐츠를 그 암호화된 콘텐츠로 대체해야 합니다. ZIP 디렉터리 안에서 EPUB 제작자는 암호화된 파일을 Deflate 압축하는 대신 저장하는 것이 SHOULD 권장됩니다.

일부 상황에서는 EPUB 출판물에서 참조하는 삽입된 글꼴을 제한 없는 사용을 위해 추출하기 더 어렵게 만들도록 저장 방식을 난독화해야 합니다. 난독화는 암호화가 아니지만, 읽기 시스템은 난독 해제할 글꼴을 식별하기 위해 글꼴 난독화 알고리즘과 함께 encryption.xml 파일을 사용합니다.

EPUB 제작자는 다음 파일을 암호화해서는 MUST NOT 됩니다.

  • mimetype
  • META-INF/container.xml
  • META-INF/encryption.xml
  • META-INF/manifest.xml
  • META-INF/metadata.xml
  • META-INF/rights.xml
  • META-INF/signatures.xml
  • [= package document =]

EPUB 제작자는 이후 XML Signature용 Decryption Transform [xmlenc-decrypt]을 사용하여 서명된 리소스를 암호화할 수 MAY 있습니다. 이 기능은 읽기 시스템이 서명 전에 암호화된 데이터와 서명 후 암호화된 데이터를 구분할 수 있게 합니다.

4.2.6.3.2.2 압축 및 암호화 순서

OCF ZIP 컨테이너에 저장할 때, EPUB 제작자non-codec 콘텐츠 유형의 데이터 스트림을 암호화하기 전에 압축하는 것이 SHOULD 권장됩니다. EPUB 제작자는 Deflate 압축을 사용해야 MUST 합니다. 이 관행은 ZIP 컨테이너에 저장된 파일 항목의 크기가 더 작아지도록 보장합니다.

EPUB 제작자는 codec 콘텐츠 유형의 데이터 스트림을 암호화하기 전에 압축해서는 SHOULD NOT 됩니다. 이러한 경우 추가 압축은 제작 시 불필요한 처리 오버헤드(특히 대형 리소스 파일에서)를 도입하고, 소비 시 오디오/비디오 재생 성능에 영향을 줍니다. 일부 경우, 특정 암호화 방식과 압축의 조합은 미디어 재생 전에 전체 리소스의 길이를 판별하는 것이 기술적으로 불가능하기 때문에 (예: HTTP Content-Length 헤더), 읽기 시스템이 부분 콘텐츠 요청(예: HTTP 바이트 범위)을 처리하는 능력을 손상시킬 수도 있습니다.

EPUB 제작자가 암호화 전에 데이터 스트림을 압축하는 경우, 아래에 정의된 Compression XML 요소에 따라 초기 리소스(즉, 압축 및 암호화 전)의 크기를 지정하기 위해 추가 EncryptionProperties 메타데이터를 제공하는 것이 SHOULD 권장됩니다. EPUB 제작자가 암호화 전에 데이터 스트림을 압축하지 않는 경우, 초기 리소스(즉, 암호화 전)의 크기를 지정하기 위해 추가 EncryptionProperties 메타데이터를 제공할 수 MAY 있습니다.

요소 이름:

Compression

네임스페이스:

http://www.idpf.org/2016/encryption#compression

사용법:

EncryptionPropertyOPTIONAL 자식.

속성:
Method [required]

사용된 압축 방법을 식별합니다.

값은 "0"(압축 없음) 또는 "8" (Deflate 알고리즘)입니다.

OriginalLength [required]

초기 리소스의 크기(바이트 수)를 나타냅니다.

값은 양의 정수입니다.

콘텐츠 모델:

비어 있음

4.2.6.3.3 매니페스트 파일(manifest.xml)

META-INF 디렉터리 안의 OPTIONAL manifest.xml 파일은 컨테이너 안 파일의 매니페스트를 제공합니다.

OCF 명세는 매니페스트의 형식을 의무화하지 않습니다.

패키지 문서EPUB 출판물 처리를 위해 사용되는 유일한 매니페스트를 지정한다는 점에 유의하십시오. 읽기 시스템은 이 파일을 사용하지 않습니다.

참고
이 기능은 [odf]와의 호환성을 위해서만 존재합니다.
4.2.6.3.4 메타데이터 파일(metadata.xml)

META-INF 디렉터리 안의 OPTIONAL metadata.xml 파일은 컨테이너 수준 메타데이터만을 위한 것입니다.

EPUB 제작자metadata.xml 파일을 포함하는 경우, 그 안에서는 네임스페이스로 한정된 요소 [xml-names]만 사용하는 것이 SHOULD 권장됩니다. 이 파일은 네임스페이스 http://www.idpf.org/2013/metadata 안의 metadata 루트 요소 [xml]를 포함하는 것이 SHOULD 권장되지만, 이 명세는 이전 버전과의 호환성을 위해 다른 루트 요소를 허용합니다.

이 명세의 이 버전은 metadata.xml 파일에서 사용할 메타데이터를 정의하지 않습니다. 이 명세의 향후 버전은 컨테이너 수준 메타데이터를 정의할 수 MAY 있습니다.

4.2.6.3.5 권리 관리 파일(rights.xml)

이 명세는 META-INF 디렉터리 안의 OPTIONAL rights.xml 파일을 권리 보유자, 중개자 및 사용자 사이의 EPUB 출판물의 신뢰할 수 있는 교환을 위해 예약합니다.

EPUB 제작자rights.xml 파일을 포함하지 않는 경우, OCF 추상 컨테이너의 어떤 부분도 컨테이너 수준에서 권리 관리되지 않습니다. 권리 표현은 EPUB 출판물 안에 존재할 수 있습니다.

4.2.6.3.6 디지털 서명 파일(signatures.xml)
참고

디지털 서명을 추가한다고 해서 악의적인 행위자가 EPUB 출판물을 변조할 수 없다는 보장이 되는 것은 아닙니다. 읽기 시스템이 서명을 검사할 필요가 없기 때문입니다.

META-INF 디렉터리 안의 OPTIONAL signatures.xml 파일은 컨테이너와 그 콘텐츠에 대한 디지털 서명을 담습니다.

4.2.6.3.6.1 signatures 요소
요소 이름:

signatures

네임스페이스:

urn:oasis:names:tc:opendocument:xmlns:container

사용법:

signature.xml 파일의 REQUIRED 루트 요소 [xml].

속성:

없음

콘텐츠 모델:
  • Signature [1개 이상]

signature 요소는 [xmldsig-core1]에서 정의한 Signature 유형의 자식 요소를 포함합니다. EPUB 제작자는 EPUB 출판물 전체 또는 그 일부에 서명을 적용할 수 있으며, 어떤 종류의 데이터든 (즉 XML뿐만 아니라) 서명하도록 지정할 수 있습니다.

참고

XML Schemasignatures.xml 파일의 콘텐츠를 비공식적으로 정의합니다.

EPUB 제작자가 signatures.xml 파일을 포함하지 않는 경우, 컨테이너 수준에서 OCF 추상 컨테이너의 어떤 부분도 서명하지 않은 것입니다. 디지털 서명은 EPUB 출판물 안에 존재할 수 있습니다.

EPUB 제작자가 OCF 추상 컨테이너에 대한 데이터 서명을 생성할 때, 그 서명을 signatures 요소의 마지막 자식 Signature 요소로 추가하는 것이 SHOULD 권장됩니다.

참고

signatures.xml 파일 안의 각 Signature는 URL [url]로 서명이 적용되는 데이터를 식별하며, [xmldsig-core1] Manifest 요소와 그 Reference 하위 요소를 사용합니다. EPUB 제작자는 개별 컨테이너 파일을 따로 또는 함께 서명할 수 있습니다. 각 파일을 따로 서명하면 읽기 시스템이 독립적으로 검증할 수 있는 리소스의 다이제스트 값이 생성됩니다. 이 접근 방식은 Signature 요소를 더 크게 만들 수 있습니다. EPUB 제작자가 파일을 함께 서명하는 경우, 서명된 파일 집합을 하나의 XML Signature Manifest 요소에 나열하고 하나 이상의 Signature 요소가 이를 참조하도록 할 수 있습니다.

EPUB 제작자는 signatures.xml 파일을 제외하고 OCF 추상 컨테이너 안의 일부 또는 모든 파일 전체에 서명할 수 있습니다. 이는 그 파일이 계산된 서명 정보를 포함하기 때문입니다. EPUB 제작자가 signatures.xml 파일에 서명할지 여부와 그 방법은 목적에 따라 달라집니다.

EPUB 제작자가 자신의 서명을 무효화하지 않고 OCF 추상 컨테이너에 서명을 추가하거나 제거할 수 있도록 하려는 경우, signatures.xml 파일에 서명해서는 SHOULD NOT 됩니다.

EPUB 제작자가 서명의 추가 또는 제거가 자신의 서명을 무효화하도록 하려는 경우, [xmldsig-core1]의 Section 6.6.4에서 정의한 Enveloped Signature 변환을 사용하여 생성 중인 Signature를 제외한 기존 서명 파일 전체에 서명할 수 있습니다. 이 변환은 모든 이전 서명에 서명하며, 이후 서명이 패키지에 추가되면 무효가 됩니다.

참고

EPUB 제작자가 기존 서명의 제거가 자신의 서명을 무효화하도록 하면서도 서명의 추가는 허용하려는 경우, XPath 변환을 사용하여 기존 서명만 서명할 수 있습니다. 그러나 그러한 변환의 세부사항은 이 명세의 범위를 벗어납니다.

[xmldsig-core1] 명세는 서명에 어떤 의미론도 연결하지 않습니다. 에이전트는 예를 들어 서명을 설명하는 정보를 Signature 요소에 추가하여 의미 정보를 포함할 수 있습니다. [xmldsig-core1] 명세는 SignatureProperties 요소를 사용하는 것과 같이 추가 정보를 서명에 추가하는 방법을 설명합니다.

4.3 OCF ZIP 컨테이너

4.3.1 소개

이 섹션은 비규범적입니다.

OCF ZIP 컨테이너OCF 추상 컨테이너의 물리적인 단일 파일 표현입니다. 컨테이너는 다음을 가능하게 합니다.

  • 서로 다른 개인 및/또는 서로 다른 조직 간에 진행 중인 EPUB 출판물을 교환하는 것;

  • 출판사 또는 변환 업체에서 배포 또는 판매 채널로 EPUB 출판물을 전송하는 것; 그리고

  • EPUB 출판물을 EPUB 읽기 시스템 또는 사용자에게 전달하는 것.

4.3.2 ZIP 파일 요구사항

OCF ZIP 컨테이너는 [zip]에서 지정한 ZIP 형식을 사용하지만, 다음 제약 및 설명을 따릅니다.

  • OCF ZIP 컨테이너의 콘텐츠는 적합한 OCF 추상 컨테이너여야 MUST 합니다.

  • OCF ZIP 컨테이너는 ZIP 파일이 여러 저장 매체에 걸치거나 여러 파일로 분할될 수 있게 하는 ZIP application note [zip]의 기능을 사용해서는 MUST NOT 됩니다.

  • OCF ZIP 컨테이너는 ZIP 아카이브 안에 저장된 (압축되지 않은) ZIP 항목과 Deflate 압축된 ZIP 항목만 포함해야 MUST 합니다.

  • OCF ZIP 컨테이너는 application note [zip]의 섹션 V, 하위 섹션 G에서 "Version 1"로 정의된 ZIP64 확장을 사용할 수 MAY 있으며, 콘텐츠가 이를 필요로 할 때에는 그 확장만 사용하는 것이 SHOULD 권장됩니다.

  • OCF ZIP 컨테이너는 ZIP 형식에서 정의한 암호화 기능을 사용해서는 MUST NOT 되며, 대신 암호화는 4.2.6.3.2 암호화 파일(encryption.xml)에서 설명한 기능을 사용해 수행되어야 MUST 합니다.

  • OCF ZIP 컨테이너는 파일 시스템 이름을 UTF-8 [unicode]로 인코딩해야 MUST 합니다.

다음 제약은 OCF ZIP 컨테이너 아카이브의 특정 필드에 적용됩니다.

  • 로컬 파일 헤더 테이블에서, EPUB 제작자version needed to extract 필드를 주어진 파일에 필요한 최대 버전 수준과 일치하도록 10, 20 또는 45 값으로 설정해야 MUST 합니다(예: Deflate의 경우 20, ZIP64의 경우 45).

  • 로컬 파일 헤더 테이블에서 EPUB 제작자는 compression method 필드를 0 또는 8 값으로 설정해야 MUST 합니다.

4.3.3 OCF ZIP 컨테이너 미디어 유형 식별

EPUB 제작자OCF ZIP 컨테이너의 첫 번째 파일로 mimetype 파일을 포함해야 MUST 합니다. 또한:

  • mimetype 파일의 콘텐츠는 US-ASCII [us-ascii]로 인코딩된 MIME 미디어 유형 [rfc2046] 문자열 application/epub+zip이어야 MUST 합니다.
  • mimetype 파일은 선행 또는 후행 패딩이나 공백을 포함해서는 MUST NOT 됩니다.
  • mimetype 파일은 Unicode 바이트 순서 표시 U+FEFF로 시작해서는 MUST NOT 됩니다.
  • EPUB 제작자는 mimetype 파일을 압축하거나 암호화해서는 MUST NOT 됩니다.
  • EPUB 제작자는 그 ZIP 헤더에 extra field를 포함해서는 MUST NOT 됩니다.
참고

application/epub+zip 미디어 유형에 대한 추가 정보는 I.2 application/epub+zip 미디어 유형을 참조하십시오.

4.4 글꼴 난독화

주의

글꼴을 보호하는 더 나은 방법이 존재합니다. 예를 들어 [woff] 및 [woff2] 글꼴은 라이선스 정보 삽입을 허용하고 글꼴 테이블 압축을 통해 일부 보호를 제공합니다. 원격 호스팅 글꼴을 사용하는 것도 글꼴 서브세팅을 가능하게 합니다. EPUB 제작자는 다른 선택지가 없는 경우에만 이 섹션에서 정의한 글꼴 난독화를 사용하는 것이 권장됩니다. 난독화의 한계도 참조하십시오.

4.4.1 소개

이 섹션은 비규범적입니다.

OCF ZIP 컨테이너는 근본적으로 ZIP 파일이므로, 일반적으로 사용 가능한 ZIP 도구를 사용하여 패키지에서 암호화되지 않은 콘텐츠 스트림을 추출할 수 있습니다. 더구나 ZIP 파일의 특성상 일부 시스템에서는 그 콘텐츠가 다른 네이티브 컨테이너(예: 폴더)처럼 보일 수 있습니다.

ZIP 파일의 이러한 단순성은 매우 유용하지만, 글꼴을 암호화하지 않는 데 따른 부작용으로 글꼴 추출이 쉬운 것이 바람직하지 않은 경우에는 문제가 됩니다. 예를 들어 제3자 글꼴을 포함하려는 EPUB 제작자는 일반적으로 그 글꼴이 다른 사람에 의해 추출되어 재사용되는 것을 원하지 않습니다. 더 중요하게는, 많은 상업용 글꼴이 삽입을 허용하지만, 글꼴 삽입은 단순히 원본 글꼴 파일을 콘텐츠와 함께 제공하는 것이 아니라 그 글꼴을 EPUB 출판물의 필수적인 일부로 만드는 것을 의미합니다.

현대 운영 체제에 통합 ZIP 지원이 매우 보편적이므로, 글꼴을 단순히 OCF ZIP 컨테이너에 넣는 것만으로는 그 글꼴이 다른 맥락에서 재사용될 수 없음을 나타내기에 충분하지 않습니다. 이러한 불확실성은 EPUB 출판물의 유용한 글꼴 삽입 기능을 약화시킬 수 있습니다.

일부 글꼴 공급업체는 자신의 글꼴 재사용을 억제하기 위해, 그 글꼴이 어떤 방식으로든 EPUB 출판물에 묶여 있는 경우에만 EPUB 출판물에서의 사용을 허용할 수 있습니다. 즉, 글꼴 파일이 해당 컴퓨팅 장치의 기본 도구를 사용하여 운영 체제에 직접 설치될 수 없고, 다른 EPUB 출판물에서 직접 사용될 수도 없는 경우입니다.

글꼴에 대한 디지털 권리 관리 또는 집행 시스템을 제공하는 것은 이 명세의 범위를 벗어납니다. 대신 이 섹션은 난독화된 글꼴에 대한 일반 접근을 얻기 위해 최종 OCF 수신자가 추가 작업을 해야 하는 난독화 방법을 정의합니다.

4.4.2 한계

이 섹션은 비규범적입니다.

이 명세는 난독화가 암호화라고 주장하지 않으며, 리소스가 저작권 침해로부터 안전하다고 보장하지도 않습니다. 바라는 것은 이 알고리즘이 OCF ZIP 컨테이너의 압축을 푸는 것만으로는 글꼴이 단순히 추출되어 복사될 수 없다는 어느 정도의 보장을 요구하는 공급업체의 요구사항을 충족하는 것뿐입니다.

난독화는 어떤 보호 방식과 마찬가지로, 난독 해제된 상태의 글꼴에 접근하는 것을 완전히 막을 수 없습니다. 이 메커니즘은 라이선스 세부사항을 모르는 사람에게 장애물을 제공할 뿐입니다. 다음과 같은 대체 수단을 통해 결연한 사용자가 글꼴에 완전히 접근하는 것을 막지는 못합니다.

  • 난독 해제 알고리즘을 적용하여 원시 글꼴 파일을 추출하는 것;
  • 콘텐츠를 렌더링하기 위해 글꼴을 난독 해제해야 하는 읽기 시스템을 통해 난독 해제된 글꼴에 접근하는 것 (예: 브라우저 기반 읽기 시스템을 통해 리소스에 접근); 또는
  • 콘텐츠의 시각적 렌더링을 제공하는 저작 도구를 통해 난독 해제된 글꼴에 접근하는 것.

그 결과, 이 난독화 방법이 개별 글꼴 라이선스의 요구사항을 충족하는지는 라이선스 허가자와 라이선스 사용자에게 달린 문제입니다. EPUB 제작자는 자신의 난독화 사용이 글꼴 라이선스 요구사항을 충족하는지 보장할 책임이 있습니다.

EPUB 제작자는 읽기 시스템이 글꼴을 난독 해제할 필요가 없으므로 난독화가 읽기 시스템에서 상호운용성 문제를 일으킬 수 있음도 알아야 합니다. 그 결과 출판물의 시각적 표현이 읽기 시스템마다 다를 수 있습니다.

또한 이 알고리즘은 글꼴 난독화로 제한된다는 점에 유의하십시오. EPUB 컨테이너 안의 어떤 리소스든 난독화하기 위한 범용 메커니즘으로 의도된 것이 아닙니다.

4.4.3 난독화 키

EPUB 제작자는 난독화 알고리즘에서 사용되는 키를 고유 식별자에서 도출해야 MUST 합니다.

XML 1.0 명세의 섹션 2.3 [xml]에서 정의한 모든 공백 문자는 이 식별자에서 제거되어야 MUST 합니다 — 구체적으로 Unicode 코드 포인트 U+0020, U+0009, U+000DU+000A입니다.

EPUB 제작자는 Secure Hash Standard [fips-180-4]에서 지정한 대로 결과 문자열의 UTF-8 표현에 대한 SHA-1 다이제스트를 생성해야 MUST 합니다. 그런 다음 이 다이제스트를 알고리즘의 키로 사용할 수 있습니다.

4.4.4 난독화 알고리즘

글꼴을 난독화하는 데 사용되는 알고리즘은 글꼴 파일의 처음 1040바이트(~1KB)를 수정하는 것으로 구성됩니다. (드물게 글꼴 파일이 1040바이트보다 작은 경우, 이 과정은 파일 전체를 수정합니다.)

원본 데이터를 난독화하려면, 원시 글꼴 파일의 첫 번째 바이트와 난독화 키의 첫 번째 바이트에 논리적 배타적 논리합(XOR)을 수행한 결과를 삽입된 글꼴의 첫 번째 바이트로 저장합니다.

소스와 키의 다음 바이트로 이 과정을 반복하고 키의 모든 바이트에 대해 계속합니다. 이 시점에서 과정은 키의 첫 번째 바이트와 소스의 21번째 바이트에서 시작하여 계속됩니다. 이런 방식으로 1040바이트가 인코딩되면(또는 소스의 끝에 도달하면), 소스의 남은 데이터를 목적지로 직접 복사합니다.

EPUB 제작자는 글꼴을 압축하고 OCF ZIP 컨테이너에 추가하기 전에 난독화해야 MUST 합니다. 난독화는 암호화가 아니므로, 이 요구사항은 4.2.6.3.2 암호화 파일(encryption.xml)에서 글꼴을 암호화하기 전에 압축하라는 요구사항을 위반하지 않습니다.

다음 의사 코드는 난독화 알고리즘의 예를 보여줍니다.

  1. ocf를 OCF ZIP 컨테이너 파일로 설정
  2. source를 글꼴 파일로 설정
  3. destination을 난독화된 글꼴 파일로 설정
  4. keyData를 파일의 키로 설정
  5. outer를 0으로 설정
  6. outer < 52이고 (source가 EOF에 있지 않음)인 동안
    1. inner를 0으로 설정
    2. inner < 20이고 (source가 EOF에 있지 않음)인 동안
      1. source에서 1바이트 읽기(읽기가 파일 위치를 전진시킨다고 가정)
      2. sourceByte를 읽기 결과로 설정
      3. keyBytekeyData의 바이트 inner로 설정
      4. obfuscatedByte를 (sourceByte XOR keyByte)로 설정
      5. obfuscatedBytedestination에 쓰기
      6. inner 증가
      while 종료
    3. outer 증가
    while 종료
  7. (source가 EOF에 있지 않음)이면
    1. source를 EOF까지 읽기
    2. 읽기 결과를 destination에 쓰기
    if 종료
  8. destination을 Deflate 압축
  9. destinationocf 안의 source로 저장

4.4.5 난독화된 글꼴 지정

기술적으로 암호화된 데이터는 아니지만, 모든 난독화된 글꼴은 EPUB 출판물과 함께 제공되는 encryption.xml 파일에 항목을 가져야 MUST 합니다(4.2.6.3.2 암호화 파일(encryption.xml) 참조).

EPUB 제작자는 각 난독화된 글꼴에 대해 EncryptedData 요소를 지정해야 MUST 합니다. 각 EncryptedData 요소는 Algorithm 속성 값이 http://www.idpf.org/2008/embedding인 자식 EncryptionMethod 요소를 포함해야 MUST 합니다. 이 속성의 존재는 이 명세에서 설명한 알고리즘의 사용을 신호합니다.

EPUB 제작자는 CipherData 요소의 CipherReference 자식에 난독화된 글꼴의 경로를 나열해야 MUST 합니다. 난독화 알고리즘은 글꼴로 제한되므로, CipherReference 요소의 URI 속성은 글꼴 핵심 미디어 유형 리소스를 참조해야 MUST 합니다.

삽입된 글꼴이 다른 EPUB 출판물로 단순 복사되는 것을 방지하기 위해, EPUB 제작자는 encryption.xml 파일에 난독화 키를 제공해서는 MUST NOT 됩니다.

5. 패키지 문서

달리 명시되지 않는 한, 이 섹션에서 정의된 모든 [xml] 요소는 http://www.idpf.org/2007/opf 네임스페이스 [xml-names]에 속합니다.

5.1 소개

이 섹션은 비규범적입니다.

패키지 문서는 XML 문서로, 각각이 EPUB 출판물의 특정 측면에 대한 정보를 캡슐화하는 요소 집합으로 구성됩니다. 이러한 요소는 메타데이터를 중앙화하고, 개별 리소스를 상세히 기술하며, 렌더링에 필요한 읽기 순서와 기타 정보를 제공하는 역할을 합니다.

다음 목록은 패키지 문서에서 찾을 수 있는 정보를 요약합니다.

참고

EPUB 출판물은 둘 이상의 패키지 문서를 참조할 수 있으며, 이를 통해 콘텐츠의 대체 표현을 허용할 수 있습니다. 자세한 내용은 4.2.6.3.1 컨테이너 파일(container.xml)을 참조하십시오.

참고

패키지 문서의 파일 속성에 대한 정보는 I.1 application/oebps-package+xml 미디어 유형을 참조하십시오.

5.2 패키지 문서의 URL 구문 분석

패키지 문서에서 사용되는 URL 문자열 url을 구문 분석하려면, URL parser [url]를 urlMUST 적용해야 하며, 패키지 문서의 콘텐츠 URLbase로 사용해야 합니다.

5.3 공유 속성

이 섹션은 공유 속성(즉, 둘 이상의 요소에 허용되는 속성)에 대한 정의를 제공합니다.

5.3.1 dir 속성(구현 부족)

참고

dir 속성은 구현 부족으로 표시되어 있습니다. 읽기 시스템이 텍스트 표시를 위해 하나의 기본 방향성만 지원하는 경우가 많기 때문입니다. EPUB 제작자는 이 상황이 개선되면 올바른 렌더링을 보장하기 위해 패키지 문서 안의 텍스트 값에 적절한 방향성을 설정하는 것이 여전히 강력히 권장됩니다.

이를 가진 요소와 그 자손의 텍스트 콘텐츠 및 속성 값의 기본 방향 [bidi]을 지정합니다.

허용되는 값은 다음과 같습니다.

  • ltr — 왼쪽에서 오른쪽으로의 기본 방향;
  • rtl — 오른쪽에서 왼쪽으로의 기본 방향; 그리고
  • auto — 기본 방향은 Unicode Bidi Algorithm [bidi]을 사용하여 결정됩니다.

EPUB 제작자가 속성을 생략하거나 유효하지 않은 값을 사용하는 경우, 읽기 시스템은 값 auto를 가정합니다.

참고

dir 속성에 지정된 기본 방향은 방향성 런 안의 문자 순서에는 영향을 주지 않으며, 그러한 런의 상대 순서와 구두점 같은 약한 방향성 문자의 배치에만 영향을 줍니다.

허용되는 요소: collection, Dublin Core 요소, meta, 및 package.

5.3.2 href 속성

리소스를 참조하는 유효한 URL 문자열 [url].

URL 문자열은 패키지 문서의 요소를 통해 리소스를 참조해서는 MUST NOT 됩니다 (예: 매니페스트 item 또는 스파인 itemref 선언을 통해).

허용되는 요소: itemlink.

5.3.3 id 속성

요소의 ID [xml]로, 문서 범위 안에서 고유해야 MUST 합니다.

허용되는 요소: collection, Dublin Core 요소, item, itemref, link, manifest, meta, package, 및 spine.

5.3.4 media-type 속성

참조된 리소스의 유형과 형식을 지정하는 미디어 유형 [rfc2046].

허용되는 요소: itemlink.

5.3.5 properties 속성

공백으로 구분된 property 값 목록.

해당 속성에 대한 예약 어휘는 각 요소의 정의를 참조하십시오.

허용되는 요소: item, itemref, 및 link.

5.3.6 refines 속성

현재 표현과 그 값으로 식별되는 요소 또는 리소스 사이의 연관을 설정합니다. EPUB 제작자는 값으로 path-relative-scheme-less-URL string을 사용해야 MUST 하며, 선택적으로 U+0023 (#)와 자신이 설명하는 리소스 또는 요소를 참조하는 URL-fragment string이 뒤따를 수 있습니다.

refines 속성은 표현된 메타데이터의 유형에 따라 OPTIONAL입니다. 생략된 경우, 해당 요소는 기본 표현을 정의합니다.

출판물 리소스에 대한 표현을 생성할 때, refines 속성은 그 리소스의 매니페스트 항목ID [xml]를 참조하는 조각 식별자를 지정하는 것이 SHOULD 권장됩니다.

정제 체인은 순환 참조나 자기 참조를 포함해서는 MUST NOT 됩니다.

허용되는 요소: linkmeta.

5.3.7 xml:lang 속성

이를 가진 요소와 그 자손의 텍스트 콘텐츠 및 속성 값의 언어를, [xml]의 2.12 Language Identification 섹션에서 정의한 대로 지정합니다. 각 xml:lang 속성의 값은 올바른 형식의 언어 태그 [bcp47]여야 MUST 합니다.

허용되는 요소: collection, Dublin Core 요소, meta, 및 package.

5.4 package 요소

package 요소는 패키지 문서에서 표현되는 모든 정보를 캡슐화합니다.

요소 이름:

package

사용법:

패키지 문서의 REQUIRED 루트 요소 [xml].

속성:
콘텐츠 모델:

이 순서로:

version 속성은 주어진 EPUB 출판물이 준수하는 EPUB 명세 버전을 지정합니다. 이 속성은 EPUB 3에 대한 적합성을 나타내기 위해 "3.0" 값을 가져야 MUST 합니다.

참고

이 명세의 업데이트는 EPUB 3의 새 버전을 나타내지 않습니다(즉, 각 새 3.X 명세는 EPUB 3 형식의 연속입니다). 작업 그룹은 기존 콘텐츠를 무효화할 수 있는 변경을 최소화하여 version 속성 값이 변경되지 않은 채 유지되도록 하는 데 전념합니다.

unique-identifier 속성은 선호되는 또는 기본 식별자를 제공하는 dc:identifier 요소를 식별하는 IDREF [xml]를 취합니다.

prefix 속성은 이 명세에서 예약하지 않은 접두사에 대한 선언 메커니즘을 제공합니다. 자세한 내용은 D.1.4 prefix 속성을 참조하십시오.

5.5 메타데이터 섹션

5.5.1 metadata 요소

metadata 요소는 메타 정보를 캡슐화합니다.

요소 이름:

metadata

사용법:

packageREQUIRED 첫 번째 자식.

속성:

없음

콘텐츠 모델:

임의 순서로:

패키지 문서metadata 요소에는 두 가지 주요 기능이 있습니다.

  1. 읽기 시스템EPUB 출판물을 내부적으로 목록화하고 사용자에게 사용할 수 있게 하는 데 사용할 최소한의 메타 정보를 제공하는 것 (예: 책장에 표시).

  2. 콘텐츠의 레이아웃과 표시를 제어하는 데 필요한 모든 렌더링 메타데이터에 대한 접근을 제공하는 것(예: 고정 레이아웃 속성).

패키지 문서는 복잡한 메타데이터 인코딩 기능을 제공하지 않습니다. EPUB 제작자가 더 자세한 정보를 제공해야 하는 경우, link 요소를 사용하여 메타데이터 레코드(예: [onix] 같은 국제 표준을 준수하거나 맞춤 목적을 위해 생성된 것)를 연결할 수 있습니다. 이 접근 방식은 읽기 시스템이 메타데이터를 원래 형식으로 처리할 수 있게 하여, 최소한의 패키지 문서 구조를 사용하도록 변환할 때 발생할 수 있는 잠재적 문제와 정보 손실을 피합니다.

이 철학에 따라, 패키지 문서는 다음과 같은 최소한의 메타데이터 요구사항만 가집니다. 즉, [dcterms] dc:title, dc:identifier, 및 dc:language 요소와 함께 [dcterms] dcterms:modified 속성을 포함해야 MUST 합니다. 그 밖의 모든 메타데이터는 OPTIONAL입니다.

meta 요소는 임의의 어휘에서 온 메타데이터 속성을 포함하기 위한 일반 메커니즘을 제공합니다. EPUB 제작자는 어떤 메타데이터 목적에도 이 메커니즘을 사용할 수 MAY 있지만, 일반적으로 EPUB 명세에 정의된 렌더링 메타데이터를 포함하는 데 사용합니다.

참고

접근성 메타데이터 권장사항은 [epub-a11y-11]를 참조하십시오.

5.5.2 메타데이터 값

Dublin Core 요소 [dcterms] 및 meta 요소는 필수 자식 텍스트 콘텐츠 [dom]를 가집니다. 이 명세는 이러한 요소의 설명에서 이 콘텐츠를 요소의 이라고 부릅니다.

이러한 요소는 선행 및 후행 ASCII 공백 [infra]을 제거한 후 비어 있지 않은 값을 가져야 MUST 합니다(즉, 적어도 하나의 비공백 문자로 구성되어야 합니다).

이러한 요소 값 안의 공백은 중요하지 않습니다. 하나 이상의 공백 문자 시퀀스는 처리 중에 하나의 공백으로 축약 [infra]됩니다.

5.5.3 Dublin Core

5.5.3.1 필수 요소
5.5.3.1.1 dc:identifier 요소

dc:identifier 요소 [dcterms]는 UUID, DOI 또는 ISBN 같은 식별자를 포함합니다.

요소 이름:

dc:identifier

네임스페이스:

http://purl.org/dc/elements/1.1/

사용법:

metadataREQUIRED 자식. 반복 가능.

속성:
  • id [conditionally required]

콘텐츠 모델:

텍스트

EPUB 제작자는 정확히 하나의 EPUB 출판물에 고유한 식별자 — 그 고유 식별자 — 를 dc:identifier 요소 안에 제공해야 MUST 합니다. 이 dc:identifier 요소는 package 요소의 unique-identifier 속성에서 참조되는 값을 가진 id 속성을 지정해야 MUST 합니다.

정적이지는 않지만, EPUB 제작자는 EPUB 출판물의 고유 식별자를 가능한 한 드물게 변경해야 합니다. 고유 식별자는 참조와 배포 목적 모두를 위해 최대한 지속적이어야 합니다. EPUB 제작자는 메타데이터 업데이트, 정오표 수정 또는 이와 유사한 사소한 변경 같은 경미한 개정을 할 때 새 식별자를 발급해서는 안 됩니다.

EPUB 제작자는 추가 식별자를 지정할 수 MAY 있습니다.

참고

EPUB 제작자는 가능할 때마다 식별자에 absolute-URL strings [url]를 사용하는 것이 권장됩니다. 예를 들어 EPUB 제작자가 소유한 도메인을 포함하면 식별자의 고유성을 향상할 수 있으며, namespace identifier [rfc8141]가 있는 URN을 사용하면 읽기 시스템의 처리가 개선됩니다.

EPUB 제작자는 dc:identifier 요소의 값이 확립된 시스템을 준수하거나 발급 기관에서 부여한 것임을 나타내기 위해 identifier-type 속성을 사용할 수 MAY 있습니다.

5.5.3.1.2 dc:title 요소

dc:title 요소 [dcterms]는 EPUB 출판물의 이름 인스턴스를 나타냅니다.

요소 이름:

dc:title

네임스페이스:

http://purl.org/dc/elements/1.1/

사용법:

metadataREQUIRED 자식. 반복 가능.

속성:
콘텐츠 모델:

텍스트

문서 순서상 첫 번째 dc:title 요소가 EPUB 출판물의 주 제목입니다(즉, 읽기 시스템이 사용자에게 제시하는 기본 제목).

EPUB 제작자읽기 시스템에서 제목이 일관되게 렌더링되도록 하나의 dc:title 요소만 사용해야 합니다.

참고

여러 부분으로 된 제목을 위해 둘 이상의 dc:title 요소를 포함할 수는 있지만, 추가 dc:title 요소에 대한 읽기 시스템 지원은 일관되지 않습니다. 읽기 시스템은 추가 세그먼트를 무시하거나 예기치 않은 방식으로 결합할 수 있습니다.

예를 들어 다음 예제는 기본적인 여러 부분 제목을 보여 줍니다.

<metadata …>
   <dc:title>
      THE LORD OF THE RINGS
   </dc:title>
   <dc:title>
      Part One: The Fellowship of the Ring
   </dc:title></metadata>

같은 제목을 대신 하나의 dc:title 요소를 사용하여 다음과 같이 표현할 수 있습니다.

<metadata …>
   <dc:title>
       THE LORD OF THE RINGS, Part One:
       The Fellowship of the Ring
   </dc:title></metadata>

이 명세의 이전 버전은 여러 부분 제목의 세그먼트를 식별하고 형식화하기 위해 title-typedisplay-seq 속성을 사용할 것을 권장했습니다(Great Cookbooks 예제 참조). 이러한 의미론을 추가하는 것은 여전히 가능하지만, 역시 충분히 지원되지는 않습니다.

5.5.3.1.3 dc:language 요소

dc:language 요소 [dcterms]는 EPUB 출판물 콘텐츠의 언어를 지정합니다.

요소 이름:

dc:language

네임스페이스:

http://purl.org/dc/elements/1.1/

사용법:

metadataREQUIRED 자식. 반복 가능.

속성:

id [optional]

콘텐츠 모델:

텍스트

dc:language 요소의 올바른 형식의 언어 태그 [bcp47]여야 MUST 합니다.

EPUB 제작자는 다국어 출판물에 대해 추가 dc:language 요소를 지정할 수 MAY 있지만, 읽기 시스템은 문서 순서상 첫 번째 dc:language 요소를 EPUB 출판물의 기본 언어로 취급합니다.

참고

출판물 리소스는 자신의 언어를 dc:language 요소(들)로부터 상속하지 않습니다. EPUB 제작자는 해당 형식의 고유한 방법을 사용하여 리소스의 언어를 설정해야 합니다.

5.5.3.2 선택 요소
5.5.3.2.1 일반 정의

[dcterms] 요소 중 dc:identifier, dc:language, 및 dc:title을 제외한 모든 요소는 OPTIONAL로 지정됩니다. 이러한 요소는 다음 일반화된 정의를 준수합니다.

요소 이름:

dc:contributor | dc:coverage | dc:creator | dc:date | dc:description | dc:format | dc:publisher | dc:relation | dc:rights | dc:source | dc:subject | dc:type

네임스페이스:

http://purl.org/dc/elements/1.1/

사용법:

metadataOPTIONAL 자식. 반복 가능.

속성:
콘텐츠 모델:

텍스트

이 명세는 다음 섹션에서 언급한 경우를 제외하고 [dcterms] 요소 정의를 수정하지 않습니다.

5.5.3.2.2 dc:contributor 요소

dc:contributor 요소 [dcterms]는 콘텐츠 생성에서 보조 역할을 한 사람, 조직 등의 이름을 나타내는 데 사용됩니다.

dc:contributor 요소에 대한 요구사항은 그 밖의 모든 측면에서 dc:creator 요소의 요구사항과 동일합니다.

5.5.3.2.3 dc:creator 요소

dc:creator 요소 [dcterms]는 콘텐츠 생성에 책임이 있는 사람, 조직 등의 이름을 나타냅니다. EPUB 제작자는 제작자가 수행한 기능을 나타내기 위해 연결하여 role 속성을 해당 요소와 함께 사용할 수 MAY 있습니다.

dc:creator 요소는 EPUB 제작자가 읽기 시스템이 사용자에게 표시하길 의도하는 제작자의 이름을 포함해야 합니다.

EPUB 제작자는 제작자 이름의 정규화된 형태를 연결하기 위해 file-as 속성을 사용할 수 MAY 있으며, 제작자 이름을 다른 언어 또는 문자로 나타내기 위해 alternate-script 속성을 사용할 수 있습니다.

EPUB 출판물에 제작자가 둘 이상 있는 경우, EPUB 제작자는 각각을 별도의 dc:creator 요소에 지정해야 합니다.

metadata 섹션 안의 dc:creator 요소의 문서 순서가 표시 우선순위를 결정하며, 처음 만나는 dc:creator 요소가 기본 제작자입니다.

EPUB 제작자는 보조 기여자를 dc:contributor 요소를 사용하여 나타내야 합니다.

5.5.3.2.4 dc:date 요소

dc:date 요소 [dcterms]는 EPUB 출판물의 출판일을 정의합니다. 출판일은 마지막 수정일(EPUB 제작자가 EPUB 출판물을 마지막으로 변경한 시각)과 같지 않습니다.

날짜 문자열은 [iso8601-1]을, 특히 W3C Date and Time Formats [datetime]에 표현된 하위 집합을 준수하는 것이 RECOMMENDED됩니다. 이러한 문자열은 사람과 기계가 모두 읽을 수 있기 때문입니다.

EPUB 제작자는 [dcterms] 어휘 또는 유사한 어휘에서 사용할 수 있는 전문화된 날짜 속성을 사용하여 추가 날짜를 표현해야 합니다.

EPUB 출판물은 둘 이상의 dc:date 요소를 포함해서는 MUST NOT 됩니다.

5.5.3.2.5 dc:subject 요소

dc:subject 요소 [dcterms]는 EPUB 출판물의 주제를 식별합니다. EPUB 제작자는 요소의 을 사람이 읽을 수 있는 표제나 레이블로 설정해야 하지만, 주제 분류 체계가 별도의 설명 레이블을 제공하지 않는 경우에는 코드 값을 사용할 수 있습니다.

EPUB 제작자는 요소의 을 가져온 시스템이나 스킴을 authority 속성을 사용하여 식별할 수 MAY 있습니다.

스킴이 식별되는 경우, EPUB 제작자는 term 속성을 사용하여 주제 코드를 연결해야 MUST 합니다.

term 속성은 스킴을 지정하지 않는 dc:subject 요소와 연결되어서는 MUST NOT 됩니다.

dc:subject 요소와 term 속성의 은 지정된 스킴이 요구하는 경우에만 대소문자를 구분합니다.

5.5.3.2.6 dc:type 요소

dc:type 요소 [dcterms]는 EPUB 출판물이 특수한 유형임을 나타내는 데 사용됩니다(예: EPUB 형식으로 패키징된 주석 또는 사전).

EPUB 제작자는 임의의 텍스트 문자열을 으로 사용할 수 MAY 있습니다.

참고

이전 IDPF EPUB 3 Working Group은 이 요소와 함께 사용할 수 있도록 특수 EPUB 출판물 유형의 비규범 레지스트리를 유지했습니다. 이 Working Group은 더 이상 레지스트리를 유지하지 않으며 새로운 특수 출판물 유형을 개발할 계획도 없습니다.

5.5.4 meta 요소

meta 요소는 패키지 메타데이터를 포함하는 일반적인 수단을 제공합니다.

요소 이름:

meta

사용법:

metadata 요소의 자식으로 사용합니다. 반복 가능.

속성:
콘텐츠 모델:

텍스트

meta 요소는 메타데이터 표현식을 정의합니다. property 속성은 표현식에서 만들어지는 진술을 정의하는 property 데이터 유형 값을 취하며, 요소의 텍스트 콘텐츠는 단언을 나타냅니다. (자세한 내용은 D.1 어휘 연결 메커니즘을 참조하십시오.)

이 명세는 EPUB 제작자meta 요소를 사용하여 정의할 수 있는 두 가지 유형의 메타데이터 표현식을 정의합니다.

  • 기본 표현식meta 요소 안에서 정의된 표현식이 EPUB 출판물의 어떤 측면을 설정하는 경우입니다. refines 속성을 생략한 meta 요소는 기본 표현식을 정의합니다.
  • 하위 표현식meta 요소 안에서 정의된 표현식이 그 의미를 강화하기 위해 refines 속성을 사용하여 다른 표현식 또는 리소스와 연결되는 경우입니다. 예를 들어 하위 표현식은 미디어 클립의 길이를 표현하여 미디어 클립을 정제하거나, 사람의 역할을 정의하여 제작자 또는 기여자 표현식을 정제할 수 있습니다.

EPUB 제작자는 다른 하위 표현식의 의미를 정제하는 데 하위 표현식을 사용할 수 MAY 있으며, 이를 통해 정보 체인을 만들 수 있습니다.

참고

모든 [dcterms] 요소는 기본 표현식을 나타내며, meta 요소 하위 표현식에 의한 정제를 허용합니다.

Meta Properties Vocabularyproperty 속성과 함께 사용할 기본 어휘입니다.

EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.

scheme 속성은 EPUB 제작자가 요소의 을 얻은 시스템 또는 스킴을 식별합니다. 이 속성의 값은 스킴을 정의하는 리소스로 해석되는 property 데이터 유형 값이어야 MUST 합니다. scheme 속성에는 기본 어휘가 없습니다(즉, 모든 값에는 접두사가 필요합니다).

5.5.5 마지막 수정일

metadata 섹션은 마지막 수정일을 포함하는 정확히 하나의 dcterms:modified 속성 [dcterms]을 포함해야 MUST 합니다. 이 속성의 은 확장 형식 YYYY-MM-DDThh:mm:ssZ와 일치하는 날짜와 하루 중 시각의 [iso8601-1] 완전 표현이어야 MUST 합니다.

EPUB 제작자는 마지막 수정일을 협정 세계시(UTC)로 표현해야 MUST 하며, "Z"(Zulu) 시간대 표시자로 끝내야 MUST 합니다.

EPUB 제작자는 EPUB 출판물을 변경할 때마다 마지막 수정일을 업데이트해야 합니다.

EPUB 제작자는 패키지 문서 메타데이터에 추가 modified 속성을 지정할 수 MAY 있지만, 그것들은 다른 주체를 가져야 MUST 합니다(즉, 요소 또는 리소스를 참조하는 refines 속성이 필요합니다).

참고

마지막 수정일에 대한 요구사항은 EPUB 출판물에 대해 릴리스 식별자 [epubpackages-32]를 정의한 이전 EPUB 3 버전과의 호환성을 보장하기 위한 것입니다.

5.6 매니페스트 섹션

5.6.1 manifest 요소

manifest 요소는 콘텐츠 렌더링에 사용되는 출판물 리소스의 완전한 목록을 제공합니다.

요소 이름:

manifest

사용법:

packageREQUIRED 두 번째 자식으로, metadata 뒤에 옵니다.

속성:

id [optional]

콘텐츠 모델:

item [1 or more]

패키지 문서를 제외하고, manifest는 모든 출판물 리소스를 그것이 컨테이너 리소스인지 원격 리소스인지와 관계없이 나열해야 MUST 합니다.

패키지 문서는 이미 container.xml 파일로 식별되므로, manifest는 이를 위한 item 요소를 지정해서는 MUST NOT 안 됩니다(즉, 자기 참조는 아무 목적도 없습니다).

참고

매니페스트는 출판물 리소스를 나열하기 위한 것일 뿐입니다. 연결된 리소스OCF 컨테이너 처리를 위한 특수 파일 (즉, META-INF 디렉터리의 파일과 mimetype 파일)은 포함할 수 없습니다.

출판물 리소스의 완전한 매니페스트를 제공하지 않으면 렌더링 문제가 발생할 수 있습니다. 읽기 시스템은 그러한 리소스를 압축 해제하지 않거나 보안상의 이유로 해당 리소스에 대한 접근을 막을 수 있습니다.

5.6.2 item 요소

item 요소는 출판물 리소스를 나타냅니다.

요소 이름:

item

사용법:

manifest의 자식으로 사용합니다. 반복 가능.

속성:
콘텐츠 모델:

비어 있음

item 요소는 자신의 href 속성 안의 URL [url]로 출판물 리소스를 식별합니다. 값은 absolute- 또는 path-relative-scheme-less-URL string [url]이어야 MUST 합니다. EPUB 제작자는 각 URL이 구문 분석manifest 범위 안에서 고유하도록 보장해야 MUST 합니다.

item 요소로 식별되는 출판물 리소스는 media-type 속성에 제공된 MIME 미디어 유형 [rfc2046]에서 추론되는 적용 가능한 명세(들)를 준수해야 MUST 합니다. 핵심 미디어 유형 리소스의 경우, EPUB 제작자는 3.2 핵심 미디어 유형에서 지정한 미디어 유형을 사용해야 MUST 합니다.

fallback 속성은 참조된 출판물 리소스에 대한 폴백을 지정합니다. fallback 속성의 IDREF [xml] 값은 manifest 안의 다른 item으로 해석되어야 MUST 합니다.

하나의 item에 대한 폴백은 또 다른 item에 대한 폴백을 지정할 수 MAY 있으며, 이런 식으로 이어져 폴백 옵션의 체인을 만들 수 있습니다. 폴백 체인의 사용과 관련된 추가 요구사항은 3.5.1 매니페스트 폴백을 참조하십시오.

media-overlay 속성은 이 item으로 설명되는 리소스에 대한 미디어 오버레이 문서를 식별하는 IDREF [xml]를 취합니다. 자세한 내용은 9.3.5 미디어 오버레이 패키징을 참조하십시오.

참고

manifest 안의 item 요소 순서는 중요하지 않습니다. spine 요소가 콘텐츠 문서의 표시 순서를 제공합니다.

5.6.2.1 리소스 속성

properties 속성은 리소스의 콘텐츠에 관한 정보를 읽기 시스템에 제공합니다. 이 정보는 표지 이미지 및 EPUB 내비게이션 문서 같은 핵심 리소스의 발견을 가능하게 합니다. 또한 예를 들어 해당 리소스가 삽입된 스크립팅, MathML 또는 SVG를 포함하는지 여부를 나타내어 읽기 시스템이 렌더링을 최적화할 수 있게 합니다.

Manifest Properties Vocabularyproperties 속성의 기본 어휘입니다.

EPUB 제작자item 요소가 참조하는 리소스가 각각의 정의와 일치할 때마다 다음 속성을 설정해야 MUST 합니다.

이러한 속성은 리소스 안에 포함된 콘텐츠에는 재귀적으로 적용되지 않습니다(예: [html] iframe 요소를 통해). 예를 들어 스크립트가 없는 XHTML 콘텐츠 문서스크립트 콘텐츠 문서를 삽입하는 경우, 삽입된 문서의 매니페스트 item properties 속성에만 scripted 값이 있습니다.

EPUB 제작자는 nav 속성을 사용하여 정확히 하나의 item을 EPUB 내비게이션 문서로 선언해야 MUST 합니다.

EPUB 출판물이 표지 이미지를 포함하는 경우, cover-image 속성을 설정하는 것이 권장되지만, 이 속성 설정은 OPTIONAL입니다.

EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.

5.6.2.2 예제

5.6.3 bindings 요소(사용 중단됨)

bindings 요소는 이 명세에서 지원하지 않는 미디어 유형에 대한 사용자 정의 처리기 집합을 정의합니다.

이 요소의 사용은 사용 중단됨입니다.

자세한 내용은 [epubpublications-301]의 bindings 요소 정의를 참조하십시오.

5.7 스파인 섹션

5.7.1 spine 요소

spine 요소는 기본 읽기 순서를 나타내는 매니페스트 item 참조의 정렬된 목록을 정의합니다.

요소 이름:

spine

사용법:

packageREQUIRED 세 번째 자식으로, manifest 뒤에 옵니다.

속성:
콘텐츠 모델:

itemref [1 or more]

spine은 최소 하나의 EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서를 지정해야 MUST 합니다.

EPUB 제작자spine 안의 출판물 리소스에서 하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서를 spine에 나열해야 MUST 합니다. 여기서 하이퍼링크는 사용자가 현재 리소스에서 벗어나 탐색해야 하는 모든 연결 메커니즘을 포함합니다. 일반적인 하이퍼링크 메커니즘에는 [html] aarea 요소의 href 속성과 스크립트 링크(예: DOM Events 및/또는 폼 요소 사용)가 포함됩니다. 하이퍼링크된 리소스를 나열해야 하는 요구사항은 재귀적으로 적용됩니다 (즉, EPUB 제작자는 하이퍼링크된 문서에서 하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서를 나열해야 하며, 이런 식으로 계속됩니다.).

EPUB 제작자는 EPUB 내비게이션 문서를 spine에 포함하는지 여부와 관계없이, EPUB 내비게이션 문서에서 하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서도 spine에 나열해야 MUST 합니다.

참고

EPUB 컨테이너 외부의 리소스에 대한 하이퍼링크는 출판물 리소스가 아니므로, 스파인에 포함해야 하는 요구사항의 적용을 받지 않습니다(예: 웹 페이지 및 웹에 호스팅된 리소스).

스파인 항목을 렌더링하는 데 사용되는 출판물 리소스(예: [html] 삽입된 콘텐츠에서 참조되는 것)도 마찬가지로 스파인에 포함될 필요가 없습니다.

page-progression-direction 속성은 콘텐츠가 흐르는 전역 방향을 설정합니다. 허용되는 값은 ltr(왼쪽에서 오른쪽), rtl(오른쪽에서 왼쪽) 및 default입니다. EPUB 제작자가 default 값을 지정하면 선호 방향을 표현하지 않는 것이며, 읽기 시스템이 렌더링 방향을 선택할 수 있습니다.

page-progression-direction 속성이 전역 흐름 방향을 설정하지만, 개별 EPUB 콘텐츠 문서 및 EPUB 콘텐츠 문서의 일부는 이 설정을 재정의할 수 MAY 있습니다 (예: writing-mode CSS 속성을 통해). 읽기 시스템도 기본 방향을 재정의하는 메커니즘을 제공할 수 있습니다(예: 대체 스타일시트를 적용할 수 있는 버튼 또는 설정).

레거시 toc 속성은 IDREF [xml]를 취하며, 이는 NCX를 나타내는 매니페스트 항목을 식별합니다.

5.7.2 itemref 요소

itemref 요소는 기본 읽기 순서 안의 EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서를 식별합니다.

요소 이름:

itemref

사용법:

spine의 자식으로 사용합니다. 반복 가능.

속성:
콘텐츠 모델:

비어 있음

itemref 요소는 자신의 idref 속성 안의 IDREF [xml]를 통해 매니페스트 안의 itemID [xml]를 참조해야 MUST 합니다. item 요소 ID는 두 번 이상 참조되어서는 MUST NOT 안 됩니다.

참조된 각 매니페스트 item은 a) EPUB 콘텐츠 문서이거나, b) 외부 콘텐츠 문서로서 그 매니페스트 폴백 체인에 EPUB 콘텐츠 문서를 포함해야 MUST 합니다.

참고

EPUB 출판물EPUB 내비게이션 문서를 요구하지만, 이를 스파인에 포함하는 것은 필수가 아닙니다.

linear 속성은 참조된 item이 기본 읽기 순서에 기여하고 읽기 시스템이 순차적으로 읽어야 하는 콘텐츠를 포함하는지("yes"), 또는 읽기 시스템이 순서를 벗어나 접근할 수 있는 기본 콘텐츠를 보완하거나 강화하는 보조 콘텐츠를 포함하는지("no")를 나타냅니다. 보조 콘텐츠의 예에는 주석, 설명 및 답안지가 포함됩니다.

linear 속성은 사용자가 기본 읽기 순서의 일부로 접근해야 하는 콘텐츠와, 읽기 시스템이 예를 들어 팝업 창에 표시하거나 음성 렌더링에서 생략할 수 있는 보충 콘텐츠를 구별할 수 있게 합니다.

그러나 콘텐츠가 비선형이라고 지정한다고 해서 읽기 시스템이 이를 특정 방식으로 제시해야 하는 것은 아닙니다. 이는 목적에 대한 힌트일 뿐입니다. 예를 들어 읽기 시스템은 비선형 콘텐츠를 스파인에서 나타나는 위치에 제시할 수도 있고, 사용자가 스파인의 끝에 도달할 때까지 건너뛸 수도 있습니다.

참고

EPUB 제작자는 사용자가 선형 스파인 항목 사이에서 이를 만나는 것이 타당한 경우를 제외하고, 비선형 콘텐츠를 스파인의 끝에 나열해야 합니다.

선형 itemref 요소는 linear 속성 값이 명시적으로 "yes"로 설정되어 있거나 해당 속성을 생략한 요소입니다 —  읽기 시스템은 속성이 없는 itemref 요소에 대해 값 "yes"를 가정합니다. 스파인은 최소 하나의 선형 itemref 요소를 포함해야 MUST 합니다.

EPUB 제작자는 모든 비선형 콘텐츠에 접근할 수 있는 수단(예: 콘텐츠 안의 하이퍼링크 또는 EPUB 내비게이션 문서로부터의 하이퍼링크)을 제공해야 MUST 합니다.

Spine Properties Vocabularyproperties 속성의 기본 어휘입니다.

EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.

5.8 컬렉션

5.8.1 collection 요소

collection 요소는 관련된 리소스 그룹을 정의합니다.

요소 이름:

collection

사용법:

packageOPTIONAL 여섯 번째 요소. 반복 가능.

속성:
콘텐츠 모델:

이 순서로: metadata [0 or 1], ( collection [1 or more] 또는 ( collection [0 or more], link [1 or more] ))

collection 요소는 EPUB 제작자가 다양한 잠재적 사용을 위해 리소스를 논리적 그룹으로 조립할 수 있게 합니다. 예를 들어, 여러 EPUB 콘텐츠 문서에 나뉘어 있는 의미 있는 콘텐츠 단위(예: 여러 문서에 나뉜 색인)로 재조립할 수 있게 하거나, 전문화된 목적의 리소스(예: 미리보기 콘텐츠)를 식별하거나, EPUB 출판물에 관한 추가 정보를 제시하는 리소스를 함께 모을 수 있습니다.

EPUB 제작자는 각 collection 요소의 역할을 그 role 속성에서 식별해야 MUST 하며, 그 값은 하나 이상의 NMTOKEN [xmlschema-2] 및/또는 absolute-URL-with-fragment strings [url]이어야 MUST 합니다.

전문화된 컬렉션 작성에 대한 요구사항은 각각의 명세에서 정의합니다.

참고

이전 IDPF EPUB 3 Working Group은 role 확장 레지스트리사용자 정의 확장 role 목록을 모두 유지했습니다. 이 Working Group은 더 이상 이러한 레지스트리를 유지하지 않습니다.

5.8.2 컬렉션 유형 정의(사용 중단됨)

collection 요소 role의 생성은 이제 사용 중단됨입니다.

전문화된 컬렉션의 생성에 대한 자세한 내용은, 그 사용에 대한 요구사항 및 제한사항을 포함하여, [epubpackages-32]의 collection 요소 정의를 참조하십시오.

5.9 레거시 기능

5.9.1 소개

패키지 문서의 레거시 기능은 EPUB 제작자가 EPUB 2 출판물만 지원하는 읽기 시스템에서 어느 정도 작동할 수 있는 콘텐츠를 작성할 수 있도록 하기 위해서만 EPUB 2에서 유지되었습니다.

이러한 기능은 EPUB 3 읽기 시스템이 개발되던 중복 기간을 해결하기 위해 주로 추가되었습니다. 당시에는 사용자가 EPUB 2 읽기 시스템에서 EPUB 3 출판물을 열 가능성이 여전히 높았기 때문입니다.

EPUB 2 출판물만 처리하는 읽기 시스템은 이제 드물기 때문에, EPUB 제작자는 이러한 레거시 기능을 추가하려고 노력하기 전에 자신의 출판물이 여전히 이러한 유형의 오래된 기기에서 열릴 가능성을 고려해야 합니다.

5.9.2 지원

EPUB 제작자는 EPUB 2 읽기 시스템과의 호환성 목적을 위해 이 섹션에서 정의한 레거시 기능을 포함할 수 MAY 있습니다.

EPUB 3 읽기 시스템은 사용자에게 출판물을 제시할 때 이러한 기능을 사용하지 않습니다.

참고

EPUB 적합성 검사기EPUB 출판물 안에 레거시 기능이 존재한다고 해서 EPUB 제작자에게 경고해서는 안 됩니다. 그 포함은 하위 호환성을 위해 유효하기 때문입니다. EPUB 적합성 검사기는 레거시 기능이 그 정의를 준수하지 않거나 달리 사용 요구사항을 위반하는 경우 EPUB 제작자에게 반드시 경고해야 합니다.

5.9.3 meta 요소

meta 요소 [opf-201]는 EPUB 2 읽기 시스템을 위한 일반 메타데이터를 포함하는 수단을 제공합니다.

자세한 내용은 [opf-201]의 meta 요소 정의를 참조하십시오.

참고

EPUB 3 meta 요소는 서로 다른 속성을 사용하고 텍스트 콘텐츠를 요구하며, EPUB 3 읽기 시스템을 위한 메타데이터 기능을 제공합니다.

[opf-201] meta 요소는 또한 EPUB 제작자가 EPUB 2 읽기 시스템을 위해 표지 이미지를 식별할 수 있게 합니다. EPUB 3에서는 이미지에 대한 매니페스트 itemcover-image 속성을 사용하여 표지 이미지를 식별해야 합니다.

5.9.4 guide 요소

guide 요소 [opf-201]는 EPUB 2 읽기 시스템에서 핵심 구조로의 기계 처리 가능한 내비게이션을 제공합니다.

자세한 내용은 [opf-201]의 guide 요소 정의를 참조하십시오.

참고

EPUB 내비게이션 문서 안의 landmarks nav는 EPUB 3 읽기 시스템에서 이 기능을 제공합니다.

5.9.5 NCX

NCX [opf-201]는 EPUB 2 읽기 시스템을 위한 목차를 제공합니다.

자세한 내용은 [opf-201]의 NCX 정의를 참조하십시오.

참고

EPUB 내비게이션 문서는 EPUB 3 읽기 시스템에서 NCX를 대체합니다.

6. EPUB 콘텐츠 문서

6.1 XHTML 콘텐츠 문서

6.1.1 소개

이 섹션은 비규범적입니다.

이 섹션은 XHTML 콘텐츠 문서를 만들기 위한 [html]의 프로파일을 정의합니다. 이 프로파일을 준수하는 XML 문서의 인스턴스는 핵심 미디어 유형 리소스이며, 이 명세에서는 XHTML 콘텐츠 문서라고 부릅니다.

6.1.2 XHTML 요구사항

XHTML 콘텐츠 문서는 다음과 같습니다.

  • XML 구문을 준수하는 [html] 문서여야 MUST 합니다.

  • 6.1.4 HTML 편차 및 제약에서 명시적으로 재정의하지 않는 한, [html]에서 정의한 모든 문서 구성에 대한 적합성 기준을 준수해야 MUST 합니다.

  • 6.1.3 HTML 확장에 정의된 대로 [html] 문법에 대한 확장을 포함할 수 MAY 있으며, 그 안에서 정의된 모든 콘텐츠 적합성 제약을 준수해야 MUST 합니다.

달리 명시되지 않는 한, XHTML 콘텐츠 문서는 의미론, 구조 및 처리 동작에 대한 모든 정의를 [html] 명세에서 상속합니다.

참고

EPUB 출판물이 [epub-a11y-11]의 접근성 요구사항을 따르라는 권장은 XHTML 콘텐츠 문서에도 적용됩니다. 접근성을 참조하십시오.

6.1.3 HTML 확장

이 섹션은 기반이 되는 [html] 문서 모델에 대한 EPUB 3 XHTML 콘텐츠 문서 확장을 정의합니다.

참고

[html]은 사용자 에이전트가 벤더 중립 확장을 지원하도록 허용하지만, 그러한 확장이 이 섹션에 나열되어 있지 않다면, EPUB 3에서 지원되는 기능이 아닙니다.

6.1.3.1 구조적 의미론

EPUB 제작자XHTML 콘텐츠 문서에서 구조적 의미론을 표현하기 위해 epub:type 속성을 사용할 수 MAY 있습니다.

이 속성은 head 요소 또는 메타데이터 콘텐츠 [html]에 사용해서는 MUST NOT 됩니다.

6.1.3.2 RDFa

[html-rdfa] 명세는 EPUB 제작자가 콘텐츠를 의미적으로 풍부하게 하기 위해 XHTML 콘텐츠 문서에서 사용할 수 MAY 있는 속성 집합을 정의합니다. 이러한 속성의 사용은 [html-rdfa]에 정의된 요구사항을 준수해야 MUST 합니다.

[html-rdfa] 명세는 저자가 RDFa 속성을 사용할 때 [html] 콘텐츠 모델에 대한 변경을 정의합니다. 이 수정된 콘텐츠 모델은 XHTML 콘텐츠 문서에서 유효합니다.

참고

RDFa를 나열한 것은 Working Group의 선호를 표현하는 것이 아니라, 이러한 속성이 HTML 문법의 확장을 나타낸다는 것만을 의미합니다. EPUB 제작자는 XHTML 콘텐츠 문서에서 microdata 속성 [html] 및 linked data [json-ld11]도 지정할 수 있으며, 둘 다 기본적으로 지원됩니다.

6.1.3.3 콘텐츠 전환(사용 중단됨)

switch 요소는 EPUB 제작자가 사용자에게 표시되는 콘텐츠를 맞춤화할 수 있는 간단한 메커니즘을 제공합니다. 이는 EPUB 읽기 시스템의 스크립팅 기능에 의존하지 않습니다.

이 요소의 사용은 사용 중단됨입니다.

자세한 내용은 [epubcontentdocs-301]의 switch 요소 정의를 참조하십시오.

6.1.3.4 epub:trigger 요소(사용 중단됨)

trigger 요소는 스크립트 및 비스크립트 컨텍스트 모두에서 오디오 및 비디오 재생 같은 멀티미디어 객체를 제어하기 위한, 마크업으로 정의된 사용자 인터페이스의 생성을 가능하게 합니다.

이 요소의 사용은 사용 중단됨입니다.

자세한 내용은 [epubcontentdocs-301]의 epub:trigger 요소 정의를 참조하십시오.

6.1.3.5 사용자 정의 속성

XHTML 콘텐츠 문서는 사용자 정의 속성을 포함할 수 MAY 있습니다. 이는 네임스페이스 URL의 도메인 [url]에 다음 문자열 중 어느 것도 포함하지 않는 접두사가 붙은 [xml-names] 속성입니다.

  • w3.org
  • idpf.org

사용자 정의 속성을 사용할 때, 콘텐츠는 어떤 읽기 시스템에서 렌더링되더라도 정보 손실이나 그 밖의 중대한 품질 저하 없이 사용자가 소비할 수 있는 상태로 유지되어야 MUST 합니다.

참고

사용자 정의 속성은 보통 읽기 시스템별 방식으로 정의되며, 다른 읽기 시스템이 사용하도록 의도된 것이 아닙니다. 이 명세는 여러 독립적인 읽기 시스템이 사용할 수 있는 확장을 제공하도록 확장되어야 합니다.

6.1.4 HTML 편차 및 제약

이 섹션은 EPUB 3 XHTML 콘텐츠 문서에 적용되는, 기반 [html] 문서 모델로부터의 편차와 이에 대한 제약을 정의합니다.

6.1.4.1 삽입된 MathML

XHTML 콘텐츠 문서는 삽입된 [mathml3]을 지원합니다. MathML 마크업의 출현은 MathML 명세 [mathml3]에 표현된 제약을 준수해야 MUST 하며, 다음 추가 제한사항을 따릅니다.

Presentation MathML

math 요소는 annotation-xml 요소 안을 제외하고 Presentation MathML만 포함해야 MUST 합니다.

Content MathML

EPUB 제작자는 XHTML 콘텐츠 문서의 MathML 마크업 안에 Content MathML을 포함할 수 MAY 있으며, 존재하는 경우 이를 semantics 요소의 annotation-xml 자식 요소 안에 포함해야 MUST 합니다.

EPUB 제작자가 앞 조건에 따라 Content MathML을 포함하는 경우, 해당 annotation-xml 요소의 encoding 속성을 기능적으로 동등한 값인 MathML-Content 또는 application/mathml-content+xml 중 하나로 설정하고, name 속성을 contentequiv로 설정해야 MUST 합니다.

이 하위 집합은 [html] 사용자 에이전트와의 호환성을 유지하면서, 읽기 시스템의 구현 부담을 줄이고 접근성을 증진합니다.

참고

매니페스트 item 요소의 mathml 속성은 XHTML 콘텐츠 문서가 삽입된 MathML을 포함한다는 것을 나타냅니다.

6.1.4.2 삽입된 SVG

XHTML 콘텐츠 문서는 SVG 삽입을 지원합니다.

참고

매니페스트 item 요소의 svg 속성은 XHTML 콘텐츠 문서가 삽입된 SVG를 포함한다는 것을 나타냅니다(참조로든 포함으로든).

6.1.4.3 권장되지 않는 구성

이 섹션은 비규범적입니다.

6.1.4.3.1 base 요소

[html] base 요소는 URL 구문 분석을 위한 문서 기본 URL을 지정하는 데 사용할 수 있습니다. EPUB 출판물에서 이를 사용할 때, base 요소의 해석은 의도치 않게 원격 리소스에 대한 참조를 초래할 수 있습니다. 또한 읽기 시스템이 하이퍼링크의 위치를 잘못 해석하게 할 수도 있습니다(예: base 요소가 절대 URL을 지정하면 출판물 안의 다른 문서에 대한 상대 링크가 웹 사이트에 대한 링크처럼 보일 수 있음). 중대한 상호운용성 문제를 피하기 위해, EPUB 제작자base 요소를 사용해서는 안 됩니다.

6.1.4.3.2 rp 요소

[html] rp 요소는 루비 마크업을 인식하지 못하는 오래된 읽기 시스템을 위한 폴백을 제공하기 위한 것입니다(즉, ruby 마크업 주위에 괄호 표시). EPUB 3 읽기 시스템은 루비를 인식하고 폴백을 제공할 수 있으므로, EPUB 제작자rp 요소를 사용해서는 안 됩니다.

6.1.4.3.3 embed 요소

[html] embed element 요소는 스크립팅을 지원하지 않는 읽기 시스템에 폴백 콘텐츠를 제공하기 위한 내재적 기능을 포함하지 않으므로, 참조된 리소스가 스크립팅을 포함하는 경우 EPUB 제작자는 이 요소를 사용하지 않는 것이 권장됩니다. [html] object 요소는 내재적 폴백 기능을 포함하므로 더 나은 대안입니다.

6.2 SVG 콘텐츠 문서

주의

읽기 시스템은 [svg]의 모든 기능을 지원하지 않을 수 있으며, 읽기 시스템이 실행되는 모든 플랫폼에서 이를 지원하지 않을 수도 있습니다. 그러한 기능을 활용할 때, EPUB 제작자는 상호운용성과 문서 수명에 내재된 위험을 고려해야 합니다.

6.2.1 소개

이 섹션은 비규범적입니다.

Scalable Vector Graphics (SVG) 명세 [svg]는 최종 형태의 벡터 그래픽과 텍스트를 표현하기 위한 형식을 정의합니다.

EPUB 제작자는 일반적으로 XHTML 콘텐츠 문서최상위 문서 유형으로 사용하지만, SVG 콘텐츠 문서의 사용도 허용됩니다. EPUB 제작자는 보통 최종 형태의 페이지 이미지가 콘텐츠의 유일하게 적합한 표현인 경우 같은 특정한 특수 사례에서만 SVG가 필요합니다(예: 표지 아트 또는 만화나 코믹북의 맥락).

이 섹션은 [svg] 문서에 대한 프로파일을 정의합니다. 이 프로파일을 준수하는 XML 문서의 인스턴스는 핵심 미디어 유형 리소스이며, 이 명세에서는 SVG 콘텐츠 문서라고 부릅니다.

참고

이 섹션은 SVG 콘텐츠 문서에 대한 적합성 요구사항을 정의합니다. XHTML 콘텐츠 문서에 삽입된 SVG에 대한 적합성 요구사항은 6.1.4.2 삽입된 SVG를 참조하십시오.

6.2.2 SVG 요구사항

SVG 콘텐츠 문서적합한 SVG 독립 파일 [svg]이어야 MUST 하며, 6.2.3 SVG에 대한 제한사항에 표현된 모든 콘텐츠 적합성 제약을 준수해야 합니다.

참고

EPUB 출판물이 [epub-a11y-11]의 접근성 요구사항을 따르라는 권장은 SVG 콘텐츠 문서에도 적용됩니다. 접근성을 참조하십시오.

6.2.3 SVG에 대한 제한사항

이 명세는 SVG 콘텐츠 문서XHTML 콘텐츠 문서에 포함으로 삽입된 SVG의 콘텐츠 모델을 다음과 같이 제한합니다.

6.3 공통 리소스 요구사항

이 섹션은 XHTMLSVG 콘텐츠 문서 모두에서 사용할 수 있는 기술에 대한 요구사항을 정의합니다.

6.3.1 Cascading Style Sheets (CSS)

6.3.1.1 소개

이 섹션은 비규범적입니다.

CSS는 Open Web Platform의 필수적인 일부입니다. 독자, 출판자 및 문서 저자는 HTML이 "그냥 작동"하기를 기대하듯 CSS도 "그냥 작동"하기를 기대합니다.

과거에 EPUB은 특정 속성에 대한 지원을 의무화하고 수많은 다른 속성의 접두사 버전을 제공하는 CSS 프로파일을 정의했습니다. CSS Working Group은 더 이상 접두사 속성의 사용을 권장하지 않지만, 이 명세는 기존 콘텐츠를 깨뜨리지 않기 위해 일부 접두사 속성을 유지합니다. 그러나 이 섹션에 정의된 사소한 예외를 제외하면, EPUB은 CSS 정의를 W3C에 맡깁니다.

참고

일부 읽기 시스템은 CSS의 원하는 기능을 모두 지원하지 않을 수 있다는 점을 염두에 두십시오. 다음은 특히 문제가 되는 것으로 알려져 있습니다.

  • 읽기 시스템으로 인한 페이지 나누기는 스타일시트와 잘 상호작용하지 않을 수 있습니다. 읽기 시스템이 때때로 열을 사용해 페이지를 나누기 때문입니다. 이로 인해 뷰포트 크기 값이 올바르지 않을 수 있습니다. 고정 및 절대 위치 지정은 특히 문제가 됩니다.

  • 일부 유형의 화면은 애니메이션과 전환을 제대로 렌더링하지 못합니다(예: 지연 시간이 긴 화면).

6.3.1.2 CSS 요구사항

CSS 스타일시트:

참고

이 명세는 directionunicode-bidi 속성의 사용을 제한합니다. 읽기 시스템이 CSS 처리를 구현하지 않거나 비활성화할 수 있기 때문입니다. EPUB 제작자는 렌더링의 이러한 측면을 제어해야 할 때 다음 형식별 방법을 사용해야 합니다.

6.3.1.3 접두사 속성

EPUB의 이전 버전은 접두사가 붙은 CSS 속성을 포함했는데, 이는 세계 언어와 관련된 많은 CSS 기능이 아직 성숙하지 않았기 때문입니다. 이러한 접두사를 사용해 작성된 콘텐츠에 대한 하위 호환성을 보장하기 위해, 이 명세에서는 그것들이 유지되었습니다. 달리 언급되지 않는 한, 접두사 속성과 값은 적절한 CSS 명세에 설명된 접두사 없는 동등 항목과 정확히 동일하게 동작합니다. 접두사 속성은 E. 접두사 CSS 속성에 문서화되어 있습니다.

주의

EPUB 제작자는 접두사 없는 속성을 사용해야 하며, 읽기 시스템은 현재 CSS 명세를 지원해야 합니다. 이 명세는 [epubcontentdocs-301]의 널리 사용되는 접두사 속성을 유지하지만, 덜 사용되는 속성에 대한 지원은 제거합니다. EPUB 제작자는 제거된 속성에 대해 가능한 경우 CSS 네이티브 해결책을 사용해야 합니다.

Working Group은 현재 이러한 접두사 속성을 사용하는 EPUB 제작자가 지원이 허용하는 즉시 접두사 없는 버전으로 이동할 것을 권장합니다. Working Group은 EPUB의 다음 주요 버전에서 이를 지원할 것으로 예상하지 않기 때문입니다.

6.3.2 스크립팅

6.3.2.1 스크립트 포함

EPUB 콘텐츠 문서는 각각의 기반 명세 ([html] 및 [svg])에서 이에 대해 정의한 기능을 사용하여 스크립팅을 포함할 수 MAY 있습니다. EPUB 콘텐츠 문서가 스크립팅을 포함하는 경우, 이 명세는 이를 스크립트 콘텐츠 문서라고 부릅니다. 이 레이블은 [html] form 요소를 포함하는 XHTML 콘텐츠 문서에도 적용됩니다.

매니페스트 item 요소의 scripted 속성은 EPUB 콘텐츠 문서가 스크립트 콘텐츠 문서임을 나타내는 데 사용됩니다.

[html] script 요소가 data block [html]을 포함하는 경우, 이는 스크립트 콘텐츠를 나타내지 않습니다.

참고

[svg]는 발행 시점 기준으로 data block을 정의하지 않지만, 향후 업데이트에서 이 개념이 추가된다면 동일한 제외가 적용될 것입니다.

EPUB 제작자읽기 시스템이 각 EPUB 출판물에 고유한 origin [html]이 할당된 것처럼 동작해야 한다는 점에 유의해야 합니다. 실제로 이는 스크립트가 EPUB 출판물 간에 데이터를 공유할 수 없다는 뜻입니다.

스크립트가 어떤 컨텍스트에서 사용되는지도 읽기 시스템이 그 스크립트에 부여하는 권한과 제한을 결정합니다(자세한 내용은 스크립팅 [epub-rs-33]을 참조하십시오).

참고

읽기 시스템은 다른 EPUB 기능을 비활성화하거나 다른 렌더링 및 사용자 경험을 제공하는 방식으로 스크립트 콘텐츠 문서를 렌더링할 수 있습니다(예: 페이지 나누기 비활성화).

6.3.2.2 스크립팅 컨텍스트

EPUB 3은 스크립트 실행을 위한 두 가지 컨텍스트를 정의합니다.

참고

스크립트는 다른 컨텍스트에서 실행될 수 있지만, 이러한 컨텍스트에 대한 읽기 시스템 지원은 선택 사항입니다. 예를 들어 스크립트 SVG 문서는 [html] object 요소에서 참조될 수 있습니다.

자세한 내용은 스크립트 처리 [epub-rs-33]를 참조하십시오.

EPUB 제작자가 코드를 script 요소에 직접 삽입하든, 해당 요소의 src 속성을 통해 참조하든, 실행 컨텍스트에는 차이가 없습니다.

EPUB 제작자가 스크립트에 사용하는 컨텍스트는 스크립트가 수행할 수 있는 작업과 읽기 시스템에서의 지원 가능성 모두에 영향을 주며, 다음 하위 섹션에서 설명합니다.

참고

두 컨텍스트의 차이에 대한 예는 H.2 스크립팅 컨텍스트를 참조하십시오.

6.3.2.2.1 컨테이너 제약 스크립트

컨테이너 제약 스크립트는 다음 중 하나입니다.

컨테이너 제약 스크립트는 자신을 삽입하는 EPUB 콘텐츠 문서(즉, iframe 요소를 포함하는 문서)의 DOM을 수정하는 명령을 포함해서는 MUST NOT 됩니다. 또한 이를 포함하는 사각형의 크기를 조작하는 명령도 포함해서는 MUST NOT 됩니다.

EPUB 제작자읽기 시스템에서 컨테이너 제약 스크립팅에 대한 지원이 리플로 가능 문서에서만 권장된다는 점에 유의해야 합니다 [epub-rs-33]. 또한 읽기 시스템고정 레이아웃 문서에서의 지원은 선택 사항입니다.

EPUB 제작자는 스크립팅 지원이 없는 읽기 시스템에서 컨테이너 제약 스크립트가 우아하게 성능 저하되도록 보장해야 합니다(6.3.2.5 스크립팅 폴백 참조).

참고

스크립팅 사용을 컨테이너 제약 모델로 제한하기로 선택한 EPUB 제작자는 스크립트 콘텐츠와 비스크립트 콘텐츠 사이에서 더 일관된 사용자 경험을 보장할 수 있습니다 (예: 일관된 페이지 나누기 동작).

6.3.2.2.2 스파인 수준 스크립트

스파인 수준 스크립트최상위 콘텐츠 문서 안에 포함된 [html] script 또는 [svg] script 요소의 인스턴스입니다.

EPUB 제작자읽기 시스템에서 스파인 수준 스크립팅 지원이 고정 레이아웃 문서스크롤로 설정된 리플로 가능 문서 [epub-rs-33]에서만 권장된다는 점에 유의해야 합니다. 또한 그 밖의 모든 컨텍스트에서 읽기 시스템 지원은 선택 사항입니다.

스파인 수준 스크립팅을 포함하는 최상위 콘텐츠 문서는 스크립팅이 비활성화되었거나 사용할 수 없을 때(예: 점진적 향상 기법이나 폴백을 사용하여) 정보 손실이나 그 밖의 중대한 품질 저하 없이 사용자가 소비할 수 있는 상태로 유지되어야 SHOULD 합니다. 최상위 콘텐츠 문서에서 비스크립트 환경을 고려하지 않으면 EPUB 출판물을 읽을 수 없게 될 수 있습니다.

6.3.2.3 이벤트 모델

이 섹션은 비규범적입니다.

EPUB 제작자는 자신의 EPUB 출판물에 스크립팅 기능을 추가할 때 가능한 읽기 시스템 구현의 폭넓은 다양성을 고려해야 합니다(예: 모든 기기에 물리적 키보드가 있는 것은 아니며, 많은 경우 소프트 키보드는 텍스트 입력 요소에 대해서만 활성화됩니다). 따라서 EPUB 제작자는 키보드 이벤트에만 의존해서는 안 되며, 원하는 동작을 트리거할 대체 방법을 항상 제공해야 합니다.

6.3.2.4 스크립팅 접근성

스크립팅을 포함하는 EPUB 콘텐츠 문서는 모든 사용자가 콘텐츠를 소비할 수 있도록 관련 [wai-aria] 접근성 기법을 사용해야 SHOULD 합니다.

6.3.2.5 스크립팅 폴백

스크립팅을 포함하는 EPUB 콘텐츠 문서는 그러한 콘텐츠에 대한 폴백을 제공할 수 MAY 있습니다. 이는 ([html] objectcanvas 요소에서 사용할 수 있는 것 같은) 내재적 폴백 메커니즘을 사용하거나, 내재적 폴백이 적용되지 않는 경우 매니페스트 수준 폴백을 사용하여 제공할 수 있습니다.

EPUB 제작자는 스크립트가 핵심 미디어 유형 리소스 또는 그 조각만 생성하도록 보장해야 MUST 합니다.

7. EPUB 내비게이션 문서

7.1 소개

이 섹션은 비규범적입니다.

EPUB 내비게이션 문서필수 구성요소EPUB 출판물의 일부입니다. 이는 EPUB 제작자가 사람이 읽을 수 있고 기계도 읽을 수 있는 전역 내비게이션 계층을 포함할 수 있게 하여, 사용자의 사용성과 접근성을 향상시킵니다.

EPUB 내비게이션 문서는 XHTML 콘텐츠 문서의 특수한 유형으로, 목차읽기 시스템을 위해 정의합니다. 또한 페이지 목록 및 주요 랜드마크 목록 같은 기타 특수 내비게이션 요소를 포함할 수도 있습니다. 이러한 내비게이션 요소에는 처리를 용이하게 하기 위해 콘텐츠에 대한 추가 제한사항이 있습니다.

그러나 EPUB 내비게이션 문서는 기계 처리 전용이 아닙니다. 특수 내비게이션 요소 밖의 EPUB 내비게이션 문서 구조나 콘텐츠에는 제한이 없습니다(즉, EPUB 제작자는 문서의 나머지 부분을 다른 XHTML 콘텐츠 문서처럼 마크업할 수 있습니다). 따라서 선형 읽기 순서의 일부가 될 수도 있어, 중복 목차가 필요하지 않게 합니다. EPUB 제작자는 기계 처리 전용 내비게이션 요소(예: 페이지 목록)를 hidden 속성으로 숨길 수 있습니다.

읽기 시스템은 EPUB 내비게이션 문서에서 찾은 정보를 기반으로 내비게이션 인터페이스를 생성하면서 스크립팅, 스타일링 및 HTML 형식을 제거할 수 있으며, 이로 인해 결과를 읽기 어려워질 수 있음을 유의하십시오. EPUB 제작자가 그러한 형식과 기능을 필요로 한다면, EPUB 내비게이션 문서를 스파인에도 포함해야 합니다. 내비게이션 문서의 스크립팅과 스타일링에 점진적 향상 기법을 사용하면, 비브라우저 컨텍스트에서 렌더링될 때에도 콘텐츠가 무결성을 유지하도록 보장하는 데 도움이 됩니다.

7.2 내비게이션 문서 요구사항

유효한 EPUB 내비게이션 문서:

7.3 nav 요소: 제한사항

nav 요소가 EPUB 내비게이션 문서에서 epub:type 속성을 가질 때, 이 명세는 해당 요소와 그 자손의 콘텐츠 모델을 다음과 같이 제한합니다.

콘텐츠 모델:
nav

이 순서로:

ol

이 순서로:

  • li [1 or more]

li

이 순서로:

  • (span 또는 a) [exactly 1]

  • ol [conditionally required]

spana

임의 순서로:

이러한 요소에 허용되는 속성에는 제한이 없다는 점에 유의하십시오.

추가 요구사항은 아래 정의를 참조하십시오.

nav 요소의 콘텐츠 모델에 대한 다음 설명은 다양한 요소의 목적과 제한사항을 설명합니다.

주의

nav 요소의 표제와 링크는 모든 [html] phrasing content를 허용하지만, 앱 기반 읽기 시스템은 종종 단순한 텍스트 레이블만 지원합니다. 이러한 앱은 HTML 렌더링을 기반으로 하지 않는 자체 내비게이션 위젯을 만들기 때문에, 삽입된 이미지와 멀티미디어, MathML, 인라인 스타일링 및 그 밖의 요소·속성 기반 렌더링 지시를 보존하지 못하는 경우가 많습니다. EPUB 제작자는 이러한 요소가 없을 때 사용성 문제가 발생할 수 있는 곳에서는 이러한 유형의 요소 사용을 피해야 합니다.

적합한 XHTML 콘텐츠 문서로서, EPUB 제작자는 EPUB 내비게이션 문서를 스파인에 포함할 수 MAY 있습니다.

이 명세의 맥락에서, nav 요소 안의 목록 항목의 기본 표시 스타일은 list-style: none 속성 [csssnapshot]과 동일합니다. EPUB 제작자는 스파인에서 문서를 렌더링하기 위해 CSS를 사용하여 대체 목록 스타일링을 지정할 수 MAY 있습니다.

7.4 nav 요소: 유형

7.4.1 소개

이 섹션은 비규범적입니다.

EPUB 내비게이션 문서에 정의된 nav 요소는 epub:type 속성의 값으로 의미적으로 구별됩니다.

이 명세는 세 가지 유형의 내비게이션 보조 기능을 정의합니다.

toc

목차를 포함하는 nav 요소를 식별합니다. toc navEPUB 제작자가 EPUB 내비게이션 문서에 반드시 포함해야 하는 유일한 내비게이션 보조 기능입니다.

page-list

인쇄본 또는 기타 정적으로 페이지가 매겨진 원본의 페이지 목록을 포함하는 nav 요소를 식별합니다.

landmarks

관심 지점 목록을 포함하는 nav 요소를 식별합니다.

EPUB 내비게이션 문서는 이러한 유형 각각에 대해 최대 하나의 내비게이션 보조 기능을 포함할 수 있습니다.

EPUB 내비게이션 문서는 추가 내비게이션 유형을 포함할 수 있습니다. 자세한 내용은 7.4.5 기타 nav 요소를 참조하십시오.

7.4.2 toc nav 요소

EPUB 출판물의 기본 내비게이션 계층은 nav 요소 [html] 안에 정의되며, 그 epub:type 속성은 "toc" [epub-ssv-11] 값으로 설정됩니다 (즉, toc nav 요소). 이 요소는 개념적으로 인쇄물의 목차에 해당하며 — 출판물의 주요 구조 섹션으로 가는 내비게이션을 제공합니다.

EPUB 제작자toc nav 요소 안의 참조 순서가 다음 두 가지를 모두 반영하도록 정렬해야 SHOULD 합니다.

7.4.3 page-list nav 요소

페이지 목록은 콘텐츠 안의 정적 페이지 경계로 가는 내비게이션을 제공합니다. 이러한 경계는 인쇄본 같은 정적으로 페이지가 매겨진 원본에 대응할 수도 있고, 오직 EPUB 출판물을 위해 정의될 수도 있습니다.

페이지 목록은 nav 요소 [html] 안에 정의되며, 그 epub:type 속성은 "page-list" [epub-ssv-11] 값으로 설정됩니다 (즉, page-list nav 요소).

page-list nav 요소는 EPUB 내비게이션 문서에서 OPTIONAL이며 두 번 이상 나타나서는 MUST NOT 됩니다.

page-list nav 요소는 단일 ol 자손만 포함해야 SHOULD 합니다 (즉, 중첩된 하위 목록 없음).

EPUB 제작자는 각 EPUB 콘텐츠 문서에서 pagebreak 용어 [epub-ssv-11]를 사용하여 page-list 참조의 목적지를 식별할 수 MAY 있습니다.

7.4.4 landmarks nav 요소

랜드마크는 콘텐츠의 기본 구조 구성요소를 식별하여 읽기 시스템이 사용자에게 그 요소들에 효율적으로 접근할 수 있게 합니다(예: 사용자 인터페이스의 전용 버튼을 통해).

랜드마크는 nav 요소 [html] 안에 정의되며, 그 epub:type 속성은 "landmarks" [epub-ssv-11] 값으로 설정됩니다 (즉, landmarks nav 요소).

landmarks nav 요소는 EPUB 내비게이션 문서에서 OPTIONAL이며 두 번 이상 나타나서는 MUST NOT 됩니다.

landmarks nav 요소는 단일 ol 자손만 포함해야 SHOULD 합니다 (즉, 중첩된 하위 목록 없음).

epub:type 속성은 landmarks nav 요소의 a 요소 자손에서 REQUIRED입니다. landmarks nav 요소 안의 각 링크 대상의 구조적 의미론은 이 속성의 값으로 결정됩니다.

landmarks nav는 같은 리소스 또는 그 조각을 참조하는 동일한 epub:type 값을 가진 여러 항목을 포함해서는 MUST NOT 됩니다.

EPUB 제작자landmarks nav 안에 정의하는 항목의 수를 읽기 시스템이 사용자 인터페이스에서 사용할 가능성이 있는 항목으로만 제한해야 합니다. 이 요소는 목차를 반복하기 위한 것이 아닙니다.

사용 가능한 경우 다음 랜드마크를 포함하는 것이 권장됩니다.

  • bodymatter [epub-ssv-11] — 읽기 시스템은 사용자가 읽기를 시작할 때 전면부를 건너뛰도록 자동 이동시키는 데 이 랜드마크를 자주 사용합니다.
  • toc [epub-ssv-11] — 목차가 스파인에서 사용 가능한 경우, 읽기 시스템은 사용자를 그 목차가 포함된 문서로 이동시키는 데 이 랜드마크를 사용할 수 있습니다.

landmarks nav에 포함할 수 있는 다른 가능성으로는 색인 및 용어집 같은 주요 참조 섹션이 있습니다.

landmarks nav는 읽기 시스템 사용을 의도하지만, EPUB 제작자는 landmarks nav의 레이블이 사람이 읽을 수 있도록 계속 보장해야 합니다. 읽기 시스템은 링크를 사용자에게 직접 노출할 수 있습니다.

7.4.5 기타 nav 요소

EPUB 내비게이션 문서는 앞선 섹션에서 정의한 toc, page-list, 및 landmarks nav 요소 외에도 하나 이상의 nav 요소를 포함할 수 MAY 있습니다. 이러한 nav 요소가 읽기 시스템 처리를 의도한다면, epub:type 속성을 가져야 MUST 하며, 7.3 nav 요소: 제한사항에 정의된 콘텐츠 모델 제한사항의 적용을 받습니다.

이 명세는 추가 nav 요소의 의미론에 제한을 부과하지 않습니다. 이들은 모든 정보 도메인에 대한 내비게이션 의미론을 나타낼 수 MAY 있으며, 동질적이거나 이질적인 의미론을 가진 링크 대상을 포함할 수 MAY 있습니다.

7.5 스파인에서 사용하기

이 섹션은 비규범적입니다.

EPUB 내비게이션 문서스파인에서 재사용하는 것은 가능하지만, 모든 내비게이션 구조나 그 안의 모든 분기가 필요한 것은 아닌 경우가 많습니다. EPUB 제작자는 보통 페이지 목록landmarks 내비게이션 요소를 숨기거나, 하위 섹션 수준이 많은 책의 목차 분기를 줄이고 싶어 할 것입니다.

display 속성 [csssnapshot]은 뷰포트가 있는 읽기 시스템에서 EPUB 내비게이션 문서의 시각적 렌더링을 제어하지만, 뷰포트가 없는 읽기 시스템은 CSS를 지원하지 않을 수 있습니다. 이러한 읽기 시스템에서 적절한 렌더링을 더 잘 보장하기 위해, EPUB 제작자는 [html] hidden 속성을 사용하여 내비게이션 데이터의 어떤 부분(있다면)이 콘텐츠 흐름에서 렌더링되지 않도록 제외되는지 나타내야 합니다.

hidden 속성은 읽기 시스템이 콘텐츠 흐름 밖에서 내비게이션 데이터를 렌더링하는 방식 (예: 읽기 시스템이 제공하는 전용 내비게이션 사용자 인터페이스)에는 영향을 주지 않습니다.

참고

hidden 속성은 모든 읽기 시스템에서 상호운용성을 극대화하기 위해 display 속성과 함께 사용할 수 있습니다.

8. 레이아웃 렌더링 제어

8.1 소개

이 섹션은 비규범적입니다.

모든 렌더링 정보를 EPUB이 기반으로 하는 하위 기술만으로 표현할 수 있는 것은 아닙니다. 예를 들어, CSS가 포함된 HTML은 강력한 레이아웃 기능을 제공하지만, 이러한 기능은 렌더링되는 문서의 범위로 제한됩니다.

이 섹션은 EPUB 제작자가 패키지 수준의 렌더링 의도(즉, EPUB 읽기 시스템에 의해서만 구현될 수 있는 기능)를 표현할 수 있게 하는 속성을 정의합니다. 읽기 시스템이 원하는 렌더링을 지원하는 경우, 이러한 속성은 EPUB 제작자가 최적으로 설계한 대로 콘텐츠를 사용자에게 제시할 수 있게 합니다.

8.2 고정 레이아웃

8.2.1 소개

이 섹션은 비규범적입니다.

EPUB 출판물은 인쇄 책이나 PDF 파일과 달리 변화하도록 설계되었습니다. 콘텐츠는 화면과 사용자의 필요에 맞게 흐르거나 다시 흐릅니다. 렌더링과 CSS에서 언급한 것처럼 “콘텐츠 표현은 사용자가 특정 콘텐츠 표현에 맞춰야 하는 것이 아니라 사용자에게 맞게 조정됩니다.” [epub-overview-33]

그러나 이 원칙이 모든 유형의 문서에 적용되는 것은 아닙니다. 때로는 콘텐츠와 디자인이 너무 얽혀 있어 이를 분리할 수 없습니다. 외형의 어떤 변경도 의미를 바꾸거나 모든 의미를 잃을 위험이 있습니다. 고정 레이아웃 문서는 콘텐츠에 리플로 가능한 EPUB이 적합하지 않을 때 EPUB 제작자에게 표현에 대한 더 큰 제어권을 제공합니다.

EPUB 제작자는 패키지 문서 속성 집합을 사용하여 고정 레이아웃을 정의하고, 읽기 시스템에서의 렌더링을 제어합니다. 또한 각 고정 레이아웃 문서의 치수를 해당 EPUB 콘텐츠 문서에 설정합니다.

참고

EPUB 3은 고정 레이아웃 콘텐츠를 표현하기 위한 여러 메커니즘을 제공합니다. 고정 레이아웃 콘텐츠가 필요한 경우, EPUB 제작자가 선택하는 메커니즘은 원하는 정밀도, 파일 크기, 접근성 등을 포함한 많은 요인에 따라 달라집니다. 이 섹션은 EPUB 제작자의 메커니즘 선택을 지시하려 하지 않습니다.

8.2.2 고정 레이아웃 패키지 설정

8.2.2.1 레이아웃

rendition:layout 속성은 콘텐츠가 리플로 가능한지 또는 사전 페이지화되었는지를 지정합니다.

rendition:layout 속성meta 요소에 지정되면, 페이지화된 또는 리플로 가능한 레이아웃 스타일이 전역적으로 적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).

EPUB 제작자rendition:layout 속성에 다음 값 중 하나를 사용해야 MUST 합니다.

reflowable

콘텐츠가 사전 페이지화되지 않습니다(즉, 읽기 시스템이 렌더링할 때 동적 페이지화를 적용합니다). 기본값.

pre-paginated

콘텐츠가 사전 페이지화됩니다(즉, 읽기 시스템은 렌더링할 때 스파인 itemref 하나당 정확히 한 페이지를 생성합니다).

참고

읽기 시스템은 일반적으로 사전 페이지화된 문서에 사용자 또는 사용자 에이전트 스타일시트 적용을 제한하거나 거부합니다. 동적 스타일 변경이 그러한 문서의 고유 속성에 의도하지 않은 결과를 가져올 가능성이 높기 때문입니다. EPUB 제작자는 리플로 가능한 콘텐츠 대신 사전 페이지화된 콘텐츠를 사용하기로 선택할 때, 이러한 제한이 사용성과 접근성에 미치는 부정적 영향을 고려해야 합니다. 관련 정보는 지침 1.4 - 텍스트 구성 제공 [uaag20]을 참조하십시오.

스파인 항목에 대해 속성이 pre-paginated로 설정된 경우, 해당 콘텐츠 치수는 8.2.2.6 콘텐츠 문서 치수에 정의된 대로 설정되어야 MUST 합니다.

EPUB 제작자는 rendition:layout 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.

또한 refines 속성을 사용하여 이 속성을 선언해서는 MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.2.2.1.1 레이아웃 재정의를 참조하십시오.

8.2.2.1.1 레이아웃 재정의

EPUB 제작자는 주어진 스파인 항목에 대한 전역 값을 재정의하기 위해, 다음 속성을 스파인 itemref 요소에 로컬로 지정할 수 MAY 있습니다.

rendition:layout-pre-paginated
주어진 스파인 항목이 사전 페이지화되었음을 지정합니다.
rendition:layout-reflowable
주어진 스파인 항목이 리플로 가능함을 지정합니다.

EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.

8.2.2.2 방향

rendition:orientation 속성은 EPUB 제작자가 콘텐츠가 렌더링되기를 의도하는 방향을 지정합니다.

rendition:orientation 속성meta 요소에 지정되면, 의도된 방향이 전역적으로 적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).

EPUB 제작자rendition:orientation 속성에 다음 값 중 하나를 사용해야 MUST 합니다.

landscape

읽기 시스템은 콘텐츠를 가로 방향으로 렌더링해야 합니다.

portrait

읽기 시스템은 콘텐츠를 세로 방향으로 렌더링해야 합니다.

auto

콘텐츠에 방향 제약이 없습니다. 기본값.

EPUB 제작자는 rendition:orientation 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.

또한 refines 속성을 사용하여 이 속성을 선언해서는 MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.2.2.2.1 방향 재정의를 참조하십시오.

8.2.2.2.1 방향 재정의

EPUB 제작자는 주어진 스파인 항목에 대한 전역 값을 재정의하기 위해, 다음 속성을 스파인 itemref 요소에 로컬로 지정할 수 MAY 있습니다.

rendition:orientation-auto
읽기 시스템이 스파인 항목을 렌더링할 방향을 결정함을 지정합니다.
rendition:orientation-landscape
읽기 시스템이 주어진 스파인 항목을 가로 방향으로 렌더링해야 함을 지정합니다.
rendition:orientation-portrait
읽기 시스템이 주어진 스파인 항목을 세로 방향으로 렌더링해야 함을 지정합니다.

EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.

8.2.2.3 합성 펼침면

rendition:spread 속성은 의도된 읽기 시스템 합성 펼침면 동작을 지정합니다.

rendition:spread 속성이 meta 요소에 지정되면, 의도된 합성 펼침면 동작이 전역적으로 적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).

EPUB 제작자rendition:spread 속성에 다음 값 중 하나를 사용해야 MUST 합니다.

none

스파인 항목을 합성 펼침면에 포함하지 않습니다. 읽기 시스템은 항목을 화면 중앙에 위치한 단일 뷰포트에 표시해야 합니다.

landscape

장치가 가로 방향일 때만 스파인 항목에 대해 합성 펼침면을 렌더링합니다.

portrait (사용 중단됨)

세로 방향에서만 펼침면을 사용하는 것은 사용 중단됨입니다.

세로 방향에서 읽을 수 있는 펼침면은 가로 방향에서도 읽을 수 있으므로, EPUB 제작자는 대신 "both" 값을 사용해야 합니다.

both

장치 방향과 관계없이 합성 펼침면을 렌더링합니다.

auto

EPUB 제작자가 명시적인 합성 펼침면 동작을 정의하지 않습니다. 기본값.

EPUB 제작자는 rendition:spread 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.

또한 refines 속성을 사용하여 이 속성을 선언해서는 MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.2.2.3.1 합성 펼침면 재정의를 참조하십시오.

참고

XHTMLSVG 콘텐츠 문서의 맥락에서 합성 펼침면을 사용할 때, viewport meta 요소viewBox 속성을 통해 제공된 치수는 각각 펼침면의 한 페이지 크기를 나타냅니다.

참고

page-progression-direction 속성을 사용한 전역 흐름 방향 선언과 콘텐츠 문서 내의 로컬 페이지 진행 방향에 대한 정보는 spine 요소를 참조하십시오.

8.2.2.3.1 합성 펼침면 재정의

EPUB 제작자는 주어진 스파인 항목에 대한 전역 값을 재정의하기 위해, 다음 속성을 스파인 itemref 요소에 로컬로 지정할 수 MAY 있습니다.

rendition:spread-auto
읽기 시스템이 스파인 항목에 대해 합성 펼침면을 언제 렌더링할지 결정함을 지정합니다.
rendition:spread-both
읽기 시스템이 스파인 항목에 대해 세로 및 가로 방향 모두에서 합성 펼침면을 렌더링해야 함을 지정합니다.
rendition:spread-landscape
읽기 시스템이 가로 방향일 때만 스파인 항목에 대해 합성 펼침면을 렌더링해야 함을 지정합니다.
rendition:spread-none
읽기 시스템이 스파인 항목에 대해 합성 펼침면을 렌더링해서는 안 됨을 지정합니다.
rendition:spread-portrait

rendition:spread-portrait 속성은 사용 중단됨입니다.

자세한 내용은 [epubpublications-301]의 spread-portrait 속성 정의를 참조하십시오.

EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.

8.2.2.4 펼침면 배치

읽기 시스템합성 펼침면을 렌더링할 때 기본 동작은 다음 EPUB 콘텐츠 문서를 다음 사용 가능한 비어 있는 뷰포트에 렌더링하여 펼침면을 채우는 것입니다. 여기서 다음 사용 가능한 뷰포트는 주어진 페이지 진행 방향이나 EPUB 콘텐츠 문서 내의 로컬 선언에 의해 결정됩니다. EPUB 제작자는 자신의 스파인 itemref 요소에 다음 속성 중 하나를 지정하여 이 자동 채우기 동작을 재정의하고, 읽기 시스템이 문서를 특정 뷰포트에 배치하도록 강제할 수 MAY 있습니다.

rendition:page-spread-center
rendition:page-spread-center 속성은 스파인 항목을 가운데 배치하기 위한 spread-none 속성의 별칭입니다.
rendition:page-spread-left
rendition:page-spread-left 속성은 스파인 항목을 두 페이지 펼침면의 왼쪽 슬롯에 배치하기 위한 page-spread-left 속성의 별칭입니다.
rendition:page-spread-right
rendition:page-spread-right 속성은 스파인 항목을 두 페이지 펼침면의 오른쪽 슬롯에 배치하기 위한 page-spread-right 속성의 별칭입니다.

rendition:page-spread-center, rendition:page-spread-left, 및 rendition:page-spread-right 속성은 사전 페이지화된 콘텐츠와 리플로 가능한 콘텐츠 모두에 적용됩니다. 이들은 읽기 시스템이 합성 펼침면을 생성할 때만 적용됩니다.

EPUB 제작자는 특정 장치 방향에서 펼침면을 사용하도록 자주 표시하지만, 콘텐츠 자체가 실제 펼침면을 나타내는 것은 아닙니다(즉, 두 페이지짜리 지도처럼 읽기 가능성을 위해 읽기 시스템이 나란히 렌더링해야 하는 두 개의 연속 페이지). 두 개의 연속 페이지가 실제 펼침면을 나타낸다는 것을 표시하려면, EPUB 제작자는 인접한 두 EPUB 콘텐츠 문서에 대한 스파인 항목에 rendition:page-spread-leftrendition:page-spread-right 속성을 사용해야 SHOULD 하며, 한 페이지 표시 또는 두 페이지 표시가 모두 허용되는 스파인 항목에서는 해당 속성을 생략해야 합니다.

EPUB 제작자는 주어진 스파인 항목에 rendition:page-spread-* 속성 및/또는 그 접두사 없는 동등 항목을 둘 이상 선언해서는 MUST NOT 안 됩니다(예: 읽기 시스템이 속성 중 하나만 지원하는 경우에 대비하여 "rendition:page-spread-left page-spread-left"를 둘 다 지정하는 것은 유효함).

참고

rendition:page-spread-leftrendition:page-spread-right 속성은 모든 고정 레이아웃 속성에 단일 어휘를 사용할 수 있도록 만들어졌습니다. EPUB 제작자는 어느 속성 집합이든 사용할 수 있지만, 오래된 읽기 시스템은 접두사 없는 버전만 인식할 수 있습니다.

rendition:page-spread-center는 EPUB 제작자가 두 페이지 펼침면과 단일 가운데 페이지 사이를 전환하는 과정을 더 쉽게 이해할 수 있도록 만들어졌습니다. EPUB 제작자는 읽기 시스템에서 펼침면 동작을 비활성화하기 위해 rendition:page-spread-center 또는 spread-none 중 어느 것이든 사용할 수 있습니다.

8.2.2.5 뷰포트 치수(사용 중단됨)

rendition:viewport 속성은 EPUB 제작자rendition:layout 속성이 pre-paginated로 설정된 XHTMLSVG 콘텐츠 문서에 대해 CSS initial containing block (ICB) [css2]을 표현할 수 있게 합니다.

이 속성의 사용은 사용 중단됨입니다.

자세한 내용은 [epubpublications-301]의 rendition:viewport 속성 정의를 참조하십시오.

8.2.2.6 콘텐츠 문서 치수

이 섹션은 고정 레이아웃 문서의 치수 속성을 표현하고 해석하기 위한 규칙을 정의합니다.

고정 레이아웃 문서는 해당 형식에 적용되는 방식으로 자신의 initial containing block [css2]을 지정합니다.

XHTML에서 표현

XHTML 고정 레이아웃 문서의 경우, initial containing block [css2]은 viewport meta 태그 안의 REQUIRED heightwidth 정의에서 얻어지며, 여기서:

  • height 속성은 자신의 으로 양의 number [css2] 또는 키워드 device-height를 가져야 MUST 하며;
  • width 속성은 자신의 값으로 양의 number [css2] 또는 키워드 device-width를 가져야 MUST 합니다.

device-widthdevice-height 값은 각각 읽기 시스템의 뷰포트 너비와 높이의 100%를 가리킵니다.

heightwidth 정의는 [html] head 요소 안에서 문서 순서상 첫 번째 viewport meta 태그에 지정되어야 MUST 합니다. 읽기 시스템은 이후의 viewport meta 태그를 무시합니다.

EPUB 제작자는 viewport meta 태그 안에 둘 이상의 height 또는 width 정의를 지정해서는 MUST NOT 안 됩니다.

SVG에서 표현

SVG 고정 레이아웃 문서의 경우, initial containing block [css2] 치수는 viewBox 속성 [svg]을 사용하여 표현되어야 MUST 합니다.

참고

initial containing block 정의는 그것이 정의된 문서에만 영향을 줍니다. 같은 출판물 안의 다른 콘텐츠 문서에 있는 containing block의 치수는 다를 수 있습니다.

8.3 리플로 가능 레이아웃

EPUB 콘텐츠 문서의 렌더링을 제어하여 고정 레이아웃을 만드는 것은 다른 기술로 처리되지 않는 명백한 필요이지만, 리플로 가능한 콘텐츠에도 EPUB 출판물에 고유한 고려사항이 있습니다(예: 뷰포트에서 콘텐츠 흐름을 처리하는 방법). 이 섹션은 EPUB 제작자가 리플로 가능한 콘텐츠의 표현 측면을 제어할 수 있게 하는 속성을 정의합니다.

8.3.1 rendition:flow 속성

rendition:flow 속성은 EPUB 제작자읽기 시스템이 콘텐츠 오버플로를 처리하는 방식에 대해 선호하는 바를 지정합니다.

rendition:flow 속성meta 요소에 지정되면, 오버플로 콘텐츠 처리에 대한 EPUB 제작자의 전역 선호를 나타냅니다(즉, 모든 스파인 항목에 대해). EPUB 제작자는 동적 페이지화 또는 스크롤을 선호한다고 나타낼 수 MAY 있습니다. 스크롤 콘텐츠의 경우, 연속된 EPUB 콘텐츠 문서를 하나의 연속 스크롤 보기로 렌더링할지, 또는 각각을 별도로 렌더링할지(즉, 각 문서 사이에 동적 페이지 나누기를 두는지)를 지정할 수도 있습니다.

EPUB 제작자는 rendition:flow 속성에 다음 값 중 하나를 사용해야 MUST 합니다.

paginated

모든 오버플로 콘텐츠를 동적으로 페이지화합니다.

scrolled-continuous

모든 EPUB 콘텐츠 문서를 오버플로 콘텐츠가 스크롤 가능하도록 렌더링하고, EPUB 출판물을 스파인 항목에서 스파인 항목으로 이어지는 하나의 연속 스크롤로 제시합니다 (로컬로 재정의된 경우 제외).

EPUB 제작자는 리소스마다 블록 흐름 방향이 서로 다른 출판물을 만들어서는 SHOULD NOT 안 됩니다. EPUB 읽기 시스템에서 연속 스크롤 렌디션이 문제가 될 수 있기 때문입니다.

scrolled-doc

모든 EPUB 콘텐츠 문서를 오버플로 콘텐츠가 스크롤 가능하도록 렌더링하고, 각 스파인 항목을 별도의 스크롤 가능한 문서로 제시합니다.

auto

읽기 시스템의 기본 방법 또는 사용자 선호 중 적용 가능한 것에 따라 오버플로 콘텐츠를 렌더링합니다. 기본값.

두 개의 리플로 가능한 EPUB 콘텐츠 문서가 스파인에서 순차적으로 나타날 때, 해당 [html] body 요소의 기본 렌더링은 page-break-before 속성 [csssnapshot]이 always로 설정된 것과 일관된다는 점에 유의하십시오. rendition:flow 속성을 사용하는 것 외에도, EPUB 제작자는 읽기 시스템이 그러한 재정의를 지원하는 경우 적절한 스타일시트 선언을 통해 이 동작을 재정의할 수 MAY 있습니다.

EPUB 제작자는 rendition:flow 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.

또한 refines 속성을 사용하여 이 속성을 선언해서는 MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.3.1.1 스파인 재정의를 참조하십시오.

그림 6 단일 스파인 항목이 있고 rendition:flowpaginated로 설정된 EPUB 출판물의 렌더링.
단일 문서에 대해 생성된 페이지화된 콘텐츠의 연속 진행.
이미지 설명

세 개의 열 모양 직사각형이 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있으며, 텍스트가 한 직사각형에서 다음 직사각형으로 흐릅니다. 텍스트는 'Chapter 1', '2', 및 '3'이라는 머리글로 구획되어 있습니다. 가장 왼쪽 직사각형은 태블릿의 개략도 안에 포함되어 있습니다.

그림 7 여러 스파인 항목이 있고 rendition:flowpaginated로 설정된 EPUB 출판물의 렌더링.
각 문서에 대해 생성된 페이지화된 콘텐츠의 연속 진행이며, 문서 사이에서
					새 페이지로 전환됨.
이미지 설명

세 개의 열 모양 직사각형이 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있으며, 텍스트가 한 직사각형에서 다음 직사각형으로 흐릅니다. 텍스트는 'Chapter 1', '2'라는 머리글로 구획되어 있습니다. 'Chapter 2' 섹션은 가장 오른쪽 직사각형의 맨 위에서 시작되어 가운데 직사각형의 아래쪽에 빈 공간을 남깁니다. 가장 왼쪽 직사각형은 태블릿의 개략도 안에 포함되어 있습니다.

그림 8 단일 스파인 항목이 있고 rendition:flowscrolled-continuous로 설정된 EPUB 출판물의 렌더링.
콘텐츠의 연속 스크롤 진행이 사용자 화면 밖으로 세로로 이어지고,
					새 문서가 나타나는 대로 아래쪽에 추가됨.
이미지 설명

단일 열 모양의 띠(즉, 아래쪽 가장자리가 없는 직사각형)에 텍스트가 띠를 따라 아래로 흐릅니다. 텍스트는 'Chapter 1', '2'라는 머리글로 구획되어 있습니다. 띠의 위쪽 부분은 태블릿의 개략도 안에 포함되어 있습니다.

그림 9 여러 스파인 항목이 있고 rendition:flowscrolled-doc로 설정된 EPUB 출판물의 렌더링.
각 문서 안의 콘텐츠만 스크롤 가능한 방식을 나타내는 스크롤 가능한 문서의 진행.
이미지 설명

세 개의 열 모양 띠(즉, 아래쪽 가장자리가 없는 직사각형)가 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있고, 각 띠에는 텍스트가 아래로 흐릅니다. 텍스트는 'Chapter 1', '2' 및 '3'이라는 머리글로 구획되어 있습니다. 각 띠는 장 머리글로 시작하여 띠를 따라 아래로 흐릅니다. 가장 왼쪽 띠의 위쪽 부분은 태블릿의 개략도 안에 포함되어 있습니다.

8.3.1.1 스파인 재정의

EPUB 제작자는 주어진 스파인 항목에 대한 전역 값을 재정의하기 위해, 다음 속성을 스파인 itemref 요소에 로컬로 지정할 수 MAY 있습니다.

rendition:flow-auto
EPUB 제작자가 오버플로 콘텐츠 처리에 대해 선호를 나타내지 않음을 표시합니다.
rendition:flow-paginated
EPUB 제작자의 선호가 콘텐츠 오버플로를 동적으로 페이지화하는 것임을 표시합니다.
rendition:flow-scrolled-continuous
EPUB 제작자의 선호가 오버플로 콘텐츠에 대해 스크롤 보기를 제공하는 것이며, 이 속성이 있는 연속 스파인 항목을 연속 스크롤로 렌더링해야 함을 표시합니다.
rendition:flow-scrolled-doc
EPUB 제작자의 선호가 오버플로 콘텐츠에 대해 스크롤 보기를 제공하는 것이며, 이 속성이 있는 각 스파인 항목을 별도의 스크롤 가능한 문서로 렌더링해야 함을 표시합니다.

EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.

8.3.2 rendition:align-x-center 속성

rendition:align-x-center 속성은 주어진 스파인 항목이 뷰포트 또는 펼침면에서 수평으로 가운데 정렬되어야 함을 지정합니다.

이 속성은 모든 EPUB 콘텐츠 문서에 대해 전역적으로 설정되어서는 MUST NOT 안 됩니다(즉, refines 속성이 없는 meta 요소에서). 이는 itemref 요소의 properties 속성을 통해 개별 EPUB 콘텐츠 문서에 대한 스파인 재정의로만 사용할 수 있습니다.

참고

이 속성은 주로 콘텐츠 렌더링 안에서 신뢰할 수 있는 가운데 정렬 제어가 없는 상황에서 "Naka-Tobira (中扉)"(섹션 제목 페이지)를 처리하기 위해 개발되었습니다. 그러나 CSS에서 페이지 미디어 지원이 발전함에 따라, 이 속성은 사용 중단될 것으로 예상됩니다. EPUB 제작자는 효과적인 경우 CSS 해결책을 사용하는 것이 권장됩니다.

9. 미디어 오버레이

9.1 소개

이 섹션은 비규범적입니다.

주류 전자책, 교육 도구 및 인쇄물 장애가 있는 사람을 위해 형식화된 전자책은 동기화된 오디오 내레이션을 포함하는 저작물의 몇 가지 예입니다. EPUB 3에서 EPUB 제작자는 미디어 오버레이 문서를 사용하여 사전 녹음된 오디오 내레이션의 타이밍과 그것이 EPUB 콘텐츠 문서 마크업과 어떻게 관련되는지를 설명함으로써 이러한 유형의 책을 만들 수 있습니다. 이 명세는 미디어 오버레이의 파일 형식을 [smil3]의 하위 집합으로 정의합니다. 이는 XML에서 동기화된 멀티미디어 정보를 표현하기 위한 W3C 권고입니다.

미디어 오버레이가 가능하게 하는 텍스트와 오디오의 동기화는 전통적인 책의 텍스트를 따라가는 데 어려움이 있는 모든 사용자에게 향상된 접근성을 제공합니다. 또한 미디어 오버레이는 어떤 이유로든 텍스트를 읽을 수 없는 독자에게 연속적인 청취 경험을 제공하는데, 이는 전통적인 오디오 삽입 기법이 제공할 수 없는 것입니다. 이는 전통적으로 접근성 문제로 여겨지지 않는 목적(예: 언어 학습)에도 유용합니다.

미디어 오버레이 기능은 이 기능을 지원하지 않는 EPUB 읽기 시스템에는 투명합니다. EPUB 출판물에 미디어 오버레이를 포함해도, 미디어 오버레이를 인식하지 못하는 읽기 시스템이 마치 미디어 오버레이가 없는 것처럼 EPUB 출판물을 렌더링하는 능력에는 영향을 주지 않습니다.

EPUB의 미디어 오버레이는 오디오북과 동등하지 않습니다. 오디오북은 주로 오디오 기반이며 텍스트는 가끔 대체 형식으로 제공되기 때문입니다. W3C [audiobooks] 권고는 오디오 출판물을 만들기 위한 것입니다.

이 명세의 향후 버전은 비디오 미디어 지원(예: 동기화된 텍스트/수어 책)을 통합할 수 있지만, 이 버전은 오디오 미디어를 EPUB 콘텐츠 문서와 동기화하는 것만 지원합니다.

9.2 미디어 오버레이 문서

9.2.1 미디어 오버레이 문서 요구사항

미디어 오버레이 문서는 다음과 같습니다.

9.2.2 미디어 오버레이 문서 정의

이 섹션에서 정의된 모든 요소 [xml]는 달리 지정되지 않는 한 https://www.w3.org/ns/SMIL 네임스페이스 [xml-names]에 있습니다.

9.2.2.1 smil 요소

smil 요소는 미디어 오버레이 문서의 모든 정보를 캡슐화합니다.

요소 이름:

smil

사용법:

미디어 오버레이 문서의 REQUIRED 루트 요소 [xml].

속성:
version [required]

미디어 오버레이 문서가 따르는 [smil3] 명세의 버전 번호를 지정합니다.

이 속성은 "3.0" 값을 가져야 MUST 합니다.

id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

epub:prefix [optional]

추가 메타데이터 어휘 접두사를 선언합니다.

자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.

콘텐츠 모델:

이 순서로:

9.2.2.2 head 요소

head 요소는 미디어 오버레이 문서 안의 메타데이터를 위한 컨테이너입니다.

요소 이름:

head

사용법:

head 요소는 smil 요소의 OPTIONAL 첫 번째 자식입니다.

속성:

없음

콘텐츠 모델:

metadata [0 or 1]

이 명세는 미디어 오버레이 문서에 반드시 나타나야 하는 메타데이터 속성을 정의하지 않으므로, head 요소는 OPTIONAL입니다.

9.2.2.3 metadata 요소

metadata 요소는 미디어 오버레이 문서의 메타데이터를 나타냅니다. metadata 요소는 임의의 메타정보 구조화 언어에서 온 메타데이터를 포함할 수 있게 하는 확장 지점입니다.

요소 이름:

metadata

사용법:

head 요소의 자식으로.

속성:

없음

콘텐츠 모델:

임의의 네임스페이스에서 온 요소 [0 or more]

이 명세는 미디어 오버레이 문서에서 어떤 메타데이터 속성도 요구하지 않습니다. metadata 요소는 사용자 정의 메타데이터 요구사항을 위해 제공됩니다.

9.2.2.4 body 요소

body 요소는 미디어 오버레이 문서에 포함된 표현의 시작점입니다. 이는 parseq 요소의 주요 시퀀스를 포함합니다.

요소 이름:

body

사용법:

body 요소는 smil 요소의 REQUIRED 자식입니다. 해당 요소가 존재하는 경우 head 요소 뒤에 옵니다.

속성:
epub:type [optional]

대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.

값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.

id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

epub:textref [optional]

관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

콘텐츠 모델:

임의 순서로:

  • seq [0 or more]

  • par [0 or more]

par 또는 seq를 적어도 하나 포함해야 MUST 합니다.

9.2.2.5 seq 요소

seq 요소는 미디어 객체 및/또는 자식 시간 컨테이너를 위한 순차 시간 컨테이너입니다.

요소 이름:

seq

사용법:

하나 이상의 seq 요소는 body 요소 및 seq 요소의 자식으로 나타날 수 MAY 있습니다.

속성:
epub:type [optional]

대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.

값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.

id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

epub:textref [required]

관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

자세한 내용은 9.3.2.1 오버레이 구조를 참조하십시오.

콘텐츠 모델:

임의 순서로:

  • seq [0 or more]

  • par [0 or more]

par 또는 seq를 적어도 하나 포함해야 MUST 합니다.

9.2.2.6 par 요소

par 요소는 미디어 객체를 위한 병렬 시간 컨테이너입니다.

요소 이름:

par

사용법:

하나 이상의 par 요소는 bodyseq 요소의 자식으로 나타날 수 MAY 있습니다.

속성:
epub:type [optional]

대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.

값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.

id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

콘텐츠 모델:

임의 순서로:

9.2.2.7 text 요소

text 요소는 EPUB 콘텐츠 문서 안의 요소를 참조합니다. text 요소는 일반적으로 텍스트 요소를 참조하지만, 다른 EPUB 콘텐츠 문서 미디어 요소를 참조할 수도 있습니다. 형제 audio 요소가 없는 경우, 이 요소가 참조하는 텍스트 콘텐츠는 텍스트 음성 변환을 통해 렌더링될 수 있습니다.

요소 이름:

text

사용법:

par 요소의 REQUIRED 자식으로.

속성:
src [required]

관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

콘텐츠 모델:

비어 있음

참고

이 명세는 text 요소의 src 속성에 제한을 두지 않습니다. 그러나 EPUB 제작자스타일 정보와의 연결이 효과적이 되도록 CSS로 스타일링할 수 있는 콘텐츠를 참조해야 합니다(즉, XHTML의 palpable content 또는 SVG의 paths, basic shapes, 또는 text 요소).

참고

[epub-rs-33]는 더 이상 읽기 시스템에 시간 지정 미디어의 재생(즉, 참조된 미디어의 자동 시작)에 대한 지침을 제공하지 않습니다. text 요소의 src 속성은 삽입된 시간 지정 미디어(예: [htmlvideo 요소를 통해)를 참조할 수 있지만, 그러한 미디어를 참조하면 예측할 수 없는 결과가 발생할 수 있습니다.

9.2.2.8 audio 요소

audio 요소는 오디오 미디어 클립을 나타냅니다.

요소 이름:

audio

사용법:

par 요소의 OPTIONAL 자식.

속성:
id [optional]

문서 범위 안에서 고유해야 MUST 하는 요소의 ID [xml].

src [required]

오디오 파일에 대한 relative- 또는 absolute-URL string [url] 참조입니다. 오디오 파일은 핵심 미디어 유형 리소스 표에 나열된 오디오 형식 중 하나여야 MUST 합니다.

clipBegin [optional]

오디오 클립의 시작 지점에 해당하는 물리적 미디어 안의 오프셋을 지정하는 clock value입니다.

[smil3] clock value여야 MUST 합니다.

H.4 Clock values를 참조하십시오.

clipEnd [optional]

오디오 클립의 끝 지점에 해당하는 물리적 미디어 안의 오프셋을 지정하는 clock value입니다.

[smil3] clock value여야 MUST 합니다.

H.4 Clock values를 참조하십시오.

종료 위치의 시간상 오프셋은 clipBegin 속성에 지정된 시작 오프셋보다 뒤에 있어야 MUST 합니다.

콘텐츠 모델:

비어 있음

9.3 미디어 오버레이 만들기

9.3.1 소개

이 섹션은 비규범적입니다.

EPUB 제작자는 출판물의 사전 녹음된 내레이션을 일련의 오디오 클립으로 나타낼 수 있으며, 각 클립은 EPUB 콘텐츠 문서의 일부에 대응합니다. 예를 들어 하나의 오디오 클립은 일반적으로 하나의 구문이나 단락을 나타내지만, 다른 클립이나 문서의 텍스트와의 상대적인 순서를 추론하지는 않습니다. 미디어 오버레이는 [smil3] 마크업을 사용하여 구조화된 오디오 내레이션을 EPUB 콘텐츠 문서의 대응하는 텍스트(또는 다른 미디어)에 연결함으로써 이러한 동기화 문제를 해결합니다. 미디어 오버레이는 실제로 이러한 클립의 재생 순서를 정의하는 SMIL 3.0의 단순화된 하위 집합입니다.

미디어 오버레이를 구조화하는 데 주로 사용되는 SMIL 요소는 body (주요 시퀀스에 사용), seq (시퀀스) 및 par (병렬)입니다. (이러한 요소와 기타 SMIL 요소에 대한 자세한 내용은 9.2.2 미디어 오버레이 문서 정의를 참조하십시오.)

par 요소는 미디어 오버레이의 기본 구성 요소이며 EPUB 콘텐츠 문서의 구문에 대응합니다. 이 요소는 콘텐츠를 동기화하기 위한 두 가지 핵심 정보를 제공합니다. 1) 해당 구문에 대한 내레이션을 포함하는 오디오 클립; 2) 관련 EPUB 콘텐츠 문서 조각을 가리키는 포인터. par 요소는 이 정보를 나타내기 위해 두 개의 미디어 요소 자식을 사용합니다. audio 요소와 text 요소입니다. par 요소의 미디어 객체 자식은 병렬로 시간이 지정되므로, 읽기 시스템은 오디오 클립과 EPUB 콘텐츠 문서 조각을 동시에 렌더링하여 동기화된 표현을 만듭니다.

text 요소의 src 속성은 URL [url] 참조로 EPUB 콘텐츠 문서의 관련 구문, 문장 또는 기타 세그먼트를 참조합니다. audio 요소의 src 속성도 마찬가지로 대응하는 오디오 클립의 위치를 참조하며, 클립 안의 특정 오프셋을 나타내기 위해 OPTIONAL clipBeginclipEnd 속성을 추가합니다.

EPUB 제작자는 par 요소를 순차적으로 함께 배치하여 일련의 구문이나 문장을 형성합니다. EPUB 콘텐츠 문서의 모든 요소가 미디어 오버레이 문서에서 대응하는 par 요소를 가지는 것은 아니며, 오디오 내레이션과 관련된 요소만 가집니다.

EPUB 제작자는 par 요소를 seq 요소에 추가하여 장과 부 같은 더 복잡한 구조를 정의할 수도 있습니다(9.3.2.1 오버레이 구조 참조).

9.3.2 EPUB 콘텐츠 문서와의 관계

참고

이 섹션에서는 EPUB 콘텐츠 문서XHTML 콘텐츠 문서라고 가정합니다. EPUB 제작자가 미디어 오버레이를 SVG 콘텐츠 문서와 함께 사용할 수는 있지만, 재생 동작은 일관되지 않을 수 있으므로 상호운용성이 보장되지 않습니다.

EPUB 제작자는 리플로 가능한 EPUB 콘텐츠 문서와 고정 레이아웃 EPUB 콘텐츠 문서 모두의 재생에 대한 읽기 시스템 지원이 보장되지 않는다는 점도 인식해야 합니다. 읽기 시스템의 페이지화 전략 차이 때문에 일부 읽기 시스템은 한쪽 또는 다른쪽 레이아웃 형식에서만 미디어 오버레이를 지원할 수 있습니다.

9.3.2.1 오버레이 구조

미디어 오버레이 문서body 는 두 요소로 구성됩니다. par 요소와 seq 요소입니다. 이러한 요소의 순서는 읽기 시스템이 재생 중에 대응하는 EPUB 콘텐츠 문서의 콘텐츠를 렌더링하는 방식을 나타냅니다.

par 요소는 단어, 구문, 문장, 표 셀, 목록 항목, 이미지 또는 마크업 안의 기타 식별 가능한 콘텐츠 조각 같은 콘텐츠 세그먼트를 나타냅니다. 각 요소는 재생 중에 표시할 콘텐츠(text 요소 안)와 동기화할 오디오(audio 요소 안)를 모두 식별합니다.

seq 요소는 시퀀스 — 콘텐츠의 논리적 구성요소를 함께 나타내는 seq 및/또는 par 요소 집합 — 를 나타냅니다. EPUB 제작자는 이를 사용하여 섹션, 부가 설명, 머리글, 표, 목록 및 각주 같은 중첩 컨테이너를 나타낼 수 있습니다. 이는 EPUB 제작자가 이러한 컨테이너에 내재한 구조를 미디어 오버레이 문서 안에 유지할 수 있게 합니다.

seq 요소는 epub:textref 속성을 포함해야 MUST 합니다. seq 요소는 동기화 지시를 제공하지 않으므로, 이 속성은 읽기 시스템이 조각을 텍스트 안의 위치와 일치시킬 수 있게 합니다.

참고

섹션, 그림, 표, 각주 같은 구조를 seq 요소로 그룹화하는 이유는 읽기 시스템이 재생 중에 그 시작 및 끝 위치를 식별할 수 있게 하기 위해서입니다. 그러면 읽기 시스템은 긴 그림을 건너뛰기, 페이지 나누기 안내 렌더링 끄기(9.4 건너뛰기 가능성과 빠져나가기 가능성 참조), 또는 표 같은 구조에 맞게 읽기 모드를 사용자 정의하는 등 콘텐츠의 레이아웃에 맞춘 재생 옵션을 제공할 수 있습니다.

9.3.2.2 문서 조각 참조

epub:textref 속성과 text 요소의 src 속성은 관련 EPUB 콘텐츠 문서의 특정 부분(예: ID를 통한 요소)을 참조하는 URL-fragment string을 포함할 수 있습니다.

XHTMLSVG 콘텐츠 문서의 경우, URL-fragment string은 각각 ID를 통한 특정 요소에 대한 참조 또는 SVG Fragment Identifier [svg]이어야 SHOULD 합니다.

EPUB 제작자는 다른 조각 식별자 체계를 사용할 수 MAY 있지만, 읽기 시스템은 그러한 식별자를 지원하지 않을 수 있습니다.

9.3.2.3 오버레이 세분도

이 섹션은 비규범적입니다.

미디어 오버레이의 세분도 수준은 EPUB 제작자EPUB 콘텐츠 문서를 어떻게 마크업하는지와 text 요소의 src 속성 및 seq 요소의 epub:textref 속성에서 사용하는 조각 식별자 유형에 따라 달라집니다. 예를 들어 [html] 요소를 참조할 때, 가장 세밀한 마크업 수준이 단락 수준이라면, 그것이 미디어 오버레이 동기화에서 가능한 가장 세밀한 수준입니다. 마찬가지로 구문이나 문장을 나타내는 [html] span 요소와 같은 하위 단락 마크업을 사용할 수 있다면, 미디어 오버레이에서 더 세밀한 세분도가 가능합니다. 더 세밀한 세분도는 사용자가 단어나 구문으로 탐색하거나 텍스트를 검색할 때 동기화된 재생에 대해 더 정확한 결과를 제공하지만, 미디어 오버레이 문서의 파일 크기를 증가시킵니다. 요소의 존재에 의존하지 않는 조각 식별자 체계는 지원되는 경우 훨씬 더 세밀한 세분도를 제공할 수 있습니다.

9.3.2.4 텍스트 음성 변환 렌더링

이 명세는 사전 녹음된 오디오 클립에 더해 텍스트 음성 변환(TTS) — EPUB 출판물의 텍스트 콘텐츠를 합성 음성을 사용해 인공적인 인간 음성으로 렌더링하는 것 — 의 사용을 허용합니다.

미디어 오버레이 par 요소가 자신의 audio 요소를 생략하는 경우, 그 text 요소는 읽기 시스템에서 TTS를 통해 렌더링될 수 있습니다. 텍스트 조각이 TTS 렌더링에 적절하지 않은 경우(예: 텍스트 요소가 아니거나 텍스트 폴백이 없는 경우), 예기치 않은 결과가 발생할 수 있습니다.

참고

EPUB 출판물에서 TTS 기술을 사용하는 방법에 대한 자세한 내용은 EPUB 3 Text-to-Speech Support [epub-tts-10]를 참조하십시오.

9.3.3 오버레이의 구조적 의미론

구조적 의미론미디어 오버레이 문서에서 표현하기 위해, EPUB 제작자epub:type 속성을 par, seq, 및 body 요소에 지정할 수 MAY 있습니다.

epub:type 속성은 표시된 의미 유형에 적합한 읽기 시스템 동작을 용이하게 합니다. 이러한 동작의 예로는 건너뛰기 가능성과 빠져나가기 가능성표 읽기 모드 [epub-rs-33]가 있습니다.

미디어 오버레이 문서는 추가 의미론을 정의하기 위해 epub:type 속성에 대해 적용 가능한 어휘 연결 메커니즘을 사용할 수 MAY 있습니다.

9.3.4 스타일 정보 연결

EPUB 제작자는 현재 재생 중인 EPUB 콘텐츠 문서 요소에 대한 시각적 렌더링 정보를 저자 정의 클래스를 사용하여 CSS 스타일시트에 표현할 수 MAY 있습니다.

사용하는 경우, EPUB 제작자는 패키지 문서에서 active-classplayback-active-class 속성을 사용하여 클래스 이름을 선언해야 MUST 합니다.

EPUB 제작자는 자신이 정의하는 각 속성에 정확히 하나의 CSS 클래스 이름을 정의해야 MUST 합니다. 각 속성은 선택자를 포함하지 않는 유효한 CSS 클래스 이름 [css2]을 정의해야 MUST 합니다. 이 명세는 이러한 속성과 함께 사용하기 위한 이름을 예약하지 않습니다.

EPUB 제작자는 지정된 CSS 클래스에 대해 임의의 CSS 속성을 정의할 수 MAY 있지만, 관련 미디어 오버레이 문서가 있는 각 EPUB 콘텐츠 문서가 클래스 정의를 포함하는 CSS 스타일시트(삽입되었거나 링크된 것)를 포함하도록 보장해야 합니다. 이러한 정의가 없으면 읽기 시스템은 자체 스타일링을 제공하거나 아무 스타일링도 제공하지 않을 수 있습니다.

EPUB 제작자는 active-classplayback-active-class 속성을 refines 속성과 함께 사용해서는 MUST NOT 안 됩니다. 이 속성들은 항상 전체 EPUB 출판물에 적용되기 때문입니다.

9.3.5 미디어 오버레이 패키징

9.3.5.1 미디어 오버레이 포함

EPUB 콘텐츠 문서미디어 오버레이 문서에 의해 전체 또는 일부 참조되는 경우, 해당 매니페스트 item 요소는 media-overlay 속성을 지정해야 MUST 합니다. 이 속성은 대응하는 미디어 오버레이 문서에 대한 매니페스트 itemID [xml]를 참조해야 MUST 합니다.

EPUB 제작자는 EPUB 콘텐츠 문서를 참조하는 매니페스트 item 요소에만 media-overlay 속성을 지정해야 MUST 합니다.

미디어 오버레이 문서에 대한 매니페스트 항목은 미디어 유형 application/smil+xml을 가져야 MUST 합니다.

9.3.5.2 오버레이 패키지 메타데이터

EPUB 제작자패키지 문서에서 duration 속성이 있는 meta 요소를 사용하여 전체 EPUB 출판물의 재생 시간을 지정해야 MUST 합니다.

또한 EPUB 제작자는 각 미디어 오버레이 문서의 재생 시간을 제공해야 MUST 합니다. EPUB 제작자는 각 재생 시간 선언을 대응하는 매니페스트 item과 연결하기 위해 refines 속성을 사용해야 MUST 합니다.

각 미디어 오버레이 문서의 재생 시간 합계는 총 재생 시간과 ±1초 범위 안에서 같아야 SHOULD 합니다.

참고

개별 재생 시간의 합계는 시간을 초의 가장 가까운 분수로 반올림하기 때문에 총 재생 시간과 정확히 일치하지 않을 수 있지만, 1초보다 큰 차이는 다른 문제에서 발생한 불일치를 나타냅니다.

EPUB 제작자는 패키지 문서에 narrator 정보를 지정할 수도 있고, 현재 재생 중인 EPUB 콘텐츠 문서 요소에 적용할 저자 정의 CSS 클래스 이름도 지정할 수 MAY 있습니다.

참고

media: 접두사는 패키지 메타데이터에 이러한 속성을 포함하기 위해 예약되어 있습니다.

9.4 건너뛰기 가능성과 빠져나가기 가능성

9.4.1 건너뛰기 가능성

읽는 동안 사용자는 각주, 페이지 번호 또는 다른 유형의 보조 콘텐츠 같은 콘텐츠의 특정 기능을 켜거나 끄고 싶을 수 있습니다. 이 기능을 건너뛰기 가능성이라고 합니다. 읽기 시스템은 미디어 오버레이 요소의 epub:type 속성이 제공하는 의미 정보를 사용하여 사용자에게 건너뛸 수 있는 기능의 옵션을 언제 제공할지 결정합니다.

EPUB 제작자는 건너뛰기 가능성을 활성화하기 위해 다음 의미론을 사용할 수 MAY 있습니다.

그러나 이 목록은 완전하지 않습니다. 이는 구조적 의미론 어휘 [epub-ssv-11]에서 읽기 시스템이 건너뛰기 가능성 옵션을 제공할 가능성이 가장 높은 용어를 나타냅니다.

9.4.2 빠져나가기 가능성

빠져나갈 수 있는 항목은 표와 목록 같은 중첩 구조로, 사용자가 이를 건너뛰고 중첩 구조 바로 뒤의 지점에서 계속 읽고 싶어 할 수 있는 항목입니다. 빠져나가기 가능성 기능은 전체 유형의 항목을 활성화하거나 비활성화하지 않고, 그로부터 빠져나갈 출구를 제공한다는 점에서 건너뛰기 가능성 기능과 다릅니다(예: 사용자가 빠져나가기를 선택하기 전에 콘텐츠 일부를 들을 수 있음).

EPUB 제작자는 빠져나가기 가능성을 활성화하기 위해 다음 의미론을 사용할 수 MAY 있습니다.

그러나 이 목록은 완전하지 않습니다. 이는 구조적 의미론 어휘 [epub-ssv-11]에서 읽기 시스템이 빠져나가기 가능성 옵션을 제공할 가능성이 가장 높은 용어를 나타냅니다.

참고

때로는 빠져나갈 수 있는 구조가 다시 빠져나갈 수 있는 구조를 포함할 수 있습니다. 예를 들어 표는 사용자가 별도로 빠져나가고 싶어 할 수 있는 많은 행과 셀로 구성됩니다. 그러한 구조에서 빠져나가는 것에 대한 읽기 시스템 지원은 복잡하며 현재로서는 잘 지원되지 않습니다. EPUB 제작자는 더 나은 지원이 제공될 때까지 중첩된 빠져나갈 수 있는 구조를 식별하는 것을 피해야 합니다.

9.5 내비게이션 문서 오버레이

이 섹션은 비규범적입니다.

EPUB 내비게이션 문서XHTML 콘텐츠 문서이므로, EPUB 제작자미디어 오버레이 문서를 그것과 연결할 수 있습니다. 그러나 전통적인 XHTML 콘텐츠 문서와 달리, 읽기 시스템은 EPUB 내비게이션 문서가 스파인에 포함되어 있지 않더라도 사용자에게 이를 제시해야 합니다 (내비게이션 문서 처리 [epub-rs-33] 참조). 그 결과, 연결된 미디어 오버레이가 동작하는 방식은 컨텍스트에 따라 달라질 수 있습니다.

참고

구체적인 구현 세부사항은 이 명세의 범위를 벗어납니다. DAISY Media Overlays Playback Requirements 문서는 EPUB 제작자를 위한 모범 사례를 설명하고 읽기 시스템 개발자에게 권장사항을 제공합니다.

10. 접근성

이 섹션은 비규범적입니다.

EPUB 3은 기반 기술에 내장된 구조, 의미론, 나아가 접근성을 활용할 수 있도록 명시적으로 오픈 웹 플랫폼을 기반으로 구축됩니다.

접근성 있는 웹 콘텐츠를 만들기 위한 요구사항과 관행은 이미 W3CWeb Content Accessibility Guidelines (WCAG) [wcag2]에 문서화되어 있습니다. 이러한 지침은 EPUB 출판물에서 접근성을 정의하는 기반도 이룹니다.

현재 WCAG 지침(버전 2)은 웹 페이지에 크게 초점을 맞추고 있으므로, 별도의 명세인 EPUB Accessibility [epub-a11y-11]가 이 표준을 EPUB 출판물에 적용하는 방법을 정의합니다. 또한 메타데이터, 페이지화, 미디어 오버레이에 대한 EPUB 전용 요구사항과 권장사항을 추가합니다.

이 명세는 EPUB 출판물이 [epub-a11y-11]에 정의된 접근성 요구사항을 준수할 것을 권장합니다. 이 권장사항을 따르는 이점은 EPUB 출판물이 전 세계 관할권에서 법제화된 접근성 요구사항을 충족하도록 보장하는 데 도움이 된다는 점입니다.

그러나 EPUB 제작자는 법적 의무를 넘어 접근성을 모든 콘텐츠의 요구사항으로 다루어야 합니다. EPUB 출판물이 더 접근성 있을수록, 그 잠재 독자층도 더 커집니다.

참고

이 명세는 접근성 요구사항이 EPUB 명세와 독립적으로 적응하고 발전할 수 있도록 접근성 요구사항을 통합하지 않습니다 — 접근성 관행은 더 자주 업데이트되어야 하는 경우가 많습니다. 접근성 명세는 과거, 현재, 미래 버전의 EPUB과 함께 사용하기 위한 것이기도 합니다. 별도 명세 접근 방식은 EPUB의 발전이 접근성을 특정 시점에 묶어 두지 않도록 보장합니다(즉, 이전 버전의 EPUB 제작자가 최신 접근성 요구사항을 참조할 수 있게 합니다).

11. 보안과 개인정보 보호

11.1 개요

이 섹션은 비규범적입니다.

EPUB 출판물의 특수성은 그 구조에 있습니다. EPUB 형식은 HTML, CSS, SVG, JavaScript 및 기타 리소스를 포함한 구조화되고 의미론적으로 강화된 웹 콘텐츠를 단일 파일 컨테이너로 배포하기 위해 표현, 패키징, 인코딩하는 수단을 제공합니다.

이는 EPUB 3의 보안 및 개인정보 보호 문제가 주로 이러한 형식의 기능과 연결되어 있으며, 웹 콘텐츠가 제시하는 위협을 매우 밀접하게 반영한다는 것을 의미합니다.

콘텐츠 위험은 의도적으로 악의적인 저작 의도와 동일시되는 경우가 많지만, EPUB 제작자는 최선의 의도로 따르는 많은 관행도 사용자를 개인정보 보호 및 보안 문제에 노출할 수 있음을 알아야 합니다. 이 섹션의 나머지 부분은 EPUB 제작자가 이러한 위험을 인식하고 완화하는 데 도움이 되도록 EPUB 3의 위험 모델을 살펴봅니다.

참고

읽기 시스템과 관련된 위험은 [epub-rs-33]의 보안 및 개인정보 보호 섹션을 참조하십시오.

11.2 위협 모델

이 섹션은 비규범적입니다.

EPUB 출판물은 의심하지 않는 사용자에게 다양한 개인정보 보호 및 보안 위협을 제기합니다. 이러한 위협 중 다수는 웹 콘텐츠와 교차하지만, EPUB은 사용자를 속여 악성 콘텐츠에 접근하게 하거나 민감한 정보를 제공하게 하는 데 사용할 수 있는 고유한 공격 방법도 도입합니다. EPUB 제작자와 사용자가 알아야 할 더 중요한 공격 벡터에는 다음이 포함됩니다.

원격 리소스 삽입

EPUB 3은 일부 출판물 리소스원격으로 호스팅될 수 있도록 허용합니다. 구체적으로는 EPUB 출판물의 다운로드와 열기에 부정적인 영향을 줄 수 있는 크기의 리소스(예: 오디오, 비디오, 글꼴)입니다. 의도한 대로 사용될 때 사용자에게 도움이 되지만, 이러한 예외는 출판물에 악성 콘텐츠를 주입하는 데도 사용될 수 있습니다.

이 위협은 악의적 행위자가 만든 콘텐츠에 접근하는 경우로 제한되지 않습니다. EPUB 제작자가 신뢰할 수 없는 출처(예: 제3자 오디오 및 비디오)의 콘텐츠를 삽입하면, 사용자가 손상된 리소스를 받을 가능성은 항상 존재합니다.

배포 시점에 악성코드와 익스플로잇을 검사하는 것도 항상 신뢰할 수 있는 것은 아닙니다. EPUB 컨테이너에 삽입되어 제공되는 리소스와 달리, 악성 콘텐츠는 출판 후 언제든지 교체될 수 있기 때문입니다.

EPUB의 origin은 EPUB 제작자에게 알려져 있지 않으며, 각 읽기 시스템 구현에 따라 달라집니다. 따라서 EPUB 제작자가 자신이 제어하는 웹 서버에 원격 리소스를 호스팅하는 경우, 그 서버는 허용 가능한 origin을 지정해야 하는 보안 기능(예: CORS, Content-Security-Policy, 또는 X-Frame-Options 헤더)을 사실상 사용할 수 없습니다.

외부 리소스로 연결

의도적이든 아니든, 외부 웹 사이트와 리소스로 가는 링크는 사용자를 읽기 시스템이나 운영 체제를 손상시킬 수 있는 잠재적 익스플로잇에 노출합니다. 외부 링크는 일반적으로 웹 브라우저에서 열리고 브라우저 보안 모델의 적용을 받지만, 이것이 모든 익스플로잇으로부터 사용자를 보호하는 것은 아닙니다.

EPUB 제작자의 의도가 악의적이지 않더라도, 외부 링크에 추적 정보를 추가하는 것은 사용자의 동의 없이 사용자의 활동을 추적할 수 있게 하므로 사용자 개인정보 보호에 문제가 됩니다.

깨진 링크 하이재킹 — 도메인이 만료된 뒤 다른 당사자가 이를 구매하여 해당 도메인으로 가는 링크를 악용하는 경우 — 도 EPUB 제작자가 의도하지 않은 리소스로 사용자를 이동하게 할 수 있습니다.

악성 콘텐츠 포함

EPUB 컨테이너에 삽입된 리소스도 악의적 행위자로부터 면역이 있는 것은 아닙니다. 특히 EPUB 출판물을 신뢰할 수 없는 출처에서 얻은 경우 그렇습니다. 리소스에는 익스플로잇이나 의도하지 않은 당사자에게 민감한 정보를 제출할 수 있는 양식이 포함될 수 있습니다. 이러한 행위자는 심볼릭 링크나 파일 별칭 같은 파일 간접 참조 기법을 사용하여 원격 리소스에 접근하려고 시도할 수도 있습니다.

게임 및 퀴즈 같은 제3자 콘텐츠의 사용도 EPUB 제작자가 콘텐츠를 완전히 검증할 수 없는 경우 보안 및 개인정보 보호 문제로 이어질 수 있습니다.

스크립트에 네트워크 접근 허용

스크립트가 장치의 네트워크에 접근할 수 있으면, 사용자를 악용할 수 있는 다양한 채널이 제공됩니다.

  • 악의적이든 아니든 사용자와 사용자의 활동에 관한 정보를 수집;
  • 파일 시스템과 로컬 저장소에 접근하여 정보를 수집하려는 시도;
  • 피싱 시도(예: EPUB 콘텐츠 문서를 신뢰할 수 있는 웹 사이트처럼 보이게 하여 사용자가 로그인 정보를 제출하게 하는 것); 및
  • 외부 사이트에서 악성 콘텐츠를 EPUB 출판물에 주입.

네트워크 접근은 EPUB 제작자의 의도가 아니었더라도 제3자 콘텐츠가 사용자를 악용할 수 있게 할 수 있습니다.

디지털 권리 관리로 콘텐츠 보호

디지털 권리 관리 체계를 사용한 EPUB 출판물의 암호화와 복호화는 사용자, 사용자가 이용하는 공급업체, 사용자의 읽기 선택에 관한 개인 식별 정보를 제3자에게 전달할 수 있게 할 수 있습니다.

이러한 공격의 효과는 또한 사용자가 자신이 상호작용하는 출판물이 신뢰할 수 있는 출처에서 온 것이라고 믿도록 속이는 데 의존하는 경우가 많습니다. 이러한 기만은 다음과 같은 형태를 취할 수 있습니다.

위조된 출판물 정보

EPUB 출판물은 사용자가 이를 합법적인 출처에서 온 것으로 믿도록 속이기 위해 자신에 대한 거짓 정보를 포함할 수 있습니다. 예를 들어 악의적인 EPUB 제작자는 저작물의 제목, 저자, 식별자, 출판사를 위조할 수 있습니다.

이 잘못된 정보 자체가 즉각적인 피해를 주지는 않지만, 사용자가 EPUB 출판물 안의 악성 양식, 링크 및 기타 콘텐츠를 신뢰할 수 있는 출처에서 온 것으로 믿고 신뢰하게 만들 수 있습니다.

스푸핑된 플랫폼

악의적인 EPUB 제작자는 사용자가 자신의 콘텐츠를 신뢰하도록 속이기 위해 플랫폼의 경험을 모방하거나 복제하도록 콘텐츠를 설계할 수도 있습니다.

11.2.1 EPUB 전용 기능

EPUB 3은 자신이 기반으로 하는 하위 기술을 확장하는 것을 피하려고 하지만, 몇 가지 새로운 기능을 도입했습니다. 그러나 이러한 기능의 제한된 범위는 이들이 제기할 수 있는 위협을 제한합니다.

잠재적인 한 가지 예외는 epubReadingSystem 객체 [epub-rs-33]입니다. 이는 EPUB 제작자가 현재 읽기 시스템에 대한 정보를 조회할 수 있게 합니다. EPUB 제작자는 이 객체가 노출하는 정보를 콘텐츠 렌더링을 개선하는 데만 사용하도록 유의해야 합니다 (즉, 사용자의 프로필과 환경을 작성하는 데 해당 정보를 사용하지 말아야 합니다).

11.3 권장사항

EPUB 제작자가 사용자를 악용하는 모든 방법을 방지할 수는 없지만, 궁극적으로는 자신의 콘텐츠를 안전하게 구성할 책임이 있습니다. 이는 이전 섹션에서 설명한 악성 익스플로잇 유형에 EPUB 출판물이 노출되는 것을 제한하기 위한 예방 조치를 취해야 함을 의미합니다.

몇 가지 실용적인 단계는 다음과 같습니다.

EPUB 제작자는 사용자의 개인정보 보호 권리도 고려해야 하며, 의도적으로 데이터를 수집하는 상황을 피해야 합니다. 이상적으로 EPUB 제작자는 사용자를 추적해서는 SHOULD NOT 안 되지만, 모든 유형의 출판에서 이것이 현실적인 것은 아닙니다.

EPUB 제작자가 사용자를 추적해야 하는 경우, EPUB 출판물을 열기 전에(예: 교육 과정 작업에서) 정보를 수집하기 위해 사용자의 승인을 받아야 SHOULD 합니다. 이것이 가능하지 않다면, 사용자가 EPUB 출판물에 처음 접근할 때 허가를 받아야 SHOULD 합니다. EPUB 제작자는 또한 사용자가 추적을 거부할 수 있도록 해야 SHOULD 하며, 자신에 대해 수집된 모든 데이터를 관리하고 삭제할 수 있는 기능을 사용자에게 제공해야 합니다.

EPUB 제작자는 사용자에 관한 정보의 의도치 않은 수집도 고려해야 합니다. 출판사의 웹 사이트에 있는 콘텐츠로 링크하거나, 출판사 서버에 리소스를 원격 호스팅하면, 특히 고유한 추적 식별자가 URL에 추가된 경우 사용자 프로파일링으로 이어질 수 있습니다.

EPUB 출판물 안에서 사용자 정보를 수집하고 저장할 때(예: cookiesweb storage [html] 사용을 통해), EPUB 제작자는 읽기 시스템의 다른 EPUB 출판물에 의한 데이터 절도 가능성을 고려해야 합니다. [epub-rs-33]는 EPUB 출판물에 대한 고유 origin 요구사항을 도입하여 공격 가능성을 제한하지만, 읽기 시스템이 EPUB 출판물에 공유 영구 저장소 접근을 허용할 위험은 여전히 존재합니다(예: 업데이트되지 않은 오래된 읽기 시스템 및 부적합한 최신 읽기 시스템). 따라서 EPUB 제작자는 민감한 사용자 데이터를 영구 저장소에 저장해서는 SHOULD NOT 안 됩니다. EPUB 제작자가 민감한 데이터를 저장해야 한다면, 익스플로잇 발생 시 데이터에 쉽게 접근하는 것을 방지하기 위해 데이터를 암호화해야 SHOULD 합니다.

출판사와 공급업체가 디지털 권리 관리 체계를 사용해야 하는 경우, 암호화 또는 복호화를 수행하기 위해 사용자나 사용자의 콘텐츠에 관한 정보를 외부 당사자에게 이용하거나 전송하지 않는 체계를 선호해야 합니다.

보안 및 개인정보 보호 위험을 최대한 줄이기 위해, EPUB 제작자는 장기 보존을 목표로 EPUB 출판물을 제작해야 SHOULD 합니다. 이렇게 만들어진 EPUB 출판물은 일반적으로 자체 완결적이고, 네트워크 접근에 의존하지 않으며, 디지털 권리 관리로 암호화되지 않아 가능한 공격 벡터의 상당수를 제거합니다. [iso22424]는 EPUB 출판물을 위한 그러한 보존 형식의 예입니다. 모든 EPUB 제작자가 이러한 수준의 자체 완결성을 달성할 수 있는 것은 아니지만, 이러한 관행을 가능한 한 많이 따르면 전반적인 사용자 개인정보 보호와 보안에 여전히 도움이 됩니다.

A. 지원되지 않는 기능

이 명세에는 아직 읽기 시스템에서 완전히 지원되지 않거나, Working Group이 더 이상 사용을 권장하지 않거나, EPUB 2 읽기 시스템과의 상호운용성을 위해서만 유지되는 특정 기능이 포함되어 있습니다. 이 섹션은 이러한 기능에 부여된 지정의 의미와 지원 기대치를 정의합니다.

A.1 구현이 부족한 기능

구현이 부족한 기능은 EPUB 3.3 이전에 도입된 기능으로, Working Group이 충분한 구현 경험을 확인하지 못한 기능입니다.

이러한 기능은 이러한 제한에도 불구하고 유지하는 것이 중요하다고 간주됩니다. 이는 EPUB 제작자가 구현해 사용하고 있음이 알려져 있거나 (즉, 사용 중단하면 기존 콘텐츠가 무효화됨) 그리고/또는 EPUB이 구축된 콘텐츠 모델에 필수적이기 때문입니다.

이 명세가 어떤 기능을 구현이 부족한 것으로 지정하는 경우, EPUB 제작자는 설명된 대로 해당 기능을 사용할 수 MAY 있습니다.

참고

EPUB 적합성 검사기는 EPUB 출판물에서 구현이 부족한 기능을 발견하면 EPUB 제작자에게 그 존재를 알려야 하지만, 해당 기능의 포함을 표준 위반으로 취급해서는 안 됩니다(즉, 오류나 경고를 내보내지 않음).

주의

구현이 부족함이라는 레이블이 향후 표준 버전에서 제거될지, 또는 사용 중단으로 대체될지는 현재로서는 결정할 수 없습니다. EPUB 제작자는 이러한 기능을 사용할 때 현재와 미래 모두에 발생할 수 있는 상호운용성 문제를 신중하게 고려해야 합니다.

참고

기능을 구현이 부족한 것으로 표시하는 것은 EPUB이 W3C로 이전되기 전에 개발되었던 서로 다른 절차를 고려하기 위한 일회성 조치입니다. 이 레이블은 W3C 절차에 따라 개발되는 새로운 기능에는 사용되지 않습니다.

A.2 사용 중단된 기능

사용 중단된 기능은 Working Group이 이 명세 버전에서 더 이상 사용을 권장하지 않는 기능입니다. 사용 중단된 기능은 일반적으로 읽기 시스템에서 지원이 제한적이거나 없고/또는 EPUB 출판물에서의 사용이 제한적입니다.

이 명세가 어떤 기능을 사용 중단된 것으로 지정하는 경우, EPUB 제작자는 자신의 EPUB 출판물에서 그 기능을 사용해서는 SHOULD NOT 안 됩니다.

참고

EPUB 적합성 검사기는 EPUB 출판물에서 사용 중단된 기능을 발견하면 EPUB 제작자에게 그 존재를 알려야 합니다.

B. 허용되는 외부 식별자

다음 표는 공개 시스템 식별자 [xml] 중 문서 유형 선언에서 허용되는 것을 나열합니다. [xml]

EPUB 제작자는 자신의 매니페스트 선언에 지정된, 나열된 미디어 유형 [rfc2046]을 가진 출판물 리소스에서만 이러한 외부 식별자를 사용할 수 MAY 있습니다. (자세한 내용은 3.9 XML 적합성을 참조하십시오.)

미디어 유형 공개 식별자 시스템 식별자
  • application/mathml+xml
  • application/mathml-presentation+xml
  • application/mathml-content+xml
-//W3C//DTD MathML 3.0//EN http://www.w3.org/Math/DTD/mathml3/mathml3.dtd
application/x-dtbncx+xml -//NISO//DTD ncx 2005-1//EN http://www.daisy.org/z3986/2005/ncx-2005-1.dtd
image/svg+xml -//W3C//DTD SVG 1.1//EN http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd

C. 구조적 의미론 표현

C.1 소개

이 섹션은 비규범적입니다.

구조적 의미론은 요소가 수행하는 구체적인 구조적 목적에 관한 추가 의미를 더합니다. epub:type 속성은 EPUB 콘텐츠 문서미디어 오버레이 문서에서 도메인별 의미론을 표현하는 데 사용되며, 이 속성이 전달하는 구조 정보는 기반 어휘를 보완합니다.

적용된 의미론은, 유사한 role 속성 [html]을 사용할 때와 달리, 보조 기술에 대한 요소의 성격을 바꾸지 않고 포함된 요소의 의미를 정교화합니다. 다시 말해 이 속성은 콘텐츠의 접근성을 향상시키지 않으며, 목적에 관한 힌트만 제공합니다.

의미론적 메타데이터는 출판 워크플로와 저자 정의 목적에서 사용할 수 있도록 콘텐츠를 풍부하게 합니다. 또한 읽기 시스템이 문서의 구조와 콘텐츠에 대해 더 많이 알 수 있게 합니다(예: 미디어 오버레이에서 건너뛰기 가능성과 빠져나가기 가능성을 활성화하기 위해).

이 명세는 속성 축을 사용하여 구조적 의미론을 추가하는 방법을 정의합니다. 즉, 새로운 요소를 추가하는 대신, EPUB 제작자는 기존 요소에 epub:type 속성을 붙여 원하는 의미론을 추가할 수 있습니다.

C.2 epub:type 속성

속성 이름:

epub:type

네임스페이스:

http://www.idpf.org/2007/ops

사용법:

XHTML, SVG, 및 미디어 오버레이에 대한 요구사항을 참조하십시오.

값:

D.1 어휘 연결 메커니즘에 정의된 제한사항을 가진, 공백으로 구분된 property 값 목록입니다.

공백은 [xml]에 정의된 문자 집합입니다.

주의

epub:type 속성은 role 속성 [html]과 성격이 유사하지만, 두 속성은 서로 다른 목적을 수행합니다. epub:type 속성의 값은 화면 읽기 프로그램 같은 보조 기술을 통한 접근을 향상시키지 않습니다. 이러한 값은 해당 기술에서 사용하는 접근성 APIs에 매핑되지 않기 때문입니다. 이는 [html] divspan 같은 의미론적으로 중립적인 요소에 epub:type 값을 추가해도 보조 기술에 대해 더 접근성 있게 만들지 않는다는 뜻입니다. 오직 ARIA 역할만이 보조 기술이 이러한 요소를 이해하는 방식에 영향을 줍니다.

따라서 epub:type 속성은 출판 의미론과 읽기 시스템 향상만을 의도합니다. 읽기 시스템은 보조 기술과의 상호작용이 필수적이지 않은 경우, 내장된 소리내어 읽기 또는 미디어 오버레이 기능 같은 접근성 향상을 제공하기 위해 epub:type 값을 사용할 수 있습니다.

접근 가능한 출판 역할에 관한 자세한 내용은 Digital Publishing WAI-ARIA Module [dpub-aria]을 참조하십시오.

epub:type 속성은 그것이 나타나는 요소에 의미론을 굴절시킵니다. 그 값은 문서 인스턴스와 연결된 외부 어휘에서 비롯된, 하나 이상의 공백으로 구분된 용어입니다.

epub:type 속성의 기본 어휘는 EPUB 3 Structural Semantics Vocabulary [epub-ssv-11]입니다. EPUB 제작자는 이 어휘에 속하지 않는 접두사 없는 용어를 포함할 수 MAY 있지만, 사용자 정의 의미론을 추가하는 데 선호되는 방법은 해당 용어에 접두사를 사용하는 것입니다. 자세한 내용은 D.1 어휘 연결 메커니즘을 참조하십시오.

D. 어휘

이 부록은 이 명세의 속성이 어휘의 용어를 참조할 수 있도록 하는 일반적인 메커니즘 집합을 정의합니다. 또한 이러한 속성과 함께 사용할 EPUB 전용 어휘도 정의합니다.

D.1 어휘 연결 메커니즘

D.1.1 소개

이 섹션은 비규범적입니다.

EPUB은 property 데이터 유형을 사용하여 메타데이터 및 의미론적 어휘에 정의된 용어와 속성을 참조하는 공식적인 방법을 정의합니다. 예를 들어 epub:type 속성은 EPUB 콘텐츠 문서미디어 오버레이 문서에서 이 데이터 유형을 사용하여 구조적 의미론을 추가하며, propertyrel 속성은 이 데이터 유형을 사용하여 패키지 문서에서 속성과 관계를 정의합니다.

property 값은 CURIE [rdfa-core]와 유사합니다 — URL [url]을 압축된 형식으로 나타냅니다. 표현식은 접두사와 참조로 구성되며, 접두사 — 리터럴이든 암시적이든 — 는 일반적으로 용어 어휘로 해석되는 URL의 축약 매핑입니다. 읽기 시스템이 접두사를 URL 표현으로 변환하고 참조와 결합하면, 결과 URL은 일반적으로 해당 어휘 안에서 그 용어에 관한 사람이 읽을 수 있는 및/또는 기계가 읽을 수 있는 정보를 포함하는 조각으로 해석됩니다.

저작의 복잡성을 줄이기 위해, property 데이터 유형을 받는 각 속성은 기본 어휘도 정의합니다. 기본 어휘에서 참조되는 용어와 속성은 읽기 시스템이 URL에 매핑하는 데 사용하는 매핑이 미리 정의되어 있으므로 접두사를 포함하지 않습니다.

property 데이터 유형의 힘은 쉽게 확장할 수 있다는 데 있습니다. 새로운 용어와 속성을 통합하려면, EPUB 제작자접두사만 선언하면 됩니다. 또 다른 저작 편의로, 이 명세는 자주 사용되는 많은 출판 어휘에 대해 접두사를 예약하기도 합니다(즉, 그 선언은 선택 사항입니다).

다음 섹션들은 property 데이터 유형과 어휘 연결 메커니즘에 대한 추가 세부사항을 제공합니다.

D.1.2 property 데이터 유형

property 데이터 유형은 URL [url]을 표현하는 압축된 수단이며, 콜론으로 참조와 구분되는 OPTIONAL 접두사로 구성됩니다.

(EBNF 생성식 ISO/IEC 14977)
모든 터미널 기호는 Unicode Block 'Basic Latin'(U+0000부터 U+007F까지)에 속합니다.
property = [ prefix , ":" ] , reference;  
prefix = ? xsd:NCName ? ;  
reference = ? path-relative-scheme-less-URL string [url] ? ; /* [url]에 정의된 대로 */

이 명세는 [rdfa-core]에 정의된 CURIE 데이터 유형에서 property 데이터 유형을 파생합니다. property는 CURIE의 하위 집합을 나타냅니다.

그러나 CURIE와는 두 가지 중요한 차이가 있습니다.

  • reference는 위 정의에서는 유효하더라도 유효한 property 값을 나타내지 않습니다(즉, 접두사와 콜론만으로 구성된 property 값은 유효하지 않습니다).

  • 빈 문자열은 위 정의에서는 유효하더라도 유효한 property를 나타내지 않습니다.

EPUB 제작자property 값에서 접두사를 생략하면, 표현된 참조는 해당 속성의 기본 어휘에 속한 용어를 나타냅니다.

D.1.3 기본 어휘

기본 어휘는 EPUB 제작자property이 예상되는 곳에서 그 용어와 속성을 사용하기 위해 접두사를 선언할 필요가 없는 어휘입니다. EPUB 제작자는 기본 어휘의 용어와 속성에 접두사를 추가해서는 MUST NOT 안 됩니다.

EPUB 제작자는 prefix 속성을 사용하여 이러한 어휘와 연결된 URL에 접두사를 할당해서는 MUST NOT 안 됩니다.

참고

기본 어휘에 대한 자세한 내용은 property 데이터 유형을 받는 각 속성의 정의를 참조하십시오.

D.1.4 prefix 속성

prefix 속성은 property에서 사용할 접두사 매핑을 정의합니다.

prefix 속성의 값은 다음 형식의 하나 이상의 접두사-URL 매핑을 공백으로 구분한 목록입니다.

(EBNF 생성식 ISO/IEC 14977)
모든 터미널 기호는 Unicode Block 'Basic Latin'(U+0000부터 U+007F까지)에 속합니다.
prefixes = mapping , { whitespace, { whitespace } , mapping } ;  
mapping = prefix , ":" , space , { space } , ? xsd:anyURI ? ;  
prefix = ? xsd:NCName ? ;  
space = #x20 ;  
whitespace = (#x20 | #x9 | #xD | #xA) ;  

예약된 접두사를 제외하고, EPUB 제작자는 문서에서 사용되는 모든 접두사를 선언해야 MUST 합니다. EPUB 제작자는 해당 형식의 루트 요소 [xml]에만 prefix 속성을 지정해야 MUST 합니다.

이 속성이 패키지 문서에서 사용될 때는 네임스페이스가 없습니다.

EPUB 제작자는 EPUB 콘텐츠 문서미디어 오버레이 문서에서 이 속성을 http://www.idpf.org/2007/ops 네임스페이스로 선언해야 MUST 합니다.

참고

prefix 속성은 [rdfa-core]의 동일한 이름의 prefix 속성을 모델로 하지만, EPUB 제작자는 이 속성들을 서로 바꿔 사용할 수 없습니다. EPUB 콘텐츠 문서에서 네임스페이스가 없는 prefix 속성은 RDFa 속성입니다.

RDFa 표현식도 지정하는 EPUB 콘텐츠 문서에는 두 속성이 모두 나타나는 것이 일반적입니다.

<htmlprefix="…"
        xmlns:epub="http://www.idpf.org/2007/ops"
        epub:prefix="…"></html>

포함을 통해 삽입된 SVG의 경우, 접두사는 [html] 루트 html 요소에 선언되어야 MUST 함에 유의하십시오.

충돌을 피하기 위해, EPUB 제작자는 prefix 속성을 사용하여 기본 어휘에 매핑되는 접두사를 선언해서는 MUST NOT 안 됩니다.

EPUB 제작자는 '_' 접두사를 선언해서는 MUST NOT 안 됩니다. 이 명세가 RDFa [rdfa-core] 처리와의 향후 호환성을 위해 이 접두사를 예약하기 때문입니다.

패키지 문서의 대체 직렬화와의 향후 호환성을 위해, EPUB 제작자는 Dublin Core /elements/1.1/ 네임스페이스 [dcterms]에 대한 접두사를 선언해서는 MUST NOT 안 됩니다. EPUB 제작자는 [dcterms] 요소 중 패키지 문서 메타데이터에서 허용되는 것만 사용해야 MUST 합니다.

D.1.5 예약된 접두사

주의

예약된 접두사는 저작 편의를 위한 것이지만, EPUB 제작자는 상호운용성 문제를 일으킬 수 있으므로 이에 의존하지 않아야 합니다. 예를 들어 EPUB 적합성 검사기는 개발자가 도구를 최신 명세 버전으로 업데이트하기 전까지 새로운 접두사를 거부하는 경우가 많습니다. EPUB 제작자는 이러한 문제를 피하기 위해 자신이 사용하는 모든 접두사를 선언해야 합니다.

EPUB 제작자property을 예상하는 속성에서 예약된 접두사를 prefix 속성에 선언하지 않고 사용할 수 MAY 있습니다.

EPUB 제작자는 prefix 속성에서 예약된 접두사를 재정의해서는 SHOULD NOT 안 됩니다.

EPUB 제작자가 사용할 수 있는 예약된 접두사는 컨텍스트에 따라 달라집니다.

패키지 문서

EPUB 제작자는 패키지 문서 속성에서 다음 접두사를 선언하지 않고 사용할 수 MAY 있습니다.

접두사 URL
a11y http://www.idpf.org/epub/vocab/package/a11y/#
dcterms http://purl.org/dc/terms/
marc http://id.loc.gov/vocabulary/
media http://www.idpf.org/epub/vocab/overlays/#
onix http://www.editeur.org/ONIX/book/codelists/current.html#
rendition http://www.idpf.org/vocab/rendition/#
schema http://schema.org/
xsd http://www.w3.org/2001/XMLSchema#
구조적 의미론

EPUB 제작자는 epub:type 속성에서 다음 예약된 접두사를 선언하지 않고 사용할 수 MAY 있습니다.

접두사 URL
msv http://www.idpf.org/epub/vocab/structure/magazine/#
prism http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm#

D.2 속성 필드 정의

어휘 정의 표의 필드는 다음과 같은 암시적 요구사항을 가집니다.

허용 값

[xmlschema-2] 데이터 유형을 사용하여 값의 REQUIRED 유형을 지정합니다.

적용 대상

EPUB 제작자가 해당 속성을 지정할 수 MAY 있는 출판물 리소스 유형을 지정합니다.

이 필드는 properties 속성에서 사용되는 속성에 나타납니다.

카디널리티

EPUB 제작자가 해당 속성을 전역적으로 또는 다른 요소나 속성에 붙여 지정할 수 MAY 있는 횟수를 지정합니다.

최소 카디널리티가 1인 속성은 지정되어야 MUST 합니다.

설명

속성의 목적을 설명하고 EPUB 제작자가 따라야 하는 추가 사용 요구사항을 지정합니다.

예제

비규범적 사용 예제를 제공합니다.

확장 대상

EPUB 제작자가 해당 속성을 연결할 수 MAY 있는 대상을 식별합니다.

이 필드는 기본 표현식 및 하위 표현식관계를 정의하는 속성에 나타납니다.

이름

메타데이터에 나타나야 하는 MUST 속성의 이름을 지정합니다.

D.3 Meta 속성 어휘

이 어휘의 속성은 meta 요소의 property 속성에서 사용할 수 있습니다.

"Extends" 필드에 달리 표시되지 않는 한, 이 섹션에 정의된 속성은 하위 표현식을 정의하는 데 사용됩니다. 다시 말해, 이 섹션에 정의된 속성을 가진 meta 요소는 보강되는 리소스나 표현식을 참조하는 refines 속성을 가져야 MUST 합니다.

이러한 속성을 참조하기 위한 접두사 URL은 http://idpf.org/epub/vocab/package/meta/#입니다.

D.3.1 alternate-script

이름: alternate-script
설명:

alternate-script 속성은 연결된 속성 값의 다른 언어 및/또는 문자 체계로 된 대체 표현을 제공합니다. alternate-script 속성과 그 연결된 속성의 언어 태그 — 각각의 범위 내 xml:lang 속성으로 표현되는 것 — 는 같아서는 MUST NOT 안 됩니다.

이 속성은 일반적으로 국제화 목적으로 creatortitle 속성에 붙습니다.

허용 값: xsd:string
카디널리티: zero or more
확장 대상: 모든 속성.

D.3.2 authority

이름: authority
설명:

authority 속성은 참조된 요소의 값이 파생된 시스템 또는 체계를 식별합니다.

허용 값: xsd:string
참고

이전 IDPF EPUB 3 Working Group은 이 속성과 함께 사용할 주제 권위 레지스트리를 유지했습니다. 이 Working Group은 더 이상 그 레지스트리를 유지하지 않습니다.

카디널리티: zero or one
확장 대상: dc:subject

D.3.3 belongs-to-collection

이름: belongs-to-collection
설명:

belongs-to-collection 속성은 EPUB 출판물이 속하는 컬렉션의 이름을 식별합니다. EPUB 출판물은 하나 이상의 컬렉션에 속할 수 MAY 있습니다.

또한 refines 속성을 사용하여 이러한 속성을 연결함으로써 한 컬렉션이 다른 컬렉션의 구성원임을 나타낼 수도 있습니다.

읽기 시스템이 컬렉션을 정리하고 이름 충돌을 피할 수 있도록(예: 관련 없는 컬렉션이 비슷한 이름을 공유하거나, 컬렉션의 서로 다른 판이 출시되는 경우), EPUB 제작자는 컬렉션의 인스턴스를 고유하게 식별하는 식별자를 제공해야 SHOULD 합니다. dcterms:identifier 속성은 이 식별자를 담아야 합니다.

컬렉션은 collection-type 속성을 붙여 자신의 성격을 더 정확히 정의할 수 MAY 있습니다.

컬렉션 안에서 EPUB 출판물의 위치는 group-position 속성을 붙여 제공할 수 MAY 있습니다.

허용 값: xsd:string
카디널리티: zero or more
확장 대상: EPUB 출판물에 적용되며, 자기 자신의 다른 인스턴스를 정교화할 수 있습니다.

D.3.4 collection-type

이름: collection-type
설명:

collection-type 속성은 컬렉션의 형식 또는 성격을 나타냅니다.

collection-type 값이 코드 목록이나 다른 공식 열거형에서 가져온 경우, EPUB 제작자는 그 출처를 식별하기 위해 scheme 속성을 붙여야 SHOULD 합니다.

이 명세는 scheme이 지정되지 않은 경우 다음 컬렉션 유형도 정의합니다.

series

일반적으로 시간이 지남에 따라 개별적으로 발행되는, 대개 개방형인 관련 저작물의 시퀀스로, 공식적으로 하나의 그룹으로 식별됩니다.

set

함께 하나의 지적 단위를 구성하는 저작물의 유한한 컬렉션으로, 일반적으로 함께 발행되며 하나의 단위로 판매될 수 있습니다.

참고

읽기 시스템이 이러한 값을 지원해야 하는 것은 아니지만, 이를 지정하면 관련 EPUB 출판물을 더 의미 있는 방식으로 그룹화할 수 있는 선택지를 제공합니다.

허용 값: xsd:string
카디널리티: zero or one
확장 대상: belongs-to-collection

D.3.5 display-seq

이름: display-seq
설명:

display-seq 속성은 동일한 메타데이터 속성에 대해 현재 속성을 표시할 숫자 위치를 나타냅니다.

이 속성은 우선순위 규칙이 아직 정의되지 않은 곳에만 적용됩니다 (예: 제작자에는 문서 순서상 나타나는 순서에 따라 우선순위가 부여됨).

허용 값: xsd:unsignedInt
카디널리티: zero or one
확장 대상: 모든 속성.

D.3.6 file-as

이름: file-as
설명: file-as 속성은 정렬을 위해 연결된 속성의 정규화된 형식을 제공합니다.
허용 값: xsd:string
카디널리티: zero or one
확장 대상: 모든 속성.

D.3.7 group-position

이름: group-position
설명:

group-position 속성은 EPUB 출판물이 같은 그룹에 속한 다른 저작물 (모두 EPUB 출판물이든 아니든)에 대해 정렬되는 숫자 위치를 나타냅니다.

EPUB 제작자는 그룹을 설정하는 모든 메타데이터 속성에 group-position 속성을 붙일 수 있지만, 일반적으로 belongs-to-collection 속성과 연결됩니다.

EPUB 출판물은 둘 이상의 그룹에 속할 수 있습니다.

허용 값: 단일 xsd:unsignedInt 또는 점으로 구분된 숫자열(예: 1 또는 2.2.1).
카디널리티: zero or one
확장 대상: 모든 속성.

D.3.8 identifier-type

이름: identifier-type
설명:

identifier-type 속성은 identifier의 형식 또는 성격을 나타냅니다.

identifier-type 값이 코드 목록이나 다른 공식 열거형에서 가져온 경우, EPUB 제작자는 그 출처를 식별하기 위해 scheme 속성을 붙여야 SHOULD 합니다.

허용 값: xsd:string
카디널리티: zero or one
확장 대상: dc:identifier, dc:source

D.3.9 meta-auth (사용 중단됨)

이 속성의 사용은 사용 중단됨입니다.

자세한 내용은 [epubpublications-30]의 meta-auth 속성 정의를 참조하십시오.

D.3.10 role

이름: role
설명:

role 속성은 EPUB 출판물의 제작에서 creator, contributor 또는 publisher의 역할을 설명합니다.

role 값이 코드 목록이나 다른 공식 열거형에서 가져온 경우, EPUB 제작자는 그 출처를 식별하기 위해 scheme 속성을 붙여야 SHOULD 합니다.

개인 또는 조직에 여러 역할을 붙이는 경우, 역할의 중요도는 해당 역할을 포함하는 meta 요소의 문서 순서와 일치해야 합니다(즉, 처음 만나는 meta 요소는 가장 중요한 역할을 포함해야 합니다).

허용 값: xsd:string
카디널리티: zero or more
확장 대상: dc:contributor, dc:creator, dc:publisher

D.3.11 source-of

이름: source-of
설명:

source-of 속성은 개작된 원본 리소스의 고유한 측면 중 EPUB 출판물에 유지된 것을 나타냅니다.

이 명세는 참조된 dc:source 요소가 콘텐츠에 정의된 pagebreak 속성의 출처임을 나타내기 위해 pagination 값을 정의합니다.

허용 값: pagination
카디널리티: zero or one
확장 대상: dc:source
참고

접근 가능한 페이지 내비게이션을 제공하는 방법에 대한 정보는 [epub-a11y-tech-11]를 참조하십시오.

D.3.12 term

이름: term
설명:

term 속성은 주제 코드를 제공합니다.

허용 값: xsd:string
카디널리티: zero or one
확장 대상: dc:subject

D.3.13 title-type

이름: title-type
설명:

title-type 속성은 title의 형식 또는 성격을 나타냅니다.

title-type 값이 코드 목록이나 다른 공식 열거형에서 가져온 경우, EPUB 제작자는 그 출처를 식별하기 위해 scheme 속성을 붙여야 SHOULD 합니다. scheme이 지정되지 않은 경우, 읽기 시스템은 다음 title type 값을 인식해야 SHOULD 합니다. main, subtitle, short, collection, editionexpanded.

허용 값: xsd:string
카디널리티: zero or one
확장 대상: dc:title

D.3.14 예제

D.5 패키지 렌더링 어휘

이러한 속성을 참조하기 위한 접두사 URL은 http://www.idpf.org/vocab/rendition/#입니다.

"rendition:" 접두사는 패키지 렌더링 속성과 함께 사용하도록 예약되어 있으며, 패키지 문서에서 선언할 필요가 없습니다.

참고

이 부록의 다른 어휘와 달리, Package Rendering Vocabulary의 속성은 meta 요소로 표현되는 속성과 itemref 요소에 표현되는 스파인 재정의가 혼합되어 구성됩니다.

사용 요구사항도 이 부록이 아니라 8. 레이아웃 렌더링 제어에 정의되어 있습니다. 다음 표는 속성, 재정의, 그리고 그것들이 정의된 위치에 대한 지도를 제공합니다.

속성 재정의 정의 위치
rendition:layout
  • rendition:layout-pre-paginated
  • rendition:layout-reflowable
8.2.2.1 레이아웃
rendition:orientation
  • rendition:orientation-auto
  • rendition:orientation-landscape
  • rendition:orientation-portrait
8.2.2.2 방향
rendition:spread
  • rendition:spread-auto
  • rendition:spread-both
  • rendition:spread-landscape
  • rendition:spread-none
  • rendition:spread-portrait (사용 중단됨)
8.2.2.3 합성 펼침면
  • rendition:page-spread-center
  • rendition:page-spread-left
  • rendition:page-spread-right
8.2.2.4 펼침면 배치
rendition:viewport (사용 중단됨) 8.2.2.5 뷰포트 치수 (사용 중단됨)
rendition:flow
  • rendition:flow-paginated
  • rendition:flow-scrolled-continuous
  • rendition:flow-scrolled-doc
  • rendition:flow-auto
8.3.1 rendition:flow 속성
  • rendition:align-x-center
8.3.2 rendition:align-x-center 속성

D.5.1 사용자 정의 렌더링 속성

읽기 시스템 개발자는 EPUB 콘텐츠 문서 렌더링에서 읽기 시스템별 문제를 해결하기 위해 이 명세에 정의되지 않은 기능을 도입할 수 있습니다.

이러한 실험을 용이하게 하기 위해, EPUB 제작자rendition: 접두사를 사용하지 않는다는 조건에서 패키지 문서에 사용할 사용자 정의 속성과 스파인 재정의를 포함할 수 MAY 있습니다.

참고

사용자 정의 속성은 특정 읽기 시스템에 고유한 렌더링 문제만 해결해야 합니다. 이 명세는 여러 독립적인 읽기 시스템이 사용할 수 있는 확장을 제공하도록 확장되어야 합니다.

D.6 매니페스트 속성 어휘

이 어휘의 속성은 매니페스트 item 요소의 properties 속성에서 사용할 수 있습니다.

이러한 속성을 참조하기 위한 접두사 URL은 http://idpf.org/epub/vocab/package/item/#입니다.

D.6.1 cover-image

이름: cover-image
설명: cover-image 속성은 설명된 출판물 리소스EPUB 출판물의 표지 이미지로 식별합니다.
적용 대상: 모든 래스터 및 벡터 이미지 유형
카디널리티: Zero or one

D.6.2 mathml

이름: mathml
설명: mathml 속성은 설명된 출판물 리소스에 MathML 마크업 인스턴스가 하나 이상 포함되어 있음을 나타냅니다.
적용 대상: EPUB 콘텐츠 문서
카디널리티: Zero or more

D.6.3 nav

D.6.4 remote-resources

이름: remote-resources
설명:

remote-resources 속성은 설명된 출판물 리소스EPUB 컨테이너 외부에 위치한 다른 출판물 리소스에 대한 내부 참조를 하나 이상 포함함을 나타냅니다.

자세한 내용은 3.6 리소스 위치를 참조하십시오.

적용 대상: 내부 참조 기능이 있는 모든 출판물 리소스 (예: XHTML 콘텐츠 문서, SVG 콘텐츠 문서, CSS 스타일시트 및 미디어 오버레이 문서).
카디널리티: Zero or more

D.6.5 scripted

이름: scripted
설명: scripted 속성은 설명된 출판물 리소스스크립트 포함 콘텐츠 문서임을 나타냅니다(즉, 스크립팅 및/또는 [html] form 요소를 포함함).
적용 대상: EPUB 콘텐츠 문서
카디널리티: Zero or more

D.6.6 svg

이름: svg
설명:

svg 속성은 설명된 출판물 리소스가 SVG 마크업 인스턴스를 하나 이상 삽입함을 나타냅니다.

SVG 마크업이 리소스에 직접 포함된 경우 이 속성을 설정해야 MUST 하며, SVG가 리소스에서 참조되는 경우(예: [html] img, object 또는 iframe 요소에서) 설정할 수 MAY 있습니다.

적용 대상: XHTML 콘텐츠 문서; 이 값은 SVG 콘텐츠 문서에는 암시됩니다.
카디널리티: Zero or more

D.6.7 switch

이름: switch
설명:

switch 속성은 설명된 출판물 리소스사용 중단된 epub:switch 요소의 인스턴스를 하나 이상 포함함을 나타냅니다.

적용 대상: XHTML 콘텐츠 문서.
카디널리티: Zero or more

D.7 스파인 속성 어휘

이 어휘의 속성은 스파인 itemref 요소의 properties 속성에서 사용할 수 있습니다.

이러한 속성을 참조하기 위한 접두사 URL은 http://idpf.org/epub/vocab/package/itemref/#입니다.

D.7.1 page-spread-left

이름: page-spread-left
설명:

page-spread-left 속성은 연결된 item 요소의 EPUB 콘텐츠 문서의 첫 페이지가 두 페이지 펼침면의 왼쪽 면을 나타냄을 표시합니다.

rendition:page-spread-left 속성은 이 속성의 별칭입니다. 사용에 대한 자세한 내용은 8.2.2.4 펼침면 배치를 참조하십시오.

D.7.2 page-spread-right

이름: page-spread-right
설명:

page-spread-right 속성은 연결된 item 요소의 EPUB 콘텐츠 문서의 첫 페이지가 두 페이지 펼침면의 오른쪽 면을 나타냄을 표시합니다.

rendition:page-spread-right 속성은 이 속성의 별칭입니다. 사용에 대한 자세한 내용은 8.2.2.4 펼침면 배치를 참조하십시오.

D.7.3 예제

D.8 미디어 오버레이 어휘

이 어휘의 속성은 meta 요소의 property 속성에서 사용할 수 있습니다.

이러한 속성을 참조하기 위한 접두사 URL은 http://www.idpf.org/epub/vocab/overlays/#입니다.

"media:" 접두사는 이 어휘의 속성과 함께 사용하도록 예약되어 있으며 패키지 문서에서 선언할 필요가 없습니다.

D.8.1 active-class

이름: active-class
설명: 현재 재생 중인 EPUB 콘텐츠 문서 요소에 적용할 EPUB 제작자 정의 CSS 클래스 이름입니다.
허용 값: xsd:string
카디널리티: Zero or one
예제: <meta property="media:active-class">-epub-media-overlay-active</meta>

D.8.2 duration

이름: duration
설명: 전체 프레젠테이션 또는 특정 미디어 오버레이 문서의 지속 시간입니다. 지정된 지속 시간은 저작 시점에 알려진 오디오 클립을 고려하므로, 외부 리소스의 라이브 스트리밍과 음성 합성은 제외합니다.
허용 값:

[smil3] clock value이어야 MUST 합니다.

카디널리티: EPUB 출판물과 각 미디어 오버레이 문서마다 정확히 하나입니다.
예제: <meta property="media:duration">1:36:20</meta>

D.8.3 narrator

이름: narrator
설명: 낭독자의 이름입니다.
허용 값: xsd:string
카디널리티: Zero or more
예제: <meta property="media:narrator">Joe Speaker</meta>

D.8.4 playback-active-class

이름: playback-active-class
설명: 재생이 활성화되어 있을 때 EPUB 콘텐츠 문서의 문서 요소에 적용할 저자 정의 CSS 클래스 이름입니다.
허용 값: xsd:string
카디널리티: Zero or one
예제: <meta property="media:playback-active-class">-epub-media-overlay-playing</meta>

E. 접두사가 붙은 CSS 속성

이 부록은 EPUB에서 지원하는 접두사가 붙은 CSS 속성을 설명합니다.

참고

접두사 정의는 더 이상 해당 CSS 대응 항목과 동기화되지 않습니다. 경우에 따라 이러한 속성의 접두사가 없는 버전은 이제 추가 값을 지원합니다. 읽기 시스템은 접두사가 붙은 속성에서 새 구문을 지원하지 않을 수 있으므로, EPUB 제작자는 더 새로운 기능에는 접두사가 없는 버전을 사용하는 것이 권장됩니다.

E.1 CSS 쓰기 모드

이 섹션은 [css-writing-modes-3]에 대한 -epub- 접두사 속성을 설명합니다.

E.1.1 -epub-text-orientation 속성

이 속성은 text-orientation 속성 [css-writing-modes-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-orientation
값: mixed | upright | sideways | sideways-right

기존 콘텐츠와의 호환성을 위해, -epub-text-orientation 속성은 사용 중단된 vertical-right, rotate-rightrotate-normal 키워드도 지원합니다. 다음 표는 이러한 값이 지정될 때의 효과를 명시합니다.

사용 중단된 값 사용할 값
vertical-right mixed
rotate-right sideways
rotate-normal sideways

E.1.2 -epub-writing-mode 속성

이 속성은 writing-mode 속성 [css-writing-modes-3]의 접두사가 붙은 버전이며, 동일한 구문과 동작을 가집니다.

이름: -epub-writing-mode
값: horizontal-tb | vertical-rl | vertical-lr

E.1.3 -epub-text-combine-horizontal-epub-text-combine 속성

이 속성들은 text-combine-upright 속성 [css-writing-modes-3]의 접두사가 붙은 버전이지만, -epub-text-combine은 사용 중단되었습니다.

이름: -epub-text-combine-horizontal
값: none | all
이름: -epub-text-combine (사용 중단됨)
값: none | horizontal | horizontal <number>

기존 콘텐츠와의 호환성을 위해, -epub-text-combine-horizontal-epub-text-combine 속성은 사용 중단된 여러 키워드도 지원합니다. 다음 표는 이러한 값이 지정될 때의 효과를 명시합니다.

접두사가 붙은 버전 CSS 대응 항목
-epub-text-combine-horizontal: none text-combine-upright: none
-epub-text-combine-horizontal: all text-combine-upright: all
-epub-text-combine: none text-combine-upright: none
-epub-text-combine: horizontal text-combine-upright: all
-epub-text-combine: horizontal <number> 대응 항목 없음

E.2 CSS 텍스트 레벨 3

이 섹션은 [css-text-3]에 대한 -epub- 접두사 속성(및 접두사가 붙은 값 하나)을 설명합니다.

E.2.1 -epub-hyphens 속성

이 속성은 hyphens 속성 [css-text-3]의 접두사가 붙은 버전입니다.

이름: -epub-hyphens
값: none | manual | auto | all

기존 콘텐츠와의 호환성을 위해, -epub-hyphens 속성은 사용 중단된 all 키워드도 지원합니다. 이 값은 더 이상 CSS에서 지원되지 않으며, 그 대신 사용할 대응 항목도 없습니다.

E.2.2 -epub-line-break 속성

이 속성은 line-break 속성 [css-text-3]의 접두사가 붙은 버전입니다.

이름: -epub-line-break
값: auto | loose | normal | strict

E.2.3 -epub-text-align-last 속성

이 속성은 text-align-last 속성 [css-text-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-align-last
값: auto | start | end | left | right | center | justify

E.2.4 -epub-word-break 속성

이 속성은 word-break 속성 [css-text-3]의 접두사가 붙은 버전입니다.

이름: -epub-word-break
값: normal | keep-all | break-all

E.2.5 text-transform 속성

이 속성은 text-transform 속성 [css-text-3]에 대한 접두사가 붙은 값입니다.

이름: text-transform
값: -epub-fullwidth

기존 콘텐츠와의 호환성을 위해, text-transform 속성은 사용 중단된 -epub-fullwidth 키워드도 지원합니다. 지정된 경우 이는 text-transform: full-width와 같은 효과를 가집니다.

E.3 CSS 텍스트 장식 레벨 3

이 섹션은 [css-text-decor-3]에 대한 -epub- 접두사 속성을 설명합니다.

E.3.1 -epub-text-emphasis-color 속성

이 속성은 text-emphasis-color 속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-emphasis-color
값: <color>

E.3.2 -epub-text-emphasis-position 속성

이 속성은 text-emphasis-position 속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-emphasis-position
값: [ over | under ] && [ right | left ]

E.3.3 -epub-text-emphasis-style 속성

이 속성은 text-emphasis-style 속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-emphasis-style
값: none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>

E.3.4 -epub-text-underline-position 속성

이 속성은 text-underline-position 속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.

이름: -epub-text-underline-position
값: auto | [ under || [ left | right ] ] | alphabetic

기존 콘텐츠와의 호환성을 위해, -epub-text-underline-position 속성 값은 사용 중단된 alphabetic 키워드도 지원합니다. 지정된 경우 이는 text-underline-position: auto와 같은 효과를 가집니다.

F. viewport meta 태그

F.1 소개

이 섹션은 비규범적입니다.

EPUB 3의 이전 버전에서 사용되었던 viewport meta 태그의 Safari HTML 정의는 공식적으로 인정된 표준이 아니므로, 이 명세는 EPUB 제작자너비와 높이 치수를 표현하여 고정 레이아웃 문서 렌더링에 사용할 수 있도록 기본 구문을 정의합니다.

이 문법의 구문은 [css-viewport-1]에 정의된 viewport meta 태그의 파싱 알고리즘의 영향도 받았습니다.

가능한 모든 속성과 값을 정의하는 것은 이 명세의 범위가 아니므로, 이 구문은 의도적으로 가능한 한 일반적으로 남겨져 있습니다. 이는 속성과 값 쌍을 정의하기 위한 기본 요구사항과 표현식 사이의 가능한 구분자만 정의합니다.

F.2 구문

고정 레이아웃 문서의 경우, viewport meta 태그 [html]는 다음 정의를 준수하는 namecontent 속성을 가져야 MUST 합니다.

name
공백 정규화 [xml] 이후의 name 속성 [html] 값은 viewport이어야 MUST 합니다.
content

공백 정규화 [xml] 이후의 content 속성 [html] 값은 다음 형식이어야 MUST 합니다.

(EBNF 생성식 ISO/IEC 14977)
모든 터미널 기호는 Unicode Block 'Basic Latin'(U+0000부터 U+007F까지)에 속합니다.
viewport = property, { sep, property } ;
property = name, [ assign, value ] ;
name = ? character data ? ;
value = ? character data ? ;
sep = sep-char, { sep-char } ;
sep-char = ( ";" | "," | space ) ;
assign = [ space ], "=", [ space ] ;
space = #x20 ;

속성 이름에 대한 유일한 제한은, 이들이 구분 문자할당 문자를 포함해서는 MUST NOT 안 된다는 것입니다.

이 섹션의 저작 요구사항은 공백 정규화 [xml] 이후에 적용됩니다(즉, 읽기 시스템이 앞뒤 공백을 제거하고 속성 내부의 여러 공백 인스턴스를 단일 공백으로 압축한 이후). EPUB 제작자는 결과가 이 정의에 유효한 한, 저작된 태그 안에 임의의 공백 문자 [xml]를 포함할 수 MAY 있습니다.

참고

[html]은 [infra]의 의존성공백 정의에 의존하지만, Form Feed(U+000C) 문자는 [xml] 정의에 따른 유효한 공백이 아닙니다. 이는 XML 구문(즉, XHTML 콘텐츠 문서)에서 사용할 수 없습니다.

[html] 문법이 meta 요소에 허용하는 다른 속성에는 제한이 없습니다.

참고

필수 heightwidth 속성과 그 필수 값을 지정하는 방법에 대한 자세한 내용은 8.2.2.6 콘텐츠 문서 치수를 참조하십시오.

viewport meta 태그는 EPUB 제작자가 heightwidth 이외의 속성을 사용하고, 이러한 속성에 값을 포함하지 않는 것을 허용하지만, 이러한 사용은 강하게 권장되지 않습니다. 다른 속성을 설정하면 고정 레이아웃 문서의 렌더링에 의도하지 않은 결과가 발생할 수 있습니다.

G. 스키마

이 섹션은 비규범적입니다.

G.1 패키지 문서 스키마

패키지 문서용 스키마는 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/package-30.nvdl에서 사용할 수 있습니다.

이 스키마를 사용한 검증에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 지원하는 처리기가 필요합니다.

참고

NVDL 스키마 계층은 내장된 RELAX NG와 ISO Schematron 스키마만 사용하는 다중 패스 검증으로 대체할 수 있습니다.

참고

이러한 스키마는 이 명세의 공식 개정과 별도로 업데이트되고 수정될 수 있습니다. 그 결과, 언제든지 변경될 수 있습니다.

G.2 OCF 스키마

G.2.1 container.xml용 스키마

container.xml 파일용 스키마는 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/ocf-container-30.nvdl에서 사용할 수 있습니다.

이 스키마를 사용한 검증에는 [relaxng-schema]와 [xmlschema-2]를 지원하는 처리기가 필요합니다.

G.2.2 encryption.xml용 스키마

encryption.xml 파일용 스키마는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.

G.2.3 signatures.xml용 스키마

signatures.xml 파일용 스키마는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.

G.3 미디어 오버레이 스키마

미디어 오버레이 문서용 스키마는 https://github.com/w3c/epubcheck/tree/main/src/master/resources/com/adobe/epubcheck/schema/30/media-overlay-30.nvdl에서 사용할 수 있습니다.

이 스키마를 사용한 검증에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 지원하는 처리기가 필요합니다.

참고

NVDL 스키마 계층은 내장된 RELAX NG와 ISO Schematron 스키마만 사용하는 다중 패스 검증으로 대체할 수 있습니다.

H. 상세 예제

이 섹션은 비규범적입니다.

H.1 리소스

다음 패키지 문서XHTML 콘텐츠 문서의 발췌를 살펴보십시오.

<package …>
    <metadata …>
        …
        <link rel="record"
            href="meta/data.xml"
            media-type="application/marc"/>
        <link rel="record"
            href="https://www.example.org/meta/data2.xml"
            media-type="application/marc"/>
        …
    </metadata>
    <manifest>
        …
        <item id="page"
            href="page.xhtml"
            media-type="application/xhtml+xml"/>
        <item id="nav"
            href="nav.xhtml"
            media-type="application/xhtml+xml"
            properties="nav"/>
        <item id="style"
            href="style.css"
            media-type="text/css"/>
        <item id="font_otf"
            href="fonts/font-file.otf"
            media-type="font/otf"/>
        <item id="font_otf_remote"
            href="https://www.example.org/fonts/font-file2.otf"
            media-type="font/otf"/>
        <item id="font_cff"
            href="fonts/font-file.cff"
            media-type="font/sfnt"/>
        <item id="pls"
            href="speech/cmn.pls"
            media-type="application/pls+xml"/>
        <item id="image_1"
            href="media/image_1.png"
            media-type="image/png"/>
        <item id="image_2"
            href="media/image_2.png"
            media-type="image/png"
            fallback="image_desc"/>
        <item id="image_desc"
            href="image_desc.xhtml"
            media-type="application/xhtml+xml"/>
        <item id="image_3_heic"
            href="media/image_3.heic"
            media-type="image/heic"/>
        <item id="image_3_png"
            href="media/image_3.png"
            media-type="image/png"/>
        <item id="widget"
            href="widget.xhtml"
            media-type="application/xhtml+xml"/>
        …
    </manifest>
    <spine>
        …
        <itemref idref="page_001"/>
        <itemref idref="image_2"/>
        …
    </spine>
</package>

<html …>
    <head …>
        …
        <link rel="stylesheet" type="text/css" href="style.css"/>
        <link rel="pronunciation" type="application/pls+xml" href="speech/cmn.pls"/>
        …
    </head>
    <body>
        <img src="media/image1_png"/>
        …
        <a href="media/image_2.png">…</a>
        …
        <picture>
            <source srcset="media/image_3.heic" type="image/heic"/>
            <img src="media/image_3.png"/>
        </picture>
        …
        <iframe src="widget.xhtml"></iframe>
        …
        <a href="https://www.example.org/some_content">…</a>
    </body>
</html>

EPUB 출판물의 다양한 리소스는 다음과 같이 분류할 수 있습니다. (이러한 범주에 대한 자세한 내용은 3. 출판물 리소스를 참조하십시오.)

meta/data.xml

이 리소스는 EPUB 컨테이너에 저장된 메타데이터 레코드입니다. 이는 패키지 문서 메타데이터의 link 요소를 통해 링크됩니다. 따라서 이는 매니페스트 평면링크된 리소스입니다(즉, 매니페스트에 나열되지 않음). 이는 다른 어떤 평면에도 속하지 않습니다.

https://www.example.org/meta/data2.xml

이 리소스는 원격에 저장된 메타데이터 레코드입니다. 이는 패키지 문서 메타데이터의 link 요소를 통해 링크됩니다. 따라서 이는 매니페스트 평면의 링크된 리소스입니다 (즉, 매니페스트에 나열되지 않음). 이는 다른 어떤 평면에도 속하지 않습니다.

page.xhtml

이 리소스는 XHTML 문서입니다. 이는 [[EPUB spine | spine=]에 나열되어 있습니다. 이는 매니페스트 평면의 출판물 리소스, 컨테이너 리소스, 스파인 평면EPUB 콘텐츠 문서이며, 콘텐츠 평면에는 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.

nav.xhtml

이 리소스는 EPUB 내비게이션 문서입니다. 이는 스파인에 나열되지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면이나 콘텐츠 평면 어느 쪽에도 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.

style.css

이 리소스는 CSS 파일입니다. 이는 스파인에 나열되지 않지만 [html] link 요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

font/font-file.otf

이 리소스는 TrueType 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

https://www.example.org/fonts/font-file2.otf

이 리소스는 TrueType 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 원격 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

font/font-file.cff

이 리소스는 Compact Font Format의 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 그 미디어 유형은 핵심 미디어 유형으로 나열되어 있지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 면제 리소스입니다. 대체 리소스는 필요하지 않습니다.

speech/cmn.pls

이 리소스는 Pronunciation Lexicon 파일입니다. 이는 스파인에 나열되지 않지만 [html] link 요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 면제 리소스입니다. 대체 리소스는 필요하지 않습니다.

image/image_1.png

이 리소스는 PNG 이미지 파일입니다. 이는 스파인에 나열되지 않지만 [html] img 요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

image/image_2.png

이 리소스는 PNG 이미지 파일입니다. 이는 [html] a 요소를 통해 참조됩니다. 하이퍼링크에서 참조되므로, 스파인에 나열되어야 must 합니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스, 스파인 평면의 외부 콘텐츠 문서이며, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 외부 콘텐츠 문서이므로 대체 리소스가 필요하며, 이는 매니페스트 대체를 통해 제공됩니다.

image_desc.xhtml

이 리소스는 XHTML 문서입니다. 이는 매니페스트 대체의 "대상"이므로 스파인에 명시적으로 나열되지 않습니다(하지만 필요할 때 기존 스파인 항목을 "대체"함). 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스, 스파인 평면의 EPUB 콘텐츠 문서이며, 다른 EPUB 콘텐츠 문서를 렌더링할 때 "사용"되지 않으므로 콘텐츠 평면에는 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.

image/image_3.heic

이 리소스는 High Efficiency(HEIC) 이미지 파일입니다. 이는 스파인에 나열되지 않지만 [html] source 요소에서 참조됩니다. 그 미디어 유형은 핵심 미디어 유형으로 나열되어 있지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 외부 리소스입니다. 외부 리소스이므로 대체 리소스가 필요하며, 이는 [html] picture 요소 안의 형제 [html] img 요소를 통해 제공됩니다.

image/image_3.png

이 리소스는 PNG 이미지 파일입니다. 이는 스파인에 나열되지 않지만 [html] picture 요소의 내재적 대체로 사용되는 [html] img 요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

widget.xhtml

이 리소스는 XHTML 문서입니다. 이는 스파인에 나열되지 않지만 [html] iframe 요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 다른 EPUB 콘텐츠 문서를 렌더링할 때 "사용"되므로 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.

https://www.example.org/some_content

이 리소스는 [html] a 요소를 통해 참조되며 EPUB 컨테이너에 저장되지 않습니다. 읽기 시스템은 일반적으로 이 링크를 별도의 브라우저 인스턴스를 통해 엽니다. 이는 이 명세가 정의한 어떤 평면에도 없습니다.

다양한 유형의 리소스 사용에 관한 추가 예제는 5.6.2.2 예제에서 찾을 수 있습니다.

H.2 스크립팅 컨텍스트

다음 예제 패키지 문서를 살펴보십시오.

<package …>
    …
    <manifest>
        …
        <item id="chap01"
            href="scripted01.xhtml"
            media-type="application/xhtml+xml"
            properties="scripted"/>
        <item id="inset01"
            href="scripted02.xhtml"
            media-type="application/xhtml+xml"
            properties="scripted"/>
        <item id="slideshowjs"
            href="slideshow.js"
            media-type="text/javascript"/>
    </manifest>

    <spine …>
        <itemref idref="chap01"/>
        …
    </spine>
    …
</package>

그리고 다음 scripted01.xhtml 파일을 살펴보십시오.

<html …>
    <head><script type="text/javascript">
            const te = navigator.epubReadingSystem.hasFeature("touch-events");
            const te_message = te ? "passes" : "does not pass";
            alert(`The reading system ${te_message} touch events to the content.`);
        </script>
    </head>
    <body><iframe src="scripted02.xhtml" … /></body>
</html>

그리고 다음 scripted02.xhtml 파일을 살펴보십시오.

<html …>
    <head><script type="text/javascript" href="slideshow.js"></script>
    </head>
    <body></body>
</html>

이 예제들로부터 다음이 참입니다.

H.3 패키징된 EPUB

이 예제는 서명되고 암호화된 EPUB 출판물OCF ZIP 컨테이너 안에 포함하기 위해 OCF 형식을 사용하는 방법을 보여 줍니다.

OCF ZIP 컨테이너 안의 파일 순서 목록:

mimetype
META-INF/container.xml
META-INF/signatures.xml
META-INF/encryption.xml
EPUB/As_You_Like_It.opf
EPUB/book.html
EPUB/nav.html
EPUB/images/cover.png

mimetype 파일의 내용

application/epub+zip

META-INF/container.xml 파일의 내용

<?xml version="1.0"?>
<container
    version="1.0"
    xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
   <rootfiles>
      <rootfile
          full-path="EPUB/As_You_Like_It.opf"
          media-type="application/oebps-package+xml"/>
   </rootfiles>
</container>

META-INF/signatures.xml 파일의 내용

<signatures
    xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
   <Signature
       Id="AsYouLikeItSignature"
       xmlns="http://www.w3.org/2000/09/xmldsig#">

      <!--
           SignedInfo is the information that is actually signed.
           In this case, the SHA-1 algorithm is used to sign the
           canonical form of the XML documents enumerated in the
           Object element below.
      -->

      <SignedInfo>
         <CanonicalizationMethod
             Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
         <SignatureMethod
             Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
         <Reference
             URI="#AsYouLikeIt">
            <DigestMethod
                Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
            <DigestValue></DigestValue>
         </Reference>
      </SignedInfo>

      <!--
           The signed value of the digest above, using the DSA
           algorithm
      -->
      <SignatureValue></SignatureValue>

      <!--
           The key used to validate the signature
      -->
      <KeyInfo>
         <KeyValue>
            <DSAKeyValue>
               <P></P>
               <Q></Q>
               <G></G>
               <Y></Y>
            </DSAKeyValue>
         </KeyValue>
      </KeyInfo>

      <!--
           The list of resources to sign (note that the canonical
           form of XML documents is signed, while the binary form
           of all other resources is used)
      -->
      <Object>
         <Manifest
             Id="AsYouLikeIt">
            <Reference
                URI="EPUB/As_You_Like_It.opf">
               <Transforms>
                  <Transform
                      Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
               </Transforms>
               <DigestMethod
                   Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
               <DigestValue>
               </DigestValue>
            </Reference>

            <Reference URI="EPUB/book.html">
               <Transforms>
                  <Transform
                      Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
               </Transforms>
               <DigestMethod
                   Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
               <DigestValue>
               </DigestValue>
            </Reference>

            <Reference
                URI="EPUB/images/cover.png">
               <DigestMethod
                   Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
               <DigestValue>
               </DigestValue>
            </Reference>
         </Manifest>
      </Object>
   </Signature>
</signatures>

META-INF/encryption.xml 파일의 내용

<?xml version="1.0"?>
<encryption
    xmlns="urn:oasis:names:tc:opendocument:xmlns:container"
    xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

   <!--
        The RSA-encrypted AES-128 symmetric key used to encrypt
        data enumerated in EncryptedData blocks below
   -->
   <enc:EncryptedKey
       Id="EK">
      <enc:EncryptionMethod
          Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
      <ds:KeyInfo>
         <ds:KeyName>
            John Smith
         </ds:KeyName>
      </ds:KeyInfo>
      <enc:CipherData>
         <enc:CipherValue>
            xyzabc…
         </enc:CipherValue>
      </enc:CipherData>
   </enc:EncryptedKey>

   <!--
        Each EncryptedData block identifies a single resource
        that has been encrypted using the AES-128 algorithm.
        The data remains stored, in its encrypted form, in the
        original file within the container.
   -->
   <enc:EncryptedData Id="ED1">
      <enc:EncryptionMethod
          Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
      <ds:KeyInfo>
         <ds:RetrievalMethod
             URI="#EK"
             Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
      </ds:KeyInfo>
      <enc:CipherData>
         <enc:CipherReference
             URI="EPUB/book.html"/>
      </enc:CipherData>
   </enc:EncryptedData>

   <enc:EncryptedData Id="ED2">
      <enc:EncryptionMethod
          Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
      <ds:KeyInfo>
         <ds:RetrievalMethod
             URI="#EK" Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
      </ds:KeyInfo>
      <enc:CipherData>
         <enc:CipherReference
             URI="EPUB/images/cover.png"/>
      </enc:CipherData>
   </enc:EncryptedData>
</encryption>

EPUB/As_You_Like_It.opf 파일의 내용

<?xml version="1.0"?>
<package
    version="3.0"
    xml:lang="en"
    xmlns="http://www.idpf.org/2007/opf"
    unique-identifier="pub-id">

   <metadata
       xmlns:dc="http://purl.org/dc/elements/1.1/">

      <dc:identifier
          id="pub-id">
         urn:uuid:B9B412F2-CAAD-4A44-B91F-A375068478A0
      </dc:identifier>

      <dc:language>
         en
      </dc:language>

      <dc:title>
         As You Like It
      </dc:title>

      <dc:creator
          id="creator">
         William Shakespeare
      </dc:creator>

      <meta
          property="dcterms:modified">
         2000-03-24T00:00:00Z
      </meta>

      <dc:publisher>
         Project Gutenberg
      </dc:publisher>

      <dc:date>
         2000-03-24
      </dc:date>

      <meta
          property="dcterms:dateCopyrighted">
         9999-01-01
      </meta>

      <dc:identifier
          id="isbn13">
         urn:isbn:9780741014559
      </dc:identifier>

      <dc:identifier
          id="isbn10">
         0-7410-1455-6
      </dc:identifier>

      <link
          rel="xml-signature"
          href="../META-INF/signatures.xml#AsYouLikeItSignature"/>
   </metadata>

   <manifest>
      <item id="r4915"
          href="book.html"
          media-type="application/xhtml+xml"/>
      <item id="r7184"
          href="images/cover.png"
          media-type="image/png"/>
      <item id="nav"
          href="nav.html"
          media-type="application/xhtml+xml"
          properties="nav"/>
   </manifest>

   <spine>
      <itemref
          idref="r4915"/>
   </spine>
</package>

H.4 시계 값

다음은 허용되는 시계 값의 예입니다.

I. 미디어 유형 등록

I.1 application/oebps-package+xml 미디어 유형

이 부록은 EPUB 패키지 문서를 위한 미디어 유형 application/oebps-package+xml을 등록합니다. 이 등록은 RFC4839를 대체합니다(https://www.rfc-editor.org/rfc/rfc4839 참조).

패키지 문서는 EPUB 출판물을 설명하는 XML 파일입니다. 이는 EPUB 출판물 안의 리소스를 식별하고 메타데이터 정보를 제공합니다. 패키지 문서와 관련 명세는 World Wide Web Consortium (W3C)이 유지관리하고 정의합니다.

MIME 미디어 유형 이름:

application

MIME 하위 유형 이름:

oebps-package+xml

필수 매개변수:

없음.

선택적 매개변수:

없음.

인코딩 고려사항:

UTF-8이면 8bit, UTF-16이면 binary.

패키지 문서는 XML이며 UTF-8 또는 UTF-16으로 표현됩니다. 패키지 문서가 UTF-8로 작성된 경우 파일은 8bit 호환입니다. UTF-16으로 작성된 경우에는 binary content-transfer-encoding을 사용해야 합니다. 자세한 내용은 [rfc7303]을 참조하십시오.

보안 고려사항:

패키지 문서는 XML 1.0 명세를 따르는 올바른 형식의 XML을 포함합니다.

예를 들어 잘못된 형식의 데이터를 포함하는 악의적인 파일을 작성할 수 있음은 분명합니다. 대부분의 XML 파서는 적합성을 엄격하게 강제하여 이러한 공격으로부터 자신을 보호합니다.

패키지 문서를 읽는 모든 처리기는 가져온 데이터의 크기와 유효성을 엄격하게 검사해야 합니다.

현재 EPUB 3 명세에는 패키지 문서 형식 안에서 암호화, 서명 또는 인증을 위한 조항이 없습니다.

상호운용성 고려사항:

없음.

공개된 명세:

이 미디어 유형 등록은 https://www.w3.org/TR/epub-33/에 위치한 EPUB 3 명세가 설명하는 EPUB 패키지 문서를 위한 것입니다.

EPUB 3 명세는 https://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm에 위치하며 application/oepbs-package+xml 미디어 유형도 사용하는 Open Packaging Format 2.0.1 명세를 대체합니다.

이 미디어 유형을 사용하는 애플리케이션:

이 미디어 유형은 EPUB 형식의 전자책 배포에 널리 사용됩니다.

추가 정보:
매직 넘버:

없음

파일 확장자:

.opf

Macintosh 파일 유형 코드:

TEXT

조각 식별자:

EPUB Canonical Fragment Identifiers는 EPUB 출판물을 위해 정의된 사용자 정의 조각 식별자입니다. 이는 출판물에 대해 정의된 출판물 리소스 안의 임의 콘텐츠를 참조하는 데 사용할 수 있습니다. 이러한 식별자는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.

추가 정보를 위한 담당자 및 이메일 주소:

EPUB 3 Working Group (public-epub-wg@w3.org)

의도된 사용:

COMMON

작성자/변경 제어자:

World Wide Web Consortium (W3C)

I.2 application/epub+zip 미디어 유형

이 부록은 EPUB Open Container Format (OCF)을 위한 미디어 유형 application/epub+zip을 등록합니다.

OCF ZIP 컨테이너 또는 EPUB 컨테이너 파일은 zip 아카이브 형식을 기반으로 하는 컨테이너 기술입니다(https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT 참조). 이는 EPUB 출판물을 캡슐화하는 데 사용됩니다. OCF와 관련 표준은 World Wide Web Consortium (W3C)이 유지관리하고 정의합니다.

MIME 미디어 유형 이름:

application

MIME 하위 유형 이름:

epub+zip

필수 매개변수:

없음.

선택적 매개변수:

없음.

인코딩 고려사항:

OCF ZIP 컨테이너 파일은 application/zip 미디어 유형으로 인코딩된 바이너리 파일입니다.

보안 고려사항:

OCF ZIP 컨테이너 파일을 읽는 모든 처리기는 가져온 데이터의 크기와 유효성을 엄격하게 검사해야 합니다.

또한 OCF ZIP 컨테이너 파일 안에 삽입될 수 있는 다양한 콘텐츠 유형 때문에, application/epub+zip은 여기에 언급된 것 이상의 보안상 영향을 주는 콘텐츠를 설명할 수 있습니다. 그러나 처리기가 추가 콘텐츠를 인식하고 처리하거나, 그 콘텐츠의 추가 처리가 다른 처리기로 디스패치되는 경우에만 보안 문제가 잠재적으로 발생합니다. 이러한 경우 보안 문제는 이 등록 문서의 영역 밖에 속합니다.

application/zip에 적용되는 보안 고려사항은 OCF ZIP 컨테이너 파일에도 적용됩니다.

상호운용성 고려사항:

없음.

공개된 명세:

이 미디어 유형 등록은 https://www.w3.org/TR/epub-33/에 위치한 EPUB 3 명세가 설명하는 EPUB Open Container Format (OCF)을 위한 것입니다.

EPUB 3 명세는 RFC 4839https://idpf.org/epub/20/spec/OCF_2.0.1_draft.doc에 위치하며 application/epub+zip 미디어 유형도 사용하는 Open Container Format 2.0.1 명세를 모두 대체합니다.

이 미디어 유형을 사용하는 애플리케이션:

이 미디어 유형은 EPUB 형식의 전자책 배포에 널리 사용됩니다.

추가 정보:
매직 넘버:

0: PK 0x03 0x04, 30: mimetype, 38: application/epub+zip

파일 확장자:

OCF ZIP 컨테이너 파일은 가장 자주 .epub 확장자로 식별됩니다.

Macintosh 파일 유형 코드:

ZIP

조각 식별자:

EPUB Canonical Fragment Identifiers는 EPUB 출판물을 위해 정의된 사용자 정의 조각 식별자입니다. 이는 출판물에 대해 정의된 출판물 리소스 안의 임의 콘텐츠를 참조하는 데 사용할 수 있습니다. 이러한 식별자는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.

추가 정보를 위한 담당자 및 이메일 주소:

EPUB 3 Working Group (public-epub-wg@w3.org)

의도된 사용:

COMMON

작성자/변경 제어자:

World Wide Web Consortium (W3C)

J. 색인

J.1 이 명세가 정의하는 용어

J.2 참조로 정의되는 용어

K. 변경 로그

이 섹션은 비규범적입니다.

이 변경 로그는 EPUB 3.2 이후의 실질적인 변경 사항, 즉 EPUB 출판물의 적합성에 영향을 줄 수 있는 변경 사항만 식별합니다.

해결된 모든 이슈 목록은 워킹 그룹의 이슈 트래커를 참조하십시오.

2023-05-25의 권고안 이후의 실질적인 변경 사항
2023-02-21의 후보 권고안 이후의 실질적인 변경 사항
2022-05-12의 후보 권고안 이후의 실질적인 변경 사항
EPUB 3.2 이후의 실질적인 변경 사항

L. 감사의 말

이 섹션은 비규범적입니다.

예술처럼 명세도 인간의 창작물입니다. Garth Conboy보다 EPUB를 위해 더 많은 일을 한 사람은 없습니다. 그는 1999년의 최초 OEB 1.0부터 오늘날의 EPUB 3.3까지, 모든 단계에 함께 있었습니다. 이 모든 일은 Garth의 비전, 지식, 그리고 초자연적일 만큼 훌륭한 성품이 없었다면 일어나지 않았을 것입니다. 우리는 EPUB 3.3을 그의 기억에 바칩니다. Garth, 우리는 영원히 당신에게 빚을 지고 있습니다.

다음 EPUB 3 Working Group 구성원들이 이 명세의 개발에 기여했습니다.

M. 참고 문헌

M.1 규범적 참고 문헌

[bcp47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc5646
[bidi]
Unicode Bidirectional Algorithm. Manish Goregaokar मनीष गोरेगांवकर; Robin Leroy. Unicode Consortium. 13 August 2025. Unicode Standard Annex #9. URL: https://www.unicode.org/reports/tr9/tr9-51.html
[charmod-norm]
Character Model for the World Wide Web: String Matching. Addison Phillips et al. W3C. 11 August 2021. W3C Working Group Note. URL: https://www.w3.org/TR/charmod-norm/
[css-text-3]
CSS Text Module Level 3. Elika Etemad; Koji Ishii; Florian Rivoal. W3C. 30 September 2024. CRD. URL: https://www.w3.org/TR/css-text-3/
[css-text-decor-3]
CSS Text Decoration Module Level 3. Elika Etemad; Koji Ishii. W3C. 5 May 2022. CRD. URL: https://www.w3.org/TR/css-text-decor-3/
[css-writing-modes-3]
CSS Writing Modes Level 3. Elika Etemad; Koji Ishii. W3C. 10 December 2019. W3C Recommendation. URL: https://www.w3.org/TR/css-writing-modes-3/
[css2]
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. W3C. 7 June 2011. W3C Recommendation. URL: https://www.w3.org/TR/CSS2/
[csssnapshot]
CSS Snapshot. URL: https://www.w3.org/TR/CSS/
[datetime]
Date and Time Formats. Misha Wolf. W3C. 27 August 1998. W3C Working Group Note. URL: https://www.w3.org/TR/NOTE-datetime
[dcterms]
DCMI Metadata Terms. DCMI Usage Board. DCMI. 20 January 2020. DCMI Recommendation. URL: https://www.dublincore.org/specifications/dublin-core/dcmi-terms/
[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[ecmascript]
ECMAScript Language Specification. Ecma International. URL: https://tc39.es/ecma262/multipage/
[epub-a11y-11]
EPUB Accessibility 1.1. George Kerscher; Matt Garrish; Charles LaPierre; Avneesh Singh; Gregorio Pellegrino. W3C. 17 October 2024. W3C Recommendation. URL: https://www.w3.org/TR/epub-a11y-11/
[epub-rs-33]
EPUB Reading Systems 3.3. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 17 October 2024. W3C Recommendation. URL: https://www.w3.org/TR/epub-rs-33/
[epub-ssv-11]
EPUB 3 Structural Semantics Vocabulary 1.1. Ivan Herman; Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL: https://www.w3.org/TR/epub-ssv-11/
[epubcontentdocs-301]
EPUB Content Documents 3.0.1. Markus Gylling; William McCoy; Elika J. Etimad; Matt Garrish. IDPF. 26 June 2014. URL: https://idpf.org/epub/301/spec/epub-contentdocs-20140626.html
[epubpackages-32]
EPUB Packages 3.2. Matt Garrish; Dave Cramer. EPUB 3 Community Group. 08 May 2019. URL: https://www.w3.org/publishing/epub32/epub-packages.html
[epubpublications-30]
EPUB Publications 3.0. Markus Gylling; William McCoy; Matt Garrish. IDPF. 11 October 2011. URL: https://idpf.org/epub/30/spec/epub30-publications-20111011.html
[epubpublications-301]
EPUB Publications 3.0.1. Markus Gylling; William McCoy; Matt Garrish. IDPF. 26 June 2014. URL: https://idpf.org/epub/301/spec/epub-publications-20140626.html
[fips-180-4]
FIPS PUB 180-4: Secure Hash Standard (SHS). U.S. Department of Commerce/National Institute of Standards and Technology. August 2015. National Standard. URL: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
[geolocation]
Geolocation. Marcos Caceres; Reilly Grant. W3C. 29 October 2025. W3C Recommendation. URL: https://www.w3.org/TR/geolocation/
[gif]
Graphics Interchange Format. CompuServe Incorporated. 31 July 1990. URL: https://www.w3.org/Graphics/GIF/spec-gif89a.txt
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[html-rdfa]
HTML+RDFa 1.1 - Second Edition. Manu Sporny. W3C. 17 March 2015. W3C Recommendation. URL: https://www.w3.org/TR/html-rdfa/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[iso8601-1]
Date and time — Representations for information interchange — Part 1: Basic rules. ISO 8601-1:2019.. International Organization for Standardization (ISO). 2019. ISO 8601-1:2019. URL: https://www.iso.org/standard/70907.html
[jpeg]
JPEG File Interchange Format. Eric Hamilton. C-Cube Microsystems. Milpitas, CA, USA. September 1992. URL: https://www.w3.org/Graphics/JPEG/jfif3.pdf
[mathml3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 10 April 2014. W3C Recommendation. URL: https://www.w3.org/TR/MathML3/
[mp3]
Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio. ISO/IEC. August 1993. Published. URL: https://www.iso.org/standard/22412.html
[mp4]
Information technology — Coding of audio-visual objects — Part 14: MP4 file format. ISO/IEC. January 2020. Published. URL: https://www.iso.org/standard/79110.html
[mpeg4-audio]
Information technology — Coding of audio-visual objects — Part 3: Audio. ISO/IEC. December 2019. Published. URL: https://www.iso.org/standard/76383.html
[onix]
ONIX for Books 3.0. URL: https://www.editeur.org/8/ONIX/
[opentype]
OpenType specification. Microsoft. URL: http://www.microsoft.com/typography/otspec/default.htm
[opf-201]
Open Packaging Format 2.0.1. IDPF. 04 September 2010. URL: https://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm
[png]
Portable Network Graphics (PNG) Specification (Third Edition). Chris Lilley; Leonard Rosenthol; Pierre-Anthony Lemieux; Chris Needham; Simon Thompson; Chris Seeger; Chris Blume; Cosmin Truta. W3C. 24 June 2025. W3C Recommendation. URL: https://www.w3.org/TR/png-3/
[push-api]
Push API. Marcos Caceres; Kagami Rosylight. W3C. 1 December 2025. W3C Working Draft. URL: https://www.w3.org/TR/push-api/
[rdfa-core]
RDFa Core 1.1 - Third Edition. Ben Adida; Mark Birbeck; Shane McCarron; Ivan Herman et al. W3C. 17 March 2015. W3C Recommendation. URL: https://www.w3.org/TR/rdfa-core/
[rfc2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. N. Freed; N. Borenstein. IETF. November 1996. Draft Standard. URL: https://www.rfc-editor.org/rfc/rfc2046
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[rfc2397]
The "data" URL scheme. L. Masinter. IETF. August 1998. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc2397
[rfc4329]
Scripting Media Types. B. Hoehrmann. IETF. April 2006. Informational. URL: https://www.rfc-editor.org/rfc/rfc4329
[rfc7303]
XML Media Types. H. Thompson; C. Lilley. IETF. July 2014. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc7303
[rfc7845]
Ogg Encapsulation for the Opus Audio Codec. T. Terriberry; R. Lee; R. Giles. IETF. April 2016. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc7845
[rfc8089]
The "file" URI Scheme. M. Kerwin. IETF. February 2017. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc8089
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[rfc9110]
HTTP Semantics. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed. IETF. June 2022. Internet Standard. URL: https://httpwg.org/specs/rfc9110.html
[rfc9649]
WebP Image Format. J. Zern; P. Massimino; J. Alakuijala. IETF. November 2024. Informational. URL: https://www.rfc-editor.org/rfc/rfc9649
[smil3]
Synchronized Multimedia Integration Language (SMIL 3.0). Dick Bulterman. W3C. 1 December 2008. W3C Recommendation. URL: https://www.w3.org/TR/SMIL3/
[svg]
SVG. W3C. URL: https://www.w3.org/TR/SVG/
[truetype]
TrueType™ Reference Manual. Apple, Inc. URL: https://developer.apple.com/fonts/TrueType-Reference-Manual/
[uax15]
Unicode Normalization Forms. Ken Whistler. Unicode Consortium. 30 July 2025. Unicode Standard Annex #15. URL: https://www.unicode.org/reports/tr15/tr15-57.html
[unicode]
The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
[url]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
[us-ascii]
"Coded Character Set - 7-bit American Standard Code for Information Interchange", ANSI X3.4, 1986..
[wai-aria]
Accessible Rich Internet Applications (WAI-ARIA). W3C. URL: https://www.w3.org/TR/wai-aria/
[woff]
WOFF File Format 1.0. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 13 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/WOFF/
[woff2]
WOFF File Format 2.0. Vladimir Levantovsky. W3C. 8 August 2024. W3C Recommendation. URL: https://www.w3.org/TR/WOFF2/
[xinclude]
XML Inclusions (XInclude) Version 1.0 (Second Edition). Jonathan Marsh; David Orchard; Daniel Veillard. W3C. 15 November 2006. W3C Recommendation. URL: https://www.w3.org/TR/xinclude/
[xml]
Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
[xml-names]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 8 December 2009. W3C Recommendation. URL: https://www.w3.org/TR/xml-names/
[xmldsig-core]
XML Signature Syntax and Processing (Second Edition). Donald Eastlake; Joseph Reagle; David Solo; Frederick Hirsch; Thomas Roessler et al. W3C. 10 June 2008. W3C Recommendation. URL: https://www.w3.org/TR/xmldsig-core/
[xmldsig-core1]
XML Signature Syntax and Processing Version 1.1. Donald Eastlake; Joseph Reagle; David Solo; Frederick Hirsch; Magnus Nyström; Thomas Roessler; Kelvin Yiu. W3C. 11 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/xmldsig-core1/
[xmlenc-core1]
XML Encryption Syntax and Processing Version 1.1. Donald Eastlake; Joseph Reagle; Frederick Hirsch; Thomas Roessler. W3C. 11 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/xmlenc-core1/
[xmlenc-decrypt]
Decryption Transform for XML Signature. Merlin Hughes; Takeshi Imamura; Hiroshi Maruyama. W3C. 10 December 2002. W3C Recommendation. URL: https://www.w3.org/TR/xmlenc-decrypt/
[xmlschema-2]
XML Schema Part 2: Datatypes Second Edition. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-2/
[zip]
.ZIP File Format Specification. 15 July 2020. Final. URL: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

M.2 정보 제공 참고 문헌

[audiobooks]
Audiobooks. Wendy Reid; Matt Garrish. W3C. 10 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/audiobooks/
[css-viewport-1]
CSS Viewport Module Level 1. W3C. URL: https://drafts.csswg.org/css-viewport/
[dpub-aria]
Digital Publishing WAI-ARIA Module. W3C. URL: https://www.w3.org/TR/dpub-aria/
[epub-a11y-tech-11]
EPUB Accessibility Techniques 1.1. Matt Garrish; George Kerscher; Charles LaPierre; Gregorio Pellegrino; Avneesh Singh. W3C. 13 March 2025. W3C Working Group Note. URL: https://www.w3.org/TR/epub-a11y-tech-11/
[epub-multi-rend-11]
EPUB 3 Multiple-Rendition Publications 1.1. Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL: https://www.w3.org/TR/epub-multi-rend-11/
[epub-overview-33]
EPUB 3 Overview. Matt Garrish; Ivan Herman. W3C. 13 March 2025. W3C Working Group Note. URL: https://www.w3.org/TR/epub-overview-33/
[epub-tts-10]
EPUB 3 Text-to-Speech Enhancements 1.0. Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL: https://www.w3.org/TR/epub-tts-10/
[fetch]
Fetch Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://fetch.spec.whatwg.org/
[h264]
H.264 : Advanced video coding for generic audiovisual services. 2017-04-13. URL: https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=13189
[international-specs]
Internationalization Best Practices for Spec Developers. Richard Ishida; Addison Phillips. W3C. 8 August 2025. W3C Working Group Note. URL: https://www.w3.org/TR/international-specs/
[iso22424]
ISO/IEC TS 22424-1:2020 — Digital publishing — EPUB3 preservation. 2020-01. URL: https://www.iso.org/standard/73163.html
[isoschematron]
ISO/IEC 19757-3: Rule-based validation — Schematron. 2006-06-01. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c040833_ISO_IEC_19757-3_2006(E).zip
[json-ld11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11/
[mediaqueries-3]
Media Queries Level 3. Florian Rivoal. W3C. 21 May 2024. W3C Recommendation. URL: https://www.w3.org/TR/mediaqueries-3/
[nvdl]
ISO/IEC 19757-4: NVDL (Namespace-based Validation Dispatching Language). 2006-06-01. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c038615_ISO_IEC_19757-4_2006(E).zip
[odf]
Open Document Format for Office Applications (OpenDocument) v1.0. 1 May 2005. URL: https://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf
[relaxng-schema]
Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG. ISO/IEC. 2008. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c052348_ISO_IEC_19757-2_2008(E).zip
[rfc3986]
Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc3986
[rfc4839]
Media Type Registrations for the Open eBook Publication Structure (OEBPS) Package File (OPF). G. Conboy; J. Rivlin; J. Ferraiolo. IETF. April 2007. Informational. URL: https://www.rfc-editor.org/rfc/rfc4839
[rfc6386]
VP8 Data Format and Decoding Guide. J. Bankoski; J. Koleszar; L. Quillio; J. Salonen; P. Wilkins; Y. Xu. IETF. November 2011. Informational. URL: https://www.rfc-editor.org/rfc/rfc6386
[rfc8141]
Uniform Resource Names (URNs). P. Saint-Andre; J. Klensin. IETF. April 2017. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc8141
[uaag20]
User Agent Accessibility Guidelines (UAAG) 2.0. James Allan; Greg Lowney; Kimberly Patch; Jeanne F Spellman. W3C. 15 December 2015. W3C Working Group Note. URL: https://www.w3.org/TR/UAAG20/
[uax44]
Unicode Character Database. Ken Whistler. Unicode Consortium. 27 August 2025. Unicode Standard Annex #44. URL: https://www.unicode.org/reports/tr44/tr44-36.html
[wcag2]
Web Content Accessibility Guidelines (WCAG) 2. W3C. URL: https://www.w3.org/TR/WCAG2/
[webvtt]
WebVTT: The Web Video Text Tracks Format. Silvia Pfeiffer. W3C. 4 April 2019. W3C Candidate Recommendation. URL: https://www.w3.org/TR/webvtt1/
[xhr]
XMLHttpRequest Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://xhr.spec.whatwg.org/
[xmlbase]
XML Base (Second Edition). Jonathan Marsh; Richard Tobin. W3C. 28 January 2009. W3C Recommendation. URL: https://www.w3.org/TR/xmlbase/
[xmlsec-rngschema-20130411]
XML Security RELAX NG Schemas. Murata Makoto; Frederick Hirsch. W3C. 11 April 2013. W3C Working Group Note. URL: https://www.w3.org/TR/2013/NOTE-xmlsec-rngschema-20130411/