EPUB 3.4

W3C 작업 초안

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2026/WD-epub-34-20260623/
최신 공개 버전:
https://www.w3.org/TR/epub-34/
최신 편집자 초안:
https://w3c.github.io/epub-specs/epub34/authoring/
이력:
https://www.w3.org/standards/history/epub-34/
커밋 이력
테스트 스위트:
https://w3c.github.io/epub-tests/index.html
구현 보고서:
https://w3c.github.io/epub-specs/epub34/reports/
편집자:
Matt Garrish (DAISY Consortium)
Ivan Herman (W3C)
전 편집자:
Dave Cramer (W3C 초청 전문가)
피드백:
GitHub w3c/epub-specs (풀 리퀘스트, 새 이슈, 열린 이슈)
public-pm-wg@w3.org 제목 줄에 [epub-34] … 메시지 주제 …를 포함해 보내세요(아카이브)

초록

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

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

이 문서의 상태

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

이 문서는 Publishing Maintenance Working Group에서 권고안 트랙을 사용하여 작업 초안으로 발행했습니다.

작업 초안으로 발행되었다고 해서 W3C 및 그 회원이 이를 지지한다는 의미는 아닙니다.

이 문서는 초안 문서이며 언제든지 다른 문서로 업데이트, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 이외의 것으로 인용하는 것은 부적절합니다. 향후 이 예정된 권고안의 업데이트에는 새 기능이 포함될 수 있습니다.

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

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

1. 소개

1.1 개요

이 절은 비규범적입니다.

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

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

이들 명세는 EPUB 3에 속하는 것으로 공식 인정되고 표준의 일부로 규범적으로 참조되는 기능을 포함하는 공식 목록을 나타냅니다. 확장 명세의 개발은 주기적으로 EPUB 출판물에 새로운 기능을 추가합니다. 이 명세에서 공식적으로 인정되지는 않더라도, 표준의 핵심 개정 밖에서 정의된 기능과 기능성은 EPUB 출판물에서 사용하고 reading system에서 구현할 수 있습니다.

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

1.2 구성

이 절은 비규범적입니다.

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

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

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

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

EPUB 출판물은 일반적으로 하나의 package document로 표현됩니다. 이 문서는 제목과 저자처럼 책장에서 표시하기 위한 정보뿐 아니라 콘텐츠가 리플로 가능한지 또는 고정 레이아웃인지 등의 렌더링 메타데이터와 같이, reading systems가 콘텐츠를 사용자에게 표시하는 데 사용하는 메타데이터를 포함합니다. 또한 리소스의 manifest를 제공하고, 사용자가 콘텐츠를 진행하면서 문서를 렌더링할 기본 순서를 나열하는 spine을 포함합니다. Package document의 요건은 5. Package document를 참조하세요.

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

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

EPUB 콘텐츠 문서를 만들기 위한 규칙과 요건에 대한 자세한 내용은 7. EPUB 콘텐츠 문서를, 접근성 요건은 [epub-a11y-12]를 참조하세요.

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

Media overlay documents는 EPUB 콘텐츠 문서를 보완합니다. 이들은 EPUB 콘텐츠 문서의 텍스트를 사전 녹음된 오디오와 동기화하기 위한 선언적 마크업을 제공합니다. 그 결과 reading systems가 낭독되는 동안 텍스트를 강조 표시하는 read-aloud 경험을 만들 수 있습니다. Media overlay document의 정의는 9.3 Media overlays를 참조하세요.

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

Reading system의 처리 요건은 [epub-rs-34]를 참조하세요. EPUB 출판물을 만들기 위해 반드시 그 문서를 읽을 필요는 없지만, reading system이 콘텐츠를 어떻게 표시하는지 이해하면 사용자에게 최적으로 표시될 출판물을 만드는 데 도움이 될 수 있습니다.

1.3 다른 명세와의 관계

이 절은 비규범적입니다.

주의

EPUB 3이 기반으로 하는 기술은 지속적으로 진화하고 있습니다. 일반적으로 "living" 또는 "evergreen" 표준이라고 불리는 일부 기술은 매일 변경될 수 있으며, EPUB 출판물의 유효성에 즉각적인 영향을 미칩니다. 다른 기술은 덜 자주 업데이트되며, EPUB 3이 새 개정을 거치기 전까지는 변경이 EPUB 출판물에 영향을 주지 않을 수 있습니다.

모든 경우에, 이전에 유효했던 기능이 폐기될 가능성이 있습니다(예: 지원 부족 또는 보안 문제 때문). 또한 새로운 기능이 reading systems에서 널리 지원되기 전에 사용할 수 있게 될 가능성도 있습니다.

따라서 폭넓게 지원되는 기능만 사용하고 EPUB conformance checkers를 최신 상태로 유지하는 것이 권장됩니다.

1.3.1 HTML과의 관계

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

이 접근 방식의 장점은 EPUB 3이 항상 웹과 최신 상태를 유지한다는 점이지만, 동시에 이 명세가 HTML과 HTML이 참조하는 기술의 변경 사항을 추적하지 않는다는 뜻이기도 합니다. 저작 프로세스가 최신 상태로 유지되도록 이러한 표준은 별도로 모니터링해야 합니다.

[html] 표준은 HTML 구문 또는 XML 구문을 사용해 태그 집합을 표현하는 규칙이 있는 단일 콘텐츠 모델을 정의합니다. 그러나 EPUB 3은 XHTML 콘텐츠 문서라고 부르는 XML 구문을 사용한 콘텐츠 문서 저작만 허용합니다.

이 명세에서 정의한 XHTML 프로파일은 달리 명시하지 않는 한 [html]의 의미론, 구조 및 처리 동작에 대한 모든 정의를 상속합니다.

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

1.3.2 SVG와의 관계

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

이 접근 방식의 장점은 EPUB 3이 항상 SVG 표준과 최신 상태를 유지한다는 점이지만, 동시에 이 명세가 SVG의 변경 사항을 추적하지 않는다는 뜻이기도 합니다. 저작 프로세스가 최신 상태로 유지되도록 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.3.2.2 Media overlay document definition에 정의된 media overlays 요소와 속성은 여기서 파생됩니다.

1.3.6 URL과의 관계

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

1.4 용어

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

참고

한 절에서 용어의 첫 번째 인스턴스만 그 정의로 연결됩니다.

codec

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

container resource

remote resource가 그렇지 않은 것과 달리, EPUB container 안에 위치한 publication resource입니다.

리소스 위치에 대한 미디어 타입별 규칙은 3.6 Resource locations를 참조하세요.

container root URL

OCF abstract container를 나타내는 root directoryURL [url]입니다. Container root URL은 구현별로 다르지만, 그 속성은 4.2.5 URLs in the OCF abstract container에 정의되어 있습니다.

content URL

4.2.5 URLs in the OCF abstract container에 정의된, OCF abstract container 안의 파일 또는 디렉터리의 URL입니다.

core media type resource

3.2 Core media types에 나열된 MIME 미디어 타입 [rfc2046] 중 하나를 준수하므로 fallback 제공이 필요하지 않은 publication resource입니다(cf. foreign resource).

"core media type resource"라는 지정은 리소스가 EPUB 콘텐츠 문서foreign content documents의 렌더링에 사용될 때만 적용됩니다. 예를 들어, core media type resource는 EPUB 콘텐츠 문서의 미디어 타입도 가지고 있지 않는 한 fallback 없이는 spine에서 사용할 수 없습니다.

EPUB conformance checker

이 명세의 요건을 EPUB 출판물에 대해 검증하고 그 준수 여부를 보고하는 애플리케이션입니다.

EPUB container
OCF ZIP container

4.3 OCF ZIP container에 정의된 EPUB 출판물용 ZIP 기반 패키징 및 배포 형식입니다.

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

EPUB content document

XHTML 또는 SVG 콘텐츠 문서 정의 중 하나를 준수하며, spine 또는 manifest fallback chain에서 참조되는 publication resource입니다.

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

EPUB 출판물은 fallbacks 제공 없이 spine에서 EPUB 콘텐츠 문서를 참조할 수 있습니다.

EPUB manifest (또는 manifest)

publication resources를 나열하는 package document의 절입니다.

자세한 내용은 5.7.1 The manifest element를 참조하세요.

EPUB navigation document

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

EPUB publication

EPUB container에 패키징된 서로 관련된 리소스 집합으로 이루어진 논리적 문서 엔티티입니다.

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

EPUB reading system (또는 reading system)

이 명세를 준수하는 방식으로 사용자에게 표시하기 위해 EPUB 출판물을 처리하는 시스템입니다.

EPUB spine (또는 spine)

EPUB 콘텐츠 문서foreign content documents의 순서가 지정된 목록을 정의하는 package document의 절입니다. 이 목록은 EPUB 출판물의 기본 읽기 순서를 나타냅니다.

자세한 내용은 5.8.1 The spine element를 참조하세요.

exempt resource

Exempt resources는 publication resources의 특수한 클래스이며, fallbacks가 필요하지 않고 reading system이 렌더링을 지원할 필요도 없습니다.

자세한 내용은 3.4 Exempt resources를 참조하세요.

file name

OCF abstract container 안의 모든 유형의 파일 이름을 말하며, 디렉터리인지 디렉터리 안의 파일인지는 관계없습니다.

file path

파일 또는 디렉터리의 file path는 root directory를 기준으로 한 전체 경로이며, 4.2.4 Deriving file paths에 지정된 알고리즘으로 정의됩니다.

fixed-layout document

spine에서 직접 참조되는 고정 치수를 가진 EPUB 콘텐츠 문서입니다. Fixed-layout documents는 pre-paginated 또는 roll 레이아웃으로 표시됩니다.

foreign content document

Spine itemref 요소 또는 manifest fallback chain에서 참조되는 publication resource 중, EPUB 콘텐츠 문서가 아닌 모든 리소스입니다.

Foreign content document가 spine itemref 요소에서 참조될 때는, 적어도 하나의 EPUB 콘텐츠 문서를 포함하는 manifest fallback chain이 필요합니다.

참고

XHTML 및 SVG를 제외한 모든 core media type resources는 spine에서 직접 참조될 때 foreign content documents입니다.

foreign resource

3.2 Core media types에 나열된 것과 일치하지 않는 MIME 미디어 타입 [rfc2046]을 가진 publication resource입니다. Foreign resources는 3.3 Foreign resources에 정의된 fallback 요건의 적용을 받습니다.

"foreign resource"라는 지정은 EPUB 콘텐츠 문서foreign content documents의 렌더링에 사용되는 리소스에만 적용됩니다.

참고

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

linked resource

package documentlink 요소에서만 참조되는 리소스입니다(즉, EPUB 출판물의 렌더링에도 사용되지는 않습니다).

Linked resources는 publication resources는 아니지만 EPUB container에 저장될 수 있습니다. 이들은 fallbacks가 필요하지 않습니다.

media overlay document

9.3 Media overlays에 정의된 대로, 동기화된 재생 경험을 제공하기 위해 XHTML 콘텐츠 문서를 사전 녹음된 오디오 내레이션과 연결하는 XML 문서입니다.

non-codec

Non-codec은 내부 데이터 구조의 특성상 압축의 이점을 얻는 콘텐츠 타입을 가리키며, 예를 들어 HTML, CSS 등 문자 문자열 기반 파일 형식이 이에 해당합니다.

OCF abstract container

OCF abstract container는 4.2 OCF abstract container에 정의된 대로, OCF ZIP container의 콘텐츠에 대한 파일 시스템 모델을 정의합니다.

package document

5. Package document에 정의된 대로, EPUB 출판물의 렌더링을 설명하는 publication resource입니다. Package document는 EPUB 출판물에 대한 메타 정보를 담고, 리소스의 manifest를 제공하며, 기본 읽기 순서를 정의합니다.

publication resource

EPUB 출판물의 논리와 렌더링에 기여하는 콘텐츠 또는 지시사항을 포함하는 리소스입니다. 이 리소스가 없으면 reading systems가 EPUB 출판물을 의도한 대로 렌더링하지 못할 수 있습니다. Publication resources의 예로는 package document, EPUB 콘텐츠 문서, CSS Style Sheets, 오디오, 비디오, 이미지, 임베디드 폰트, 스크립트가 있습니다.

Package document의 manifest는 일반적으로 EPUB container에 묶여야 하는 모든 publication resources의 목록을 포함해야 합니다(예외는 3.6 Resource locations에 나열된 리소스가 EPUB container 밖에 위치할 수 있다는 점입니다).

참고

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

Data urls도 publication resources가 아닙니다. 이들은 포함된 리소스의 일부로 간주됩니다.

remote resource

EPUB container 밖, 일반적으로 웹에 위치한 publication resource입니다.

EPUB container 안의 publication resources는 container resources라고 합니다.

리소스 위치에 대한 미디어 타입별 규칙은 3.6 Resource locations를 참조하세요.

root directory

Root directory는 OCF abstract container 파일 시스템의 기반을 나타냅니다. 이 디렉터리는 본질적으로 가상적입니다.

scripted content document

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

자세한 내용은 7.4.2 Scripting을 참조하세요.

SVG content document

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

synthetic spread

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

top-level content document

직접 또는 fallback chain을 통해 spine에서 참조되는 EPUB 콘텐츠 문서 또는 foreign content document입니다.

XHTML content document

7.1 XHTML content documents에 정의된 [html] 프로파일을 준수하는 EPUB 콘텐츠 문서입니다.

XHTML 콘텐츠 문서는 XML 구문 [html]을 사용해 표현됩니다.

참고

[html] 표준은 더 이상 XML 구문을 "XHTML"이라고 부르지 않지만, EPUB 3.0이 개발되던 당시에는 XHTML이라는 이름이 여전히 현재적이었습니다. "XHTML content document"라는 이름은 EPUB 2에서도 사용되었으므로, 이를 변경하지 않고 유지한 것은 새 형식으로의 전환을 쉽게 하기 위한 의도였습니다. EPUB 2와 달리, 이 문서의 XHTML은 2018년에 공식적으로 대체된 [xhtml11]을 가리키지 않습니다.

unique identifier

EPUB 출판물의 기본 식별자입니다. Unique identifier는 package documentunique-identifier 속성으로 지정된 dc:identifier 요소의 value입니다.

콘텐츠의 중요한 개정, 축약 등에는 새로운 unique identifier가 필요합니다.

viewport

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

1.5 준수

비규범적으로 표시된 절뿐 아니라, 이 명세의 모든 저작 지침, 다이어그램, 예 및 참고는 비규범적입니다. 이 명세의 나머지 모든 것은 규범적입니다.

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

모든 주의 상자, 괄호 안의 설명문, 알고리즘 설명도 비규범적입니다.

1.6 저작 약어

이 절은 비규범적입니다.

package document 메타데이터 예에서, 예약 접두사는 선언 없이 사용됩니다.

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

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

2. EPUB 출판물 준수

EPUB 출판물은:

또한, 모든 publication resources는 3. Publication resources의 요건을 준수해야 합니다.

이 명세의 나머지는 구체적인 준수 세부 사항을 다룹니다.

2.1 준수 검사

이 절은 비규범적입니다.

이 명세의 복잡성과 EPUB 출판물에 사용되는 기술의 수 때문에, 콘텐츠 준수를 검증하기 위해 EPUB conformance checker를 사용하는 것이 권장됩니다.

EPUBCheck는 출판 업계에서 사용하는 사실상의 EPUB conformance checker이며 EPUB의 각 새 버전에 맞춰 업데이트되어 왔습니다. 여러 저작 도구에 통합되어 있고, 대체 인터페이스 및 다른 언어로도 제공됩니다(자세한 정보는 해당 Apps and Tools 페이지를 참조하세요).

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

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

참고

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

3. 출판물 리소스

3.1 소개

이 절은 비규범적입니다.

EPUB 출판물은 여러 다양한 범주의 리소스로 구성되며, 그 모두가 서로 배타적인 것은 아닙니다. 어떤 리소스는 publication resources이고, 어떤 리소스는 그렇지 않습니다. 어떤 publication resources는 기본적으로 spine에서 허용되지만, 다른 모든 것은 fallbacks가 필요합니다. 어떤 리소스는 EPUB 콘텐츠 문서의 렌더링에 사용할 수 있고, 다른 리소스는 fallbacks와 함께만 사용할 수 있습니다.

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

세 가지 평면은 다음과 같습니다:

동일한 리소스가 둘 이상의 평면에 존재할 수 있으며, 어떤 평면을 논의하는지에 따라 이 명세에서 다르게 지칭됩니다. 예를 들어, EPUB 콘텐츠 문서의 렌더링에 사용되는 core media type resource (content plane 위)는 spine에도 나열되어 있다면 foreign content document가 될 수도 있습니다 (spine plane).

다음 절들은 이러한 평면을 더 자세히 설명합니다.

참고

리소스가 서로 다른 평면에 어떻게 들어맞는지 보여주는 자세한 예는 A.1 Resources를 참조하세요.

3.1.1 manifest 평면

manifest planeEPUB 출판물의 모든 리소스를 정의합니다. 이는 package documentmanifest와 유사하지만, 해당 목록에 없는 리소스도 포함합니다.

이 그룹의 주요 리소스는 publication resources로 지정되며, 이는 EPUB 출판물을 사용자에게 렌더링하는 데 사용되는 모든 리소스입니다. manifest 요소는 이러한 리소스의 완전한 목록을 포함해야 합니다.

Publication resources는 spine planecontent plane에서의 사용 방식에 따라 추가로 분류됩니다.

Manifest plane은 linked resources 집합도 포함합니다. 이 리소스들은 직접 렌더링과 부수적으로 관련됩니다. 예를 들어 메타데이터 레코드와 외부 콘텐츠에 대한 링크(예: EPUB 출판물 구매 위치)를 포함합니다.

Publication resources와 달리, 이들은 package document manifest에 나열되지 않습니다(즉, EPUB 출판물 렌더링에 필수적이지 않기 때문입니다). 대신 package document metadata의 link 요소에 정의됩니다. 이러한 요소는 manifest item 요소가 publication resource를 정의하는 방식과 유사하게 그 성격과 목적을 정의합니다. (이런 방식으로, 이들은 manifest의 확장과 같습니다.)

Linked resources에 대한 자세한 내용은 5.6.6 The link element를 참조하세요.

Manifest plane의 리소스는 위치에 따라 세분화되기도 합니다. 대부분의 publication resources는 EPUB container 안에 위치해야 하지만(이를 container resources라고 함), EPUB 3은 오디오, 비디오, 폰트 및 스크립트 데이터 리소스가 컨테이너 밖에 호스팅되는 것을 허용합니다. 이러한 예외는 EPUB 출판물의 다운로드와 로딩을 빠르게 하기 위해 마련되었습니다. 이러한 리소스는 일반적으로 매우 크고, 폰트의 경우 표시 자체에 필수적이지 않기 때문입니다. 원격으로 호스팅될 때, 이러한 publication resources는 remote resources라고 합니다.

Linked resources는 EPUB 출판물의 렌더링에 필수적이지 않으므로, 이들이 어디에 위치해야 하는지에 대한 요건은 없으며 따라서 위치를 기준으로 한 특별한 명칭도 없습니다. 이들은 EPUB container 안에 있거나 그 밖에 있을 수 있습니다.

참고

EPUB container 밖의 하이퍼링크된 콘텐츠(예: 웹 페이지)는 publication resources가 아니며, 따라서 manifest에 나열되지 않습니다. Reading systems는 일반적으로 이러한 링크를 EPUB 출판물의 일부가 아니라 별도의 브라우저 인스턴스에서 엽니다.

3.1.2 spine 평면

spine planespine이 설정한 기본 읽기 순서에서 사용되는 리소스를 정의하며, 선형 및 비선형 콘텐츠를 모두 포함합니다. Spine은 사용자가 EPUB 출판물을 진행할 때 이러한 리소스를 어떻게 로드할지 reading systems에 지시합니다. 많은 리소스가 EPUB container에 묶일 수 있지만, 모두가 기본적으로 spine에서 허용되는 것은 아닙니다.

EPUB 3은 제한 없이 spine에서 사용할 수 있는 EPUB 콘텐츠 문서라는 특수한 리소스 클래스를 정의합니다. EPUB 콘텐츠 문서는 XHTML 콘텐츠 문서SVG 콘텐츠 문서를 모두 포함합니다.

core media type resources를 포함해, spine에서 다른 유형의 리소스를 사용하는 것은 foreign content document라고 합니다. Foreign content documents는 EPUB 콘텐츠 문서로의 manifest fallback을 필요로 합니다. 이 모델에서 foreign content document에 대한 manifest 항목은 reading system이 그 형식을 지원하지 않을 때 시도할 수 있는 다음 리소스를 가리키는 fallback 속성을 포함해야 합니다. 흔하지는 않지만, fallback resource가 또 다른 fallback을 지정할 수 있으므로 여러 리소스 깊이의 체인이 만들어질 수 있습니다. 하나의 요건은 manifest fallback chain에 적어도 하나의 EPUB 콘텐츠 문서가 있어야 한다는 것입니다.

Fallback chain의 모든 리소스는 spine에 직접 나열되어 있지 않더라도, reading system이 사용할 수 있는 리소스이므로 spine의 일부, 더 나아가 spine plane의 일부로 간주됩니다.

이 확장성 모델은 foreign content documents에 대한 지원 보장이 없더라도, reading system이 사용자가 읽을 수 있는 무언가를 항상 렌더링할 수 있도록 하면서 형식 실험을 가능하게 합니다.

자세한 내용은 3.5.1 Manifest fallbacks를 참조하세요.

주의

Manifest fallbacks는 EPUB의 기술적 요건을 충족하지만, reading system에서의 실제 지원은 거의 없습니다. 이를 사용하면 읽을 수 없는 출판물로 이어질 수 있으므로 사용을 강하게 권장하지 않습니다.

참고

EPUB 콘텐츠 문서에 대해 manifest fallbacks를 제공하는 것은 가능하지만, 일반적이거나 필수적인 것은 아닙니다. 예를 들어, scripted content document는 scripting을 지원하지 않는 reading system을 위해 비스크립트 대안으로의 fallback을 가질 수 있습니다.

3.1.3 content 평면

content planeEPUB 콘텐츠 문서foreign content documents를 렌더링할 때 사용되는 리소스를 분류합니다. 이러한 유형의 리소스에는 임베디드 미디어, CSS 스타일 시트, 스크립트, 폰트가 포함됩니다. 이러한 리소스는 reading system 지원에 따라 세 범주로 나뉩니다: core media type resources, foreign resources, 그리고 exempt resources.

Core media type resource는 reading systems가 지원해야 하는 리소스이므로, EPUB 또는 foreign content documents에서 제한 없이 사용할 수 있습니다. Core media type resources에 대한 자세한 내용은 3.2 Core media types를 참조하세요.

참고

Core media type resource라고 해서 reading system이 항상 해당 리소스를 렌더링한다는 뜻은 아닙니다. 모든 reading system이 EPUB 3의 모든 기능을 지원하는 것은 아니기 때문입니다. 예를 들어 viewport가 없는 reading system은 이미지와 같은 시각 콘텐츠를 렌더링하지 않습니다.

Core media type resources의 반대는 foreign resources입니다. 이들은 reading system이 렌더링을 지원한다고 보장되지 않는 리소스입니다. 따라서 spine에서 foreign content documents를 사용할 때 렌더링을 보장하기 위해 fallbacks가 필요한 것과 유사하게, content documents에서 foreign resources를 사용할 때도 fallbacks가 필요합니다. 이러한 fallbacks는 호스트 형식의 기능을 사용해 제공됩니다. 예를 들어 많은 HTML 요소는 내재적 fallback 기능을 가지고 있습니다. 한 예는 picture 요소 [html]이며, 이는 여러 대체 이미지 형식을 지정할 수 있게 합니다.

Foreign resources에 대한 자세한 내용은 3.3 Foreign resources를 참조하세요.

Core media type resources와 foreign resources 사이에는 exempt resources가 있습니다. 이들은 reading system이 렌더링한다고 보장되지 않는다는 점에서 foreign resources와 가장 밀접하게 관련되어 있습니다. 그러나 core media types처럼 fallbacks는 필요하지 않습니다.

Exempt resources는 정의된 core media types가 없지만 fallback을 제공하는 것이 번거롭거나 불필요한 특정 사례를 처리하는 경향이 있습니다. 여기에는 비디오 임베딩, 접근성 트랙 추가, 그리고 [html] link 요소에서 리소스로 연결하는 것이 포함됩니다.

이러한 예외에 대한 자세한 내용은 3.4 Exempt resources를 참조하세요.

참고

Core media type resources에서 흔히 혼동되는 지점은 XHTML과 SVG가 각각의 EPUB 콘텐츠 문서 정의를 준수해야 한다는 요건과 함께 core media type resources로 나열된다는 점입니다. 이 공통 정의는 XHTML과 SVG 문서가 spine에 나열되든, 다른 EPUB 콘텐츠 문서에 포함되든 관계없이 동일한 저작 및 reading system 지원 요건을 갖도록 보장합니다.

실제로는 XHTML 및 SVG core media type resources가 XHTML 및 SVG 콘텐츠 문서를 준수하기도 하므로, 수정이나 fallback 없이 spine에서 허용된다는 뜻입니다. 그러나 이는 고유한 사례입니다. 다른 모든 core media type resources는 spine에서 사용될 때 foreign content documents가 됩니다 (즉, foreign content documents는 XHTML과 SVG를 제외한 모든 foreign resources와 모든 core media type resources를 포함합니다).

3.2 핵심 미디어 타입

다음 표에 정의된 MIME 미디어 타입 [rfc2046] 명세를 준수하는 Publication resourcesEPUB 콘텐츠 문서foreign content documents에서 사용될 때 EPUB 출판물에 fallback 없이 포함될 MAY 있습니다. 이러한 리소스는 core media type resources로 분류됩니다.

XHTML 콘텐츠 문서SVG 콘텐츠 문서manifest fallback 없이 spine에서 참조할 수 있습니다. 다른 모든 core media type resources가 spine에서 직접 참조되는 경우, manifest fallback을 포함해야 MUST 합니다. 이 경우 이들은 foreign content documents입니다.

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

Media Type Content Type Definition Applies to In EPUB 3 since
HTML
application/xhtml+xml XHTML 콘텐츠 문서 XML 구문을 사용하는 HTML 문서 [html] 3.0
이미지
image/gif [gif] GIF 이미지 3.0
image/jpeg [jpeg] JPEG 이미지 3.0
image/png [png] PNG 이미지 3.0
image/svg+xml SVG 콘텐츠 문서 SVG 문서 3.0
image/webp [rfc9649] WebP 이미지 3.3
image/avif [av1-avif] AVIF 이미지 3.4
image/jxl [iso18181-1] JPEG XL 이미지 3.4
오디오
audio/mpeg [mp3] MP3 오디오 3.0
  1. audio/mp4; codecs=aac
  2. audio/mp4
[mpeg4-audio], [mp4] MP4 컨테이너를 사용하는 AAC LC 오디오 3.0
audio/mp4; codecs=opus [mpeg4-audio], [mp4], [rfc8251] MP4 컨테이너를 사용하는 OPUS 오디오 3.4
audio/ogg; codecs=opus [rfc7845] OGG 컨테이너를 사용하는 OPUS 오디오 3.3
스타일
text/css CSS Style Sheets CSS Style Sheets 3.0
폰트
  1. font/ttf
  2. application/font-sfnt
  3. application/x-font-ttf
[truetype] TrueType 폰트 3.0
  1. font/otf
  2. application/font-sfnt
  3. application/vnd.ms-opentype
[opentype] OpenType 폰트 3.0
  1. font/woff
  2. application/font-woff
[woff] WOFF 폰트 3.0
font/woff2 [woff2] WOFF2 폰트 3.2
기타
  1. application/javascript
  2. application/ecmascript
  3. text/javascript
[rfc4329] 스크립트. 3.0
application/x-dtbncx+xml [opf-201] outdated NCX 3.0
application/smil+xml Media overlays EPUB media overlay documents 3.0
참고

Core media type resource로 포함된다고 해서 모든 reading systems가 해당 리소스의 렌더링을 지원한다는 뜻은 아닙니다. Reading system 지원은 애플리케이션의 기능에도 좌우됩니다(예: viewport가 있는 reading system은 이미지 core media type resources를 지원해야 하지만, viewport가 없는 reading system은 그렇지 않습니다). 어떤 reading system의 렌더링 기능이 어떤 core media type resources에 대한 지원을 요구하는지에 대한 자세한 내용은 Core media types [epub-rs-34]를 참조하세요.

주의

Working Group은 일반적으로 웹 브라우저 코어, 즉 EPUB 3 reading system이 기반으로 하는 렌더링 엔진에서 폭넓게 지원되는 형식만 core media type resources로 포함합니다. 이는 그 단계에서 최신 reading system의 렌더링에 의존할 수 있기 때문입니다. 그럼에도 저자는 EPUB 3.0 이후 도입된 더 새로운 형식(표의 마지막 열 참조)이 예를 들어 자체 렌더링 엔진에 의존하거나 최근에 업데이트되지 않은 reading system에서는 지원되지 않을 수 있음을 알고 있어야 합니다.

3.3 외부 리소스

foreign resourcecore media type resource와 달리, EPUB 콘텐츠 문서 또는 foreign content document에서 사용될 때 reading system 지원이 보장되지 않는 것입니다.

Foreign resources에는 fallbacks가 제공되어야 MUST 합니다. Fallbacks는 일반적으로 호스트 형식의 내재적 fallback 메커니즘을 사용해 제공됩니다(예: [html] 요소는 종종 둘 이상의 미디어 타입을 참조하거나, 미디어 타입을 렌더링할 수 없을 때 대체 임베디드 메시지를 표시할 수 있는 기능을 제공합니다).

참고

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

3.5.2 Intrinsic fallbacks도 특정 요소에 대해 fallbacks가 어떻게 해석되는지에 대한 추가 정보를 제공합니다.

참고

outdated content fallbacks 기능을 foreign resources에 대한 fallbacks 제공에 사용할 수는 있지만, 그 사용은 강하게 권장되지 않습니다.

3.4 예외 리소스

exempt resourceforeign resourcescore media type resources의 속성을 모두 공유합니다. 이는 reading system 지원이 보장되지 않는다는 점에서 foreign resource와 가장 유사하지만, core media type resource처럼 fallback이 필요하지 않습니다.

일부 경우, 이 절에 정의된 예외는 기존 core media type resources가 EPUB 콘텐츠 문서에 포함되는 방식과 겹칩니다(예: [html] link 요소를 사용해 CSS style sheets를 포함하거나, CSS에 폰트를 가져오거나, [html] script 요소를 JavaScripts에 사용하는 경우). 겉으로는 fallbacks가 필요하지 않다는 점에서 리소스가 유사해 보이지만, core media types는 reading system에서 더 강한 지원 기대치를 갖는다는 점에서 구별됩니다. Core media type resource는 같은 포함 메커니즘을 공유한다고 해서 exempt resource가 되지 않습니다. 또한 예외가 없다면 exempt resource는 foreign resource가 됩니다.

Exempt resources에는 소수의 특수한 사례만 있습니다. 예를 들어 비디오는 현재 core media type 비디오 형식에 대한 합의가 없으므로 fallback에서 면제됩니다(즉, fallback할 형식이 없습니다). 마찬가지로 오디오 및 비디오 트랙은 접근성 목적을 위해 면제되므로 reading system이 가장 잘 지원하는 형식을 사용할 수 있습니다.

다음 목록은 콘텐츠별 exempt resources의 사례를, 사용할 수 있는 위치에 대한 제한을 포함해 자세히 설명합니다.

폰트

Font resources는 exempt resources입니다.

이 예외는 reading system 지원 기대치와 관계없이 fallback 없이 어떤 폰트 형식도 사용할 수 있게 합니다. CSS 규칙이 지원되지 않는 경우 fallback font를 보장하기 때문입니다.

자세한 내용은 reading system support requirements for fonts [epub-rs-34]를 참조하세요.

스크립트

[html]이 script 요소에서 참조하도록 허용하는 모든 리소스는 exempt resource입니다.

트랙

[htmltrack 요소에서 참조되는 오디오 및 비디오 트랙(예: [webvtt] 캡션, 자막 및 설명)은 exempt resources입니다.

비디오

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

참고

Reading systems는 H.264 [h264] 및 VP8 [rfc6386] 비디오 코덱 중 적어도 하나를 지원하도록 권장되지만, 비디오 코덱 지원은 준수 요건이 아닙니다. 어떤 비디오 형식을 포함할지 결정할 때는 reading system에서의 지원 범위, 재생 품질, 기술 사용료와 같은 요소를 고려하세요.

참고

위의 예외는 spine에는 적용되지 않습니다. Exempt resource가 spine에서 사용되고 EPUB 콘텐츠 문서도 아닌 경우, 그 컨텍스트에서는 fallback이 필요합니다.

콘텐츠별 예외 외에도, 리소스는 다음 조건을 충족하면 exempt resource로 분류됩니다:

이 예외는 다음과 같이 EPUB reading system이 사용하기 위한 것이 아닌 리소스를 EPUB container에 포함할 수 있게 합니다:

CSS style sheet의 url function [css-values]에서 참조되는 foreign image resource는 이 규칙으로 면제되지 않는 리소스의 예입니다. 이는 non-core media type 형식이 표시되는 결과를 낳기 때문입니다.

이 예외는 reading systems 또는 EPUB conformance checkers가 해당 리소스의 fallback 기능을 이해할 필요 없이 foreign content documents에서 foreign resources를 사용할 수 있게 합니다(즉, foreign content document에 대한 fallback 요건이 그 안의 렌더링 문제를 포괄합니다). 해당 리소스는 EPUB 콘텐츠 문서에서 참조되지 않으므로 자동으로 fallbacks에서 면제됩니다.

3.5 리소스 대체

3.5.1 Manifest fallbacks

Manifest fallbacks는 package document의 기능이며, reading systemtop-level content document 대신 사용할 수 있는 대체 리소스의 manifest fallback chain을 만들어, 기본 리소스가 spine에서 지원되지 않을 때 렌더링할 수 있는 형식을 선택할 수 있게 합니다.

Fallback chains는 manifest item 요소의 fallback 속성을 사용해 생성됩니다. 이 속성은 현재 item에 대한 fallback인 다른 manifest itemID [xml]를 참조합니다. 주어진 itemfallback 속성에서 시작해 reading system이 도달할 수 있는 모든 참조의 순서가 지정된 목록은 해당 item의 전체 및 선호 fallback chain을 모두 나타냅니다.

foreign content document는 reading system이 spine 항목을 항상 렌더링할 수 있도록, 적어도 하나의 EPUB 콘텐츠 문서를 포함해야 하는 fallback chain을 지정해야 MUST 합니다.

EPUB 콘텐츠 문서는 fallback을 지정할 MAY 있습니다. 예를 들어 scripted content에 대한 fallback을 제공하기 위해서입니다.

Fallback chain에 둘 이상의 EPUB 콘텐츠 문서가 포함되는 경우, properties 속성을 사용해 각각의 목적을 구분할 수 있습니다.

Manifest fallback chains는 chain 안의 item 요소에 대한 자기 참조 또는 순환 참조를 포함해서는 MUST NOT 됩니다.

3.5.2 내재적 대체

다음 절들은 [html]의 특정 요소에 대한 내재적 fallback 요건에 관한 설명을 제공합니다.

3.5.2.1 HTML audiovideo fallbacks

audio 또는 video 요소 안에 임베드된 [htmlflow contentforeign resources에 대한 내재적 fallback으로 간주되지 않습니다. 자식 source 요소 [html]만 내재적 fallback 기능을 제공합니다.

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

참고

Fallbacks에 대한 요건은 audiovideo 요소에서 참조되는 audio foreign resources에만 적용됩니다. Video resources에는 fallbacks가 필요하지 않으며, 이들은 exempt resources입니다.

3.5.2.2 HTML img fallbacks

대체 형식 fallbacks를 제공하기 위해, 다음 조건이 참인 경우 [html] img 요소를 picture 요소의 자식으로 사용할 수 있습니다:

  • img 요소는 srcsrcset 속성이 설정된 경우, 해당 속성에서 core media type resources만 참조해야 MUST 합니다; 그리고
  • source 요소는 srcsrcset 속성에서 core media type resources만 참조해야 MUST 합니다. 단, type 속성에서 foreign resource의 MIME 미디어 타입 [rfc2046]을 지정하는 경우는 예외입니다.

imgpicture의 자식이 아닌 경우, 해당 srcsrcset 속성은 foreign resources에 대한 fallbacks를 제공하는 데 사용되어서는 MUST NOT 됩니다.

3.5.2.3 HTML script 요소

Data blocks는 이를 포함하는 XHTML 콘텐츠 문서와 별도의 MIME 미디어 타입 [rfc2046]을 가지고 있지만, [html] script 요소에 대해 그러한 메커니즘이 지정되어 있지 않으므로 내재적 fallbacks를 제공할 수 없습니다.

그러나 script 요소는 사용자 콘텐츠를 나타내지 않습니다. 즉, data blocks는 스크립트로 조작되지 않는 한 렌더링되지 않으며, 스크립트가 렌더링하는 콘텐츠는 이미 core media type requirements를 가지고 있습니다. 따라서 원시 데이터에 fallbacks를 요구하는 것은 유용한 목적을 제공하지 않습니다.

결과적으로, data blocks는 스크립트에서 사용할 수 있도록 fallback 요건에서 면제됩니다.

참고

이 예외는 data blocks를 data files에 대한 예외와 일치시킵니다.

참고

[svg]는 발행 시점에 data blocks를 정의하지 않지만, 향후 업데이트에서 이 개념을 추가한다면 동일한 제외가 적용됩니다.

3.6 리소스 위치

다음 유형의 publication resourcesEPUB container 밖에 호스팅될 MAY 있습니다:

다른 모든 리소스는 EPUB container 안에 저장되어야 MUST 합니다.

가능하면 모든 리소스를 EPUB container 안에 저장하는 것이 강하게 권장됩니다. 이렇게 하면 사용자는 연결 상태와 관계없이 전체 표시 내용에 접근할 수 있습니다.

리소스를 EPUB container 밖에 위치시켜야 하는 경우, 해당 출판물과 사용자를 네트워크 공격에 노출시키는 위협을 제한하기 위해 보안 https URI scheme [rfc9110]을 통해 참조하는 것이 RECOMMENDED 됩니다. Reading systemshttp와 같은 안전하지 않은 scheme을 사용해 참조된 remote resources를 로드하지 않을 수 있습니다.

Publication resource의 위치에 대한 이러한 규칙은 해당 리소스가 core media type resource인지 foreign resource인지와 관계없이 적용됩니다.

참고

manifest itemremote resource를 참조한다는 것을 표시하는 방법에 대한 자세한 내용은 remote-resources 속성을 참조하세요.

3.7 Data URLs

data: URL scheme [rfc2397]은 리소스를 URL 문자열에 직접 인코딩하는 데 사용됩니다. 이 scheme의 장점은 외부 파일이 필요하지 않도록 리소스를 다른 리소스 안에 임베드할 수 있다는 점입니다.

Data URLs는 다음 시나리오에서 사용되어서는 MUST NOT 됩니다. 이는 top-level content document 또는 top-level browsing context [html]를 만들기 때문입니다:

참고

Data URLs 사용에 대한 이러한 제한은 보안 문제를 방지하고, 또한 reading systems가 사용자를 다음에 어디로 이동시킬지 판별할 수 있도록 하기 위한 것입니다(즉, data URLs는 spine에서 참조될 수 없기 때문입니다).

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

임베딩의 결과로, data URL 안의 데이터는 manifest 보고 목적상 고유한 publication resource로 간주되지 않습니다 (즉, 이를 포함하는 publication resource만 나열됩니다). 그러나 이 데이터는 자체 미디어 타입을 가지므로 여전히 foreign resource restrictions의 적용을 받습니다. 따라서 data URLs는 core media type resources로 인코딩되거나, 호스트 형식의 내재적 fallback 메커니즘을 사용한 fallback을 가져야 MUST 합니다.

3.8 File URLs

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

서로 다른 호스트 간에 전송될 수 있는 EPUB 출판물에서 file URL을 사용하는 것은 보안 위험을 나타내며 상호운용성도 없습니다. 따라서 EPUB 출판물에서는 file URLs를 사용해서는 MUST NOT 됩니다.

3.9 XML 준수

XML 기반 미디어 타입 [rfc2046]인 모든 publication resource는:

위의 제약은 해당 publication resource가 core media type resource인지 foreign resource인지와 관계없이 적용됩니다.

참고

[html] 및 [svg]가 XML base 속성 [xmlbase]에 대한 지원을 제거하고 있으므로, 이를 피하는 것이 권장됩니다.

4. Open Container Format (OCF)

4.1 소개

이 절은 비규범적입니다.

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

이 절은 추상적 수준에서 파일 컬렉션을 구조화하는 규칙, 즉 "abstract container"를 정의합니다. 또한 ZIP 아카이브 안에서 이 abstract container를 표현하는 규칙, 즉 "physical container"도 정의합니다. ZIP physical container에 대한 규칙은 [odf]가 사용하는 ZIP 기술을 기반으로 합니다.

OCF는 outdated임베디드 폰트 난독화 알고리즘도 유지하지만, 이 기능은 더 이상 권장되지 않습니다.

4.2 OCF abstract container

4.2.1 소개

이 절은 비규범적입니다.

OCF abstract container 파일 시스템 모델은 단일 공통 root directory를 사용합니다. 모든 container resources는 root directory가 이끄는 디렉터리 트리 안에 위치하지만, 이 명세는 이들에 대한 특정 파일 시스템 구조를 의무화하지 않습니다.

파일 시스템 모델은 또한 root directory의 직접 자식이며 다음 특수 파일을 저장하는 META-INF라는 필수 디렉터리를 포함합니다:

container.xml [required]

EPUB 출판물을 정의하는 하나 이상의 package documents를 식별합니다.

signatures.xml [optional]

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

encryption.xml [optional]

publication resources의 암호화에 대한 정보를 포함합니다. 이 파일은 outdatedfont obfuscation feature를 사용할 때 필수입니다.

metadata.xml [optional]

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

rights.xml [optional]

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

manifest.xml [optional]

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

META-INF 디렉터리의 다양한 파일에 대한 준수 요건은 4.2.6 META-INF 디렉터리를 참조하세요.

4.2.2 파일 및 디렉터리 구조

OCF abstract container의 가상 파일 시스템은 컨테이너의 모든 콘텐츠에 대해 단일 공통 root directory를 가져야 MUST 합니다.

OCF abstract container는 컨테이너의 root directory의 직접 자식인 META-INF라는 구성 파일용 디렉터리를 포함해야 MUST 합니다. 이 디렉터리 콘텐츠에 대한 요건은 4.2.6 META-INF 디렉터리를 참조하세요.

root directory의 파일 이름 mimetypeOCF ZIP containers가 사용하도록 예약되어 있으며, 이는 4.3 OCF ZIP container에서 설명합니다.

META-INF 디렉터리 안의 파일과 mimetype 파일은 publication resources가 아니므로 manifest에 나열되어서는 MUST NOT 됩니다.

OCF abstract container 안의 다른 모든 파일은 META-INF 디렉터리 안에 있지 않은 한, root directory의 하위 위치 어디에나 저장될 MAY 있습니다. EPUB 출판물META-INF 디렉터리 안의 파일에 대한 참조를 포함해서는 MUST NOT 됩니다.

참고

일부 reading systems는 [epub-rs-34]에 정의된 제한이 아님에도, package document가 저장된 디렉터리 밖의 리소스에 대한 접근을 제공하지 않습니다. 이러한 reading systems와의 상호운용성 문제를 피하기 위해, 모든 리소스를 package document를 포함하는 디렉터리 또는 그 아래에 배치하는 것이 권장됩니다.

4.2.3 파일 경로 및 파일 이름

OCF abstract container의 맥락에서, file pathsfile namesscalar value strings [infra]입니다(즉, 그 값은 대소문자를 구분합니다).

또한 다음 제한은 대부분의 운영 체제에서 file paths 및 file names를 수정 없이 사용할 수 있도록 설계되었습니다:

  • File names는 255바이트를 초과해서는 MUST NOT 됩니다.

  • OCF abstract container 안의 모든 디렉터리 또는 파일에 대한 file paths는 65535바이트를 초과해서는 MUST NOT 됩니다.

  • 일반적으로 사용되는 운영 체제가 이러한 문자를 일관되게 지원하지 않을 수 있으므로, file names는 다음 [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 conformance checkers가 그 사용을 표시할 것으로 예상되므로, 이러한 문자도 피하는 것이 권장됩니다.

  • 오래된 reading systems와의 호환성을 위해, file names는 SPACE (U+0020) 문자를 포함하지 않는 것이 SHOULD NOT 좋습니다.

  • 동일한 디렉터리 안의 모든 file names는 Unicode canonical normalization [uax15] 후 full case folding [unicode]을 적용했을 때 고유해야 MUST 합니다. (자세한 내용은 Unicode Canonical Case Fold Normalization Step [charmod-norm]를 참조하세요.)

참고

EPUB 출판물이 리소스를 동적으로 통합하여 생성되는 경우 (즉, 이름을 미리 알 수 없는 경우), file names를 255바이트 제한 안에 유지하기 위한 자동 잘림은 손상을 초래할 수 있음을 유의하세요. 이는 UTF-8과 같은 멀티바이트 인코딩에서 바이트와 문자의 차이 때문입니다. 따라서 문자 중간에서 잘리지 않도록 피하는 것이 중요합니다. 자세한 내용은 [international-specs]의 "문자열의 길이 자르기 또는 제한" 절을 참조하세요.

참고

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

4.2.4 파일 경로 도출

OCF abstract container 안의 파일 또는 디렉터리 file이 주어졌을 때 file path를 도출하려면, 다음 단계를 적용하세요 ([infra]의 용어를 사용해 표현됨):

  1. path를 빈 list로 둡니다.
  2. currentfile로 둡니다.
  3. currentroot directory가 아닌 동안:
    1. currentfile namepath 앞에 prepend합니다;
    2. currentcurrent의 부모 디렉터리로 설정합니다.
  4. U+002F (/) 문자를 사용해 pathconcatenation한 결과를 반환합니다.

4.2.5 OCF abstract container 안의 URLs

container root URLURL [url]이며, root directory의 URL입니다. container root URL은 구현별로 다르지만, 다음 속성을 가져야 MUST 합니다:

OCF abstract container 안의 파일 또는 디렉터리의 content URL은, 해당 파일의 file path를 container root URL을 base로 사용해 parsing한 결과입니다.

참고

container root URL은 reading systemEPUB container의 root에 할당한 URL입니다. 이는 일반적으로 reading system이 내부적으로 컨테이너 파일 시스템을 구현하는 방식에 따라 달라집니다.

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

예를 들어, https://localhost:12345/ 또는 https://www.example.org:12345/ 같은 URLs는 이러한 속성을 존중합니다. 그러나 https://localhost:12345/path/to.epub/, file:///path/to.epub#path=/, 또는 jar:file:/path/to.epub!/EPUB/ 같은 URLs는 그렇지 않습니다(이 세 예를 base로 하여 URL 문자열 ".."를 파싱하면 각각 https://localhost:12345/path/, file:///path/, 그리고 parsing error를 반환합니다). 위에 정의된 속성을 준수하는 URL을 root directory에 할당하는 것은 reading system의 책임입니다.

참고

Parsing은 file path의 일부 문자를 해당 percent encoded 대체 문자로 바꿀 수 있습니다. 예를 들어, A/B/C/file name.xhtmlA/B/C/file%20name.xhtml이 됩니다.

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

  1. container root URLhttps://a.example.org/A/로 설정합니다.

    설명

    이 알고리즘의 목표는 url이 컨테이너 밖으로 "leaking"되는 것으로 보일 수 있는지 감지하는 것입니다. 이를 위해 표준 URL parsing algorithm을 인공 root URL과 함께 사용합니다. "leak"의 감지는 parsing 결과와 첫 번째 테스트 경로 세그먼트 (A)의 존재를 비교하여 수행됩니다. (인공 container root URL은 이 알고리즘의 목적상 해당 첫 번째 테스트 경로 세그먼트를 사용함으로써 required properties를 의도적으로 위반한다는 점에 유의하세요.)

  2. baseurl이 사용되는 컨텍스트(문서 또는 환경)에서 정의된 대로, 그리고 package document의 content URL에 따라 url을 파싱하는 데 사용되는 base URL로 둡니다 (5.2 package document에서 URLs 파싱 참조).

    설명

    package document 안의 URL의 경우 base 변수는 package document의 content URL로 설정됩니다. META-INF 디렉터리 안의 문서의 경우 base 변수는 container root URL로 설정됩니다(4.2.6.2 META-INF 디렉터리에서 URLs 파싱 참조). XHTML content document 안의 URL의 경우, parsing에 사용되는 base URL은 HTML 표준에서 정의됩니다. 일반적으로 이는 content document의 content URL입니다(단, 권장되지 않는 base 요소가 사용되는 경우는 제외).

  3. testURLRecordurlURL parserbase와 함께 적용한 결과로 둡니다.
  4. testURLStringAtestURLRecordURL Serializer를 적용한 결과로 둡니다.
  5. container root URLhttps://b.example.org/B/로 설정합니다.

    설명

    container root URL의 서로 다른 인공 설정으로 동일한 단계를 두 번 반복하는 이유는 url 문자열이 /A/도 포함하는 경우 발생할 수 있는 충돌을 피하기 위해서입니다. 예를 들어 url../../A/doc.xhtml인 경우를 고려하세요.

  6. baseurl이 사용되는 컨텍스트(문서 또는 환경)에서 정의된 대로, 그리고 package document의 content URL에 따라 url을 파싱하는 데 사용되는 base URL로 설정합니다(5.2 package document에서 URLs 파싱 참조).
  7. testURLRecordurlURL parserbase와 함께 적용한 결과로 설정합니다.
  8. testURLStringBtestURLRecordURL Serializer를 적용한 결과로 둡니다.
  9. testURLStringAhttps://a.example.org/로 시작하지 않거나 testURLStringBhttps://b.example.org/로 시작하지 않으면, true를 반환합니다.

    설명

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

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

    설명

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

  11. false를 반환합니다.

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

또한 모든 relative-URL-with-fragment strings [url]는 parsing 후 OCF abstract container 안의 기존 파일의 content URL과 같아야 MUST 합니다.

참고

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

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

어떤 경우에도 위에서 설명한 허용되지 않는 URL 문자열조차 parsing 후에는 컨테이너 밖으로 "leak"되지 않습니다(이 절의 첫 번째 참고에서 설명한 대로). 그럼에도 불구하고, 비준수 또는 레거시 reading systems 및 툴체인과의 더 나은 상호운용성을 위해 허용되지 않습니다.

4.2.6 META-INF 디렉터리

4.2.6.1 OCF abstract container에 포함

모든 OCF abstract containers는 그 root directory 안에 META-INF라는 디렉터리를 포함해야 MUST 합니다.

이 디렉터리는 구성 파일, 특히 4.2.6.3 예약 파일에 정의된 파일을 위해 예약되어 있습니다.

4.2.6.2 META-INF 디렉터리에서 URLs 파싱

META-INF 디렉터리에 위치한 파일에서 사용되는 URL 문자열 url을 파싱하려면, URL parsercontainer root URLbase로 하여 url에 적용해야 MUST 합니다.

4.2.6.3 예약 파일
4.2.6.3.1 Container file (container.xml)

META-INF 디렉터리 안의 REQUIRED container.xml 파일은 OCF abstract container에서 사용 가능한 package documents를 식별합니다.

달리 명시되지 않는 한, 이 절에서 정의된 모든 [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 root element [xml].

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

다음 순서:

4.2.6.3.1.2 rootfiles 요소

rootfiles 요소는 EPUB container에서 사용 가능한 package documents 목록을 포함합니다.

요소 이름:

rootfiles

사용:

containerREQUIRED 첫 번째 자식.

속성:

없음

콘텐츠 모델:
4.2.6.3.1.3 rootfile 요소

rootfile 요소는 EPUB container 안의 하나의 package document 위치를 식별합니다.

요소 이름:

rootfile

사용:

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

속성:
full-path [required]

package document의 위치를 식별합니다.

이 속성의 값은 path-relative-scheme-less-URL string [url]이어야 MUST 합니다. 경로는 root directory에 상대적입니다.

media-type [required]

package document의 media type을 식별합니다.

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

콘텐츠 모델:

비어 있음

하나 이상의 rootfile 요소가 지정된 경우, 각각은 같은 버전의 EPUB을 준수하는 package document를 참조해야 MUST 합니다. 각 package document는 EPUB 출판물의 하나의 렌더링을 나타냅니다.

참고

EPUB container는 둘 이상의 package document를 참조하는 기능을 제공하지만, 이 명세는 사용 가능한 옵션을 해석하거나 선택하는 방법을 정의하지 않습니다. 콘텐츠의 둘 이상의 렌더링을 묶는 방법에 대한 자세한 내용은 [epub-multi-rend-11]를 참조하세요.

4.2.6.3.1.6

이 절은 비규범적입니다.

4.2.6.3.2 Encryption file (encryption.xml)

META-INF 디렉터리 안의 OPTIONAL encryption.xml 파일은 컨테이너 콘텐츠에 대한 모든 암호화 정보를 보유합니다. 컨테이너 안의 어떤 리소스라도 암호화되어 있다면, 사용된 암호화에 대한 정보를 제공하기 위해 encryption.xml 파일이 있어야 MUST 합니다.

4.2.6.3.2.1 encryption 요소
요소 이름:

encryption

네임스페이스:

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

사용:

encryption.xml 파일의 REQUIRED root element [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 abstract container가 non-XML 데이터를 포함하더라도, XML Encryption을 사용해 해당 데이터를 암호화할 수 있습니다. OCF 암호화는 컨테이너 안의 전체 파일 암호화만 지원하며, 파일의 일부 암호화는 지원하지 않습니다.

다음 파일은 암호화되어서는 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

암호화된 데이터는 OCF abstract container 안에서 암호화되지 않은 데이터를 대체합니다. 예를 들어, photo.jpeg라는 이미지가 암호화되면, photo.jpeg 리소스의 콘텐츠는 그 암호화된 콘텐츠로 대체됩니다. ZIP 디렉터리 안의 암호화된 파일은 압축하지 않는 것이 SHOULD NOT 좋습니다.

일부 상황에서는 EPUB 출판물에서 참조되는 임베디드 폰트의 저장을 난독화하여 제한 없는 사용을 위해 추출하기 어렵게 해야 합니다. 난독화는 암호화가 아니지만, reading systems는 encryption.xml 파일을 outdatedfont obfuscation algorithm과 함께 사용해 난독화 해제할 폰트를 식별합니다.

XML Signature용 Decryption Transform [xmlenc-decrypt]은 이후에 서명된 리소스를 암호화하는 데 사용될 MAY 있습니다. 이 기능은 reading system이 서명 전에 암호화된 데이터와 서명 후에 암호화된 데이터를 구별할 수 있게 합니다.

4.2.6.3.2.2 압축과 암호화의 순서

OCF ZIP container에 저장될 때, non-codec 콘텐츠 타입의 데이터 스트림은 암호화하기 전에 압축하는 것이 SHOULD 좋습니다. Deflate 압축을 사용해야 MUST 합니다. 이 관행은 ZIP container에 저장된 파일 항목이 더 작은 크기를 갖도록 보장합니다.

codec 콘텐츠 타입의 데이터 스트림은 암호화하기 전에 압축하지 않는 것이 SHOULD NOT 좋습니다. 이러한 경우 추가 압축은 제작 시점에 불필요한 처리 오버헤드를 도입하고(특히 큰 리소스 파일의 경우), 소비 시점에 오디오/비디오 재생 성능에 영향을 줍니다. 일부 경우에는 압축과 특정 암호화 방식의 조합이 reading systems가 부분 콘텐츠 요청(예: HTTP byte ranges)을 처리하는 능력을 손상시킬 수도 있습니다. 이는 미디어 재생 전에 전체 리소스 길이(예: HTTP Content-Length header)를 결정하는 것이 기술적으로 불가능하기 때문입니다.

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

요소 이름:

Compression

네임스페이스:

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

사용:

EncryptionPropertyOPTIONAL 자식.

속성:
Method [required]

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

값은 "0"(압축 없음) 또는 "8" (Deflate algorithm)입니다.

OriginalLength [required]

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

값은 양의 정수입니다.

콘텐츠 모델:

비어 있음

4.2.6.3.3 Manifest file (manifest.xml)

META-INF 디렉터리 안의 OPTIONAL manifest.xml 파일은 컨테이너 안의 파일에 대한 manifest를 제공합니다.

OCF 명세는 manifest의 형식을 의무화하지 않습니다.

package documentsEPUB 출판물 처리에 사용되는 유일한 manifests를 지정한다는 점에 유의하세요. Reading systems는 이 파일을 사용하지 않습니다.

참고
이 기능은 [odf]와의 호환성을 위해서만 존재합니다.
4.2.6.3.4 Metadata file (metadata.xml)

META-INF 디렉터리 안의 OPTIONAL metadata.xml 파일은 container-level metadata 전용입니다.

metadata.xml 파일이 포함되는 경우, namespace-qualified elements [xml-names]만 포함하는 것이 SHOULD 좋습니다. 이 파일은 http://www.idpf.org/2013/metadata 네임스페이스에 metadata root element [xml]를 포함하는 것이 SHOULD 좋지만, 이 명세는 하위 호환성을 위해 다른 root elements도 허용합니다.

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

4.2.6.3.5 Rights management file (rights.xml)

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

rights.xml 파일이 포함되지 않은 경우, OCF abstract container의 어떤 부분도 container level에서 권리의 지배를 받지 않습니다. EPUB 출판물 안에는 rights expressions가 존재할 수 있습니다.

4.2.6.3.6 Digital signatures file (signatures.xml)
참고

디지털 서명을 추가한다고 해서 악의적 행위자가 EPUB 출판물을 변조할 수 없다는 보장은 아닙니다. reading systems가 서명을 반드시 확인해야 하는 것은 아니기 때문입니다.

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

4.2.6.3.6.1 signatures 요소
요소 이름:

signatures

네임스페이스:

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

사용:

signature.xml 파일의 REQUIRED root element [xml].

속성:

없음

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

signature 요소는 [xmldsig-core1]에 정의된 대로 Signature 타입의 자식 요소를 포함합니다. 서명은 EPUB 출판물 전체 또는 그 일부에 적용될 수 있습니다. 또한 모든 종류의 데이터에 서명하는 데 사용할 수 있습니다(즉, XML에만 국한되지 않음).

참고

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

signatures.xml 파일이 포함되지 않은 경우, OCF abstract container의 어떤 부분도 container level에서 서명되지 않지만, EPUB 출판물 안에는 digital signing이 존재할 수 있습니다.

OCF abstract container에 대해 데이터 서명이 생성되는 경우, 서명은 signatures 요소의 마지막 자식 Signature 요소로 저장되는 것이 SHOULD 좋습니다.

참고

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

OCF abstract container 안의 일부 또는 모든 파일은 그 전체에 대해 서명될 수 있지만, signatures.xml 파일은 계산된 서명 정보를 포함하게 되므로 예외입니다.

signatures.xml 파일에 서명하는 방법은 목적에 따라 다릅니다:

  • OCF abstract container의 서명을 무효화하지 않고 서명을 추가하거나 제거할 수 있게 하려면, signatures.xml 파일은 서명하지 않는 것이 SHOULD NOT 좋습니다.
  • 서명의 추가 또는 제거가 OCF abstract container에 대한 서명을 무효화하게 하려면, 서명자는 [xmldsig-core1]의 Section 6.6.4에 정의된 Enveloped Signature transform을 사용해, 생성 중인 Signature를 제외한 기존 서명 파일 전체에 서명할 수 있습니다. 이 transform은 이전의 모든 서명에 서명하며, 이후 서명이 패키지에 추가되면 무효가 됩니다.
참고

기존 서명의 제거만 OCF abstract container에 대한 서명을 무효화하도록 하고 싶은 경우 (즉, 새 서명의 추가는 허용), XPath transform을 사용해 기존 서명만 서명할 수 있습니다. 그러한 transform의 세부 사항은 이 명세의 범위를 벗어납니다.

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

4.3 OCF ZIP container

4.3.1 소개

이 절은 비규범적입니다.

OCF ZIP containerOCF abstract container의 물리적 단일 파일 표현입니다. 이 container는 다음을 허용합니다:

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

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

  • EPUB 출판물을 EPUB reading systems 또는 사용자에게 전달하는 것.

4.3.2 ZIP 파일 요건

OCF ZIP container는 [zip]에 지정된 ZIP 형식을 사용하지만, 다음 제약과 설명을 따릅니다:

  • OCF ZIP container의 콘텐츠는 준수하는 OCF abstract container여야 MUST 합니다.

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

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

  • OCF ZIP containers는 [zip]의 section 4.3.14 ("Zip64 end of central directory record")에서 "Version 1"로 정의된 ZIP64 extensions를 사용할 MAY 있으며, 콘텐츠가 이를 필요로 할 때만 그러한 extensions를 사용하는 것이 SHOULD 좋습니다.

  • OCF ZIP containers는 ZIP 형식이 정의한 암호화 기능을 사용해서는 MUST NOT 됩니다. 대신 암호화는 4.2.6.3.2 Encryption file (encryption.xml)에 설명된 기능을 사용해 수행되어야 MUST 합니다.

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

다음 제약은 OCF ZIP container 아카이브의 특정 필드에 적용됩니다:

  • local file header table에서 version needed to extract 필드는 주어진 파일에 필요한 최대 version level과 일치하도록 10, 20 또는 45로 설정되어야 MUST 합니다(예: Deflate의 경우 20, ZIP64의 경우 45).

  • local file header table에서 compression method field는 0 또는 8로 설정되어야 MUST 합니다.

4.3.3 OCF ZIP container media type 식별

mimetype 파일은 OCF ZIP container의 첫 번째 파일이어야 MUST 합니다. 또한:

  • mimetype 파일의 콘텐츠는 US-ASCII [us-ascii]로 인코딩된 MIME media type [rfc2046] 문자열 application/epub+zip이어야 MUST 합니다.
  • mimetype 파일은 선행 또는 후행 padding이나 whitespace를 포함해서는 MUST NOT 됩니다.
  • mimetype 파일은 Unicode byte order mark U+FEFF로 시작해서는 MUST NOT 됩니다.
  • mimetype 파일은 압축되거나 암호화되어서는 MUST NOT 됩니다.
  • mimetype 파일은 ZIP header에 extra field를 포함해서는 MUST NOT 됩니다.
참고

application/epub+zip media type에 대한 추가 정보는 G.2 application/epub+zip media type을 참조하세요.

5. Package document

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

5.1 소개

이 절은 비규범적입니다.

package documentXML document이며, 각각 EPUB publication의 특정 측면에 대한 정보를 캡슐화하는 요소들의 집합으로 구성됩니다. 이러한 요소들은 메타데이터를 중앙화하고, 개별 리소스를 자세히 설명하며, 렌더링에 필요한 reading order 및 기타 정보를 제공합니다.

다음 목록은 package document에서 찾을 수 있는 정보를 요약합니다:

참고

EPUB publication은 콘텐츠의 대체 표현을 허용하기 위해 둘 이상의 package document를 참조할 수 있습니다. 자세한 내용은 4.2.6.3.1 Container file (container.xml)을 참조하세요.

참고

package documents의 파일 속성에 대한 정보는 G.1 application/oebps-package+xml media type을 참조하세요.

5.2 package document에서 URLs 파싱

package document에서 사용되는 URL 문자열 url을 파싱하려면, URL parser [url]를 url에 적용해야 MUST 하며, package document의 content URLbase로 사용해야 합니다.

5.3 어휘 연결 메커니즘

5.3.1 소개

이 절은 비규범적입니다.

package document는 compact URLs의 사용을 통해 metadata expressions와 metadata extensibility를 허용합니다. compact URL은 URLs [url]를 표현하는 방식에서 CURIE [rdfa-core]와 매우 유사합니다. 두 표현 모두 선택적 prefix와 그 뒤에 오는 필수 reference로 구성됩니다.

literal이든 implied이든 prefix는 일반적으로 Dublin Core [dcterms] 또는 Schema.org [schema-org]와 같은 vocabulary로 해석되는 URL의 축약 매핑입니다. 예를 들어, prefix dcterms는 매번 전체 URL http://purl.org/dc/terms/를 추가하는 대신 사용됩니다. prefix를 사용하면 사용 중인 vocabulary의 고유성을 유지하면서도 메타데이터 작성에서 오류가 줄어듭니다.

reference는 선언되는 특정 term 또는 property입니다. 이는 colon으로 prefix와 분리됩니다. compact URL에는 prefix가 항상 필요한 것은 아닌데, 이는 default vocabularies라고 불리는 것 때문입니다. compact URL을 받는 각 속성은 terms 또는 properties의 default vocabulary도 정의합니다. prefix가 없다는 것은 compact URL이 default vocabulary의 값을 나타낸다는 뜻입니다.

reading system이 compact URL을 full URL로 변환하면, 그 결과는 보통 해당 vocabulary 안에서 그 term에 대한 사람이 읽을 수 있거나 기계가 읽을 수 있는 정보를 포함하는 fragment로 해석되지만, 이것이 필수는 아닙니다. Prefixes는 궁극적으로 XML namespaces [xml-names]가 동작하는 방식과 유사한 고유 식별자일 뿐입니다.

참고

compact URL prefixes는 XML namespace prefixes와 매우 비슷하게 보이고, 둘 다 reference의 고유 식별자로 기능하지만, 유사성은 거기까지입니다. compact URL prefixes는 xmlns: 구문을 사용해 선언되지 않습니다. 자세한 내용은 5.3.4 prefix 속성을 참조하세요.

compact URL data type의 강점은 쉬운 확장성에 있습니다. 새로운 terms와 properties를 통합하려면 prefix를 선언하기만 하면 됩니다. 또 다른 작성 편의 기능으로, 이 명세는 일반적으로 사용되는 많은 출판 vocabularies에 대해 reserved prefixes도 제공합니다(즉, 선언이 필요하지 않습니다).

package document에는 compact URLs를 받는 여러 속성이 있으며, 더 일반적으로 사용되는 것은 meta 요소의 property 속성, link 요소의 rel 속성, 그리고 manifest item 요소의 properties 속성입니다. Compact URLs는 EPUB 3에서 package document를 넘어 사용되기도 하며, epub:type 속성은 이를 사용해 EPUB content documents에서 구조적 의미를 표현합니다.

다음 절들은 compact URLs를 만들고 사용하는 방법에 대한 추가 세부 정보를 제공합니다.

5.3.2 compact URL data type

compact URL data type은 URL [url]을 표현하는 간결한 수단이며, colon으로 reference와 분리된 OPTIONAL prefix로 구성됩니다.

(EBNF productions ISO/IEC 14977)
모든 terminal symbols는 Unicode Block 'Basic Latin'(U+0000부터 U+007F까지)에 있습니다.
XML Schema datatypes [xmlschema-2]는 prefix xsd:를 사용합니다.
compact URL = [ prefix , ":" ] , reference;  
prefix = ? xsd:NCName ? ;  
reference = ? path-relative-scheme-less-URL string [url] ? ; /* [url]에 정의된 대로 */

이 명세는 [rdfa-core]에 정의된 CURIE data type에서 compact URL data type을 도출합니다. compact URL은 CURIEs의 부분집합을 나타냅니다.

CURIEs와의 두 가지 핵심 차이는 다음과 같습니다:

  • reference는 위 정의에는 유효하더라도 유효한 compact URL을 나타내지 않습니다 (즉, prefix와 colon만으로 구성된 compact URL은 유효하지 않습니다).

  • 빈 문자열은 위 정의에는 유효하더라도 유효한 compact URL을 나타내지 않습니다.

compact URL 값에서 prefix가 생략되면, 지정된 term은 해당 속성의 default vocabulary에서 가져온 것으로 간주됩니다.

5.3.3 Default vocabularies

default vocabularycompact URL이 예상될 때 그 terms와 properties가 prefix를 가져서는 MUST NOT 안 되는 vocabulary입니다.

prefix 속성을 사용하여 이러한 vocabularies와 연결된 URLs에 prefix를 할당해서는 MUST NOT 됩니다.

참고

default vocabulary에 대한 자세한 내용은 compact URL data type을 받는 각 속성의 정의를 참조하세요.

5.3.4 prefix 속성

prefix 속성은 compact URLs에서 사용할 prefix mappings를 정의합니다.

prefix 속성의 값은 다음 형식의 하나 이상의 prefix-to-URL mappings로 이루어진 공백으로 구분된 목록입니다:

(EBNF productions ISO/IEC 14977)
모든 terminal symbols는 Unicode Block 'Basic Latin'(U+0000부터 U+007F까지)에 있습니다.
XML Schema datatypes [xmlschema-2]는 prefix xsd:를 사용합니다.
prefixes = mapping , { whitespace, { whitespace } , mapping } ;  
mapping = prefix , ":" , space , { space } , ? xsd:anyURI ? ;  
prefix = ? xsd:NCName ? ;  
space = #x20 ;  
whitespace = (#x20 | #x9 | #xD | #xA) ;  

reserved prefixes를 제외하고, 문서에서 사용되는 모든 prefixes는 선언되어야 MUST 합니다. prefix 속성은 해당 형식의 root element [xml]에만 지정되어야 MUST 합니다.

이 속성은 package document에서 사용될 때 네임스페이스가 없습니다.

이 속성이 EPUB content documentsmedia overlay documents에서 사용될 때는 http://www.idpf.org/2007/ops 네임스페이스에 선언되어야 MUST 합니다.

참고

prefix 속성은 [rdfa-core]의 동일한 이름의 prefix 속성을 모델로 하지만, 두 속성은 서로 바꿔 사용할 수 없습니다. EPUB content documents에서 네임스페이스가 없는 prefix 속성은 RDFa 속성입니다.

RDFa expressions도 지정하는 EPUB content documents에는 두 속성이 모두 나타나는 것이 일반적입니다.

<htmlprefix="…"
        xmlns:epub="http://www.idpf.org/2007/ops"
        epub:prefix="…"></html>

inclusion으로 임베드된 SVG의 경우, prefixes는 [html] root html 요소에 선언되어야 MUST 한다는 점에 유의하세요.

충돌을 피하기 위해, prefix 속성은 default vocabulary에 매핑되는 prefix를 선언하는 데 사용되어서는 MUST NOT 됩니다.

prefix '_'는 선언되어서는 MUST NOT 됩니다. 이 명세는 RDFa [rdfa-core] processing과의 미래 호환성을 위해 이 prefix를 예약합니다.

package document의 대체 serialization과의 미래 호환성을 위해, Dublin Core /elements/1.1/ 네임스페이스 [dcterms]에 대한 prefix를 선언해서는 MUST NOT 됩니다. 오직 [dcterms] elements만 package document metadata에서 허용됩니다.

5.3.5 Reserved prefixes

주의

reserved prefixes는 작성 편의를 제공하지만 문제를 일으킬 수 있습니다. 예를 들어 vendors는 EPUB conformance checkers를 업데이트하기 전까지 새로운 prefixes를 거부하는 경우가 많습니다. 문제를 피하기 위해 모든 prefixes를 선언하는 것이 권장됩니다.

reserved prefixes는 compact URL을 기대하는 속성에서 prefix 속성에 선언하지 않고 사용할 MAY 있습니다.

reserved prefixes는 prefix 속성에서 override하지 않는 것이 SHOULD NOT 좋습니다.

사용할 수 있는 reserved prefixes는 컨텍스트에 따라 다릅니다:

Package document

다음 prefixes는 선언하지 않고 package document 속성에서 사용할 MAY 있습니다.

Prefix URL 사용
a11y http://www.idpf.org/epub/vocab/package/a11y/# EPUB Accessibility namespace의 properties를 선언하기 위해 사용합니다. 이들은 일반적으로 EPUB Accessibility 1.2 [epub-a11y-12]에 정의되어 있습니다.
dcterms http://purl.org/dc/terms/ Dublin Core /terms/ namespace [dcterms]의 properties를 선언하기 위해 사용합니다.
marc http://id.loc.gov/vocabulary/ 주로 scheme 속성에서 creator 및 contributor roles가 MARC relators code list에 정의되어 있음을 나타내기 위해 사용됩니다. Library of Congress에서 발행한 다른 vocabularies를 참조하는 데 사용할 수 있습니다.
media http://www.idpf.org/epub/vocab/overlays/# Media Overlays vocabulary의 properties를 선언하기 위해 사용합니다.
onix http://www.editeur.org/ONIX/book/codelists/current.html# scheme 속성에서 값이 대응하는 ONIX code list를 식별하기 위해 사용됩니다.
rendition http://www.idpf.org/vocab/rendition/# Package rendering vocabulary의 properties를 선언하기 위해 사용합니다.
schema http://schema.org/ Schema.org vocabulary의 properties를 선언하기 위해 사용합니다.

5.4 공유 속성

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

5.4.1 dir 속성

참고

reading systems는 일반적으로 메타데이터 표시를 위해 단일 기본 방향성만 지원하므로, dir 속성은 현재 충분한 implementation experience를 갖고 있지 않습니다.

필요한 reading system 지원은 부족하지만, 이는 EPUB이 구축된 content model(즉, package document에서의 국제화 지원)에 필수적입니다. 따라서 이 상황이 개선되었을 때 적절한 렌더링을 보장하기 위해 package document의 텍스트 값에 올바른 방향성을 설정할 것을 강력히 권장합니다.

이 속성에 대한 요구 사항 완화는 EPUB이 W3C에 편입되기 전에 개발되었던 다른 프로세스를 고려하기 위해서만 이루어졌습니다. W3C 프로세스 하에서 개발되는 새로운 기능은 유사한 예외를 받지 않습니다.

보유 요소와 그 descendants의 textual content 및 attribute values의 base direction [bidi]을 지정합니다.

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

  • ltr — left-to-right base direction;
  • rtl — right-to-left base direction; 그리고
  • auto — base direction은 Unicode Bidi Algorithm [bidi]을 사용해 결정됩니다.

속성이 없거나 유효하지 않은 값을 가지면, reading systems는 auto 값을 가정합니다.

참고

dir 속성에 지정된 base direction은 directional runs 안의 문자 순서에는 영향을 주지 않고, 해당 runs의 상대적 순서와 punctuation과 같은 약한 방향성 문자의 배치에만 영향을 줍니다.

허용 위치: collection, Dublin Core elements, meta, 그리고 package.

참고

Working Group은 EPUB conformance checkers가 EPUB publications에서 dir를 발견하면 그 존재를 알리되, 포함 자체가 표준 위반은 아니므로 오류나 경고를 발생시키지 않을 것을 권고합니다.

5.4.2 href 속성

리소스를 참조하는 valid URL string [url]입니다.

URL string은 package document 안의 요소를 통해 리소스를 참조해서는 MUST NOT 됩니다(예: manifest item 또는 spine itemref 선언을 통해).

허용 위치: itemlink.

5.4.3 id 속성

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

허용 위치: collection, Dublin Core elements, item, itemref, link, manifest, meta, package, 그리고 spine.

5.4.4 media-type 속성

참조된 리소스의 타입과 형식을 지정하는 media type [rfc2046]입니다.

허용 위치: itemlink.

5.4.5 properties 속성

compact URLs의 공백으로 구분된 목록입니다.

해당 속성의 default vocabulary는 각 요소의 정의를 참조하세요.

허용 위치: item, itemref, 그리고 link.

5.4.6 refines 속성

현재 expression과 그 값으로 식별되는 요소 또는 리소스 사이의 연결을 설정합니다. 이 속성의 값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#) 및 설명되는 리소스 또는 요소를 참조하는 URL-fragment string이 뒤따를 수 있습니다.

refines 속성은 표현된 메타데이터의 유형에 따라 OPTIONAL입니다. 생략되면 요소는 primary expression을 정의합니다.

publication resource에 대한 expressions를 만들 때, refines 속성은 리소스의 manifest entryID [xml]를 참조하는 fragment identifier를 지정하는 것이 SHOULD 좋습니다.

Refinement chains는 circular references 또는 self-references를 포함해서는 MUST NOT 됩니다.

허용 위치: linkmeta.

5.4.7 xml:lang 속성

보유 요소와 그 descendants의 textual content 및 attribute values의 언어를 [xml]의 2.12 Language Identification 절에 정의된 대로 지정합니다. 각 xml:lang 속성의 값은 well-formed language tag [bcp47]여야 MUST 합니다.

허용 위치: collection, Dublin Core elements, meta, 그리고 package.

5.5 package 요소

package 요소는 package document에 표현된 모든 정보를 캡슐화합니다.

요소 이름:

package

사용:

package document의 REQUIRED root element [xml].

속성:
콘텐츠 모델:

다음 순서:

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

참고

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

unique-identifier 속성은 선호 또는 primary identifier를 제공하는 dc:identifier 요소를 식별하는 IDREF [xml]를 받습니다.

prefix 속성은 이 명세에서 reserved된 것이 아닌 prefixes에 대한 선언 메커니즘을 제공합니다. 자세한 내용은 5.3.4 prefix 속성을 참조하세요.

5.6 Metadata 절

5.6.1 metadata 요소

metadata 요소는 meta information을 캡슐화합니다.

요소 이름:

metadata

사용:

packageREQUIRED 첫 번째 자식.

속성:

없음

콘텐츠 모델:

임의의 순서:

package documentmetadata 요소에는 두 가지 주요 기능이 있습니다:

  1. reading systems가 내부적으로 EPUB publication을 catalogue하고 사용자에게 제공하는 데 사용할 최소한의 meta information을 제공하는 것(예: bookshelf에 표시).

  2. 콘텐츠의 layout과 display를 제어하는 데 필요한 모든 rendering metadata에 접근을 제공하는 것 (예: package rendering properties).

package document는 복잡한 metadata encoding 기능을 제공하지 않습니다. 더 자세한 정보를 제공해야 하는 경우, 국제 표준(예: [onix])을 준수하거나 사용자 정의 목적으로 생성된 metadata records를 link 요소를 사용해 EPUB publication과 연결할 수 있습니다. 이 접근 방식은 reading systems가 metadata를 원래 형식으로 처리할 수 있게 하여, 최소 package document 구조를 사용하도록 변환하면서 발생할 수 있는 잠재적 문제와 정보 손실을 피합니다.

이 철학에 따라 package document에는 다음과 같은 최소 metadata requirements만 있습니다. 즉 [dcterms] dc:title, dc:identifier, 및 dc:language 요소와 함께 [dcterms] dcterms:modified property를 포함해야 MUST 합니다. 그 밖의 모든 metadata는 OPTIONAL입니다.

meta 요소는 임의의 vocabulary에서 온 metadata properties를 포함하기 위한 일반적인 메커니즘을 제공합니다. 이 메커니즘은 어떤 metadata 목적에도 사용할 수 있지만, 일반적으로 EPUB 명세에 정의된 rendering 및 accessibility metadata를 포함하는 데 사용됩니다.

참고

accessibility metadata 권장 사항은 [epub-a11y-12]를 참조하세요.

5.6.2 Metadata values

Dublin Core elements [dcterms]와 meta 요소는 필수 child text content [dom]를 가집니다. 이 명세는 이러한 요소에 대한 설명에서 이 콘텐츠를 요소의 value라고 부릅니다.

이러한 요소는 leading and trailing ASCII whitespace [infra]를 제거한 후 비어 있지 않은 값을 가져야 MUST 합니다(즉, 적어도 하나의 non-whitespace character로 구성되어야 합니다).

이러한 요소 값 안의 whitespace는 중요하지 않습니다. 하나 이상의 whitespace character 시퀀스는 처리 중에 단일 space로 collapse [infra]됩니다.

5.6.3 Dublin Core

5.6.3.1 필수 요소
5.6.3.1.1 dc:identifier 요소

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

요소 이름:

dc:identifier

네임스페이스:

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

사용:

metadataREQUIRED 자식. 반복 가능.

속성:
  • id [conditionally required]

콘텐츠 모델:

Text

EPUB publication은 자신에게 고유한 identifier, 즉 unique identifier를 지정하는 dc:identifier 요소를 포함해야 MUST 합니다. 이 요소는 package 요소의 unique-identifier 속성에서 참조되어야 MUST 합니다.

정적이지는 않지만, unique identifier를 너무 자주 변경하는 것은 피하세요. Unique Identifiers는 참조 및 배포 목적 모두에서 최대한의 지속성을 가지도록 의도되었습니다. metadata 업데이트, errata 수정 또는 유사한 사소한 변경과 같은 minor revisions를 만들 때 새 identifiers를 발행하지 마세요.

추가 identifiers를 지정할 MAY 있습니다.

참고

가능할 때마다 identifiers에는 absolute-URL strings [url]를 사용하는 것이 권장됩니다. 예를 들어 domain을 포함하면 identifier의 고유성을 향상시킬 수 있고, namespace identifier [rfc8141]를 가진 URN을 사용하면 reading systems의 처리가 향상됩니다.

identifier-type propertydc:identifier 요소의 값이 확립된 시스템 또는 이를 부여한 issuing authority를 따른다는 것을 나타내는 데 사용될 MAY 있습니다.

5.6.3.1.2 dc:title 요소

dc:title 요소 [dcterms]는 EPUB publication에 대한 이름의 인스턴스를 나타냅니다.

요소 이름:

dc:title

네임스페이스:

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

사용:

metadataREQUIRED 자식. 반복 가능.

속성:
콘텐츠 모델:

Text

문서 순서에서 첫 번째 dc:title 요소는 EPUB publication의 main title입니다(즉, reading systems가 사용자에게 표시하는 primary title).

reading systems에서 title이 일관되게 렌더링되도록 하려면 단일 dc:title 요소만 사용하는 것이 권장됩니다.

참고

multipart titles를 위해 둘 이상의 dc:title 요소를 포함할 수는 있지만, 추가 dc:title 요소에 대한 reading system 지원은 일관되지 않습니다. Reading systems는 추가 세그먼트를 무시하거나 예상치 못한 방식으로 결합할 수 있습니다.

예를 들어, 다음 예는 기본 multipart title을 보여줍니다:

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

동일한 title은 다음과 같이 단일 dc:title 요소를 사용하여 표현할 수도 있습니다:

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

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

5.6.3.1.3 dc:language 요소

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

요소 이름:

dc:language

네임스페이스:

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

사용:

metadataREQUIRED 자식. 반복 가능.

속성:

id [optional]

콘텐츠 모델:

Text

dc:language 요소의 valuewell-formed language tag [bcp47]여야 MUST 합니다.

다국어 EPUB publications을 위해 추가 dc:language 요소를 지정할 MAY 있지만, reading systems는 문서 순서에서 첫 번째 dc:language 요소를 primary language로 취급합니다.

참고

Publication resourcesdc:language 요소에서 언어를 상속하지 않습니다. 각 리소스의 언어는 해당 형식의 intrinsic methods를 사용해 설정해야 합니다.

5.6.3.2 선택적 요소
5.6.3.2.1 일반 정의

dc:identifier, dc:language, 및 dc:title를 제외한 모든 [dcterms] 요소는 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 자식. 반복 가능.

속성:
콘텐츠 모델:

Text

이 명세는 다음 절에서 언급한 경우를 제외하고 [dcterms] element definitions를 수정하지 않습니다.

5.6.3.2.2 dc:contributor 요소

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

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

5.6.3.2.3 dc:creator 요소

dc:creator 요소 [dcterms]는 콘텐츠의 생성에 책임이 있는 사람, 조직 등의 이름을 나타냅니다. creator가 수행한 기능을 나타내기 위해 role property가 요소와 associatedMAY 있습니다.

dc:creator 요소에는 reading systems가 사용자에게 표시할 것으로 예상되는 creator의 이름을 포함하는 것이 권장됩니다.

file-as property는 creator 이름의 정규화된 형식을 연결하는 데 사용될 MAY 있고, alternate-script property는 creator의 이름을 다른 언어 또는 script로 나타내는 데 사용될 수 있습니다.

EPUB publication에 둘 이상의 creator가 있는 경우, 각각을 별도의 dc:creator 요소에 지정하세요.

metadata 절에서 dc:creator 요소의 문서 순서는 display priority를 결정하며, 처음 나타나는 dc:creator 요소가 primary creator입니다.

Secondary contributors는 dc:contributor 요소를 사용해 나타냅니다.

5.6.3.2.4 dc:date 요소

dc:date 요소 [dcterms]는 EPUB publication의 publication date를 정의합니다. publication date는 last modified date(EPUB publication이 마지막으로 변경된 시각)와 같지 않습니다.

date string은 [iso8601-1], 특히 W3C Date and Time Formats [datetime]에 표현된 subset을 따르는 것이 RECOMMENDED입니다. 이러한 문자열은 사람이 읽을 수도 있고 기계가 읽을 수도 있기 때문입니다.

추가 날짜는 [dcterms] vocabulary 또는 유사한 것에서 사용 가능한 특수 date properties를 사용해 표현할 수 있습니다.

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

5.6.3.2.5 dc:subject 요소

dc:subject 요소 [dcterms]는 EPUB publication의 주제를 식별합니다. 요소의 value를 사람이 읽을 수 있는 heading 또는 label로 설정하는 것이 권장되지만, subject taxonomy가 별도의 설명 label을 제공하지 않는 경우 code value를 사용할 수 있습니다.

요소의 value가 가져온 system 또는 scheme는 authority property를 사용해 식별할 수 있습니다.

scheme가 식별되면, subject code는 term property를 사용해 요소와 associated되어야 MUST 합니다.

term property는 scheme를 지정하지 않는 dc:subject 요소와 associated되어서는 MUST NOT 됩니다.

dc:subject 요소와 term property의 values는 지정된 scheme가 요구하는 경우에만 대소문자를 구분합니다.

5.6.3.2.6 dc:type 요소

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

요소의 value는 임의의 text string일 MAY 수 있습니다.

참고

이전 IDPF EPUB 3 Working Group은 이 요소와 함께 사용할 특수 EPUB publication types의 비규범적 registry를 유지했습니다. 이 Working Group은 더 이상 registry를 유지하지 않으며 새로운 specialized publication types 개발을 예상하지 않습니다.

5.6.4 meta 요소

meta 요소는 package metadata를 포함하기 위한 일반적인 수단을 제공합니다.

요소 이름:

meta

사용:

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

속성:
콘텐츠 모델:

Text

meta 요소는 metadata expression을 정의합니다. property 속성은 expression에서 만들어지는 statement를 정의하는 compact URL을 받으며, 요소의 text content는 assertion을 나타냅니다. (자세한 내용은 5.3 어휘 연결 메커니즘을 참조하세요.)

이 명세는 meta 요소를 사용해 정의할 수 있는 두 가지 유형의 metadata expressions를 정의합니다:

  • primary expressionmeta 요소에 정의된 expression이 EPUB publication의 어떤 측면을 설정하는 것입니다. refines 속성을 생략한 meta 요소는 primary expression을 정의합니다.
  • subexpressionmeta 요소에 정의된 expression이 refines 속성을 사용하여 다른 expression 또는 resource와 연결되어 그 의미를 강화하는 것입니다. 예를 들어 subexpression은 duration을 표현하여 media clip을 refine하거나, 사람의 role을 정의하여 creator 또는 contributor expression을 refine할 수 있습니다.

Subexpressions는 다른 subexpressions의 의미를 refine하여 정보의 chains를 만드는 데 사용될 MAY 있습니다.

참고

모든 [dcterms] elements는 primary expressions를 나타내며, meta element subexpressions에 의한 refinement를 허용합니다.

Meta Properties Vocabularyproperty 속성과 함께 사용할 default vocabulary입니다.

다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.

scheme 속성은 요소의 value가 얻어진 system 또는 scheme를 식별합니다. 이 속성의 값은 scheme를 정의하는 리소스로 해석되는 compact URL이어야 MUST 합니다. scheme 속성에는 default vocabulary가 없습니다(즉, 모든 값에는 prefix가 필요합니다).

5.6.5 Last modified date

metadata 절은 last modification date를 포함하는 dcterms:modified property [dcterms]를 정확히 하나 포함해야 MUST 합니다. 이 property의 value는 다음 extended format과 일치하는 날짜와 시각의 [iso8601-1] complete representation이어야 MUST 합니다:

YYYY-MM-DDThh:mm:ssZ
참고

패턴 끝의 "Z"(Zulu) time indicator는 last modification date가 항상 Coordinated Universal Time(UTC)으로 표현됨을 의미합니다.

EPUB publication에 변경이 있을 때마다 last modified date를 업데이트하는 것이 권장됩니다.

추가 dcterms:modified properties는 package document metadata에 지정될 MAY 있지만, 서로 다른 subject를 가져야 MUST 합니다(즉, 요소 또는 리소스를 참조하는 refines 속성이 필요합니다).

참고

last modification date에 대한 요구 사항은 EPUB publications에 대해 release identifier [epubpackages-32]를 정의했던 EPUB 3의 이전 버전과의 호환성을 보장하기 위한 것입니다.

5.7 Manifest 절

5.7.1 manifest 요소

manifest 요소는 콘텐츠 렌더링에 사용되는 publication resources의 완전한 목록을 제공합니다.

요소 이름:

manifest

사용:

metadata 다음에 오는 packageREQUIRED 두 번째 자식.

속성:

id [optional]

콘텐츠 모델:

item [1개 이상]

package document를 제외하고, manifest는 모든 publication resources를, 그것이 container resources이든 remote resources이든 상관없이 나열해야 MUST 합니다.

package document는 이미 container.xml 파일에 의해 식별되므로, manifest는 이에 대한 item 요소를 지정해서는 MUST NOT 됩니다(즉, self-reference는 아무 목적이 없습니다).

참고

manifest는 publication resources를 나열하기 위한 것일 뿐입니다. Linked resourcesOCF Container 처리를 위한 특수 파일(즉, META-INF 디렉터리의 파일 및 mimetype 파일)은 포함이 제한됩니다.

publication resources의 완전한 manifest를 제공하지 않으면 rendering issues가 발생할 수 있습니다. Reading systems는 이러한 리소스를 unzip하지 않거나 보안상의 이유로 접근을 막을 수 있습니다.

5.7.2 item 요소

item 요소는 publication resource를 나타냅니다.

요소 이름:

item

사용:

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

속성:
콘텐츠 모델:

비어 있음

item 요소는 그 href 속성의 URL [url]로 publication resource를 식별합니다. 값은 absolute- 또는 path-relative-scheme-less-URL string [url]이어야 MUST 합니다. 각 URL은 parsingmanifest 범위 안에서 고유해야 MUST 합니다.

item 요소가 식별하는 publication resource는 media-type 속성에 제공된 MIME media type [rfc2046]에서 추론되는 적용 가능한 specification(s)를 준수해야 MUST 합니다. core media type resources의 경우, 3.2 Core media types에 지정된 media type을 사용해야 MUST 합니다.

fallback 속성은 참조된 publication resource의 fallback을 지정합니다. fallback 속성의 IDREF [xml] 값은 manifest 안의 다른 item으로 resolve되어야 MUST 합니다.

하나의 item에 대한 fallback은 다른 item에 대한 fallback을 지정할 MAY 있으며, 이런 식으로 fallback options의 chain을 만들 수 있습니다. fallback chains 사용과 관련된 추가 요구 사항은 3.5.1 Manifest fallbacks를 참조하세요.

media-overlay 속성은 이 item이 설명하는 리소스에 대한 media overlay document를 식별하는 IDREF [xml]를 받습니다. 자세한 내용은 9.3.3.5 Media overlays packaging을 참조하세요.

참고

manifest 안의 item 요소 순서는 중요하지 않습니다. spine 요소가 content documents의 presentation sequence를 제공합니다.

5.7.2.1 Resource properties

properties 속성은 리소스의 콘텐츠에 대한 정보를 reading systems에 제공합니다. 이 정보는 cover image 및 EPUB navigation document와 같은 핵심 리소스의 discovery를 가능하게 합니다. 또한 예를 들어 리소스에 embedded scripting, MathML 또는 SVG가 포함되어 있는지 표시함으로써 reading systems가 rendering을 최적화할 수 있게 합니다.

Manifest Properties Vocabularyproperties 속성의 default vocabulary입니다.

다음 properties는 item 요소가 참조하는 리소스가 각각의 정의와 일치할 때마다 설정되어야 MUST 합니다:

이 properties는 리소스에 포함된 콘텐츠(예: [html] iframe 요소를 통한 콘텐츠)에 재귀적으로 적용되지 않습니다. 예를 들어 non-scripted XHTML content documentscripted content document를 임베드하는 경우, embedded document의 manifest item properties 속성에만 scripted 값이 있습니다.

정확히 하나의 itemnav property를 사용해 EPUB navigation document로 선언되어야 MUST 합니다.

EPUB publication이 cover image를 포함하는 경우, OPTIONAL cover-image property를 설정하는 것이 권장됩니다.

다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.

5.7.2.2

5.8 Spine 절

5.8.1 spine 요소

spine 요소는 기본 reading order를 나타내는 manifest item 참조의 순서 있는 목록을 정의합니다.

요소 이름:

spine

사용:

manifest 뒤에 오는 packageREQUIRED 세 번째 자식.

속성:
콘텐츠 모델:

itemref [1개 이상]

spine은 최소 하나의 EPUB content document 또는 foreign content document를 지정해야 MUST 합니다.

spine 안의 publication resources에서 hyperlink된 모든 EPUB 및 foreign content documents는 spine에 나열되어야 MUST 하며, 여기서 hyperlinking은 사용자가 현재 resource에서 벗어나 탐색해야 하는 모든 linking mechanism을 포함합니다. 일반적인 hyperlinking mechanisms에는 [html] aarea 요소의 href 속성과 scripted links(예: DOM Events 및/또는 form elements 사용)가 포함됩니다. hyperlinked resources를 나열해야 한다는 요구 사항은 재귀적으로 적용됩니다(즉, hyperlinked documents에서 hyperlink된 모든 EPUB 및 foreign content documents도 나열되어야 하며, 계속 이어집니다).

EPUB navigation document에서 hyperlink된 모든 EPUB 및 foreign content documents도, EPUB navigation document가 spine에 포함되어 있는지와 관계없이 spine에 나열되어야 MUST 합니다.

참고

EPUB container 밖의 resources에 대한 hyperlinks는 publication resources가 아니므로, spine에 포함해야 한다는 요구 사항의 적용을 받지 않습니다(예: web pages 및 web-hosted resources).

spine items의 rendering에 사용되는 publication resources(예: [html] embedded content에서 참조된 것)도 마찬가지로 spine에 포함될 필요가 없습니다.

page-progression-direction 속성은 콘텐츠가 흐르는 전역 방향을 설정합니다. 허용되는 값은 ltr(left-to-right), rtl(right-to-left), 그리고 default입니다. default 값이 지정되면 어떤 선호도 표현되지 않으며, reading system이 rendering direction을 선택할 수 있습니다.

page-progression-direction 속성이 전역 flow direction을 설정하더라도, 개별 EPUB content documents 및 EPUB content documents의 일부는 이 설정을 override할 MAY 있습니다(예: writing-mode CSS property를 통해). Reading systems도 기본 방향을 override하는 mechanisms를 제공할 수 있습니다(예: alternate style sheets 적용을 허용하는 buttons 또는 settings).

outdatedtoc 속성은 IDREF [xml]를 받으며, 이는 NCX를 나타내는 manifest item을 식별합니다.

5.8.2 itemref 요소

itemref 요소는 기본 reading order 안의 EPUB content document 또는 foreign content document를 식별합니다.

요소 이름:

itemref

사용:

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

속성:
콘텐츠 모델:

비어 있음

itemref 요소는 자신의 idref 속성에 있는 IDREF [xml]를 통해 manifest 안의 itemID [xml]를 참조해야 MUST 합니다. item 요소 IDs는 한 번을 초과하여 참조되어서는 MUST NOT 됩니다.

참조된 각 manifest item은 a) EPUB content document이거나 b) 자신의 manifest fallback chain에 EPUB content document를 포함하는 foreign content document이어야 MUST 합니다.

참고

EPUB publications에는 EPUB navigation document가 필요하지만, 이를 spine에 포함하는 것은 필수가 아닙니다.

linear 속성은 참조된 item이 primary reading order에 기여하고 reading systems가 순차적으로 읽을 것으로 예상되는 콘텐츠 ("yes")를 포함하는지, 아니면 primary content를 향상하거나 보강하고 reading systems가 순서와 관계없이 접근할 수 있는 auxiliary content("no")를 포함하는지를 나타냅니다. auxiliary content의 예에는 notes, descriptions, answer keys가 포함됩니다.

linear 속성은 사용자가 기본 reading order의 일부로 접근해야 하는 콘텐츠와 reading system이 예를 들어 popup window에 표시하거나 aural rendering에서 생략할 수 있는 supplementary content를 구별할 수 있게 합니다.

콘텐츠가 non-linear임을 지정한다고 해서 reading systems가 이를 특정 방식으로 표시해야 하는 것은 아닙니다. 이는 목적에 대한 hint일 뿐입니다. Reading systems는 예를 들어 non-linear content를 spine에서 나타나는 위치에 표시할 수도 있고, 사용자가 spine 끝에 도달할 때까지 건너뛸 수도 있습니다.

참고

사용자가 linear spine items 사이에서 이를 접하는 것이 타당한 경우를 제외하고, non-linear content는 spine 끝에 나열하는 것이 권장됩니다.

linear itemref 요소는 linear 속성 값이 명시적으로 "yes"로 설정되어 있거나 속성을 생략한 요소입니다 — reading systems는 속성이 없는 itemref 요소에 대해 "yes" 값을 가정합니다. spine은 최소 하나의 linear itemref 요소를 포함해야 MUST 합니다.

Reading systems가 spine을 진행하는 동안 non-linear content에 대한 접근을 제공하지 않을 수 있으므로, 모든 non-linear content에 접근할 수 있는 secondary means가 제공되어야 MUST 합니다(예: 콘텐츠 안의 hyperlinks 또는 EPUB navigation document를 통해).

Spine Properties Vocabularyproperties 속성의 default vocabulary입니다.

다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.

6. 레이아웃

6.1 소개

이 절은 비규범적입니다.

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

이러한 이유로 EPUB 3는 EPUB content documents를 표시하기 위한 여러 layout options를 모두 제공합니다:

이 절은 이러한 layout options와 package-level rendering intentions(즉, EPUB reading system만 구현할 수 있는 기능)의 표현을 제어하는 추가 properties를 설명합니다. reading system이 원하는 rendering을 지원하는 경우, 이러한 properties는 콘텐츠가 최적으로 설계된 방식대로 표시될 수 있게 합니다.

6.2 Reflowable layouts

reflowable layout은 EPUB content documents의 contents가 reading system viewport에서 사용 가능한 공간에 맞도록 reflow되는 layout입니다. 그런 다음 reading system은 content를 동적으로 paginate하거나 스크롤 방식으로 제공할 수 있으며, 사용자가 선호하는 reading experience를 선택할 수 있게 하는 경우가 많습니다.

Reflowable layouts는 EPUB 3의 기본값이며 일반적으로 가장 접근성이 높습니다. 기본값이므로 EPUB publication이 reflow되도록 의도되었다고 명시하기 위해 metadata를 선언할 필요는 없습니다. 그러나 명시적 선언을 선호하는 경우, reflowable 값을 지정하는 meta 요소에서 rendition:layout property를 설정할 수 있습니다. reflowable.

전체 EPUB publication을 reflowable로 설정하는 것 외에도, 일부 spine items가 reflowable임을 지정하기 위해 pre-paginated fixed layout을 override할 수 있습니다. 이를 위해, reflowable인 각 spine itemrefproperties 속성에 rendition:layout-reflowable spine override를 설정합니다.

참고

Roll layoutslayout spine overrides를 지원하지 않으므로 reflowable layouts를 rolls와 유사하게 혼합할 수 없습니다.

두 reflowable EPUB content documents가 spine에서 순차적으로 나타날 때, 해당 [html] body 요소의 기본 rendering은 page-break-before property [css2]가 always로 설정된 것과 일치합니다. reading system이 이러한 overrides를 지원하는 경우, 적절한 style sheet declaration을 통해 이 동작을 override할 MAY 있습니다.

6.3 Fixed layouts

EPUB 3는 fixed-layout documents를 사용하는 두 가지 유형의 fixed layout을 제공합니다. 첫 번째인 pre-paginated는 전통적인 인쇄 책과 매우 유사한 reading experience를 제공하며, 각 fixed-layout document가 content의 한 페이지를 나타냅니다. Pre-paginated layouts는 children's books, comics 및 이와 유사하게 페이지 디자인을 의미나 가독성의 손실 없이 reflow할 수 없는 content에 흔히 사용됩니다.

두 번째 layout 유형인 roll은 fixed-layout documents를 continuous scrolling layout으로 제공합니다. 이러한 experience는 documents를 paginate하면 인위적인 breaks가 생기는 많은 comics 및 manga에 필수적입니다.

참고

Pre-paginated layouts는 roll layouts가 도입되기 전에는 일반적으로 fixed layout EPUBs라고 불렸습니다. 이제 이 명세는 하나만 "fixed layout"이라고 부르는 일반적인 혼란을 피하기 위해 각 fixed layout type을 그 설계에 따라 지칭합니다.

6.3.1 Pre-paginated

pre-paginated fixed layout에서는 spine itemref가 참조하는 각 fixed-layout document가 content의 한 페이지를 나타냅니다. Reading systems는 document를 viewport 또는 synthetic spread에 맞게 scale할 것으로 예상됩니다.

EPUB publication이 pre-paginated fixed layout을 사용함을 나타내기 위해, pre-paginated 값을 지정하는 meta 요소에서 rendition:layout property를 선언합니다.

전체 EPUB publication이 pre-paginated를 가진 것으로 설정하는 것 외에도, 일부 spine items가 pre-paginated임을 지정하기 위해 reflowable layout을 override할 수 있습니다. 이를 위해 pre-paginated인 각 spine itemrefproperties attributerendition:layout-pre-paginated spine override를 설정합니다.

참고

Roll layouts는 spine overrides를 지원하지 않으므로 pre-paginated layouts를 rolls와 유사하게 혼합할 수 없습니다.

spine item에 대해 property가 pre-paginated로 설정되면, itemref 요소는 fixed layout document를 참조해야 MUST 하거나, manifest fallback chain 안에 하나가 있어야 MUST 합니다.

참고

Reading systems는 일반적으로 pre-paginated documents에 사용자 또는 user agent style sheets를 적용하는 것을 제한하거나 거부합니다. dynamic style changes가 이러한 documents의 intrinsic properties에 의도치 않은 consequence를 일으킬 가능성이 높기 때문입니다. pre-paginated content를 사용하기로 선택할 때는, 이러한 제한이 usability 및 accessibility에 미치는 부정적 영향을 고려하는 것이 권장됩니다. 관련 정보는 Guideline 1.4 - Provide text configuration [uaag20]를 참조하세요.

6.3.1.1 Synthetic spreads

pre-paginated layouts에서는 기본적으로 reading system이 각 fixed-layout documentviewport에 별도로 표시하고, 해당 document를 spine 순서의 다음 fixed-layout document로 교체합니다.

Reading systems는 synthetic spreads 옵션을 제공할 수도 있습니다. 이 경우 두 개의 viewports가 렌더링되어 두 fixed-layout documents를 나란히 표시하거나, 하나의 fixed-layout document를 사용 가능한 두 viewports 중 하나에 단독으로 표시할 수 있습니다(예: 새 chapter 시작 전에 blank page를 두기 위해). 이 경우 reading system은 첫 번째 document를 단독으로 렌더링합니다 — 사용 가능한 두 slots 중 하나에 단독으로 배치하거나(어느 slot인지는 지정된 page progression direction 또는 EPUB content documents 안의 local declarations에 의해 결정됨), 또는 단독으로 중앙에 배치합니다(rendition:page-spread-center property를 설정하는 것과 동일). 첫 번째 document 이후에는 다음 두 개의 연속된 EPUB content documents를 렌더링하여 spread를 채웁니다. 그런 다음 사용자가 publication을 앞으로 또는 뒤로 진행할 때마다 spread 안의 두 documents가 모두 교체됩니다.

자동 population behavior는 spine itemref 요소의 properties attribute에 다음 properties 중 하나를 지정하여 override할 MAY 있습니다:

rendition:page-spread-center, rendition:page-spread-left, 그리고 rendition:page-spread-right properties는 reading system이 synthetic spreads를 생성할 때에만 적용됩니다. 또한 pre-paginated content에만 적용되지만, spine items의 layout이 pre-paginated로 overridden된 경우 reflowable layout 안에서 spreads를 가질 수 있습니다.

참고

rendition:page-spread-leftrendition:page-spread-right properties는 package rendering properties에 단일 vocabulary를 사용할 수 있도록 만들었습니다. 어느 property set이든 사용할 수 있지만, 오래된 reading systems는 unprefixed versions만 인식할 수도 있습니다.

rendition:page-spread-center는 two-page spreads와 single centered pages 사이를 전환하는 과정을 더 쉽게 이해할 수 있도록 만들었습니다.

6.3.2 Roll

rendition:layout propertyroll 값을 가진 meta 요소에 선언되면, 이는 content가 roll임을 나타냅니다(즉, reading systems가 각 spine itemref의 너비를 viewport에 맞추고 visible gap 없이 continuous roll로 표시함). roll layout style은 전역적으로 적용되며(즉, 모든 spine items에 대해) override할 수 없습니다.

roll layout이 선언되면, 각 spine item은 fixed-layout document를 참조해야 MUST 합니다. 각 document의 dimensions는 7.3.2 Fixed-layout document dimensions에 정의된 대로 설정되어야 MUST 합니다.

Package rendering vocabulary의 다른 properties 또는 spine overrides는 roll layouts의 rendering을 제어하는 데 사용할 수 없습니다.

참고

Reading systems는 일반적으로 roll documents에 사용자 또는 user agent style sheets를 적용하는 것을 제한하거나 거부합니다. dynamic style changes가 이러한 documents의 intrinsic properties에 의도치 않은 consequence를 일으킬 가능성이 높기 때문입니다. roll 사용을 선택할 때는 이러한 제한이 usability 및 accessibility에 미치는 부정적 영향을 고려하는 것이 권장됩니다. 관련 정보는 Guideline 1.4 - Provide text configuration [uaag20]를 참조하세요.

7. EPUB 콘텐츠 문서

7.1 XHTML 콘텐츠 문서

7.1.1 소개

이 절은 비규범적입니다.

XHTML 콘텐츠 문서HTML Standard [html]의 XML syntax를 사용해 표현된 XML document의 한 인스턴스입니다.

이 profile을 준수하는 XHTML 콘텐츠 문서는 core media type resources이며, spine에서 fallback 없이 사용할 수 있는, EPUB 콘텐츠 문서를 구성하는 두 형식 중 하나입니다.

참고

EPUB 3는 [html]의 HTML syntax를 core media type으로 지원하지 않습니다. 두 serialization 모두 같은 elements를 표현할 수 있지만, 모든 JavaScript libraries 및 APIs가 XML syntax, 특히 shadow DOM을 처리하도록 설계된 것은 아닙니다. 이는 예를 들어 template element [html]를 XML syntax로 작성할 수는 있지만, HTML syntax에서와 같은 방식으로 사용할 수 없을 수도 있음을 의미합니다.

Publishing Maintenance Working Group은 HTML Standard가 더 이상 XML syntax 사용을 권장하지 않는다는 사실을 알고 있습니다. 그러나 XML은 많은 publishing workflows에 필수적이며, 많은 vendor ingestion systems 및 reading systems에서 예상됩니다. 또한 향후 syntax 간에 추가적인 support 차이가 생기더라도, browsers에서 XHTML support가 중단될 것으로 예상되지는 않습니다. HTML syntax에 대한 support는 EPUB 3의 successor format에서 다뤄질 수 있습니다.

참고

이전 버전의 EPUB 3는 EPUB 콘텐츠 문서를 정의하기 위해 W3C의 HTML5 standard를 참조했지만, 그 standard는 WHATWG가 유지 관리하는 HTML Standard의 snapshot에 가까웠습니다. 2019년에 HTML 개발에 관한 agreement에 도달한 후, W3C standard는 폐기되었고 EPUB 3는 이제 HTML Standard만을 참조합니다. 이는 EPUB 3가 XHTML 콘텐츠 문서에서 더 이상 HTML5를 지원하지 않는다는 뜻이 아니라, HTML5가 이제 HTML 4.01과 XHTML 1.1의 successor인 HTML Standard를 가리키는 marketing term이 되었음을 의미합니다.

7.1.2 XHTML 요구 사항

XHTML 콘텐츠 문서는 다음을 만족해야 합니다:

  • 명시적으로 7.1.4 HTML deviations and constraints에서 override되지 않는 한, [html]이 정의한 모든 document constructs에 대한 conformance criteria를 MUST 준수해야 합니다.

  • 7.1.3 HTML extensions에 정의된 대로 [html] grammar에 대한 extensions를 포함할 MAY 있으며, 그 안에 정의된 모든 content conformance constraints를 MUST 준수해야 합니다.

  • XML syntax를 준수하는 [html] document여야 MUST 합니다.

달리 지정되지 않는 한, XHTML 콘텐츠 문서는 [html] specification에서 semantics, structure 및 processing behaviors에 관한 모든 정의를 상속합니다.

참고

EPUB publications가 [epub-a11y-12]의 accessibility requirements를 따르도록 권장하는 내용은 XHTML 콘텐츠 문서에도 적용됩니다. Accessibility를 참조하세요.

7.1.3 HTML 확장

이 절은 underlying [html] document model에 대한 EPUB 3 XHTML 콘텐츠 문서 extensions를 정의합니다.

참고

[html]이 user agents가 vendor-neutral extensions를 지원하는 것을 허용하더라도, 그러한 extensions가 이 절에 나열되어 있지 않으면 EPUB 3의 supported features가 아닙니다.

7.1.3.1 구조적 의미론

epub:type 속성은 structural semantics를 표현하기 위해 XHTML 콘텐츠 문서에서 사용될 MAY 있습니다.

이 속성은 head element 또는 metadata content [html]에 사용되어서는 MUST NOT 됩니다.

7.1.3.2 RDFa

[html-rdfa] specification은 content를 의미론적으로 풍부하게 하기 위해 XHTML 콘텐츠 문서에서 사용할 수 있는 attributes의 집합을 정의합니다. 이러한 attributes의 사용은 [html-rdfa]에 정의된 requirements를 MUST 준수해야 합니다.

[html-rdfa] specification은 authors가 RDFa attributes를 사용할 때 [html] content model에 대한 변경 사항을 정의합니다. 이 modified content model은 XHTML 콘텐츠 문서에서 유효합니다.

참고

RDFa의 listing은 Working Group의 선호를 표현하는 것이 아니라, 이러한 attributes가 HTML grammar의 extension을 나타낸다는 것만을 의미합니다. Microdata attributes [html] 및 linked data [json-ld11]는 XHTML 콘텐츠 문서에서 기본적으로 지원되며 사용할 수도 있습니다.

7.1.3.3 Internationalization tag set (ITS)

[its20] specification은 internationalization, translation 및 localization 지원을 추가하기 위해 XHTML 콘텐츠 문서에서 사용할 수 있는 attributes의 집합을 정의합니다.

ITS attributes는 Using ITS markup in HTML [its20]에 정의된 대로만 사용되어야 MUST 합니다(즉, EPUB 3는 namespaced attributes를 지원하지 않습니다).

이러한 attributes의 사용은 [its20]에 정의된 requirements를 MUST 준수해야 합니다.

참고

[html] link element에서 ITS document로 link하는 것도 가능합니다. 이는 Global approach in HTML5 [its20] 절에 정의되어 있습니다. 이렇게 linked files는 exempt resources이므로, 이 use case를 수용하기 위해 [html]에 대한 extension은 필요하지 않습니다.

7.1.3.4 사용자 정의 속성

XHTML 콘텐츠 문서는 custom attributes를 포함할 MAY 있으며, 이는 namespace URL이 그 domain [url] 안에 다음 문자열 중 어느 것도 포함하지 않는 prefixed [xml-names] attributes입니다:

  • w3.org
  • idpf.org

custom attributes를 사용할 때, content는 어떤 reading system에서 렌더링되든, 정보 손실이나 기타 중대한 저하 없이 사용자가 소비할 수 있는 상태를 유지해야 MUST 합니다.

참고

Custom attributes는 일반적으로 reading system별 방식으로 정의되며 다른 reading systems에서 사용하도록 의도된 것이 아닙니다. 여러 독립적인 reading systems가 사용할 extensions를 추가하는 선호되는 방법은 이 specification을 확장하는 것입니다.

7.1.4 HTML deviations and constraints

이 절은 EPUB 3 XHTML 콘텐츠 문서에 적용되는 underlying [html] document model로부터의 deviations 및 그에 대한 constraints를 정의합니다.

7.1.4.1 포함된 MathML

XHTML 콘텐츠 문서는 embedded [mathml3]를 지원합니다. MathML markup의 occurrences는 다음 추가 restrictions와 함께, MathML specification [mathml3]에 표현된 constraints를 MUST 준수해야 합니다:

Presentation MathML

math element는 annotation-xml element 내부를 제외하고, Presentation MathML만 포함해야 MUST 합니다.

Content MathML

Content MathML은 XHTML 콘텐츠 문서의 MathML markup 안에 포함될 MAY 있으며, 존재하는 경우 semantics element의 annotation-xml child element 안에 포함되어야 MUST 합니다.

앞선 조건에 따라 Content MathML이 포함될 때, 해당 annotation-xml element의 encoding attribute는 기능적으로 동등한 값인 MathML-Content 또는 application/mathml-content+xml 중 하나로 설정되어야 MUST 하며, name attribute는 contentequiv로 설정되어야 합니다.

이 subset은 [html] user agents와의 compatibility를 유지하면서, reading systems의 implementation burden을 줄이고 accessibility를 촉진합니다.

참고

mathml propertymanifest item element의 property로, XHTML 콘텐츠 문서가 embedded MathML을 포함함을 나타냅니다.

7.1.4.2 포함된 SVG

XHTML 콘텐츠 문서는 SVG embedding을 지원합니다:

참고

svg propertymanifest item element의 property로, XHTML 콘텐츠 문서가 embedded SVG(reference 또는 inclusion 방식)를 포함함을 나타냅니다.

7.1.4.3 권장되지 않는 구성

이 절은 비규범적입니다.

7.1.4.3.1 base 요소

[html] base element는 URLs parsing을 위해 document base URL을 지정하는 데 사용할 수 있습니다. 이를 EPUB publication에서 사용할 때, base element의 interpretation은 의도치 않게 remote resources에 대한 references를 초래할 수 있습니다. 또한 reading systems가 hyperlinks의 location을 잘못 해석하게 할 수도 있습니다(예: base element가 absolute URL을 지정하면 publication 안의 다른 documents에 대한 relative links가 web site로의 links처럼 보일 수 있음). 중대한 interoperability issues를 피하기 위해, base element의 사용은 권장되지 않습니다.

7.1.4.3.2 rp 요소

[html] rp element는 ruby markup을 인식하지 못하는 오래된 reading systems를 위한 fallback(즉, ruby markup 주변의 parenthesis display)을 제공하도록 의도되었습니다. EPUB 3 reading systems는 ruby-aware이고 fallbacks를 제공할 수 있으므로, rp elements의 사용은 권장되지 않습니다.

7.1.4.3.3 embed 요소

[html] embed element element는 scripting을 지원하지 않는 reading systems를 위한 intrinsic fallback facilities를 포함하지 않으므로, scripted resources와 함께 이 element를 사용하는 것은 권장되지 않습니다. [html] object element는 intrinsic fallback capabilities를 포함하므로 더 나은 alternative입니다.

7.2 SVG 콘텐츠 문서

7.2.1 소개

이 절은 비규범적입니다.

Scalable Vector Graphics (SVG) specification [svg]은 final-form vector graphics 및 text를 표현하기 위한 format을 정의합니다.

XHTML 콘텐츠 문서top-level content documents로 더 일반적으로 사용되지만, SVG 콘텐츠 문서의 사용도 허용됩니다. SVG는 일반적으로 final-form page images가 content를 나타내는 유일하게 적합한 representation인 경우와 같은 특정 special cases에서만 필요합니다(예: cover art 또는 manga나 comic books의 context).

이 절은 [svg] documents에 대한 profile을 정의합니다. 이 profile을 준수하는 XML document의 한 인스턴스는 core media type resource이며, 이 specification에서는 이를 SVG 콘텐츠 문서라고 합니다.

참고

이 절은 SVG 콘텐츠 문서에 대한 conformance requirements를 정의합니다. XHTML 콘텐츠 문서 안에 embedded된 SVG에 대한 conformance requirements는 7.1.4.2 Embedded SVG를 참조하세요.

7.2.2 SVG 요구 사항

SVG 콘텐츠 문서conforming SVG stand-alone file [svg]이어야 MUST 하며, 7.2.3 Restrictions on SVG에 표현된 모든 content conformance constraints를 준수해야 합니다.

참고

EPUB publications가 [epub-a11y-12]의 accessibility requirements를 따르도록 권장하는 내용은 SVG 콘텐츠 문서에도 적용됩니다. Accessibility를 참조하세요.

7.2.3 SVG에 대한 제한

이 specification은 SVG 콘텐츠 문서XHTML 콘텐츠 문서 안에 inclusion 방식으로 embedded된 SVG의 content model을 다음과 같이 제한합니다:

7.3 Fixed-layout 문서

7.3.1 소개

이 절은 비규범적입니다.

EPUB publications는 print books 또는 PDF files와 달리 변화하도록 설계되었습니다. Content는 screen과 user의 needs에 맞도록 흐르거나 reflow됩니다. Rendering and CSS에서 언급했듯이 "content presentation adapts to the user, rather than the user having to adapt to a particular presentation of content." [epub-overview-34]

그러나 이 원칙은 모든 유형의 documents에 적용되지는 않습니다. 때로는 content와 design이 매우 밀접하게 얽혀 있어 분리할 수 없습니다. appearance의 어떤 change도 meaning을 바꾸거나 모든 meaning을 잃게 할 위험이 있습니다. Fixed-layout documents는 reflowable layout이 content에 적합하지 않을 때 presentation에 대한 더 큰 제어권을 제공합니다.

Fixed-layout documents는 document 내부의 metadata가 지정한 set width 및 height로 reading systems에 의해 렌더링된다는 점에서 reflowable EPUB 콘텐츠 문서와 다릅니다. 이를 통해 documents의 content를 pixel precise manner로 배치할 수 있습니다. 어떤 foreign resource도 fixed layout을 가진 것으로 지정될 수 있습니다(다만 이들은 EPUB 콘텐츠 문서로의 fallback이 필요함). Image foreign resources는 예를 들어, 특히 roll layouts에서 fixed layouts의 spine에 자주 사용됩니다.

EPUB 콘텐츠 문서 또는 foreign resource가 fixed-layout document를 나타내는지 여부는 publication의 layout에 따라 달라집니다. Pre-paginatedroll fixed layouts는 모두 기본적으로 spine에서 참조되는 모든 items가 fixed-layout documents라고 예상합니다(pre-paginated layouts의 경우 이 behavior를 override할 수 있음). 또한 reflowable layouts를 override하여 pre-paginated fixed-layout documents를 추가할 수도 있습니다.

fixed-layout document의 layout dimensions는 각각의 EPUB 콘텐츠 문서에서 얻습니다. documents가 reading systems에서 표시되는 방식은 사용된 layout에 따라 달라집니다 — pre-paginated 방식으로 표시되거나(각 viewport 또는 synthetic spread slot에 하나씩), continuous roll로 표시될 수 있습니다.

참고

EPUB 3는 fixed-layout content를 나타내기 위한 여러 formats를 지원합니다. fixed-layout content가 필요한 경우, format의 choice는 desired degree of precision, file size, accessibility 등을 포함한 여러 factors에 따라 달라집니다. 이 document는 format choice를 지시하려 하지 않습니다.

특히 spine에서 images를 사용하는 것은 distribution과 accessibility 모두에서 문제가 있는 것으로 알려져 있습니다. EPUB 콘텐츠 문서 fallbacks가 required이더라도, 모든 vendors가 images가 spine에 있는 EPUB publications를 받아들이지는 않으며, reading systems가 항상 users에게 그러한 fallbacks에 도달할 option을 제공하는 것도 아닙니다. 이러한 사용은 comics 및 manga처럼 roll layouts를 지원하는 specialized ecosystems에서만 권장됩니다.

7.3.2 Fixed-layout document dimensions

이 절은 fixed-layout documents의 dimensional properties의 expression 및 interpretation에 대한 rules를 정의합니다.

Fixed-layout documents는 자신의 format에 적용되는 방식으로 initial containing block [css2]을 지정합니다:

XHTML에서 표현

XHTML fixed-layout documents의 경우, initial containing block [css2]은 viewport meta tag 안의 REQUIRED heightwidth definitions에서 얻으며, 여기서:

  • height property는 자신의 value로 양의 number [css2] 또는 keyword device-height를 가져야 MUST 합니다; 그리고
  • width property는 자신의 value로 양의 number [css2] 또는 keyword device-width를 가져야 MUST 합니다.

device-widthdevice-height 값은 각각 reading system의 viewport의 width 및 height의 100%를 나타냅니다.

heightwidth definitions는 [html] head element에서 document order상 첫 번째 viewport meta tag에 지정되어야 MUST 합니다. Reading systems는 이후의 viewport meta tags를 무시합니다.

EPUB creators는 viewport meta tag 안에 하나를 초과하는 height 또는 width definition을 지정해서는 MUST NOT 됩니다.

SVG에서 표현

SVG fixed-layout documents의 경우, initial containing block [css2] dimensions는 viewBox attribute [svg]를 사용해 표현되어야 MUST 합니다.

image foreign resources에서 표현

spine에서 참조되는 image foreign resources의 경우, initial containing block [css2]은 image의 width 및 height metadata에서 얻습니다. 이 metadata가 저장되는 방식에 대한 정보는 해당 image format의 documentation을 참조하세요.

참고

initial containing block definition은 그것이 정의된 document에만 영향을 미칩니다. 같은 publication 안의 다른 content documents에 있는 containing blocks의 dimensions는 다를 수 있습니다.

7.4 공통 리소스 요구 사항

이 절은 XHTMLSVG 콘텐츠 문서 모두에서 사용할 수 있는 technologies에 대한 requirements를 정의합니다.

7.4.1 Cascading Style Sheets (CSS)

7.4.1.1 소개

이 절은 비규범적입니다.

CSS는 Open Web Platform의 필수적인 부분입니다. Readers, publishers 및 document authors는 HTML이 "just work"하길 기대하듯 CSS도 "just work"하길 기대합니다.

과거에 EPUB은 특정 properties에 대한 support를 mandated하고 수많은 다른 properties의 prefixed versions를 제공하는 CSS profile을 정의했습니다. CSS Working Group이 더 이상 prefixed properties 사용을 권장하지는 않지만, 이 specification은 existing content를 깨뜨리지 않기 위해 일부 prefixed properties를 유지합니다. 그러나 이 절에 정의된 minor exceptions를 제외하고, EPUB은 CSS 정의를 W3C에 맡기며 reading systems가 주요 browsers 수준으로 이를 지원하기를 기대합니다.

Reading systems는 CSS snapshot에 정의된 CSS [epub-rs-34]를 지원할 것으로 예상되지만, 현실적으로 대부분의 reading systems는 현재 CSS의 모든 desired features를 지원하지 않으며, EPUB publication에 정의된 default presentation을 수정하고 users가 변경할 수 있도록 허용하는 경우가 많습니다. 그 결과 styling은 이러한 realities에 맞게 조정되어야 합니다. 자세한 정보는 7.4.1.3 Reading system support considerations를 참조하세요.

7.4.1.2 CSS 요구 사항

CSS style sheet는 다음을 만족해야 합니다:

참고

이 specification은 directionunicode-bidi properties의 사용을 제한합니다. 그 이유는 reading systems가 CSS processing을 구현하지 않거나 switch off할 수 있기 때문입니다. rendering의 이러한 aspects에 대한 제어가 필요할 때는 다음 format-specific methods를 사용해야 합니다:

7.4.1.3 Reading system 지원 고려사항

이 절은 비규범적입니다.

다음 CSS features에 대한 support는 EPUB reading systems에서 특히 문제가 있는 것으로 알려져 있습니다:

  • Reading system-induced pagination은 reading systems가 columns를 사용해 paginate하는 경우가 있어 style sheets와 좋지 않게 상호작용할 수 있습니다. 이로 인해 viewport sizes에 대한 incorrect values가 생길 수 있습니다. Fixed 및 absolute positioning은 특히 문제가 됩니다.

  • 일부 유형의 screens는 animations 및 transitions를 제대로 렌더링하지 못할 수 있습니다(예: high latency가 있는 경우).

Reading systems는 일반적으로 EPUB publication의 style 일부를 설정하며(예: application에 적합한 margins 설정), default instructions를 잠재적으로 override할 수 있습니다. Conflicts 및 잠재적인 rendering problems를 완화하기 위해, reading systems의 user agent style sheets가 공개되어 있다면 이를 consult하고 optimal display를 위해 styling choices를 조정하는 것이 권장됩니다.

또한 users가 appearance(예: fonts 선택, text justification 또는 foreground/background colors)를 변경할 수 있게 하는 reading systems는 EPUB publication의 일부 CSS rendering directions도 수정합니다. CSS precedence rules 때문에, EPUB 콘텐츠 문서에서 [html] style attributes의 사용을 제한하여 user experience가 부정적인 영향을 받지 않도록 하는 것이 좋습니다 (즉, users의 style choices가 보편적으로 적용되지 않는 상황). 일부 reading systems는 inline styles를 override하지만, 그러한 behavior가 보장되는 것은 아닙니다.

7.4.2 스크립팅

7.4.2.1 스크립트 포함

EPUB 콘텐츠 문서는 각각의 underlying specifications ([html] 및 [svg])에서 이를 위해 정의한 facilities를 사용해 scripting을 포함할 MAY 있습니다. EPUB 콘텐츠 문서가 scripting을 포함하는 경우, 이 specification은 이를 scripted content document라고 합니다. 이 label은 [html] form elements를 포함하는 XHTML 콘텐츠 문서에도 적용됩니다.

scripted propertymanifest item element의 property로, EPUB 콘텐츠 문서가 scripted content document임을 나타내는 데 사용됩니다.

[html] script element가 data block [html]을 포함하는 경우, 이는 scripted content를 나타내지 않습니다.

참고

[svg]는 publication 시점에는 data blocks를 정의하지 않지만, 향후 update가 이 concept를 추가한다면 같은 exclusion이 적용됩니다.

reading systems는 각 EPUB publication에 고유한 origin [html]이 할당된 것처럼 동작해야 함에 유의하세요. 실제로 이는 scripts가 EPUB publications 간에 data를 공유할 수 없음을 의미합니다.

script가 어떤 context에서 사용되는지도 reading system이 그에 부여하는 rights 및 restrictions를 결정합니다(자세한 정보는 Scripting [epub-rs-34]를 참조하세요).

참고

Reading systems는 scripted content documents를 다른 EPUB capabilities를 disable하거나 다른 rendering 및 user experience를 제공하는 방식으로 렌더링할 수 있습니다(예: pagination 비활성화).

7.4.2.2 스크립팅 컨텍스트

EPUB 3는 script execution을 위한 두 contexts를 정의합니다:

참고

Scripts는 다른 contexts에서도 실행될 수 있지만, 이러한 contexts에 대한 reading system support는 optional입니다. 예를 들어, scripted SVG document는 [html] object element에서 참조될 수 있습니다.

자세한 정보는 processing of scripts [epub-rs-34]를 참조하세요.

code가 script element 안에 직접 embedded되어 있는지, 또는 element의 src attribute를 통해 referenced되는지는 executing context에 차이를 만들지 않습니다.

scripts에 사용되는 context는 scripts가 수행할 수 있는 actions와 reading systems에서 support될 가능성 모두에 영향을 주며, 이는 다음 subsections에 설명되어 있습니다.

참고

두 contexts 간 차이의 예는 A.2 Scripting contexts를 참조하세요.

7.4.2.2.1 Container-constrained scripts

container-constrained script는 다음 중 하나입니다:

container-constrained script는 이를 embed하는 EPUB 콘텐츠 문서(즉, iframe element를 포함하는 문서)의 DOM을 수정하기 위한 instructions를 포함해서는 MUST NOT 됩니다. 또한 자신의 containing rectangle의 size를 조작하기 위한 instructions도 포함해서는 MUST NOT 됩니다.

reading systems에서 container-constrained scripting에 대한 support는 reflowable documents에서만 권장되며 [epub-rs-34], fixed-layout documents에서는 optional임에 유의하세요.

scripting support가 없는 reading systems에서도 container-constrained scripts가 graceful하게 degrade되도록 보장하세요(7.4.2.5 Scripting fallbacks 참조).

참고

scripting의 usage를 container-constrained model로 제한하기로 선택하면, scripted content와 non-scripted content 사이에서 더 일관된 user experience를 보장할 수 있습니다 (예: consistent pagination behavior).

7.4.2.2.2 Spine-level scripts

spine-level scripttop-level content document에 포함된 [html] script 또는 [svg] script element의 instance입니다.

reading systems에서 spine-level scripting에 대한 support는 fixed-layout documentsscroll로 설정된 reflowable documents에서만 권장됨에 유의하세요 [epub-rs-34]. 또한 다른 모든 contexts에서 reading system support는 optional입니다.

spine-level scripting을 포함하는 Top-level content documents는 scripting이 disabled되거나 available하지 않을 때에도 정보 손실이나 기타 중대한 저하 없이 사용자가 소비할 수 있는 상태를 유지하는 것이 좋습니다 SHOULD (예: progressive enhancement techniques 또는 fallbacks 사용). top-level content documents에서 non-scripted environments를 고려하지 않으면 EPUB publications를 읽을 수 없게 만들 수 있습니다.

7.4.2.3 이벤트 모델

이 절은 비규범적입니다.

reading system implementations의 가능한 variety가 매우 넓다는 점을, EPUB publications에 scripting functionality를 추가할 때 고려해야 합니다(예: 모든 devices가 physical keyboards를 갖는 것은 아니며, 많은 경우 soft keyboard는 text input elements에 대해서만 활성화됨). 따라서 keyboard events에만 의존하지 말고, 원하는 action을 trigger할 alternative ways를 항상 제공하세요.

7.4.2.4 스크립팅 접근성

scripting을 포함하는 EPUB 콘텐츠 문서는 content가 모든 users가 소비할 수 있는 상태로 유지되도록 관련 [wai-aria] accessibility techniques를 사용하는 것이 좋습니다 SHOULD.

7.4.2.5 스크립팅 대체

scripting을 포함하는 EPUB 콘텐츠 문서는 그러한 content에 대한 fallbacks를 제공할 MAY 있습니다. 이는 intrinsic fallback mechanisms(예: [html] objectcanvas elements에서 사용할 수 있는 것)을 사용하거나, intrinsic fallback이 applicable하지 않을 때 manifest-level fallback을 사용하는 방식일 수 있습니다.

Scripts는 core media type resources 또는 그 fragments만 generate해야 MUST 합니다.

7.4.3 epub:type 속성

7.4.3.1 구조적 의미론

Structural semantics는 element가 수행하는 특정 structural purpose에 대한 추가 meaning을 더합니다. epub:type attribute는 EPUB 콘텐츠 문서에서 domain-specific semantics를 표현하는 데 사용되며, 이 attribute가 지닌 structural information은 underlying vocabulary를 보완합니다. 또한 media overlay documents에서 재생되는 content의 semantic structure를 반영하는 데도 사용할 수 있습니다.

적용된 semantics는 containing elements의 의미를 정제하지만, 유사한 role attribute [html]를 사용할 때처럼 assistive technologies에 대한 nature를 바꾸지는 않습니다. 다시 말해 이 attribute는 content의 accessibility를 향상하지 않으며, purpose에 대한 hints만 제공합니다.

Semantic metadata는 publishing workflows 및 author-defined purposes에서 사용할 수 있도록 content를 풍부하게 합니다. 또한 reading systems가 document의 structure 및 content에 대해 더 많이 알 수 있게 합니다(예: media overlays에서 skippability and escapability를 가능하게 하기 위해).

이 specification은 attribute axis를 사용해 structural semantics를 추가하는 방법을 정의합니다. 즉, 새로운 elements를 추가하는 대신, epub:type attribute를 existing elements에 append하여 원하는 semantics를 추가할 수 있습니다.

7.4.3.2 구문
속성 이름:

epub:type

Namespace:

http://www.idpf.org/2007/ops

사용:

XHTML, SVGmedia overlays에 대한 requirements를 참조하세요.

값:

5.3 Vocabulary association mechanisms에 정의된 restrictions를 따르는, compact URLswhitespace-separated [xml] list.

주의

epub:type attribute는 role attribute [html]와 성격이 비슷하지만, 두 attributes는 서로 다른 purposes를 가집니다. epub:type attribute의 values는 assistive technologies가 사용하는 accessibility APIs에 map되지 않으므로, screen readers와 같은 assistive technologies를 통한 access를 향상하지 않습니다. 이는 epub:type values를 [html] divspan과 같은 semantically neutral elements에 추가해도, assistive technologies에 대해 이들이 더 accessible해지는 것은 아님을 의미합니다. 오직 ARIA roles만이 assistive technologies가 그러한 elements를 이해하는 방식에 영향을 줍니다.

따라서 epub:type attribute는 publishing semantics 및 reading system enhancements만을 의도합니다. Reading systems는 assistive technologies와의 interaction이 필수적이지 않은 곳에서, built-in read aloud 또는 media overlays functionality 같은 accessibility enhancements를 제공하기 위해 epub:type values를 사용할 수 있습니다.

accessible publishing roles에 대한 자세한 정보는 Digital Publishing WAI-ARIA Module [dpub-aria]를 참조하세요.

epub:type attribute는 그것이 나타나는 element에 semantics를 부여합니다. 그 value는 document instance와 associated된 external vocabularies에서 비롯된 하나 이상의 whitespace-separated terms입니다.

epub:type attribute의 default vocabulary는 EPUB 3 Structural Semantics Vocabulary [epub-ssv-11]입니다. 그 properties를 참조하기 위한 prefix URL은 http://idpf.org/epub/vocab/structure/#입니다.

이 vocabulary의 일부가 아닌 unprefixed terms도 사용할 MAY 있지만, custom semantics를 추가하는 preferred method는 이에 대해 prefixes를 사용하는 것입니다. 자세한 정보는 5.3 Vocabulary association mechanisms를 참조하세요.

8. EPUB 탐색 문서

8.1 소개

이 절은 비규범적입니다.

EPUB 탐색 문서필수 구성 요소EPUB publication의 일부입니다. 이는 사람이 읽을 수 있고 기계도 읽을 수 있는 전역 탐색 계층을 포함할 수 있게 하여, 사용자에게 향상된 사용성과 접근성을 보장합니다.

EPUB 탐색 문서는 XHTML 콘텐츠 문서의 특별한 유형으로, reading systems를 위한 목차를 정의합니다. 또한 page list와 핵심 landmarks 목록 같은 다른 특수한 탐색 요소도 포함할 수 있습니다. 이러한 탐색 요소에는 처리를 용이하게 하기 위해 content에 대한 추가 restrictions가 있습니다.

그러나 EPUB 탐색 문서는 기계 처리 전용이 아닙니다. 특수한 탐색 요소 밖의 EPUB 탐색 문서의 구조나 content에는 제한이 없습니다(즉, 문서의 나머지 부분은 다른 XHTML 콘텐츠 문서처럼 markup할 수 있습니다). 따라서 linear reading order의 일부가 될 수도 있어, 중복 목차가 필요하지 않게 합니다. 기계 처리만을 위한 탐색 요소(예: page list)는 hidden attribute를 사용해 숨길 수 있습니다.

reading systems가 EPUB 탐색 문서에서 찾은 정보를 기반으로 navigational interfaces를 생성할 때 scripting, styling 및 HTML formatting을 제거할 수 있으며, 이로 인해 결과를 읽기 어려워질 수 있음에 유의하세요. 이러한 formatting과 functionality가 필요하다면 EPUB 탐색 문서를 spine에 포함할 수도 있습니다. 탐색 문서의 scripting 및 styling에 progressive enhancement techniques를 사용하면, non-browser context에서 렌더링될 때에도 content가 integrity를 유지하도록 보장하는 데 도움이 됩니다.

8.2 탐색 문서 요구 사항

유효한 EPUB 탐색 문서는 다음을 만족해야 합니다:

8.3 nav 요소: restrictions

nav 요소가 EPUB 탐색 문서에서 epub:type attribute를 지니는 경우, 이 specification은 해당 요소와 그 descendants의 content model을 다음과 같이 제한합니다:

콘텐츠 모델:
nav

다음 순서로:

ol

다음 순서로:

  • li [1개 이상]

li

다음 순서로:

  • (span 또는 a) [정확히 1]

  • ol [조건부 필수]

spana

임의 순서로:

이러한 elements에 허용되는 attributes에는 제한이 없다는 점에 유의하세요.

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

nav 요소의 content model에 대한 다음 설명은 여러 elements의 purpose와 restrictions를 설명합니다:

주의

nav elements 안의 headings와 links는 어떤 [html] phrasing content도 허용하지만, app-based reading systems는 단순 text labels만 지원하는 경우가 많습니다. 이러한 apps는 HTML rendering에 기반하지 않는 자체 navigation widgets를 만들기 때문에, embedded images 및 multimedia, MathML, inline styling, 기타 element- 및 attribute-based rendering instructions를 유지하지 못하는 경우가 많습니다. 이러한 content가 없으면 usability issues가 발생할 곳에서는 이 유형의 content 사용을 피하는 것이 권장됩니다.

8.4 nav 요소: types

8.4.1 소개

이 절은 비규범적입니다.

EPUB 탐색 문서에 정의된 nav elements는 그 epub:type attribute의 value에 의해 의미론적으로 구별됩니다.

이 specification은 세 가지 navigation aid 유형을 정의합니다:

toc

목차를 포함하는 nav element를 식별합니다. toc nav는 EPUB 탐색 문서에 포함되어야 하는 유일한 navigation aid입니다.

page-list

print 또는 기타 statically paginated source에 대한 pages 목록을 포함하는 nav element를 식별합니다.

landmarks

points of interest 목록을 포함하는 nav element를 식별합니다.

EPUB 탐색 문서는 이러한 각 유형별로 최대 하나의 navigation aid를 포함할 수 있습니다. 추가 navigation types도 포함할 수 있습니다. 자세한 정보는 8.4.5 기타 nav elements를 참조하세요.

8.4.2 toc nav element

EPUB publication의 primary navigational hierarchy는 nav element [html] 안에 정의되며, 그 epub:type attribute는 "toc" [epub-ssv-11] 값으로 설정됩니다 (즉, toc nav element). 이 element는 개념적으로 인쇄물의 table of contents에 해당하며, publication의 주요 structural sections로 navigation을 제공합니다.

toc nav element의 references는 다음 둘 모두를 반영하도록 ordered되는 것이 좋습니다 SHOULD:

8.4.3 page-list nav element

page list는 content 안의 static page boundaries로 navigation을 제공합니다. 이러한 boundaries는 print 같은 statically paginated source에 해당하거나, EPUB publication 전용입니다.

page list는 nav element [html] 안에 정의되며, 그 epub:type attribute는 "page-list" [epub-ssv-11] 값으로 설정됩니다 (즉, page-list nav element).

page-list nav element는 단일 ol descendant만 포함하는 것이 좋습니다 SHOULD (즉, nested sublists 없음).

8.4.4 landmarks nav element

Landmarks는 reading systems가 사용자에게 content의 fundamental structural components에 효율적으로 접근할 수 있도록 하기 위해 이를 식별합니다 (예: user interface의 dedicated button을 통해).

Landmarks는 nav element [html] 안에 정의되며, 그 epub:type attribute는 "landmarks" [epub-ssv-11] 값으로 설정됩니다 (즉, landmarks nav element).

landmarks nav element는 단일 ol descendant만 포함하는 것이 좋습니다 SHOULD (즉, nested sublists 없음).

epub:type attribute는 landmarks nav element의 a element descendants에서 REQUIRED입니다. landmarks nav element 안의 각 link target의 structural semantics는 이 attribute의 value에 의해 결정됩니다.

landmarks nav는 같은 resource 또는 그 fragment를 reference하면서 같은 epub:type value를 가진 multiple entries를 포함해서는 MUST NOT 됩니다.

landmarks nav에 정의되는 items의 수는 reading system이 user interface에서 사용할 가능성이 높은 items로만 제한하는 것이 권장됩니다. 이 element는 목차를 반복하기 위한 것이 아닙니다.

사용 가능한 경우 다음 landmarks를 포함하는 것이 권장됩니다:

  • bodymatter [epub-ssv-11] — Reading systems는 사용자가 읽기 시작할 때 front matter를 지나 자동으로 이동하도록 이 landmark를 자주 사용합니다.
  • toc [epub-ssv-11] — 목차가 spine에서 사용 가능한 경우, reading systems는 사용자를 이를 포함하는 document로 이동시키기 위해 이 landmark를 사용할 수 있습니다.

landmarks nav에 포함할 수 있는 다른 possibilities로는 indexes 및 glossaries 같은 key reference sections가 있습니다.

landmarks nav는 reading system use를 위한 것이지만, landmarks nav의 labels가 사람이 읽을 수 있도록 보장하는 것이 여전히 권장됩니다. Reading systems가 links를 사용자에게 직접 노출할 수도 있습니다.

8.4.5 기타 nav elements

reading system 처리를 위해 EPUB 탐색 문서에 추가 nav elements가 필요한 경우, 이들은 다음을 만족해야 합니다:

이 specification은 추가 nav elements의 semantics에 어떤 restrictions도 부과하지 않습니다. 이들은 어떤 information domain에 대한 navigational semantics도 나타낼 MAY 있으며, homogeneous 또는 heterogeneous semantics를 가진 link targets를 포함할 MAY 있습니다.

8.5 spine에서 사용

이 절은 비규범적입니다.

conforming XHTML 콘텐츠 문서로서, EPUB 탐색 문서는 spine에 포함될 수 있습니다.

탐색 문서를 spine에 추가할 때, 해당 문서에 대한 어떤 reading system 처리도 적용되지 않는다는 점을 고려하세요. 특히, EPUB reading systems는 spine 밖에서 EPUB 탐색 문서를 표시할 때(예: reading systems가 제공하는 dedicated navigation user interfaces에서) list item numbering을 suppress해야 하지만 [epub-rs-34], 이 requirement는 in-spine use에는 적용되지 않습니다. 따라서 탐색 문서를 spine에 표시할 때 HTML의 default list item numbering을 원하지 않는 경우, CSS를 사용해 alternative list styling을 제공해야 합니다.

마찬가지로, EPUB 탐색 문서가 spine에 표시될 때 모든 navigation structures 또는 그 안의 branches가 필요한 것은 아닌 경우가 많습니다. 예를 들어 page listlandmarks navigation elements를 숨기거나, subsections 수준이 많은 books의 table of contents를 trim하는 것이 선호되는 경우가 많습니다.

이러한 경우, content flow에서 rendering에서 제외되는 navigation data의 부분(있는 경우)을 표시하기 위해 [html] hidden attribute를 사용하는 것이 권장됩니다. 이 attribute는 [epub-rs-34] reading systems가 spine 밖에서 탐색 문서를 렌더링하는 방식에는 영향을 주지 않습니다.

참고

display property [css2]가 reading systemsviewports에서 EPUB 탐색 문서의 visual rendering을 제어하지만, viewports가 없는 reading systems는 CSS를 지원하지 않을 수 있습니다. hidden attribute는 모든 reading systems 전반의 interoperability를 극대화하기 위해 display property와 함께 사용할 수 있습니다.

9. 음성 렌더링

9.1 소개

이 절은 비규범적입니다.

EPUB 3는 주로 시각적 reading format으로 간주되지만, EPUB publications는 음성 렌더링을 가능하게 하도록 설계되었습니다. 이를 수행하는 주요 방법은 두 가지입니다:

text-to-speech rendering을 통해 EPUB publication을 읽는 experience는 사용자의 reading system이 내장 synthetic speech voices를 사용하여 제어합니다. 이 feature는 일반적으로 "read aloud" capability라고 불리지만, 정확한 명칭은 reading system마다 다를 수 있습니다.

EPUB 3 reading systems가 제공하는 read aloud functionality는 voice assistance가 필요한 장애가 있는 users의 accessibility를 향상하지만, dedicated assistive technologies(일반적으로 screen readers라고 불리는 것)가 제공하는 text-to-speech rendering과 동일하지 않습니다. Read aloud functionality는 별도 application이 아니라 reading system 안에 존재하는 기능으로서 모든 users가 사용하도록 설계되었습니다. 예를 들어, 이동 중인 사람은 멀미를 피하기 위해 visual reading에서 auditory reading으로 전환할 수 있습니다. 두 유형의 text-to-speech render가 모두 user의 system에 존재하고 EPUB publications를 읽는 데 둘 다 사용될 수 있더라도, 이 specification은 reading systems가 제공하는 built-in functionality에만 초점을 둡니다.

반면 Media overlays는 EPUB publication의 producer가 audio를 제공하고 이를 text와 동기화하는 것에 의존합니다. Media overlays는 EPUB publication이 더 전통적인 audiobook의 역할도 할 수 있게 하며, 동시에 audio가 재생되는 동안 users가 text를 따라 읽을 수 있다는 이점도 제공합니다.

Media overlays는 일반적으로 professional narration을 제공하는 데 사용되지만, 이는 관례일 뿐입니다. content의 text-to-speech playback도 media overlays를 사용해 녹음하고 동기화할 수 있으며, human voicings와 synthetic voicings가 자주 혼합됩니다(예: body는 human narration, 사람이 읽기에는 더 지루하고 시간이 많이 걸리는 backmatter는 synthetic narration). 또한 media overlay를 사용해 reading system이 관련 text를 읽기 위해 자신의 text-to-speech capabilities를 사용하도록 지정할 수도 있지만, 실제로 이 feature는 잘 지원되지 않습니다.

Media overlay playback과 text-to-speech playback은 서로 배타적인 features가 아닙니다. media overlay를 통해 prerecorded narration을 포함하는 EPUB publication도 사용자가 reading system의 read aloud feature를 사용하여 읽을 수 있습니다.

9.2 텍스트 음성 변환

이 절은 비규범적입니다.

현재 text-to-speech playback의 품질을 개선하기 위해 널리 지원되는 technologies는 없습니다. EPUB 3의 원래 설계는 세 가지 technologies를 사용하는 것이었습니다:

이러한 technologies의 미래는 불확실하지만, 모두 EPUB publications에서 사용하는 것이 유효합니다. EPUB SSML attributes는 EPUB 3의 현재 목표가 가능한 한 web-supported technologies를 사용하는 것이므로 지원될 가능성이 가장 낮습니다. web-friendly method로 SSML support를 추가하는 작업이 traction을 얻을 수 있다면 이러한 attributes를 대체할 가능성이 있습니다. Pronunciation lexicons는 제한적이고 지역적인 support만 얻었습니다. 또한 향후 작업이 CSS Speech를 더 제한된 형태로 되살릴 가능성도 있지만, 이것 역시 진행 중인 작업입니다.

참고

이러한 technologies와 EPUB 3에서 이를 사용하는 방법에 대한 자세한 정보는 EPUB 3 Text-to-Speech Enhancements 1.0 [epub-tts-10]를 참조하세요.

이 절은 이러한 technologies 또는 기타 technologies가 EPUB publications에서 널리 사용할 수 있게 될 때마다 업데이트됩니다.

현재 reading systems에서 text-to-speech playback을 개선하기 위한 최선의 조언은 EPUB publications가 [epub-a11y-12]에 따라 accessible하도록 보장하는 것입니다. 이렇게 하면 reading systems가 playback에 사용할 수 있는 structure와 semantics가 제공되고, visual content를 지각할 수 없는 users를 위한 text alternatives가 제공됩니다.

9.3 Media overlays

9.3.1 소개

이 절은 비규범적입니다.

Mainstream ebooks, educational tools 및 print disabilities가 있는 사람들을 위해 format된 ebooks는 synchronized audio narration을 포함하는 works의 몇 가지 예입니다. EPUB 3에서는 이러한 유형의 books를 media overlay documents를 사용해 생성할 수 있으며, 이는 pre-recorded audio narration의 timing과 그것이 EPUB content document markup과 어떻게 관련되는지를 설명합니다. 이 specification은 media overlays의 file format을 [smil3]의 subset으로 정의하며, 이는 XML로 synchronized multimedia information을 표현하기 위한 W3C Recommendation입니다.

Media overlays가 가능하게 하는 text와 audio의 synchronization은 전통적인 book의 text를 따라가는 데 어려움이 있는 모든 user에게 향상된 accessibility를 제공합니다. Media overlays는 또한 어떤 이유로든 text를 읽을 수 없는 readers에게 continuous listening experience를 제공하며, 이는 전통적인 audio embedding techniques가 제공할 수 없는 것입니다. accessibility concerns로 전통적으로 간주되지 않는 목적에도 유용합니다(예: language learning).

Media overlays feature는 해당 feature를 지원하지 않는 EPUB reading systems에는 투명합니다. EPUB publication에 media overlays를 포함해도, media overlay-unaware reading systems가 EPUB publication을 media overlays가 없는 것처럼 렌더링하는 능력에는 영향을 주지 않습니다.

EPUB의 Media overlays는 audiobooks와 동등하지 않습니다. audiobooks는 주로 audio-based이며 text는 가끔 alternate format으로 제공되기 때문입니다. W3C [audiobooks] recommendation은 audio publications를 만들기 위한 것입니다.

이 specification의 향후 versions가 video media에 대한 support(예: synchronized text/sign-language books)를 포함할 수도 있지만, 이 version은 audio media와 EPUB content document의 synchronization만 지원합니다.

9.3.2 Media overlay documents

9.3.2.1 Media overlay document requirements

media overlay document는 다음을 만족해야 합니다:

9.3.2.2 Media overlay document definition

달리 지정되지 않는 한, 이 절에서 정의되는 모든 elements [xml]는 http://www.w3.org/ns/SMIL namespace [xml-names]에 있습니다.

9.3.2.2.1 smil 요소

smil 요소는 media overlay document의 모든 정보를 캡슐화합니다.

요소 이름:

smil

사용:

media overlay document의 REQUIRED root element [xml].

속성:
version [required]

media overlay document가 따르는 [smil3] specification의 version number를 지정합니다.

이 attribute는 "3.0" 값을 가져야 MUST 합니다.

id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

epub:prefix [optional]

추가 metadata vocabulary prefixes를 선언합니다.

자세한 정보는 9.3.3.3 Structural semantics in overlays를 참조하세요.

콘텐츠 모델:

다음 순서로:

9.3.2.2.2 head 요소

head 요소는 media overlay document의 metadata를 위한 container입니다.

요소 이름:

head

사용:

head 요소는 smil 요소의 OPTIONAL 첫 번째 child입니다.

속성:

없음

콘텐츠 모델:

metadata [0 또는 1]

이 specification은 media overlay document에 반드시 나타나야 하는 metadata properties를 정의하지 않으므로, head 요소는 OPTIONAL입니다.

9.3.2.2.3 metadata 요소

metadata 요소는 media overlay document의 metadata를 나타냅니다. metadata 요소는 어떤 metainformation structuring language의 metadata도 포함할 수 있게 하는 extension point입니다.

요소 이름:

metadata

사용:

head 요소의 child로 사용.

속성:

없음

콘텐츠 모델:

임의 namespace의 elements [0개 이상]

이 specification은 media overlay document에 어떠한 metadata properties도 요구하지 않습니다. metadata 요소는 custom metadata requirements를 위해 제공됩니다.

9.3.2.2.4 body 요소

body 요소는 media overlay document에 포함된 presentation의 시작점입니다. 이는 parseq elements의 main sequence를 포함합니다.

요소 이름:

body

사용:

body 요소는 smil 요소의 REQUIRED child입니다. 해당 element가 존재하는 경우 head 요소 뒤에 옵니다.

속성:
epub:type [optional]

해당 EPUB content document 안의 corresponding element의 structural semantics 표현.

값은 compact URLs의 whitespace-separated list입니다. 자세한 정보는 9.3.3.3 Structural semantics in overlays를 참조하세요.

id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

epub:textref [optional]

associated EPUB content document를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

콘텐츠 모델:

임의 순서로:

  • seq [0개 이상]

  • par [0개 이상]

최소 하나의 par 또는 seq를 포함해야 MUST 합니다.

9.3.2.2.5 seq 요소

seq 요소는 media objects 및/또는 child time containers를 위한 sequential time container입니다.

요소 이름:

seq

사용:

하나 이상의 seq elements가 body element와 seq element의 children으로 나타날 MAY 있습니다.

속성:
epub:type [optional]

해당 EPUB content document 안의 corresponding element의 structural semantics 표현.

값은 compact URLs의 whitespace-separated list입니다. 자세한 정보는 9.3.3.3 Structural semantics in overlays를 참조하세요.

id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

epub:textref [required]

associated EPUB content document를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

자세한 정보는 9.3.3.2.1 Overlay structure를 참조하세요.

콘텐츠 모델:

임의 순서로:

  • seq [0개 이상]

  • par [0개 이상]

최소 하나의 par 또는 seq를 포함해야 MUST 합니다.

9.3.2.2.6 par 요소

par 요소는 media objects를 위한 parallel time container입니다.

요소 이름:

par

사용:

하나 이상의 par elements가 bodyseq elements의 children으로 나타날 MAY 있습니다.

속성:
epub:type [optional]

해당 EPUB content document 안의 corresponding element의 structural semantics 표현.

값은 compact URLs의 whitespace-separated list입니다. 자세한 정보는 9.3.3.3 Structural semantics in overlays를 참조하세요.

id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

콘텐츠 모델:

임의 순서로:

9.3.2.2.7 text 요소

text 요소는 EPUB content document 안의 element를 참조합니다. text element는 일반적으로 textual element를 참조하지만, 다른 EPUB content document media elements를 참조할 수도 있습니다. sibling audio element가 없는 경우, reading system은 이 element가 참조하는 textual content를 text-to-speech를 통해 렌더링할 것으로 예상됩니다.

요소 이름:

text

사용:

par element의 REQUIRED child로 사용.

속성:
src [required]

associated EPUB content document를 참조하고, 선택적으로 그 특정 부분을 식별합니다.

값은 path-relative-scheme-less-URL string이어야 MUST 하며, 선택적으로 U+0023 (#)URL-fragment string이 뒤따를 수 있습니다.

id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

콘텐츠 모델:

비어 있음

참고

이 specification은 text element의 src attribute에 제한을 두지 않지만, 해당 attribute가 CSS로 styling할 수 있는 content를 reference하여 style information과의 association이 효과적이게 하는 것이 권장됩니다. XHTML의 경우 이는 palpable content를 reference하는 것을 의미합니다. SVG의 경우에는 paths, basic shapes, 또는 text elements를 reference하는 것을 의미합니다.

참고

[epub-rs-34]는 더 이상 timed media의 playback(즉, referenced media의 automatic starting)에 대해 reading systems를 위한 guidance를 제공하지 않습니다. text element의 src attribute가 embedded timed media(예: [htmlvideo element를 통해)를 참조할 수는 있지만, 그러한 media를 reference하면 예측할 수 없는 결과가 발생할 수 있습니다.

9.3.2.2.8 audio 요소

audio 요소는 audio media의 clip을 나타냅니다.

요소 이름:

audio

사용:

par element의 OPTIONAL child.

속성:
id [optional]

element의 ID [xml]로, document scope 안에서 unique해야 MUST 합니다.

src [required]

audio file에 대한 relative- 또는 absolute-URL string [url] reference입니다. audio file은 core media type resources table에 나열된 audio formats 중 하나여야 MUST 합니다.

variable bitrate로 encoded된 MP3 (audio/mpeg) audio files [mp3]는 seeking accuracy가 일반적으로 audio track length와 반비례하기 때문에 precise seeking에 적합하지 않습니다. 따라서 variable bitrate MP3 audio는 media overlays에 사용해서는 SHOULD NOT 됩니다.

clipBegin [optional]

audio clip의 start point에 해당하는 physical media 내부의 offset을 지정하는 clock value입니다.

[smil3] clock value이어야 MUST 합니다.

A.4 Clock values를 참조하세요.

clipEnd [optional]

audio clip의 end point에 해당하는 physical media 내부의 offset을 지정하는 clock value입니다.

[smil3] clock value이어야 MUST 합니다.

A.4 Clock values를 참조하세요.

terminating position의 chronological offset은 clipBegin attribute에 지정된 starting offset보다 뒤에 있어야 MUST 합니다.

콘텐츠 모델:

비어 있음

9.3.3 Media overlays 만들기

9.3.3.1 소개

이 절은 비규범적입니다.

publication의 pre-recorded narration은 일련의 audio clips로 표현할 수 있으며, 각 clip은 EPUB content document의 일부에 해당합니다. 예를 들어 단일 audio clip은 일반적으로 단일 phrase 또는 paragraph를 나타내지만, 다른 clips 또는 document의 text와 관련된 order는 추론하지 않습니다. Media overlays는 [smil3] markup을 사용해 structured audio narration을 EPUB content document의 corresponding text(또는 다른 media)에 연결함으로써 이러한 synchronization 문제를 해결합니다. Media overlays는 사실상 이러한 clips의 playback sequence를 정의하는 SMIL 3.0의 simplified subset입니다.

Media overlays를 structuring하는 데 주로 사용되는 SMIL elements는 body (main sequence에 사용), seq (sequence) 및 par (parallel)입니다. (이러한 SMIL elements 및 기타 SMIL elements에 대한 자세한 정보는 9.3.2.2 Media overlay document definition을 참조하세요.)

par element는 media overlay의 기본 building block이며, EPUB content document의 phrase에 해당합니다. 이 element는 content를 synchronize하기 위한 두 가지 핵심 정보를 제공합니다: 1) 해당 phrase의 narration을 포함하는 audio clip; 그리고 2) associated EPUB content document fragment에 대한 pointer. par element는 이 정보를 나타내기 위해 두 media element children을 사용합니다: audio element와 text element입니다. par elements의 media object children은 parallel로 timed되므로, reading systems는 audio clip과 EPUB content document fragment를 동시에 렌더링하여 synchronized presentation이 만들어집니다.

text element src attribute는 EPUB content document의 associated phrase, sentence 또는 다른 segment를 URL [url] reference로 참조합니다. audio element src attribute도 corresponding audio clip의 location을 참조하며, clip 안의 특정 offset을 나타내기 위해 clipBeginclipEnd attributes를 추가합니다.

par elements는 series of phrases 또는 sentences를 형성하기 위해 순차적으로 함께 배치됩니다. EPUB content document의 모든 element가 media overlay document 안에 corresponding par element를 갖는 것은 아니며, audio narration과 관련된 것만 해당합니다.

par elements는 parts 및 chapters 같은 더 복잡한 structures를 정의하기 위해 seq elements에도 추가될 수 있습니다(9.3.3.2.1 Overlay structure 참조).

9.3.3.2 EPUB content document와의 관계
참고

이 절에서는 EPUB content documentXHTML content document라고 가정합니다. Media overlays는 SVG content documents와 함께 사용할 수 있지만, playback behavior가 일관되지 않을 수 있으므로 interoperability가 보장되지 않습니다.

reflowable 및 fixed-layout EPUB content documents 모두의 playback에 대한 Reading system support는 보장되지 않습니다. reading system pagination strategies의 차이로 인해 일부 reading systems는 하나 또는 다른 layout format에서만 media overlays를 지원할 수 있습니다.

9.3.3.2.1 Overlay structure

media overlay documentbody는 두 elements로 구성됩니다: par element와 seq element입니다. 이러한 elements의 ordering은 playback 중에 reading systems가 corresponding EPUB content documents의 content를 렌더링하는 방식을 나타냅니다.

par element는 word, phrase, sentence, table cell, list item, image 또는 markup 안의 다른 identifiable piece of content 같은 content segment를 나타냅니다. 각 element는 playback 중에 표시할 content(text element 안)와 synchronize할 audio(audio element 안)를 모두 식별합니다.

seq element는 sequences — content의 logical component를 함께 나타내는 seq 및/또는 par elements의 set — 를 나타냅니다. 이 element는 sections, asides, headers, tables, lists 및 footnotes 같은 nested containers를 나타내는 데 사용됩니다. 이는 이러한 containers에 내재된 structure가 media overlay document 안에 유지될 수 있게 합니다.

seq element는 epub:textref attribute를 포함해야 MUST 합니다. seq elements는 synchronization instructions를 제공하지 않으므로, 이 attribute는 reading system이 해당 fragment를 text의 location에 match할 수 있게 합니다.

참고

sections, figures, tables 및 footnotes 같은 structures를 seq element로 grouping하는 이유는 reading systems가 playback 중에 그 start 및 end positions를 식별할 수 있게 하기 위해서입니다. 그런 다음 reading systems는 long figure를 건너뛰기, page break announcements rendering을 끄기(9.3.4 Skippability and escapability 참조), 또는 tables 같은 structures에 맞도록 reading mode를 customize하는 등 content의 layout에 맞춘 playback options를 제공할 수 있습니다.

9.3.3.2.2 Document fragments 참조

epub:textref attribute와 text element의 src attribute는 모두 associated EPUB content document의 특정 부분(예: element의 ID를 통한 element)을 참조하는 URL-fragment string을 포함할 수 있습니다.

XHTMLSVG content documents의 경우, URL-fragment string은 각각 ID를 통한 특정 element에 대한 reference 또는 SVG Fragment Identifier [svg]인 것이 좋습니다 SHOULD.

다른 fragment identifier schemes도 사용할 MAY 있지만, reading systems가 그러한 identifiers를 지원하지 않을 수 있습니다.

9.3.3.2.3 Overlay granularity

이 절은 비규범적입니다.

media overlay의 granularity level은 EPUB content document가 어떻게 marked up되었는지와 text elements의 src attributes 및 seq elements의 epub:textref attributes에 사용된 fragment identifier의 type에 따라 달라집니다. 예를 들어 [html] elements를 참조할 때, markup의 가장 세밀한 level이 paragraph level이면, 그것이 media overlay synchronization의 가능한 가장 세밀한 level입니다. 마찬가지로 phrases 또는 sentences를 나타내는 [html] span element와 같은 sub-paragraph markup을 사용할 수 있으면, media overlay에서 더 세밀한 granularity가 가능합니다. 더 세밀한 granularity는 word 또는 phrase 단위로 navigating하거나 text를 searching할 때 synchronized playback에 대해 users에게 더 precise한 results를 제공하지만, media overlay documents의 file size를 증가시킵니다. elements의 존재에 의존하지 않는 Fragment identifier schemes는, 지원되는 경우, 더 세밀한 granularity를 제공할 수 있습니다.

9.3.3.2.4 Text-to-speech rendering

이 specification은 pre-recorded audio clips 외에도 text-to-speech (TTS) — synthesized voice를 사용해 EPUB publication의 textual content를 artificial human speech로 렌더링하는 것 — 의 사용을 허용합니다.

media overlay par element가 자신의 audio element를 생략하면, 그 text element는 reading systems에서 TTS를 통해 렌더링될 수 있습니다. text fragment가 TTS rendering에 적합하지 않은 경우(예: text element가 아니거나 text fallback이 없음), 예상치 못한 결과가 발생할 수 있습니다.

참고

EPUB publications에서 TTS technologies를 사용하는 방법에 대한 자세한 정보는 EPUB 3 Text-to-Speech Support [epub-tts-10]를 참조하세요.

9.3.3.3 Overlays의 structural semantics

structural semanticsmedia overlay documents에서 표현하기 위해, epub:type attribute를 par, seq, 및 body elements에 지정할 MAY 있습니다.

epub:type attribute는 표시된 semantic type(s)에 적합한 reading system behavior를 용이하게 합니다. 이러한 behaviors의 예로는 skippability and escapabilitytable reading mode [epub-rs-34]가 있습니다.

Media overlay documents는 추가 semantics를 정의하기 위해 epub:type attribute에 적용 가능한 vocabulary association mechanisms를 사용할 MAY 있습니다.

9.3.3.4 Style information 연결

현재 재생 중인 EPUB content document element에 대한 visual rendering information은 author-defined classes를 사용해 CSS Style Sheet에 표현할 MAY 있습니다.

사용되는 경우, class names는 package document에서 active-classplayback-active-class properties를 사용해 선언되어야 MUST 합니다.

각 property에는 정확히 하나의 CSS class name이 정의되어야 MUST 합니다. 각 property는 valid CSS class name을 정의해야 MUST 하며, 어떠한 selectors [css2]도 포함하지 않아야 합니다. 이 specification은 이러한 properties와 함께 사용하기 위한 names를 예약하지 않습니다.

지정된 CSS classes에 대해 어떤 CSS properties든 정의할 MAY 있습니다. associated media overlay document가 있는 각 EPUB content document는 class definitions를 포함하는 CSS stylesheet(embedded 또는 linked)를 포함해야 합니다. 그러한 definitions가 없는 경우 reading systems가 자체 styling을 제공하거나, 전혀 styling을 제공하지 않을 수도 있습니다.

active-classplayback-active-class properties는 항상 전체 EPUB publication에 적용되므로, refines attribute와 함께 사용해서는 MUST NOT 됩니다.

9.3.3.5 Media overlays packaging
9.3.3.5.1 Media overlays 포함

EPUB content documentmedia overlay document에 의해 전체 또는 일부 reference되는 경우, 해당 manifest item element는 media-overlay attribute를 지정해야 MUST 합니다. 이 attribute는 corresponding media overlay document에 대한 manifest itemID [xml]를 reference해야 MUST 합니다.

media-overlay attribute는 EPUB content documents에 대한 manifest item elements에만 지정되어야 MUST 합니다.

media overlay documents에 대한 Manifest items는 media type application/smil+xml을 가져야 MUST 합니다.

9.3.3.5.2 Overlays package metadata

전체 EPUB publication의 duration은 package document에서 duration property를 가진 meta element를 사용해 지정되어야 MUST 합니다.

또한 각 media overlay document의 duration은 각 duration declaration을 corresponding manifest item에 associate하기 위해 refines attribute를 사용하여 제공되어야 MUST 합니다.

각 media overlay document의 durations 합계는 total duration과 1초 이내로 일치하는 것이 좋습니다 SHOULD.

참고

개별 durations의 합계는 times를 초의 가장 가까운 fraction으로 rounding하기 때문에 total과 정확히 일치하지 않을 수 있지만, 1초를 초과하는 차이는 다른 issues에서 비롯된 mismatch를 나타냅니다.

Narrator information도 narrator property를 사용해 package document에 지정할 MAY 있습니다. 현재 재생 중인 EPUB content document element에 적용할 Author-defined CSS class names도 지정할 수 있습니다.

참고

media: prefix는 package metadata에 이러한 properties를 포함하기 위해 reserved되어 있습니다.

9.3.4 Skippability 및 escapability

9.3.4.1 Skippability

읽는 동안 users는 footnotes, page numbers 또는 기타 types of secondary content 같은 content의 특정 features를 켜거나 끄고 싶어 할 수 있습니다. 이 feature를 skippability라고 합니다. Reading systems는 media overlay elements의 epub:type attribute가 제공하는 semantic information을 사용해 users에게 skippable features의 option을 언제 제공할지 결정합니다.

다음 semantics는 skippability를 enable하기 위해 사용할 MAY 있습니다:

그러나 이 list는 exhaustive하지 않습니다. 이는 Structural Semantics Vocabulary [epub-ssv-11]의 terms 중, reading systems가 skippability option을 제공할 가능성이 가장 높은 terms를 나타냅니다.

9.3.4.2 Escapability

Escapable items는 tables 및 lists 같은 nested structures로, users가 그 위를 건너뛰고 nested structure 바로 뒤 지점부터 계속 읽고 싶어 할 수 있는 항목입니다. escapability feature는 전체 item types를 enable하거나 disable하는 것이 아니라, 그 안에서 exit를 제공한다는 점에서 skippability feature와 다릅니다(예: user가 content 일부를 듣다가 escape하기로 선택할 수 있음).

다음 semantics는 escapability를 enable하기 위해 사용할 MAY 있습니다:

그러나 이 list는 exhaustive하지 않습니다. 이는 Structural Semantics Vocabulary [epub-ssv-11]의 terms 중 reading systems가 escapability option을 제공할 가능성이 가장 높은 terms를 나타냅니다.

참고

때때로 escapable structures는 escapable structures를 포함할 수 있습니다. 예를 들어 tables는 users가 별도로 escape하고 싶어 할 수 있는 많은 rows와 cells로 구성됩니다. 이러한 structures에서 escaping을 지원하는 reading system support는 복잡하며 현재 잘 지원되지 않습니다. 더 나은 support가 가능해질 때까지 nested escapable structures를 식별하지 않는 것이 권장됩니다.

9.3.5 탐색 문서 overlays

이 절은 비규범적입니다.

EPUB navigation documentXHTML content document이므로, media overlay document가 이와 associated될 수 있습니다. 그러나 traditional XHTML content documents와 달리, reading systems는 EPUB navigation document가 spine에 포함되지 않은 경우에도 users에게 이를 표시해야 합니다(Navigation document processing [epub-rs-34] 참조). 그 결과 associated media overlay가 동작하는 방식은 context에 따라 달라질 수 있습니다:

  • spine에 포함된 경우, EPUB navigation document의 media overlay document playback은 다른 XHTML content document와 동일한 conformance requirements를 따릅니다.

  • users가 links에 access하고 activate할 수 있는 presentation context에 노출된 경우, reading systems는 users가 navigation links에 access할 때 audio feedback을 노출하기 위한 추가 presentation behaviors를 구현할 수 있습니다.

참고

구체적인 implementation details는 이 specification의 범위를 벗어납니다. DAISY Media Overlays Playback Requirements document는 authoring을 위한 best practices와 reading system developers를 위한 recommendations를 설명합니다.

10. 접근성

이 절은 비규범적입니다.

EPUB 3는 Open Web Platform을 기반으로 하여, 그 underlying technologies에 내장된 structure, semantics 및, 더 나아가 accessibility를 활용할 수 있도록 합니다.

accessible web content를 저작하기 위한 주요 standards에는 다음이 포함됩니다:

Web Content Accessibility Guidelines (WCAG)

accessible web content를 만들기 위한 requirements와 practices는 [wcag2]에 문서화되어 있습니다.

Accessible Rich Internet Applications (ARIA)

[wai-aria] specification은 native HTML elements와 attributes를 사용하지 않는 dynamic content를 accessible하게 만들기 위한 roles, states, properties를 정의합니다. 또한 web pages를 navigating하기 위한 landmarks set도 제공합니다.

Digital Publishing WAI-ARIA Module (DPUB-ARIA)

[dpub-aria] specification은 common publishing structures를 식별하는 데 특화된 additional roles를 제공하는 [wai-aria]의 extension입니다.

ARIA in HTML

[html-aria]는 ARIA 및 DPUB-ARIA에 정의된 roles, states, properties를 HTML documents에서 어떻게 사용할 수 있는지를 지정합니다.

이 standards는 EPUB publications를 accessible하게 만들기 위한 기반도 형성합니다. 하지만 현재 WCAG guidelines(version 2)는 web pages에 크게 초점을 맞추고 있으므로, EPUB Accessibility standard [epub-a11y-12]는 이러한 standards를 EPUB publications에 적용하는 방법을 정의하고, metadata, pagination 및 media overlays에 대한 EPUB-specific requirements와 recommendations를 추가합니다.

이 specification은 EPUB publications가 [epub-a11y-12]에 정의된 accessibility requirements를 준수할 것을 권장합니다. 이 recommendation을 따르는 이점은 EPUB publications가 전 세계 jurisdictions에서 법제화된 accessibility requirements를 충족하도록 보장하는 데 도움이 된다는 점입니다.

legal imperatives를 넘어 accessibility를 모든 EPUB publications의 requirement로 취급하는 것이 강력히 권장됩니다. EPUB publications가 더 accessible할수록, 그 potential audience는 더 커집니다.

참고

이 specification은 accessibility requirements가 EPUB specification과 독립적으로 adapt하고 evolve할 수 있도록 이를 통합하지 않습니다 — accessibility practices는 더 자주 업데이트되어야 하는 경우가 많기 때문입니다. accessibility specification은 과거, 현재 및 미래 versions of EPUB와 함께 사용되도록 의도되었습니다. 별도 specification이라는 approach는 EPUB의 evolution이 accessibility를 특정 시점에 고정하지 않도록 보장합니다(즉, older versions of EPUB의 producers가 최신 accessibility requirements를 reference할 수 있게 합니다).

11. 보안 및 개인정보 보호

11.1 개요

이 절은 비규범적입니다.

EPUB publication의 특수성은 그 structure에 있습니다. EPUB format은 structured and semantically enhanced web content — HTML, CSS, SVG, JavaScript 및 기타 resources 포함 — 를 single-file container로 distribution하기 위해 representing, packaging 및 encoding하는 수단을 제공합니다.

이는 EPUB 3의 security 및 privacy issues가 주로 이러한 formats의 features와 연결되어 있으며, web content가 제시하는 threats를 closely mirror한다는 의미입니다.

content risks는 종종 deliberately malicious한 authoring intent와 동일시되지만, 선의로 따르는 많은 practices도 users를 privacy 및 security issues에 노출할 수 있음을 유의하세요. 이 절의 나머지 부분에서는 이러한 risks를 인식하고 완화하는 데 도움이 되도록 EPUB 3의 risk model을 살펴봅니다.

참고

reading systems와 관련된 risks는 [epub-rs-34]의 security and privacy section을 참조하세요.

11.2 위협 모델

이 절은 비규범적입니다.

EPUB publications는 의심하지 않는 users에게 다양한 privacy 및 security threats를 제기합니다. 이러한 threats 중 많은 것은 web content와 교차하지만, EPUB도 users가 malicious content에 access하도록 속이거나 sensitive information을 제공하도록 속이는 데 사용될 수 있는 고유한 methods of attack을 도입합니다. 주의해야 할 더 중요한 attack vectors에는 다음이 포함됩니다:

Remote resources의 embedding

EPUB 3는 일부 publication resourcesremotely hosted할 수 있게 합니다. 구체적으로는 EPUB publication의 downloading 및 opening에 부정적 영향을 줄 수 있는 크기의 resources(예: audio, video 및 fonts)입니다. 의도된 대로 사용될 때 users에게 helpful하지만, 이러한 exemptions는 publication에 malicious content를 inject하는 데에도 사용될 수 있습니다.

이 threat는 malicious actor가 만든 content에 access하는 것에만 한정되지 않습니다. untrustworthy sources(예: third party audio 및 video)의 content가 EPUB publication에 embedded된 경우, users가 compromised resources를 받을 가능성은 항상 존재합니다.

distribution time에 malware 및 exploits를 검사하는 것도 항상 reliable하지는 않습니다. malicious content는 EPUB container 안에 embedded되어 제공되는 resources와 달리 publication 이후 언제든 바뀔 수 있기 때문입니다.

EPUB의 origin은 각 reading system implementation에 specific하며 reading system 밖에서는 알 수 없습니다. 따라서 remote resources가 secure web server에 hosted되어 있더라도, CORS, Content-Security-Policy, 또는 X-Frame-Options를 위한 headers처럼 allowable origins를 지정해야 하는 security features를 사용할 수 없습니다.

External resources에 linking

의도적이든 아니든, external web sites 및 resources로 연결되는 links는 users를 reading system 또는 operating system을 compromise할 수 있는 potential exploits에 노출합니다. external links는 일반적으로 web browser에서 열리고 browser security model의 적용을 받지만, 이것이 users를 모든 exploits로부터 보호하지는 않습니다.

의도가 malicious하지 않더라도, external links에 tracking information을 추가하는 것은 user privacy에 problematic합니다. 이는 consent 없이 user의 activity를 추적할 수 있게 하기 때문입니다.

Broken-link hijacking — domain이 만료되고 다른 party가 이를 구매해 해당 links를 exploit하는 경우 — 또한 users가 unintended resources로 이동하게 할 수 있습니다.

Malicious content 포함

EPUB publications가 untrusted sources에서 얻어진 경우 특히, EPUB container에 embedded된 resources도 malicious actors로부터 immune하지 않습니다. Resources는 exploits 또는 sensitive information을 unintended parties에 submit하는 forms를 포함할 수 있습니다. 그러한 actors는 symbolic links 또는 file aliases 같은 file indirection techniques를 사용하여 remote resources에 access하려고 할 수도 있습니다.

games 및 quizzes 같은 third-party content의 사용도 content를 완전히 vet할 수 없는 경우 security 및 privacy issues로 이어질 수 있습니다.

Scripts의 network access 허용

scripts가 device의 network에 access할 수 있으면, user를 exploit할 다양한 channels를 제공합니다:

  • malicious 여부와 관계없이 user 및 그 activities에 대한 information 수집;
  • information을 harvest하기 위해 file system 및 local storage에 access하려는 시도;
  • phishing attempts(예: EPUB content document가 trusted web site처럼 보이게 하여 user가 login information을 submit하도록 함); 그리고
  • external sites의 malicious content를 EPUB publication에 inject.

Network access는 third-party content가 user를 exploit할 수 있게 할 수도 있습니다.

Digital rights management 및 watermarks로 content 보호

digital rights management schemes를 사용한 EPUB publications의 encryption 및 decryption은 user, user가 사용하는 vendors, 그리고 reading choices에 대한 personally identifiable information이 third parties에 전달되도록 할 수 있습니다. watermarks도 마찬가지입니다.

이러한 attacks의 effectiveness는 종종 users가 자신이 interacting하는 publication이 trustworthy source에서 온 것이라고 믿도록 속이는 데에도 의존합니다. 이러한 deceptions는 다음 forms를 취할 수 있습니다:

Falsified publication information

EPUB publication은 자신에 대한 false information을 포함하여 users가 그것이 legitimate source에서 온 것이라고 믿도록 속일 수 있습니다. 예를 들어 malicious actor는 work의 title, authors, identifiers 및 publisher를 fake할 수 있습니다.

이 misinformation 자체가 immediate harm을 제시하지는 않지만, users가 EPUB publication 안의 malicious forms, links 및 기타 content를 reliable source에서 온 것이라고 믿고 trust하게 만들 수 있습니다.

Spoofed platforms

Malicious actors는 users가 their content를 trust하도록 속이기 위해 platform의 experience를 imitate하거나 replicate하도록 content를 design할 수도 있습니다.

11.2.1 EPUB-specific features

EPUB 3는 자신이 기반으로 하는 underlying technologies를 확장하는 것을 피하려고 하지만, 몇 가지 new features를 도입했습니다. 하지만 이러한 features의 restricted scope는 그들이 제기할 수 있는 threats를 제한합니다:

한 가지 potential exception은 현재 epubReadingSystem object [epub-rs-34]입니다. 이는 현재 reading system에 대한 information을 query할 수 있게 합니다. 이 object가 exposed하는 information은 EPUB publication의 rendering을 개선하는 데에만 사용하는 것이 권장됩니다 (즉, user와 그 environment를 profile하는 데 information을 사용하지 마세요).

11.3 권장사항

users를 exploit하는 모든 method를 prevent하는 것은 불가능하지만, content를 secure하게 construct할 responsibility는 creator에게 있습니다. 이를 위해서는 EPUB publications가 이전 절에서 설명한 malicious exploits 유형에 노출되는 것을 제한하기 위한 precautions를 취해야 합니다.

실용적인 steps에는 다음이 포함됩니다:

또한 users의 privacy rights를 고려하고 data를 의도적으로 collect하지 않도록 하세요. 이상적으로 users는 tracked되어서는 SHOULD NOT 되지만, 모든 types of publishing에서 이것이 현실적인 것은 아닙니다.

users를 추적해야 하는 경우(예: educational course work), EPUB publication을 열기 전에 information을 collect하는 것에 대한 user의 approval을 얻는 것이 좋습니다 SHOULD. 이것이 가능하지 않은 경우, users가 EPUB publication에 처음 access할 때 permission을 얻는 것이 좋습니다 SHOULD. Users는 tracking을 opt out할 수 있어야 SHOULD 하며, 자신에 대해 collect된 data를 manage하고 delete할 수 있는 ability를 제공받아야 합니다.

users에 대한 information의 inadvertent collection도 고려해야 합니다. publisher의 web site에 있는 content로 linking하거나, publisher의 servers에 resources를 remotely hosting하면, 특히 unique tracking identifiers가 URLs에 추가된 경우 users profiling으로 이어질 수 있습니다.

EPUB publication 안에서 user information을 collect하고 store할 때(예: cookiesweb storage [html]의 사용을 통해), reading system의 다른 EPUB publications에 의한 data theft 가능성을 고려해야 합니다. [epub-rs-34]는 EPUB publications에 대한 unique origin requirement를 도입하여 attacks 가능성을 제한하지만, reading systems가 EPUB publications가 shared persistent storage에 access하도록 허용할 risk는 여전히 있습니다 (예: 업데이트되지 않은 older reading systems 및 non-conforming newer reading systems). 따라서 sensitive user data는 persistent storage에 stored되어서는 SHOULD NOT 됩니다. sensitive data를 반드시 stored해야 하는 경우, exploit 발생 시 trivial access를 prevent하기 위해 encrypted되어야 SHOULD 합니다.

digital rights management schemes를 사용해야 하는 경우, encryption 또는 decryption을 수행하기 위해 user나 their content에 대한 information을 external parties에 utilize하거나 transmit하지 않는 schemes를 선호하세요.

watermarking을 사용해야 하는 경우, Privacy Principles for Digital Watermarking [watermark-privacy]에 정의된 것과 같은 privacy에 대한 industry best practices를 따르세요.

security 및 privacy risks를 최대한 줄이기 위해, EPUB publications는 long-term preservation을 목표로 produced되는 것이 좋습니다 SHOULD. 이렇게 생성된 EPUB publications는 일반적으로 self-contained이며, network access에 dependent하지 않고, digital rights management로 encrypted되지 않아 가능한 attack vectors 중 많은 것을 제거합니다. [iso22424]는 EPUB publications를 위한 그러한 preservation format의 한 예입니다. 모든 EPUB publications가 이러한 self-containment 수준을 충족할 수 없다는 점은 understood되지만, 이러한 practices를 가능한 한 많이 따르면 overall user privacy 및 security에도 이점이 있습니다.

A. 자세한 예

이 절은 비규범적입니다.

A.1 Resources

다음 package documentXHTML content document의 extracts를 고려하세요:

<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 publication의 다양한 resources는 다음과 같이 categorize할 수 있습니다. (이 categories에 대한 자세한 정보는 3. Publication resources를 참조하세요.)

meta/data.xml

이 resource는 metadata record이며, EPUB container에 stored됩니다. 이는 package document metadata 안의 link element를 통해 linked됩니다. 따라서 이는 manifest planelinked resource입니다 (즉, manifest에 나열되지 않음). 다른 어떤 planes의 part도 아닙니다.

https://www.example.org/meta/data2.xml

이 resource는 metadata record이며, remotely stored됩니다. 이는 package document metadata 안의 link element를 통해 linked됩니다. 따라서 이는 manifest plane의 linked resource입니다 (즉, manifest에 나열되지 않음). 다른 어떤 planes의 part도 아닙니다.

page.xhtml

이 resource는 XHTML document입니다. 이는 spine에 나열됩니다. 이는 manifest plane의 publication resource, container resource, spine planeEPUB content document이며, content plane에는 존재하지 않습니다. Fallback은 필요하지 않습니다.

nav.xhtml

이 resource는 EPUB navigation document입니다. 이는 spine에 나열되지 않습니다. 이는 manifest plane의 publication resource, container resource이며, spine plane 또는 content plane 어디에도 존재하지 않습니다. Fallback은 필요하지 않습니다.

style.css

이 resource는 CSS file입니다. 이는 spine에 나열되지 않지만 [html] link element에서 referenced됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

font/font-file.otf

이 resource는 TrueType font file입니다. 이는 spine에 나열되지 않지만 CSS file에서 referenced됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

https://www.example.org/fonts/font-file2.otf

이 resource는 TrueType font file입니다. 이는 spine에 나열되지 않지만 CSS file에서 referenced됩니다. 이는 manifest plane의 publication resource, remote resource이고, spine plane에는 존재하지 않으며, content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

font/font-file.cff

이 resource는 Compact Font Format의 font file입니다. 이는 spine에 나열되지 않지만 CSS file에서 referenced됩니다. 그 media type은 core media type으로 나열되어 있지 않습니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 exempt resource입니다. Fallback은 필요하지 않습니다.

speech/cmn.pls

이 resource는 Pronunciation Lexicon file입니다. 이는 spine에 나열되지 않지만 [html] link element에서 referenced됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 exempt resource입니다. Fallback은 필요하지 않습니다.

image/image_1.png

이 resource는 PNG image file입니다. 이는 spine에 나열되지 않지만 [html] img element에서 referenced됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

image/image_2.png

이 resource는 PNG image file입니다. 이는 [html] a element를 통해 referenced됩니다. hyperlink에서 referenced되므로, spine에 listed되어야 has to 합니다. 이는 manifest plane의 publication resource, container resource, spine plane의 foreign content document이며, content plane의 core media type resource입니다. foreign content document로서 fallback은 mandatory이고 manifest fallback을 통해 제공됩니다.

image_desc.xhtml

이 resource는 XHTML document입니다. 이는 manifest fallback의 "target"이므로 spine에 explicitly listed되지 않습니다(그러나 필요할 때 existing spine item을 "replaces"합니다). 이는 manifest plane의 publication resource, container resource, spine plane의 EPUB content document이며, 다른 EPUB content document를 rendering할 때 "used"되지 않으므로 content plane에는 존재하지 않습니다. Fallback은 필요하지 않습니다.

image/image_3.heic

이 resource는 High Efficiency (HEIC) image file입니다. 이는 spine에 나열되지 않지만 [html] source element에서 referenced됩니다. 그 media type은 core media type으로 나열되어 있지 않습니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 foreign resource입니다. foreign resource로서 fallback은 mandatory이고, [html] picture element 안의 sibling [html] img element를 통해 제공됩니다.

image/image_3.png

이 resource는 PNG image file입니다. 이는 spine에 나열되지 않지만 [html] img element에서 referenced되며, 이 element는 [html] picture element의 intrinsic fallback으로 사용됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

widget.xhtml

이 resource는 XHTML document입니다. 이는 spine에 나열되지 않지만 [html] iframe element에서 referenced됩니다. 이는 manifest plane의 publication resource, container resource이고, spine plane에는 존재하지 않으며, 다른 EPUB content document를 rendering할 때 "used"되므로 content plane의 core media type resource입니다. Fallback은 필요하지 않습니다.

https://www.example.org/some_content

이 resource는 [html] a element를 통해 referenced되며 EPUB container에 stored되지 않습니다. Reading systems는 일반적으로 이 link를 separate browser instance를 통해 엽니다. 이는 이 specification에서 정의한 어떤 planes에도 없습니다.

different types of resources의 usage에 대한 추가 예는 5.7.2.2 Examples에서 찾을 수 있습니다.

A.2 Scripting contexts

다음 example package document를 고려하세요:

<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 file:

<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 file:

<html …>
    <head><script type="text/javascript" href="slideshow.js"></script>
    </head>
    <body></body>
</html>

이 examples에서 다음이 true입니다:

A.3 Packaged EPUB

이 example은 OCF ZIP container 안에 signed and encrypted EPUB publication을 담기 위해 OCF format을 사용하는 방법을 보여줍니다.

OCF ZIP container 안의 files ordered list:

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 file의 contents

application/epub+zip

META-INF/container.xml file의 contents

<?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 file의 contents

<signatures
    xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
   <Signature
       Id="AsYouLikeItSignature"
       xmlns="http://www.w3.org/2000/09/xmldsig#">

      <!--
           SignedInfo는 실제로 서명되는 information입니다.
           이 경우 SHA-1 algorithm은 아래 Object element에
           enumerated된 XML documents의 canonical form에
           서명하는 데 사용됩니다.
      -->

      <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>

      <!--
           위 digest의 signed value이며, DSA
           algorithm을 사용합니다.
      -->
      <SignatureValue></SignatureValue>

      <!--
           signature를 validate하는 데 사용되는 key
      -->
      <KeyInfo>
         <KeyValue>
            <DSAKeyValue>
               <P></P>
               <Q></Q>
               <G></G>
               <Y></Y>
            </DSAKeyValue>
         </KeyValue>
      </KeyInfo>

      <!--
           서명할 resources의 list입니다(참고로 XML documents의
           canonical form은 signed되며, 다른 모든 resources에는
           binary form이 사용됩니다)
      -->
      <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 file의 contents

<?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#">

   <!--
        아래 EncryptedData blocks에 enumerated된 data를
        encrypt하는 데 사용되는 RSA-encrypted AES-128 symmetric key
   -->
   <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>

   <!--
        각 EncryptedData block은 AES-128 algorithm을 사용해
        encrypted된 단일 resource를 식별합니다.
        data는 encrypted form으로 container 안의 original file에
        그대로 stored됩니다.
   -->
   <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 file의 contents

<?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>

A.4 Clock values

다음은 허용되는 clock values의 예입니다:

B. 허용되는 external identifiers

다음 표는 public system identifiers [xml] 중 document type declarations에서 허용되는 것을 나열합니다. [xml]

이러한 external identifiers는 publication resources 중 그 manifest declarations에 지정된, 나열된 media types [rfc2046]을 가진 것에서만 사용할 MAY 있습니다. (자세한 정보는 3.9 XML conformance를 참조하세요.)

Media Type(s) Public Identifier System Identifier
  • 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. viewport meta tag

C.1 소개

이 절은 비규범적입니다.

EPUB 3의 earlier versions에서 사용된 viewport meta tag에 대한 Safari HTML definition은 공식적으로 인정된 standard가 아니므로, 이 specification은 XHTML fixed-layout documents에 대해 width 및 height dimensions를 표현할 수 있도록 basic syntax를 정의합니다.

이 grammar의 syntax는 [css-viewport-1]에 정의된 viewport meta tag의 parsing algorithm에도 영향을 받았습니다.

가능한 모든 properties와 values를 정의하는 것은 이 specification의 scope가 아니므로, syntax는 의도적으로 가능한 한 generic하게 남겨두었습니다. 이는 property와 value pair를 정의하기 위한 basic requirements와 expressions 사이의 가능한 separators만 정의합니다.

C.2 Syntax

XHTML fixed-layout documents의 경우, viewport meta tag [html]는 다음 definition을 준수하는 namecontent attributes를 가져야 MUST 합니다:

name
whitespace normalization [xml] 이후 name attribute [html]의 값은 viewport이어야 MUST 합니다.
content

whitespace normalization [xml] 이후 content attribute [html]의 값은 다음 form이어야 MUST 합니다:

(EBNF productions ISO/IEC 14977)
모든 terminal symbols는 Unicode Block 'Basic Latin' (U+0000 to 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 ;

property namesvalues에 대한 유일한 restriction은 separator characters 또는 assignment character를 포함해서는 MUST NOT 된다는 점입니다.

이 절의 authoring requirements는 whitespace normalization [xml] 이후에 적용됩니다 (즉, reading system이 leading 및 trailing whitespace를 제거하고 attribute 내 multiple whitespace의 모든 instances를 single spaces로 압축한 이후). authored tag에는 결과가 이 definition에 valid한 한 어떤 whitespace characters [xml]도 포함할 MAY 있습니다.

참고

[html]은 [infra]의 definition of whitespacedepends on하지만, Form Feed (U+000C) character는 [xml] definition에 따른 valid whitespace가 아닙니다. 이는 XML syntax(즉, XHTML content documents)에서 사용할 수 없습니다.

[html] grammar가 meta element에 허용하는 다른 attributes에는 restrictions가 없습니다.

참고

heightwidth properties와 그 expected values를 지정하는 방법에 대한 자세한 정보는 7.3.2 Fixed-layout document dimensions를 참조하세요.

viewport meta tag가 heightwidth 이외의 properties 사용과 heightwidth에 대한 values 생략을 허용하더라도, 그러한 사용은 강력히 권장되지 않습니다. 다른 properties를 설정하면 fixed-layout documents의 rendering에 unintended consequences가 발생할 수 있습니다.

D. Vocabularies

이 appendix는 이 specification의 attributes가 vocabularies의 terms를 reference할 수 있게 하는 general set of mechanisms를 정의합니다. 또한 attributes와 함께 사용하기 위한 EPUB-specific vocabularies도 정의합니다.

D.1 Property field definitions

vocabulary definition tables의 fields에는 다음과 같은 implicit requirements가 있습니다:

Allowed Values

[xmlschema-2] datatypes를 사용해 REQUIRED value type을 지정합니다. Datatypes는 xsd: prefix를 사용해 declared됩니다.

Applies To

property를 지정할 MAY 있는 publication resource type(s)을 지정합니다.

이 field는 properties attribute에서 사용되는 properties에 나타납니다.

Cardinality

property를 지정할 MAY 있는 횟수를 지정합니다. 이는 globally 또는 다른 element나 property에 attached된 경우 모두에 해당합니다.

minimum cardinality가 one인 properties는 지정되어야 MUST 합니다.

Description

property의 purpose를 설명하고 따라야 하는 additional usage requirements를 지정합니다.

Example

비규범적 usage examples를 제공합니다.

Extends

property가 어떤 metadata와 associated될 MAY 있는지를 식별합니다.

이 field는 primary expressions and subexpressionsrelationships를 정의하는 properties에 나타납니다.

Name

metadata에 나타나야 MUST 하는 property의 이름을 지정합니다.

D.2 Meta properties vocabulary

이 vocabulary의 properties는 meta element의 property attribute에서 사용할 수 있습니다.

"Extends" field에서 달리 표시되지 않는 한, 이 절에서 정의된 properties는 subexpressions를 정의하는 데 사용됩니다. 다시 말해, 이 절에서 정의된 property를 가진 meta element는 augmented되는 resource 또는 expression을 reference하는 refines attribute를 가져야 MUST 합니다.

이 properties를 referencing하기 위한 prefix URL은 http://idpf.org/epub/vocab/package/meta/#입니다.

D.2.1 alternate-script

Name: alternate-script
Description:

alternate-script property는 associated property value를 다른 language 및/또는 script로 alternate expression한 것을 제공합니다. alternate-script property와 그 associated property의 language tags — 각각의 in-scope xml:lang attributes로 표현되는 것 — 는 같아서는 MUST NOT 됩니다.

이 property는 일반적으로 internationalization purposes를 위해 creatortitle properties에 attached됩니다.

Allowed value(s): xsd:string
Cardinality: zero or more
Extends: 모든 properties.

D.2.2 authority

Name: authority
Description:

authority property는 referenced element의 value가 drawn from된 system 또는 scheme을 식별합니다.

Allowed value(s): xsd:string
참고

former IDPF EPUB 3 Working Group은 이 property와 함께 사용하기 위한 registry of subject authorities를 유지했습니다. 이 Working Group은 더 이상 registry를 유지하지 않습니다.

Cardinality: zero or one
Extends: dc:subject

D.2.3 belongs-to-collection

Name: belongs-to-collection
Description:

belongs-to-collection property는 EPUB publication이 속하는 collection의 이름을 식별합니다. EPUB publication은 하나 이상의 collections에 속할 MAY 있습니다.

또한 refines attribute를 사용해 이러한 properties를 chain하여 하나의 collection이 또 다른 collection의 member임을 나타낼 수도 있습니다.

각 collection instance에 대해 dcterms:identifier property를 사용하여 unique identifier를 제공하는 것이 좋습니다 SHOULD. 이렇게 하면 reading systems가 collections를 organize하고 naming collisions를 피할 수 있습니다(예: related 없는 collections가 similar name을 공유하거나, collection의 different editions가 release될 수 있음).

collection은 collection-type property를 attaching하여 그 nature를 더 precise하게 정의할 MAY 있습니다.

collection 내 EPUB publication의 position은 group-position property를 attaching하여 제공할 MAY 있습니다.

Allowed value(s): xsd:string
Cardinality: zero or more
Extends: EPUB publication에 적용되며 자체의 다른 instances를 refine할 수 있습니다.

D.2.4 collection-type

Name: collection-type
Description:

collection-type property는 collection의 form 또는 nature를 나타냅니다.

collection-type value가 code list 또는 다른 formal enumeration에서 drawn from된 경우, 그 source를 식별하기 위해 scheme attribute를 attached하는 것이 좋습니다 SHOULD.

scheme이 지정되지 않은 경우, 이 specification은 다음 collection types도 정의합니다:

series

formally group으로 식별되는 related works의 sequence로, 일반적으로 open-ended이며 works가 시간이 지나며 individually issued됩니다.

set

함께 single intellectual unit을 구성하는 finite collection of works로, 일반적으로 함께 issued되고 unit으로 판매될 수 있습니다.

참고

reading systems가 이러한 values를 support할 필요는 없지만, 이를 지정하면 related EPUB publications를 더 meaningful한 방식으로 group할 option을 제공합니다.

Allowed value(s): xsd:string
Cardinality: zero or one
Extends: belongs-to-collection

D.2.5 display-seq

Name: display-seq
Description:

display-seq property는 identical metadata properties와 상대적으로 current property를 display할 numeric position을 나타냅니다.

이 property는 precedence rules가 아직 정의되지 않은 경우에만 적용됩니다 (예: creators에는 document order에서의 appearance에 기반한 precedence가 부여됩니다).

Allowed value(s): xsd:unsignedInt
Cardinality: zero or one
Extends: 모든 properties.

D.2.6 file-as

Name: file-as
Description: file-as property는 sorting을 위한 associated property의 normalized form을 제공합니다.
Allowed value(s): xsd:string
Cardinality: zero or one
Extends: 모든 properties.

D.2.7 group-position

Name: group-position
Description:

group-position property는 EPUB publication이 같은 group에 속하는 다른 works와 상대적으로 ordered되는 numeric position을 나타냅니다 (모두 EPUB publications인지 여부와 무관).

group-position property는 group을 establish하는 모든 metadata property에 attached될 수 있지만, 일반적으로 belongs-to-collection property와 associated됩니다.

EPUB publication은 하나 이상의 group에 속할 수 있습니다.

Allowed value(s): 단일 xsd:unsignedInt 또는 decimal-separated numbers의 series (예: 1 또는 2.2.1).
Cardinality: zero or one
Extends: 모든 properties.

D.2.8 identifier-type

Name: identifier-type
Description:

identifier-type property는 identifier의 form 또는 nature를 나타냅니다.

identifier-type value가 code list 또는 다른 formal enumeration에서 drawn from된 경우, 그 source를 식별하기 위해 scheme attribute를 attached하는 것이 좋습니다 SHOULD.

Allowed value(s): xsd:string
Cardinality: zero or one
Extends: dc:identifier, dc:source

D.2.9 pageBreakSource

Name: pageBreakSource
Description:

EPUB publication의 page break markers source에 대한 unique identifier를 제공합니다.

identifier가 ISBN 같은 recognized scheme을 준수하는 경우, value로 URN을 사용하는 것이 권장됩니다.

source에 대한 unique identifier가 없는 경우, source를 가능한 한 명확하게 식별하는 text description을 사용하는 것이 권장됩니다(예: word processing document의 title).

page break markers가 EPUB publication에 고유한 경우(예: digital-only edition), value "none"을 지정해야 MUST 합니다.

Allowed value(s): xsd:string
Cardinality: publication이 page list 및/또는 page break markers를 포함하는 경우 정확히 one, 그렇지 않으면 0.
Extends: EPUB publication에 적용됩니다. 다른 properties를 extend하지 않습니다.
참고

pageBreakSource property는 EPUB publication의 static pagination source를 식별하기 위한 source-of property를 대체합니다.

accessible page navigation을 제공하는 방법에 대한 정보는 [epub-a11y-tech-11]을 참조하세요.

D.2.10 role

Name: role
Description:

role property는 EPUB publication creation에서 creator, contributor 또는 publisher의 role을 설명합니다.

role value가 code list 또는 다른 formal enumeration에서 drawn from된 경우, 그 source를 식별하기 위해 scheme attribute를 attached하는 것이 좋습니다 SHOULD.

individual 또는 organization에 multiple roles를 assign할 때는 각 role을 separate meta element에 associate하고, elements의 document order가 수행된 roles의 importance를 반영하도록 보장하세요(즉, 처음 encountered되는 meta element가 가장 중요한 role을 포함함).

Allowed value(s): xsd:string
Cardinality: zero or more
Extends: dc:contributor, dc:creator, dc:publisher

D.2.11 source-of

EPUB publications에서 source-of property를 사용하는 것은 더 이상 권장되지 않습니다. EPUB publication의 pagination source를 나타내려면 pageBreakSource property definition을 참조하세요.

참고

source-of property는 사용되는 EPUB publications의 existing base 때문에 공식적으로 deprecated되지는 않지만, deprecated된 것처럼 취급하는 것이 권장됩니다. 그 사용에 대한 정보는 [epub-33]의 source-of property definition을 참조하세요.

D.2.12 term

Name: term
Description:

term property는 subject code를 제공합니다.

Allowed value(s): xsd:string
Cardinality: zero or one
Extends: dc:subject

D.2.13 title-type

Name: title-type
Description:

title-type property는 title의 form 또는 nature를 나타냅니다.

title-type value가 code list 또는 다른 formal enumeration에서 drawn from된 경우, 그 source를 식별하기 위해 scheme attribute를 attached하는 것이 좋습니다 SHOULD. scheme이 지정되지 않은 경우, reading systems는 다음 title type values를 recognize하는 것이 좋습니다 SHOULD: main, subtitle, short, collection, editionexpanded.

Allowed value(s): xsd:string
Cardinality: zero or one
Extends: dc:title

D.2.14

D.4 Package rendering vocabulary

이 properties를 referencing하기 위한 prefix URL은 http://www.idpf.org/vocab/rendition/#입니다.

"rendition:" prefix는 package rendering properties와 함께 사용하도록 reserved되어 있으며 package document에서 declare할 필요가 없습니다.

D.4.1 Layout control

D.4.1.1 rendition:layout
Name: rendition:layout
Description:

rendition:layout property는 EPUB publication이 reflowable인지, pre-paginated인지, roll인지 지정합니다.

reflowable 및 pre-paginated publications의 경우, global layout은 individual EPUB content documents에 대해 overridenMAY 있습니다.

Allowed value(s):

다음 values 중 하나여야 MUST 합니다:

reflowable

content가 pre-paginated되지 않았습니다(즉, reading systems가 rendering할 때 dynamic pagination을 적용할 수 있습니다). Default value.

pre-paginated

content가 pre-paginated되어 있습니다(즉, reading systems가 rendering할 때 spine itemref 하나당 정확히 one page를 produce합니다).

roll

content가 roll입니다(즉, reading systems는 각 spine itemref의 width를 viewport에 맞추고 visible gap이 없는 continuous roll로 display합니다).

Cardinality: zero or one
Extends: EPUB publication에만 적용됩니다. refines attribute가 present한 경우 사용되어서는 MUST NOT 됩니다.
D.4.1.2 Layout overrides
D.4.1.2.1 rendition:layout-pre-paginated
Name: rendition:layout-pre-paginated
Description:

rendition:layout-pre-paginated property는 associated item element의 resource가 pre-paginated layout으로 rendered되도록 intended됨을 나타냅니다.

Application:

spine itemref elements에 대해서만 지정할 MAY 있습니다.

같은 properties attribute에서 다른 layout override property와 paired되어서는 MUST NOT 됩니다.

roll layouts와 함께 지정되어서는 MUST NOT 됩니다.

D.4.1.2.2 rendition:layout-reflowable
Name: rendition:layout-reflowable
Description:

rendition:layout-reflowable property는 associated item element의 resource가 reflowable layout으로 rendered되도록 intended됨을 나타냅니다.

Application:

spine itemref elements에 대해서만 지정할 MAY 있습니다.

같은 properties attribute에서 다른 layout override property와 paired되어서는 MUST NOT 됩니다.

roll layouts와 함께 지정되어서는 MUST NOT 됩니다.

D.4.2 Synthetic spread placement

D.4.2.1 rendition:page-spread-center
Name: rendition:page-spread-center
Description:

rendition:page-spread-center property는 spread를 disable하고 spine item을 center하는 데 사용됩니다.

Application:

spine itemref elements에 대해서만 지정할 MAY 있습니다.

다른 어떤 prefixed 또는 unprefixed spread placement property와도 paired되어서는 MUST NOT 됩니다.

D.4.2.2 rendition:page-spread-left
Name: rendition:page-spread-left
Description:

rendition:page-spread-left property는 spine item을 two-page spread의 left-hand slot에 placing하기 위한 page-spread-left property의 alias입니다.

Application:

spine itemref elements에 대해서만 지정할 MAY 있습니다.

spine properties vocabularypage-spread-left와 paired될 MAY 있지만, 다른 어떤 prefixed 또는 unprefixed spread placement property와도 paired되어서는 MUST NOT 됩니다.

D.4.2.3 rendition:page-spread-right
Name: rendition:page-spread-right
Description:

rendition:page-spread-right property는 spine item을 two-page spread의 right-hand slot에 placing하기 위한 page-spread-right property의 alias입니다.

Application:

spine itemref elements에 대해서만 지정할 MAY 있습니다.

spine properties vocabularypage-spread-right와 paired될 MAY 있지만, 다른 어떤 prefixed 또는 unprefixed spread placement property와도 paired되어서는 MUST NOT 됩니다.

D.5 Custom rendering properties

Custom properties와 spine overrides는 특정 reading systems에 specific한 rendering issues를 address하기 위해 package document에 포함될 수 있으며, 이는 해당 reading systems의 developers가 정의한 바에 따릅니다.

유일한 restrictions는 그러한 properties가 rendition: prefix로 정의되어서는 MUST NOT 되며, package rendering vocabulary의 properties와 behaviorally conflict해서는 MUST NOT 된다는 점입니다.

multiple independent reading systems에서 사용하기 위한 extensions가 필요한 경우, preferred method는 이 standard의 revision을 통해 package rendering vocabulary를 extend하는 것입니다.

D.6 Manifest properties vocabulary

이 vocabulary의 properties는 manifest item element의 properties attribute에서 사용할 수 있습니다.

이 properties를 referencing하기 위한 prefix URL은 http://idpf.org/epub/vocab/package/item/#입니다.

D.6.1 cover-image

Name: cover-image
Description: cover-image property는 described publication resourceEPUB publication의 cover image로 식별합니다.
Applies to: 모든 raster 및 vector image types
Cardinality: Zero or one

D.6.2 mathml

Name: mathml
Description: mathml property는 described publication resource가 MathML markup의 하나 이상의 instances를 포함함을 나타냅니다.
Applies to: EPUB content documents
Cardinality: Zero or more

D.6.3 nav

D.6.4 remote-resources

Name: remote-resources
Description:

remote-resources property는 described publication resourceEPUB container 바깥에 located된 다른 publication resources에 대한 하나 이상의 internal references를 포함함을 나타냅니다.

자세한 정보는 3.6 Resource locations를 참조하세요.

Applies to: internal referencing capability가 있는 모든 publication resources (예: XHTML content documents, SVG content documents, CSS style sheets 및 media overlay documents).
Cardinality: Zero or more

D.6.5 scripted

Name: scripted
Description: scripted property는 described publication resourcescripted content document임을 나타냅니다(즉, scripting 및/또는 [html] form elements를 포함).
Applies to: EPUB content documents
Cardinality: Zero or more

D.6.6 svg

Name: svg
Description:

svg property는 described publication resource가 SVG markup의 하나 이상의 instances를 embeds함을 나타냅니다.

SVG markup이 resource에 직접 포함된 경우 이 property는 set되어야 MUST 하며, SVG가 resource에서 referenced된 경우(예: [html] img, object 또는 iframe element에서) set될 MAY 있습니다.

Applies to: XHTML content documents; SVG content documents의 경우 value가 implied됩니다.
Cardinality: Zero or more

D.6.7 switch

Name: switch
Description:

switch property는 described publication resourcedeprecated epub:switch element의 하나 이상의 instances를 포함함을 나타냅니다.

Applies to: XHTML content documents.
Cardinality: Zero or more

D.7 Spine properties vocabulary

이 vocabulary의 properties는 spine itemref element의 properties attribute에서 사용할 수 있습니다.

이 properties를 referencing하기 위한 prefix URL은 http://idpf.org/epub/vocab/package/itemref/#입니다.

D.7.1 page-spread-left

Name: page-spread-left
Description:

page-spread-left property는 associated item element의 EPUB content document의 first page가 two-page spread의 left-hand side를 나타냄을 나타냅니다.

rendition:page-spread-left property는 이 property의 alias입니다. 사용에 대한 자세한 정보는 6.3.1.1 Synthetic spreads를 참조하세요.

D.7.2 page-spread-right

Name: page-spread-right
Description:

page-spread-right property는 associated item element의 EPUB content document의 first page가 two-page spread의 right-hand side를 나타냄을 나타냅니다.

rendition:page-spread-right property는 이 property의 alias입니다. 사용에 대한 자세한 정보는 6.3.1.1 Synthetic spreads를 참조하세요.

D.7.3

D.8 Media overlays vocabulary

이 vocabulary의 properties는 meta element의 property attribute에서 사용할 수 있습니다.

이 properties를 referencing하기 위한 prefix URL은 http://idpf.org/epub/vocab/overlays/#입니다.

"media:" prefix는 이 vocabulary의 properties와 함께 사용하도록 reserved되어 있으며 package document에서 declare할 필요가 없습니다.

D.8.1 active-class

Name: active-class
Description: 현재 재생 중인 EPUB content document element에 적용할 CSS class name입니다.
Allowed value(s): xsd:string
Cardinality: Zero or one
Example: <meta property="media:active-class">-epub-media-overlay-active</meta>

D.8.2 duration

Name: duration
Description: entire presentation 또는 특정 media overlay document의 duration입니다. 지정된 durations는 authoring time에 알려진 audio clips를 account하므로, external resources의 live streaming과 speech synthesis는 제외합니다.
Allowed value(s):

[smil3] clock value이어야 MUST 합니다.

Cardinality: EPUB publication 및 각 media overlay document에 대해 정확히 one.
Example: <meta property="media:duration">1:36:20</meta>

D.8.3 narrator

Name: narrator
Description: narrator의 이름.
Allowed value(s): xsd:string
Cardinality: Zero or more
Example: <meta property="media:narrator">Joe Speaker</meta>

D.8.4 playback-active-class

Name: playback-active-class
Description: playback이 active일 때 EPUB content document's document element에 적용할 author-defined CSS class name입니다.
Allowed value(s): xsd:string
Cardinality: Zero or one
Example: <meta property="media:playback-active-class">-epub-media-overlay-playing</meta>

E. Obsolete features

E.1 Outdated features

outdated feature는 deprecated되지는 않았지만 EPUB 3 reading systems에서 사용하도록 설계되지 않았거나, 상당한 기존 EPUB publications 기반을 invalid하게 만들지 않는다면 이상적으로 deprecated되었을 feature입니다.

EPUB publications는 이 절에서 정의된 outdated features를 포함할 MAY 있지만, 그 사용은 referenced definitions를 준수해야 MUST 합니다.

Publication resources
Open Container Format (OCF)
  • Font obfuscation [epub-33]

    주의

    NIST는 SHA-1 algorithm [fips-180-4] 사용을 2030년 말까지 단계적으로 폐지할 것을 권고하고 있습니다. Publishing Maintenance Working Group은 SHA-1에 의존하므로 그 날짜 이후 EPUB publications에서 font obfuscation을 support할 의도가 없지만, reading systems는 기존 EPUB publications에 대해 deobfuscation을 계속 support해야 합니다.

    fonts를 보호하는 더 나은 methods가 존재합니다. 예를 들어 [woff] 및 [woff2] fonts는 licensing information의 embedding을 허용하고 font table compression을 통해 일부 protection을 제공합니다. remotely hosted fonts의 사용도 font subsetting을 가능하게 합니다.

Collections
주의

EPUB 3가 IDPF에 의해 maintained되던 때, collection element에 의존하는 여러 specifications가 개발되었습니다. reading systems에서 adoption 및 implementation이 부족했기 때문에 이러한 specifications는 더 이상 maintained되지 않으며, 이 element의 사용은 더 이상 권장되지 않습니다.

Legacy features
참고

EPUB 3 reading systems는 이러한 features를 ignore합니다. 이들은 각각 meta element, landmarks nav, 그리고 toc nav로 대체됩니다.

이 features는 EPUB 2만 support하는 reading systems와의 backwards compatibility를 어느 정도 제공하기 위해서만 유지됩니다. 이러한 reading systems는 이제 드물기 때문에, 이러한 features를 포함하는 가치는 제한적입니다.

Package rendering vocabulary
Prefixed CSS properties
주의

EPUB 3는 원래 world languages와 관련된 많은 CSS features가 아직 mature하지 않았기 때문에 이러한 prefixed properties를 포함했습니다. 이제 이들은 이러한 prefixes를 사용해 authored된 content에 대한 backwards compatibility를 보장하기 위해서만 유지됩니다. Working Group은 CSS support가 허용하는 즉시 unprefixed versions로 전환할 것을 권장합니다. 이러한 prefixed properties는 EPUB의 다음 major version에서 maintained될 것으로 예상되지 않습니다.

참고

Working Group은 EPUB conformance checkersEPUB publications에 outdated features가 존재한다는 이유만으로 alerts를 issue하지 않도록 권고합니다. feature가 그 definition을 준수하지 않거나 usage requirement를 otherwise break하는 경우에만 alerts를 issue하세요.

E.2 Deprecated features

deprecated feature는 reading systems 및/또는 EPUB publications에서 support나 usage가 제한적이거나 없는 feature입니다.

다음 deprecated features는 사용하지 않는 것이 좋습니다 SHOULD NOT. 사용할 경우 그 usage는 referenced definitions를 준수해야 MUST 합니다.

Package document
XHTML content documents
Vocabulary association mechanisms
Meta properties vocabulary
Link relationships vocabulary
Package rendering vocabulary
Prefixed CSS properties
참고

Working Group은 EPUB conformance checkers가 EPUB publications에서 deprecated features를 encountered할 때 그 존재에 대해 alert할 것을 권장합니다.

F. Schemas

이 절은 비규범적입니다.

F.1 Package document schema

package documents를 위한 schema는 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/package-30.nvdl에서 이용할 수 있습니다.

이 schema를 사용한 validation에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 support하는 processor가 필요합니다.

참고

NVDL schema layer는 embedded RELAX NG 및 ISO Schematron schemas만 사용하는 multi-pass validation으로 대체할 수 있습니다.

참고

이 schemas에 대한 updates 및 corrections는 이 specification의 formal revisions 밖에서 발생할 수 있습니다. 따라서 언제든지 변경될 수 있습니다.

F.2 OCF schemas

F.2.1 container.xml용 schema

container.xml files를 위한 schema는 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/ocf-container-30.nvdl에서 이용할 수 있습니다.

이 schema를 사용한 validation에는 [relaxng-schema] 및 [xmlschema-2]를 support하는 processor가 필요합니다.

F.2.2 encryption.xml용 schema

encryption.xml files를 위한 schema는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.

F.2.3 signatures.xml용 schema

signatures.xml files를 위한 schema는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.

F.3 Media overlays schema

media overlay documents를 위한 schema는 https://github.com/w3c/epubcheck/tree/main/src/master/resources/com/adobe/epubcheck/schema/30/media-overlay-30.nvdl에서 이용할 수 있습니다.

이 schema를 사용한 validation에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 support하는 processor가 필요합니다.

참고

NVDL schema layer는 embedded RELAX NG 및 ISO Schematron schemas만 사용하는 multi-pass validation으로 대체할 수 있습니다.

G. Media type registrations

G.1 application/oebps-package+xml media type

이 appendix는 EPUB package document를 위한 media type application/oebps-package+xml을 registers합니다. 이 registration은 RFC4839를 supersedes합니다(https://www.rfc-editor.org/rfc/rfc4839 참조).

package document는 EPUB publication을 설명하는 XML file입니다. 이는 EPUB publication의 resources를 식별하고 metadata information을 제공합니다. package document와 related specifications는 World Wide Web Consortium (W3C)이 maintained하고 defined합니다.

MIME media type name:

application

MIME subtype name:

oebps-package+xml

Required parameters:

없음.

Optional parameters:

없음.

Encoding considerations:

UTF-8이면 8bit; UTF-16이면 binary.

Package documents는 XML이며 UTF-8 또는 UTF-16으로 represented됩니다. package document가 UTF-8로 written되면 file은 8bit compatible입니다. UTF-16으로 written되면 binary content-transfer-encoding을 사용해야 합니다. 자세한 내용은 [rfc7303]을 참조하세요.

Security considerations:

Package documents는 XML 1.0 specification을 준수하는 well-formed XML을 포함합니다.

분명히, 예를 들어 malformed data를 포함하는 malicious files를 author하는 것이 가능합니다. 대부분의 XML parsers는 conformance를 엄격히 enforce하여 이러한 attacks로부터 themselves를 보호합니다.

package documents를 read하는 모든 processors는 retrieved된 data의 size와 validity를 엄격히 check해야 합니다.

EPUB 3 specification에는 package document format 내 encryption, signing 또는 authentication에 대한 current provision이 없습니다.

Interoperability considerations:

없음.

Published specification:

이 media type registration은 EPUB 3 specification에 의해 설명되는 EPUB package document를 위한 것이며, 해당 specification은 https://www.w3.org/TR/epub/에 있습니다.

EPUB 3 specification은 Open Packaging Format 2.0.1 specification을 supersedes하며, 이는 https://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm에 있고 또한 application/oepbs-package+xml media type을 사용합니다.

Applications which use this media type:

이 media type은 EPUB format의 ebooks distribution에 널리 사용됩니다.

Additional information:
Magic number(s):

none

File extension(s):

.opf

Macintosh File Type Code(s):

TEXT

Fragment identifiers:

EPUB Canonical Fragment Identifiers는 EPUB Publications에 대해 정의된 custom fragment identifiers입니다. 이들은 publication을 위해 defined된 모든 publication resource 내의 임의 content를 refer하는 데 사용될 수 있습니다. 이러한 identifiers는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.

Person & email address to contact for further information:

Publishing Maintenance Working Group (epub-maintenance@w3.org)

Intended usage:

COMMON

Author/Change controller:

World Wide Web Consortium (W3C)

G.2 application/epub+zip media type

이 appendix는 EPUB Open Container Format (OCF)를 위한 media type application/epub+zip을 registers합니다.

OCF ZIP container 또는 EPUB container file은 zip archive format에 기반한 container technology입니다 (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT 참조). 이는 EPUB publication을 encapsulate하는 데 사용됩니다. OCF 및 related standards는 World Wide Web Consortium (W3C)이 maintained하고 defined합니다.

MIME media type name:

application

MIME subtype name:

epub+zip

Required parameters:

없음.

Optional parameters:

없음.

Encoding considerations:

OCF ZIP container files는 application/zip media type으로 encoded된 binary files입니다.

Security considerations:

OCF ZIP container files를 read하는 모든 processors는 retrieved된 data의 size와 validity를 엄격히 check해야 합니다.

또한 OCF ZIP container files에 embedded될 수 있는 다양한 content types 때문에, application/epub+zip은 여기에서 언급된 것을 넘어 security implications를 야기하는 content를 describe할 수 있습니다. 그러나 processor가 additional content를 recognizes하고 processes하는 경우, 또는 해당 content의 further processing이 다른 processors로 dispatched되는 경우에만 security issues가 potentially 발생합니다. 그러한 경우 security matters는 이 registration document의 domain 밖에 있습니다.

application/zip에 적용되는 security considerations는 OCF ZIP container files에도 적용됩니다.

Interoperability considerations:

없음.

Published specification:

이 media type registration은 EPUB 3 specification에 의해 설명되는 EPUB Open Container Format (OCF)를 위한 것이며, 해당 specification은 https://www.w3.org/TR/epub/에 있습니다.

EPUB 3 specification은 RFC 4839 및 Open Container Format 2.0.1 specification 모두를 supersedes하며, 이는 https://idpf.org/epub/20/spec/OCF_2.0.1_draft.doc에 있고 또한 application/epub+zip media type을 사용합니다.

Applications that use this media type:

이 media type은 EPUB format의 ebooks distribution에 널리 사용됩니다.

Additional information:
Magic number(s):

0: PK 0x03 0x04, 30: mimetype, 38: application/epub+zip

File extension(s):

OCF ZIP container files는 대부분 extension .epub으로 식별됩니다.

Macintosh file type code(s):

ZIP

Fragment identifiers:

EPUB Canonical Fragment Identifiers는 EPUB Publications에 대해 정의된 custom fragment identifiers입니다. 이들은 publication을 위해 defined된 모든 publication resource 내의 임의 content를 refer하는 데 사용될 수 있습니다. 이러한 identifiers는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.

Person & email address to contact for further information:

Publishing Maintenance Working Group (epub-maintenance@w3.org)

Intended usage:

COMMON

Author/change controller:

World Wide Web Consortium (W3C)

H. Index

H.1 이 specification이 정의하는 terms

H.2 reference로 정의되는 terms

I. Change log

이 절은 비규범적입니다.

이 change log는 EPUB 3.3 이후의 substantive changes만 식별한다는 점에 유의하세요 — 즉 EPUB publications의 conformance에 영향을 줄 수 있는 changes입니다.

addressed된 모든 issues의 list는 Working Group's issue tracker를 참조하세요.

EPUB 3.3 이후의 substantive changes

J. Acknowledgements

이 절은 비규범적입니다.

Publishing Maintenance Working Group은 여정 중 잃은 notable contributors 및 friends에게 특별한 acknowledgement를 표하고자 합니다. 특히 EPUB, 단지 EPUB 3만이 아니라, 오늘의 모습이 된 것은 Garth Conboy의 vision, knowledge, 그리고 비범할 정도로 좋은 성품 없이는 불가능했을 것입니다. 마찬가지로 Ben Schroeter는 EPUB이 universally accessible format으로서 its potential에 도달하도록 돕기 위해 보여 준 tireless work로 항상 기억될 것입니다. 우리는 영원히 그들에게 빚지고 있습니다.

다음 Publishing Maintenance Working Group members가 이 specification의 development에 기여했습니다:

K. References

K.1 Normative references

[av1-avif]
AV1 Image File Format (AVIF). Alliance for Open Media. Final Deliverable. URL: https://aomediacodec.github.io/av1-avif/
[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
[css-values]
CSS Values and Units Module Level 4. Tab Atkins Jr.; Elika Etemad. W3C. 12 March 2024. W3C Working Draft. URL: https://www.w3.org/TR/css-values-4/
[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/
[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-33]
EPUB 3.3. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 13 January 2026. W3C Recommendation. URL: https://www.w3.org/TR/epub-33/
[epub-a11y-12]
EPUB Accessibility 1.2. Matt Garrish; George Kerscher; Charles LaPierre; Gregorio Pellegrino; Avneesh Singh. W3C. 29 May 2026. W3C Working Draft. URL: https://www.w3.org/TR/epub-a11y-12/
[epub-rs-34]
EPUB Reading Systems 3.4. Matt Garrish; Ivan Herman. W3C. 29 May 2026. W3C Working Draft. URL: https://www.w3.org/TR/epub-rs-34/
[epub-ssv-11]
EPUB 3 Structural Semantics Vocabulary 1.1. Ivan Herman; Matt Garrish. W3C. 28 May 2026. 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
[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/
[iso18181-1]
Information technology — JPEG XL image coding system — Part 1: Core coding system. ISO/IEC. July 2024. Published. URL: https://www.iso.org/standard/85066.html
[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
[its20]
Internationalization Tag Set (ITS) Version 2.0. David Filip; Shaun McCance; David Lewis; Christian Lieske; Arle Lommel; Jirka Kosek; Felix Sasaki; Yves Savourel. W3C. 29 October 2013. W3C Recommendation. URL: https://www.w3.org/TR/its20/
[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/
[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
[rfc8251]
Updates to the Opus Audio Codec. JM. Valin; K. Vos. IETF. October 2017. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc8251
[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/
[watermark-privacy]
Privacy Principles for Digital Watermarking Version 1.0. Center for Democracy & Technology. May 2008. URL: https://cdt.org/wp-content/uploads/copyright/20080529watermarking.pdf
[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

K.2 Informative references

[audiobooks]
Audiobooks. Wendy Reid; Matt Garrish. W3C. 10 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/audiobooks/
[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-speech]
CSS Speech Module Level 1. Léonie Watson; Elika Etemad. W3C. 14 February 2023. CRD. URL: https://www.w3.org/TR/css-speech-1/
[css-viewport-1]
CSS Viewport Module Level 1. W3C. URL: https://drafts.csswg.org/css-viewport/
[csssnapshot]
CSS Snapshot. URL: https://www.w3.org/TR/CSS/
[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. 20 January 2026. W3C Working Group Note. URL: https://www.w3.org/TR/epub-multi-rend-11/
[epub-overview-34]
EPUB 3 Overview. Matt Garrish; Ivan Herman. W3C. 9 March 2026. W3C Working Group Note. URL: https://www.w3.org/TR/epub-overview-34/
[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/
[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. 26 March 2026. W3C Candidate Recommendation. URL: https://www.w3.org/TR/geolocation/
[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
[html-aria]
ARIA in HTML. Scott O'Hara; Patrick Lauke. W3C. 15 April 2026. W3C Recommendation. URL: https://www.w3.org/TR/html-aria/
[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
[pronunciation-lexicon]
Pronunciation Lexicon Specification (PLS) Version 1.0. Paolo Baggia. W3C. 14 October 2008. W3C Recommendation. URL: https://www.w3.org/TR/pronunciation-lexicon/
[push-api]
Push API. Marcos Caceres; Kagami Rosylight. W3C. 1 December 2025. W3C Working Draft. URL: https://www.w3.org/TR/push-api/
[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
[schema-org]
Schema.org. W3C Schema.org Community Group. W3C. 6.0. URL: https://schema.org/
[ssml]
Speech Synthesis Markup Language (SSML) Version 1.1. Daniel Burnett; Zhi Wei Shuang. W3C. 7 September 2010. W3C Recommendation. URL: https://www.w3.org/TR/speech-synthesis11/
[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
[wasm-core-2]
WebAssembly Core Specification. Andreas Rossberg. W3C. 27 May 2026. CRD. URL: https://www.w3.org/TR/wasm-core-2/
[wcag2]
Web Content Accessibility Guidelines (WCAG) 2. W3C. URL: https://www.w3.org/TR/WCAG2/
[webvtt]
WebVTT: The Web Video Text Tracks Format. Gary Katsevman. W3C. 20 May 2026. CRD. URL: https://www.w3.org/TR/webvtt1/
[xhr]
XMLHttpRequest Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://xhr.spec.whatwg.org/
[xhtml11]
XHTML™ 1.1 - Module-based XHTML - Second Edition. Masayasu Ishikawa; Shane McCarron. W3C. 27 March 2018. W3C Recommendation. URL: https://www.w3.org/TR/xhtml11/
[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/