Copyright © 1999-2026 International Digital Publishing Forum and World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
EPUB® 3은 디지털 출판물 및 문서를 위한 배포 및 교환 형식을 정의합니다. EPUB 형식은 HTML, CSS, SVG 및 기타 리소스를 포함한 구조화되고 의미적으로 향상된 웹 콘텐츠를 단일 파일 컨테이너로 배포하기 위해 표현, 패키징 및 인코딩하는 수단을 제공합니다.
이 명세는 EPUB 출판물의 저작 요건을 정의하며, 이 표준의 세 번째 주요 개정판을 나타냅니다.
이 절은 발행 당시 이 문서의 상태를 설명합니다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.
이 문서는 Publishing Maintenance Working Group에서 권고안 트랙을 사용하여 작업 초안으로 발행했습니다.
작업 초안으로 발행되었다고 해서 W3C 및 그 회원이 이를 지지한다는 의미는 아닙니다.
이 문서는 초안 문서이며 언제든지 다른 문서로 업데이트, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업 이외의 것으로 인용하는 것은 부적절합니다. 향후 이 예정된 권고안의 업데이트에는 새 기능이 포함될 수 있습니다.
이 문서는 W3C 특허 정책에 따라 운영되는 그룹에서 제작했습니다. W3C는 이 그룹의 산출물과 관련하여 이루어진 모든 특허 공개의 공개 목록을 유지합니다. 해당 페이지에는 특허 공개 방법에 대한 지침도 포함되어 있습니다. 개인이 필수 청구항을 포함한다고 믿는 특허에 대해 실제 지식을 가지고 있는 경우, 그 개인은 W3C 특허 정책 제6절에 따라 정보를 공개해야 합니다.
이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.
이 절은 비규범적입니다.
EPUB 3은 디지털 도서(전자책)의 형식으로 널리 채택되었으며, 이번 개정은 복잡한 레이아웃, 풍부한 미디어와 상호작용성, 전 세계 타이포그래피 기능을 포함해 더 넓은 범위의 출판 요건을 더 잘 지원하도록 형식의 기능을 계속 확장합니다. 출판자는 도서, 잡지, 교육·전문·과학 출판물을 포함한 광범위한 콘텐츠에 EPUB 3 형식을 활용할 것으로 기대됩니다.
이 명세는 EPUB 3의 핵심을 나타내며, 표준의 산물인 EPUB 출판물에 대한 준수 요건을 포함합니다. EPUB 3을 구성하는 다른 명세는 다음과 같습니다:
EPUB 3 Reading Systems [epub-rs-34] — EPUB 출판물을 소비하고 그 콘텐츠를 사용자에게 표시하는 애플리케이션인 EPUB reading systems의 처리 요건을 정의합니다.
EPUB Accessibility [epub-a11y-12] — EPUB 출판물의 접근성 준수 및 발견 요건을 정의합니다.
이들 명세는 EPUB 3에 속하는 것으로 공식 인정되고 표준의 일부로 규범적으로 참조되는 기능을 포함하는 공식 목록을 나타냅니다. 확장 명세의 개발은 주기적으로 EPUB 출판물에 새로운 기능을 추가합니다. 이 명세에서 공식적으로 인정되지는 않더라도, 표준의 핵심 개정 밖에서 정의된 기능과 기능성은 EPUB 출판물에서 사용하고 reading system에서 구현할 수 있습니다.
비규범적 EPUB 3 Overview [epub-overview-34]는 EPUB 3에 대한 일반적인 소개를 제공합니다. 이전 버전에서의 기술적 변경 목록도 변경 로그에서 확인할 수 있습니다.
이 절은 비규범적입니다.
이 절은 이 명세가 정의하는 중심 산물인 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이 콘텐츠를 어떻게 표시하는지 이해하면 사용자에게 최적으로 표시될 출판물을 만드는 데 도움이 될 수 있습니다.
이 절은 비규범적입니다.
EPUB 3이 기반으로 하는 기술은 지속적으로 진화하고 있습니다. 일반적으로 "living" 또는 "evergreen" 표준이라고 불리는 일부 기술은 매일 변경될 수 있으며, EPUB 출판물의 유효성에 즉각적인 영향을 미칩니다. 다른 기술은 덜 자주 업데이트되며, EPUB 3이 새 개정을 거치기 전까지는 변경이 EPUB 출판물에 영향을 주지 않을 수 있습니다.
모든 경우에, 이전에 유효했던 기능이 폐기될 가능성이 있습니다(예: 지원 부족 또는 보안 문제 때문). 또한 새로운 기능이 reading systems에서 널리 지원되기 전에 사용할 수 있게 될 가능성도 있습니다.
따라서 폭넓게 지원되는 기능만 사용하고 EPUB conformance checkers를 최신 상태로 유지하는 것이 권장됩니다.
[html] 표준은 지속적으로 진화하고 있으며, 더 이상 버전별 릴리스가 없습니다. 이 표준은 다시 MathML, SVG, CSS, JavaScript와 같이 계속 진화하는 다양한 기술을 참조합니다.
이 접근 방식의 장점은 EPUB 3이 항상 웹과 최신 상태를 유지한다는 점이지만, 동시에 이 명세가 HTML과 HTML이 참조하는 기술의 변경 사항을 추적하지 않는다는 뜻이기도 합니다. 저작 프로세스가 최신 상태로 유지되도록 이러한 표준은 별도로 모니터링해야 합니다.
[html] 표준은 HTML 구문 또는 XML 구문을 사용해 태그 집합을 표현하는 규칙이 있는 단일 콘텐츠 모델을 정의합니다. 그러나 EPUB 3은 XHTML 콘텐츠 문서라고 부르는 XML 구문을 사용한 콘텐츠 문서 저작만 허용합니다.
이 명세에서 정의한 XHTML 프로파일은 달리 명시하지 않는 한 [html]의 의미론, 구조 및 처리 동작에 대한 모든 정의를 상속합니다.
또한 이 명세는 XHTML 콘텐츠 문서에 포함될 수 있는 [html] 문서 모델에 대한 확장 집합을 정의합니다.
이 명세는 [svg]의 특정 버전을 참조하지 않고 날짜 없는 참조를 사용합니다. 이 참조에 모호함이 있을 경우, 최신 권고 버전이 권위 있는 참조입니다.
이 접근 방식의 장점은 EPUB 3이 항상 SVG 표준과 최신 상태를 유지한다는 점이지만, 동시에 이 명세가 SVG의 변경 사항을 추적하지 않는다는 뜻이기도 합니다. 저작 프로세스가 최신 상태로 유지되도록 SVG 표준은 별도로 모니터링해야 합니다.
EPUB 3은 CSS Working Group Snapshot [csssnapshot]에 정의된 CSS를 지원합니다. EPUB 3은 또한 전 세계 언어에 대한 일관된 지원을 보장하기 위해 일부 접두사가 붙은 CSS 속성을 유지합니다.
EPUB 3은 Presentation Markup [mathml3]만 지원합니다. Content Markup은 구조화된 마크업 주석에서만 허용됩니다.
이 명세는 [smil3]의 하위 집합에 의존하며, 9.3.2.2 Media overlay document definition에 정의된 media overlays 요소와 속성은 여기서 파생됩니다.
이 명세는 EPUB 출판물에 표현된 URL과 관련된 용어 및 처리를 위해 [url] 표준을 참조합니다. 새롭고 개정된 웹 형식이 이 표준을 채택할 것으로 예상되지만, 그때까지는 이 명세가 일부 형식의 내부 요건 (예: 유효한 상대 경로)과, 특히 국제화 URL 사용과 관련하여 충돌할 수 있습니다. 어떤 형식이 국제화 URL을 허용하지 않는 경우(즉, URL이 [rfc3986] 또는 그 이전 규격을 따라야 하는 경우), 해당 요건이 그 리소스 내에서 우선합니다.
이 명세는 EPUB 3에 특화된 다음 용어를 정의합니다.
한 절에서 용어의 첫 번째 인스턴스만 그 정의로 연결됩니다.
Codec은 최적의 압축을 위해 설계되었거나 최적화된 스트리밍 기능을 제공하는 비디오 및 오디오 미디어 타입과 같이, 고유한 바이너리 형식 특성을 가진 콘텐츠를 가리킵니다.
remote resource가 그렇지 않은 것과 달리, EPUB container 안에 위치한 publication resource입니다.
리소스 위치에 대한 미디어 타입별 규칙은 3.6 Resource locations를 참조하세요.
OCF abstract container를 나타내는 root directory의 URL [url]입니다. Container root URL은 구현별로 다르지만, 그 속성은 4.2.5 URLs in the OCF abstract container에 정의되어 있습니다.
4.2.5 URLs in the OCF abstract container에 정의된, OCF abstract container 안의 파일 또는 디렉터리의 URL입니다.
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 출판물에 대해 검증하고 그 준수 여부를 보고하는 애플리케이션입니다.
4.3 OCF ZIP container에 정의된 EPUB 출판물용 ZIP 기반 패키징 및 배포 형식입니다.
EPUB container와 OCF ZIP container는 동의어입니다.
XHTML 또는 SVG 콘텐츠 문서 정의 중 하나를 준수하며, spine 또는 manifest fallback chain에서 참조되는 publication resource입니다.
EPUB 콘텐츠 문서는 EPUB 출판물의 콘텐츠 전체 또는 일부 (즉, 텍스트, 시각 및/또는 오디오 콘텐츠)를 포함합니다.
EPUB 출판물은 fallbacks 제공 없이 spine에서 EPUB 콘텐츠 문서를 참조할 수 있습니다.
publication resources를 나열하는 package document의 절입니다.
자세한 내용은 5.7.1 The
manifest element를 참조하세요.
사람과 기계가 읽을 수 있는 전역 탐색 정보를 포함하는 XHTML 콘텐츠 문서의 특수화입니다. EPUB navigation document는 8. EPUB navigation document에 표현된 제약을 준수합니다.
EPUB container에 패키징된 서로 관련된 리소스 집합으로 이루어진 논리적 문서 엔티티입니다.
EPUB 출판물은 일반적으로 하나의 지적 또는 예술적 저작물을 나타내지만, 이 명세는 콘텐츠의 성격을 제한하지 않습니다.
이 명세를 준수하는 방식으로 사용자에게 표시하기 위해 EPUB 출판물을 처리하는 시스템입니다.
EPUB 콘텐츠 문서와 foreign content documents의 순서가 지정된 목록을 정의하는 package document의 절입니다. 이 목록은 EPUB 출판물의 기본 읽기 순서를 나타냅니다.
자세한 내용은 5.8.1 The
spine element를 참조하세요.
Exempt resources는 publication resources의 특수한 클래스이며, fallbacks가 필요하지 않고 reading system이 렌더링을 지원할 필요도 없습니다.
자세한 내용은 3.4 Exempt resources를 참조하세요.
OCF abstract container 안의 모든 유형의 파일 이름을 말하며, 디렉터리인지 디렉터리 안의 파일인지는 관계없습니다.
파일 또는 디렉터리의 file path는 root directory를 기준으로 한 전체 경로이며, 4.2.4 Deriving file paths에 지정된 알고리즘으로 정의됩니다.
spine에서 직접 참조되는 고정 치수를 가진 EPUB 콘텐츠 문서입니다. Fixed-layout documents는 pre-paginated 또는 roll 레이아웃으로 표시됩니다.
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입니다.
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으로 간주되는 리소스 유형보다 더 넓습니다.
package
document의
link
요소에서만 참조되는 리소스입니다(즉,
EPUB
출판물의 렌더링에도 사용되지는 않습니다).
Linked resources는 publication resources는 아니지만 EPUB container에 저장될 수 있습니다. 이들은 fallbacks가 필요하지 않습니다.
9.3 Media overlays에 정의된 대로, 동기화된 재생 경험을 제공하기 위해 XHTML 콘텐츠 문서를 사전 녹음된 오디오 내레이션과 연결하는 XML 문서입니다.
Non-codec은 내부 데이터 구조의 특성상 압축의 이점을 얻는 콘텐츠 타입을 가리키며, 예를 들어 HTML, CSS 등 문자 문자열 기반 파일 형식이 이에 해당합니다.
OCF abstract container는 4.2 OCF abstract container에 정의된 대로, OCF ZIP container의 콘텐츠에 대한 파일 시스템 모델을 정의합니다.
5. Package document에 정의된 대로, EPUB 출판물의 렌더링을 설명하는 publication resource입니다. Package document는 EPUB 출판물에 대한 메타 정보를 담고, 리소스의 manifest를 제공하며, 기본 읽기 순서를 정의합니다.
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 밖에 위치할 수 있다는 점입니다).
EPUB container 밖, 일반적으로 웹에 위치한 publication resource입니다.
EPUB container 안의 publication resources는 container resources라고 합니다.
리소스 위치에 대한 미디어 타입별 규칙은 3.6 Resource locations를 참조하세요.
Root directory는 OCF abstract container 파일 시스템의 기반을 나타냅니다. 이 디렉터리는 본질적으로 가상적입니다.
스크립팅을 포함하는 EPUB 콘텐츠 문서, 또는 [html]
form
요소를 포함하는 XHTML 콘텐츠 문서입니다.
자세한 내용은 7.4.2 Scripting을 참조하세요.
7.2 SVG content documents에 표현된 제약을 준수하는 EPUB 콘텐츠 문서입니다.
두 개의 인접한 페이지를 장치 화면에 동시에 렌더링하는 것입니다.
직접 또는 fallback chain을 통해 spine에서 참조되는 EPUB 콘텐츠 문서 또는 foreign content document입니다.
7.1 XHTML content documents에 정의된 [html] 프로파일을 준수하는 EPUB 콘텐츠 문서입니다.
EPUB 출판물의 기본 식별자입니다.
Unique identifier는
package document의
unique-identifier 속성으로 지정된
dc:identifier
요소의
value입니다.
콘텐츠의 중요한 개정, 축약 등에는 새로운 unique identifier가 필요합니다.
EPUB reading system에서 EPUB 출판물이 사용자에게 시각적으로 렌더링되는 영역입니다.
비규범적으로 표시된 절뿐 아니라, 이 명세의 모든 저작 지침, 다이어그램, 예 및 참고는 비규범적입니다. 이 명세의 나머지 모든 것은 규범적입니다.
이 문서의 핵심어 MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD, 및 SHOULD NOT은 여기에 표시된 것처럼 모두 대문자로 나타날 때, 그리고 오직 그 경우에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석되어야 합니다.
모든 주의 상자, 괄호 안의 설명문, 알고리즘 설명도 비규범적입니다.
이 절은 비규범적입니다.
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").
EPUB 출판물은:
MUST 다음과 같이 콘텐츠의 렌더링을 적어도 하나 정의해야 합니다:
MUST 5. Package document를 준수하고 package document에 대한 모든 publication resource 요건을 충족하는 package document를 포함해야 합니다.
SHOULD [epub-a11y-12]에 정의된 접근성 요건을 준수해야 합니다.
MUST 4. Open Container Format (OCF)에 정의된 대로 EPUB container에 패키징되어야 합니다.
또한, 모든 publication resources는 3. Publication resources의 요건을 준수해야 합니다.
이 명세의 나머지는 구체적인 준수 세부 사항을 다룹니다.
이 절은 비규범적입니다.
이 명세의 복잡성과 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 출판물이 모든 경우에 권장 관행을 준수할 수 없는 정당한 이유가 있을 수 있습니다.
이 절은 비규범적입니다.
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를 참조하세요.
manifest plane은 EPUB 출판물의 모든 리소스를 정의합니다. 이는 package document의 manifest와 유사하지만, 해당 목록에 없는 리소스도 포함합니다.
이 그룹의 주요 리소스는 publication resources로 지정되며, 이는
EPUB 출판물을
사용자에게 렌더링하는 데 사용되는 모든 리소스입니다.
manifest
요소는 이러한 리소스의 완전한 목록을
포함해야 합니다.
Publication resources는 spine plane과 content 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 출판물의 일부가 아니라 별도의 브라우저 인스턴스에서 엽니다.
spine plane은 spine이 설정한 기본 읽기 순서에서 사용되는 리소스를 정의하며, 선형 및 비선형 콘텐츠를 모두 포함합니다. 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을 가질 수 있습니다.
content plane은 EPUB 콘텐츠 문서와 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를 포함합니다).
다음 표에 정의된 MIME 미디어 타입 [rfc2046] 명세를 준수하는 Publication resources는 EPUB 콘텐츠 문서와 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—주어진 publication resource를 manifest에서 나타내는 데 사용되는 MIME 미디어 타입 [rfc2046]입니다.
리소스에 둘 이상의 미디어 타입이 있는 경우, 첫 번째로 나열된 것이 선호 미디어 타입입니다. 리소스를 선언할 때 이 미디어 타입을 사용하는 것이 권장됩니다.
| 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 |
|
[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 |
| 폰트 | |||
|
[truetype] | TrueType 폰트 | 3.0 |
|
[opentype] | OpenType 폰트 | 3.0 |
|
[woff] | WOFF 폰트 | 3.0 |
font/woff2
|
[woff2] | WOFF2 폰트 | 3.2 |
| 기타 | |||
|
[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에서는 지원되지 않을 수 있음을 알고 있어야 합니다.
foreign resource는 core 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 제공에 사용할 수는 있지만, 그 사용은 강하게 권장되지 않습니다.
exempt resource는 foreign resources와 core 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] track
요소에서 참조되는 오디오 및 비디오 트랙(예: [webvtt] 캡션, 자막
및 설명)은 exempt resources입니다.
[html]
video
— 모든 자식
source
요소 포함 — 에서 참조되는 비디오 코덱은 exempt resources입니다.
위의 예외는 spine에는 적용되지 않습니다. Exempt resource가 spine에서 사용되고 EPUB 콘텐츠 문서도 아닌 경우, 그 컨텍스트에서는 fallback이 필요합니다.
콘텐츠별 예외 외에도, 리소스는 다음 조건을 충족하면 exempt resource로 분류됩니다:
spine
itemref
요소에서 참조되지 않아야 합니다(즉, foreign content
document로 사용되지 않아야 함);
그리고
EPUB 콘텐츠 문서에서 원래 형식으로 직접 렌더링되지 않아야 합니다.
이 예외는 다음과 같이 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에서 면제됩니다.
Manifest fallbacks는 package document의 기능이며, reading system이 top-level content document 대신 사용할 수 있는 대체 리소스의 manifest fallback chain을 만들어, 기본 리소스가 spine에서 지원되지 않을 때 렌더링할 수 있는 형식을 선택할 수 있게 합니다.
Fallback chains는 manifest
item
요소의 fallback
속성을 사용해 생성됩니다. 이 속성은 현재 item에 대한 fallback인
다른 manifest item의 ID
[xml]를 참조합니다.
주어진
item의 fallback 속성에서 시작해 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 됩니다.
다음 절들은 [html]의 특정 요소에 대한 내재적 fallback 요건에 관한 설명을 제공합니다.
audio 또는 video 요소 안에 임베드된
[html] flow content는 foreign
resources에 대한
내재적 fallback으로 간주되지 않습니다. 자식
source
요소 [html]만
내재적 fallback 기능을 제공합니다.
audio 또는
video 요소를 인식하지 못하는 오래된 reading systems(예: EPUB 2
reading systems)만 임베드된
콘텐츠를 렌더링합니다. Reading systems가 이러한 요소를 지원하지만 사용 가능한 미디어 형식은
지원하지 않는 경우, 사용자에게 임베드된 콘텐츠를 렌더링하지 않습니다.
Fallbacks에 대한 요건은
audio 및 video 요소에서 참조되는 audio foreign resources에만
적용됩니다. Video resources에는 fallbacks가 필요하지 않으며, 이들은 exempt resources입니다.
대체 형식 fallbacks를 제공하기 위해, 다음 조건이
참인 경우 [html]
img
요소를
picture
요소의 자식으로 사용할 수 있습니다:
img 요소는
src 및 srcset 속성이 설정된 경우, 해당 속성에서 core media type
resources만 참조해야
MUST 합니다;
그리고
source
요소는
src
및
srcset
속성에서 core media type
resources만 참조해야
MUST 합니다. 단,
type
속성에서 foreign resource의 MIME 미디어 타입
[rfc2046]을
지정하는 경우는 예외입니다.
img가 picture의 자식이 아닌 경우, 해당 src 및
srcset 속성은 foreign
resources에 대한 fallbacks를 제공하는 데 사용되어서는 MUST NOT 됩니다.
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를 정의하지 않지만, 향후 업데이트에서 이 개념을 추가한다면 동일한 제외가 적용됩니다.
다음 유형의 publication resources는 EPUB container 밖에 호스팅될 MAY 있습니다:
다른 모든 리소스는 EPUB container 안에 저장되어야 MUST 합니다.
가능하면 모든 리소스를 EPUB container 안에 저장하는 것이 강하게 권장됩니다. 이렇게 하면 사용자는 연결 상태와 관계없이 전체 표시 내용에 접근할 수 있습니다.
리소스를 EPUB container 밖에 위치시켜야 하는 경우, 해당 출판물과 사용자를 네트워크 공격에
노출시키는 위협을 제한하기 위해 보안 https URI scheme
[rfc9110]을 통해 참조하는 것이
RECOMMENDED 됩니다. Reading
systems는 http와 같은 안전하지 않은 scheme을 사용해 참조된
remote resources를 로드하지 않을 수 있습니다.
Publication resource의 위치에 대한 이러한 규칙은 해당 리소스가 core media type resource인지 foreign resource인지와 관계없이 적용됩니다.
manifest
item이
remote resource를 참조한다는 것을 표시하는 방법에 대한 자세한
내용은 remote-resources 속성을 참조하세요.
data: URL scheme [rfc2397]은 리소스를 URL 문자열에 직접
인코딩하는 데 사용됩니다. 이 scheme의 장점은 외부 파일이 필요하지 않도록 리소스를 다른 리소스
안에 임베드할 수 있다는 점입니다.
Data URLs는 다음 시나리오에서 사용되어서는 MUST NOT 됩니다. 이는 top-level content document 또는 top-level browsing context [html]를 만들기 때문입니다:
package document의 href 속성 — 이는 manifest
item
요소와 metadata
link
요소 모두에 적용됩니다;
[html] 또는 [svg] a
요소의 href 속성. 단,
iframe
요소 [html] 안에 있는 경우는 예외입니다;
[html] area 요소의
href 속성. 단,
iframe 요소 안에 있는 경우는 예외입니다;
[ecmascript]의
window.open 또는 document.open 호출.
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 합니다.
file: URL scheme은 [rfc8089]에서
"호스트의 구조화된 객체 명명 및 접근 환경('파일 시스템')에 저장된 객체('파일')를 식별"하는 것으로
정의됩니다. 이는 일반적으로 로컬 운영 체제에서 파일을 가져오는 데 사용됩니다.
서로 다른 호스트 간에 전송될 수 있는 EPUB 출판물에서 file URL을 사용하는 것은 보안 위험을 나타내며 상호운용성도 없습니다. 따라서 EPUB 출판물에서는 file URLs를 사용해서는 MUST NOT 됩니다.
XML 기반 미디어 타입 [rfc2046]인 모든 publication resource는:
Conformance of Documents [xml-names]에 정의된 대로 준수하는 XML 1.0 Document여야 MUST 합니다.
해당 미디어 타입에 적절한 external identifier를 참조하는 document type declaration만 지정할 MAY 있습니다. 이는 B. Allowed external identifiers에 정의되어 있거나, external identifiers를 생략하는 경우입니다 [xml].
내부 DTD 하위 집합에 external entity 선언을 포함해서는 MUST NOT 됩니다 [xml].
XInclude [xinclude]를 사용해서는 MUST NOT 됩니다.
UTF-8 또는 UTF-16 [unicode]으로 인코딩되어야 MUST 하며, UTF-8이 RECOMMENDED 인코딩입니다.
위의 제약은 해당 publication resource가 core media type resource인지 foreign resource인지와 관계없이 적용됩니다.
이 절은 비규범적입니다.
OCF는 EPUB 출판물을 위한 컨테이너 기술입니다. 이는 다음 워크플로에서 역할을 할 수 있습니다:
이 절은 추상적 수준에서 파일 컬렉션을 구조화하는 규칙, 즉 "abstract container"를 정의합니다. 또한 ZIP 아카이브 안에서 이 abstract container를 표현하는 규칙, 즉 "physical container"도 정의합니다. ZIP physical container에 대한 규칙은 [odf]가 사용하는 ZIP 기술을 기반으로 합니다.
OCF는 outdated된 임베디드 폰트 난독화 알고리즘도 유지하지만, 이 기능은 더 이상 권장되지 않습니다.
이 절은 비규범적입니다.
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의 암호화에 대한 정보를 포함합니다. 이 파일은 outdated된 font 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 디렉터리를 참조하세요.
OCF abstract container의 가상 파일 시스템은 컨테이너의 모든 콘텐츠에 대해 단일 공통 root directory를 가져야 MUST 합니다.
OCF abstract container는 컨테이너의 root directory의 직접 자식인
META-INF라는 구성 파일용 디렉터리를 포함해야
MUST 합니다. 이 디렉터리 콘텐츠에 대한 요건은 4.2.6
META-INF 디렉터리를 참조하세요.
root directory의 파일 이름 mimetype은 OCF 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를 포함하는 디렉터리 또는 그 아래에 배치하는 것이 권장됩니다.
OCF abstract container의 맥락에서, file paths 및 file names는 scalar 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+FFFE 및 U+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]의 "문자열의 길이 자르기 또는 제한" 절을 참조하세요.
OCF abstract container 안의 파일 또는 디렉터리 file이 주어졌을 때 file path를 도출하려면, 다음 단계를 적용하세요 ([infra]의 용어를 사용해 표현됨):
U+002F (/) 문자를 사용해 path를
concatenation한 결과를 반환합니다.
container root URL은 URL [url]이며, root directory의 URL입니다. container root URL은 구현별로 다르지만, 다음 속성을 가져야 MUST 합니다:
/"를
container root URL을 base로 사용해 수행한 결과는
container root URL입니다.
.."를
container root URL을 base로 사용해 수행한 결과는
container root URL입니다.
OCF abstract container 안의 파일 또는 디렉터리의 content URL은, 해당 파일의 file path를 container root URL을 base로 사용해 parsing한 결과입니다.
container root URL은 reading system이 EPUB 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.xhtml은 A/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이 뒤따를 수 있습니다:
container root URL을
https://a.example.org/A/로 설정합니다.
이 알고리즘의 목표는 url이 컨테이너 밖으로 "leaking"되는 것으로 보일 수 있는지
감지하는 것입니다. 이를 위해 표준 URL parsing algorithm을 인공 root URL과 함께
사용합니다. "leak"의 감지는 parsing 결과와 첫 번째 테스트 경로 세그먼트
(A)의 존재를 비교하여 수행됩니다. (인공 container root URL은 이
알고리즘의 목적상 해당 첫 번째 테스트 경로 세그먼트를 사용함으로써 required
properties를 의도적으로 위반한다는 점에
유의하세요.)
base를 url이 사용되는 컨텍스트(문서 또는 환경)에서 정의된 대로, 그리고 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 요소가 사용되는 경우는 제외).
container root URL을
https://b.example.org/B/로 설정합니다.
container root URL의 서로 다른 인공 설정으로 동일한 단계를 두 번 반복하는 이유는
url 문자열이 /A/도 포함하는 경우 발생할 수 있는 충돌을 피하기
위해서입니다. 예를 들어 url이 ../../A/doc.xhtml인 경우를
고려하세요.
testURLStringA가 https://a.example.org/로 시작하지 않거나
testURLStringB가 https://b.example.org/로 시작하지 않으면,
true를 반환합니다.
결과 중 하나라도 테스트 URL host를 공유하지 않는다면, url 또는 그 base URL
(예: HTML에서 base 요소로 명시적으로 설정된 경우)이
absolute이고 컨테이너 밖을 가리킨다는 뜻입니다. 이는 허용됩니다.
testURLStringA가 https://a.example.org/A/로 시작하고
testURLStringB가 https://b.example.org/B/로 시작하면,
true를 반환합니다.
첫 번째 테스트 경로 세그먼트(A와 각각
B)의 존재는 URL이 컨테이너 밖으로 leak되지 않음을 나타냅니다.
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)은 허용되지 않습니다;
EPUB/../../../../config.xml)은
허용되지 않습니다; 어떤 경우에도 위에서 설명한 허용되지 않는 URL 문자열조차 parsing 후에는 컨테이너 밖으로 "leak"되지 않습니다(이 절의 첫 번째 참고에서 설명한 대로). 그럼에도 불구하고, 비준수 또는 레거시 reading systems 및 툴체인과의 더 나은 상호운용성을 위해 허용되지 않습니다.
모든 OCF abstract containers는 그
root directory 안에 META-INF라는
디렉터리를 포함해야 MUST 합니다.
이 디렉터리는 구성 파일, 특히 4.2.6.3 예약 파일에 정의된 파일을 위해 예약되어 있습니다.
META-INF 디렉터리에
위치한 파일에서 사용되는 URL 문자열 url을 파싱하려면,
URL parser를
container root URL을
base로 하여 url에 적용해야
MUST 합니다.
META-INF 디렉터리 안의 REQUIRED container.xml
파일은 OCF abstract
container에서 사용 가능한 package documents를 식별합니다.
달리 명시되지 않는 한, 이 절에서 정의된 모든 [xml]
요소는
urn:oasis:names:tc:opendocument:xmlns:container 네임스페이스 [xml-names] 안에 있습니다.
이 파일의 콘텐츠는 다른 네임스페이스의 모든 요소와 속성(그러한 요소의 모든 속성과 콘텐츠 포함)을 제거한 후, 이 절의 정의에 대해 유효해야 MUST 합니다.
XML Schema도 이 파일의 콘텐츠를 비공식적으로 정의합니다.
container 요소는
container.xml 파일의 모든 정보를 캡슐화합니다.
container
container.xml 파일의
REQUIRED root element [xml].
version
[required]
1.0" 값을 가져야 MUST 합니다.다음 순서:
rootfiles 요소는 EPUB container에서 사용 가능한
package documents 목록을 포함합니다.
각 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]를 참조하세요.
links 요소는
OCF ZIP container 처리에 필요한 리소스를
식별합니다.
이 명세는 현재 links 요소의 용도를 정의하지 않습니다.
그 사용 예는 [epub-multi-rend-11]를
참조하세요.
link
links
요소의 자식으로 사용. 반복 가능.
href
[required]
리소스의 위치를 식별합니다.
link 요소의 href
속성 값은 path-relative-scheme-less-URL
string
[url]이어야
MUST 합니다. 경로는
root
directory에 상대적입니다.
media-type
[optional]
참조된 리소스의 타입과 형식을 식별합니다.
이 속성의 값은 media type [rfc2046]이어야 MUST 합니다.
rel
[required]
리소스의 관계를 식별합니다.
이 속성의 값은 공백으로 구분된 토큰 목록이어야 MUST 합니다.
비어 있음
이 절은 비규범적입니다.
META-INF 디렉터리 안의 OPTIONAL encryption.xml
파일은 컨테이너 콘텐츠에 대한 모든 암호화 정보를 보유합니다. 컨테이너 안의 어떤 리소스라도
암호화되어 있다면, 사용된 암호화에 대한 정보를 제공하기 위해
encryption.xml 파일이 있어야 MUST 합니다.
encryption
urn:oasis:names:tc:opendocument:xmlns:container
encryption.xml 파일의
REQUIRED root element [xml].
없음
임의의 순서:
EncryptedKey [1개 이상]EncryptedData [1개 이상]encryption 요소는
[xmlenc-core1]에
정의된 대로
EncryptedKey 및 EncryptedData 타입의 자식 요소를 포함합니다.
EncryptedKey 요소는 컨테이너에서 사용되는
각 암호화 키를 설명하며, EncryptedData 요소는 각 암호화된 파일을
설명합니다. 각 EncryptedData 요소는 XML Encryption에 설명된 대로
EncryptedKey 요소를 참조합니다.
XML Schema도 encryption.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
암호화된 데이터는 OCF abstract container 안에서 암호화되지 않은 데이터를 대체합니다. 예를 들어,
photo.jpeg라는 이미지가 암호화되면, photo.jpeg 리소스의
콘텐츠는 그 암호화된 콘텐츠로 대체됩니다.
ZIP 디렉터리 안의 암호화된 파일은 압축하지 않는 것이 SHOULD NOT
좋습니다.
일부 상황에서는 EPUB 출판물에서 참조되는 임베디드 폰트의
저장을 난독화하여 제한 없는 사용을 위해 추출하기 어렵게 해야 합니다. 난독화는
암호화가 아니지만, reading systems는 encryption.xml 파일을
outdated된 font
obfuscation algorithm과 함께 사용해 난독화 해제할 폰트를 식별합니다.
XML Signature용 Decryption Transform [xmlenc-decrypt]은 이후에 서명된 리소스를 암호화하는 데 사용될 MAY 있습니다. 이 기능은 reading system이 서명 전에 암호화된 데이터와 서명 후에 암호화된 데이터를 구별할 수 있게 합니다.
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
EncryptionProperty의 OPTIONAL 자식.
[required]사용된 압축 방식을 식별합니다.
값은 "0"(압축 없음) 또는 "8"
(Deflate algorithm)입니다.
[required]초기 리소스의 크기(바이트 수)를 나타냅니다.
값은 양의 정수입니다.
비어 있음
META-INF 디렉터리 안의 OPTIONAL manifest.xml
파일은 컨테이너 안의 파일에 대한 manifest를 제공합니다.
OCF 명세는 manifest의 형식을 의무화하지 않습니다.
package documents가 EPUB 출판물 처리에 사용되는 유일한 manifests를 지정한다는 점에 유의하세요. Reading systems는 이 파일을 사용하지 않습니다.
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 있습니다.
이 명세는 META-INF 디렉터리 안의 OPTIONAL
rights.xml 파일을 권리 보유자, 중개자 및 사용자 사이에서
EPUB 출판물의 신뢰할 수 있는 교환을 위해 예약합니다.
rights.xml 파일이 포함되지 않은 경우,
OCF abstract container의 어떤 부분도
container level에서 권리의 지배를 받지 않습니다. EPUB 출판물 안에는 rights expressions가
존재할 수 있습니다.
디지털 서명을 추가한다고 해서 악의적 행위자가 EPUB 출판물을 변조할 수 없다는 보장은 아닙니다. reading systems가 서명을 반드시 확인해야 하는 것은 아니기 때문입니다.
META-INF 디렉터리 안의 OPTIONAL signatures.xml
파일은 컨테이너와 그 콘텐츠에 대한 디지털 서명을 보유합니다.
signatures
urn:oasis:names:tc:opendocument:xmlns:container
signature.xml 파일의
REQUIRED root element [xml].
없음
Signature [1개 이상]signature 요소는 [xmldsig-core1]에
정의된 대로 Signature 타입의 자식 요소를 포함합니다.
서명은 EPUB 출판물 전체 또는 그 일부에 적용될 수 있습니다. 또한 모든 종류의 데이터에
서명하는 데 사용할 수 있습니다(즉, XML에만 국한되지 않음).
XML Schema도 signatures.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 파일에 서명하는 방법은 목적에 따라 다릅니다:
signatures.xml 파일은 서명하지 않는 것이 SHOULD NOT 좋습니다.
Signature를 제외한
기존 서명 파일 전체에 서명할 수 있습니다. 이 transform은 이전의 모든 서명에
서명하며, 이후 서명이 패키지에 추가되면 무효가 됩니다.
기존 서명의 제거만 OCF abstract container에 대한 서명을 무효화하도록 하고 싶은 경우 (즉, 새 서명의 추가는 허용), XPath transform을 사용해 기존 서명만 서명할 수 있습니다. 그러한 transform의 세부 사항은 이 명세의 범위를 벗어납니다.
[xmldsig-core1]
명세는 서명에 어떤 의미론도 연결하지 않습니다. 예를 들어, agent는 서명을 설명하는 정보를
Signature 요소에 추가함으로써 의미 정보를 포함할 수 있습니다.
[xmldsig-core1]
명세는 SignatureProperties 요소 사용과 같이 추가 정보를 서명에 추가하는
방법을 설명합니다.
이 절은 비규범적입니다.
OCF ZIP container는 OCF abstract container의 물리적 단일 파일 표현입니다. 이 container는 다음을 허용합니다:
서로 다른 개인 및/또는 서로 다른 조직 간에 진행 중인 EPUB publication을 교환하는 것;
출판사 또는 변환 업체에서 배포 또는 판매 채널로 EPUB 출판물을 전송하는 것; 그리고
EPUB 출판물을 EPUB reading systems 또는 사용자에게 전달하는 것.
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 합니다.
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을 참조하세요.
달리 명시되지 않는 한, 이 절에서 정의된 모든 [xml] 요소는
http://www.idpf.org/2007/opf
네임스페이스 [xml-names] 안에 있습니다.
이 절은 비규범적입니다.
package document는 XML document이며, 각각 EPUB publication의 특정 측면에 대한 정보를 캡슐화하는 요소들의 집합으로 구성됩니다. 이러한 요소들은 메타데이터를 중앙화하고, 개별 리소스를 자세히 설명하며, 렌더링에 필요한 reading order 및 기타 정보를 제공합니다.
다음 목록은 package document에서 찾을 수 있는 정보를 요약합니다:
Metadata — EPUB publication에 대한 정보를 포함하거나 참조하기 위한 메커니즘.
manifest — URL [url]을 통해 publication resources 집합을 식별하고, MIME media type [rfc4839]을 통해 설명합니다.
spine — reading systems가 집합 안의 다른 모든 리소스에 도달하거나 활용할 수 있는 manifest의 top-level resources에 대한 ID 참조의 순서 있는 시퀀스입니다. spine은 기본 reading order를 정의합니다.
Manifest fallback chains — top-level resources의 순서 있는 목록을 콘텐츠 등가물로 정의하는 메커니즘입니다. 그러면 reading system은 자신이 렌더링할 수 있는 리소스를 기준으로 리소스 중에서 선택할 수 있습니다.
EPUB publication은 콘텐츠의 대체 표현을 허용하기 위해 둘 이상의 package document를 참조할 수
있습니다. 자세한 내용은 4.2.6.3.1
Container file (container.xml)을 참조하세요.
package documents의 파일 속성에 대한 정보는 G.1
application/oebps-package+xml media type을 참조하세요.
package document에서 사용되는 URL 문자열 url을 파싱하려면, URL parser [url]를 url에 적용해야 MUST 하며, package document의 content URL을 base로 사용해야 합니다.
이 절은 비규범적입니다.
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를 만들고 사용하는 방법에 대한 추가 세부 정보를 제공합니다.
compact URL data type은 URL [url]을 표현하는 간결한 수단이며, colon으로 reference와 분리된 OPTIONAL prefix로 구성됩니다.
| 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에서 가져온 것으로 간주됩니다.
default vocabulary는 compact URL이 예상될 때 그 terms와 properties가 prefix를 가져서는 MUST NOT 안 되는 vocabulary입니다.
prefix 속성을 사용하여 이러한 vocabularies와 연결된 URLs에
prefix를 할당해서는 MUST NOT 됩니다.
default vocabulary에 대한 자세한 내용은 compact URL data type을 받는 각 속성의 정의를 참조하세요.
prefix 속성은 compact URLs에서 사용할 prefix mappings를
정의합니다.
prefix 속성의 값은 다음 형식의 하나 이상의 prefix-to-URL mappings로 이루어진
공백으로 구분된 목록입니다:
| 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 documents 및 media overlay documents에서 사용될 때는
http://www.idpf.org/2007/ops 네임스페이스에 선언되어야
MUST 합니다.
prefix 속성은 [rdfa-core]의
동일한 이름의 prefix 속성을 모델로 하지만, 두 속성은 서로 바꿔 사용할 수
없습니다. EPUB content documents에서 네임스페이스가 없는 prefix 속성은
RDFa 속성입니다.
RDFa expressions도 지정하는 EPUB content documents에는 두 속성이 모두 나타나는 것이 일반적입니다.
<html … prefix="…"
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에서 허용됩니다.
reserved prefixes는 작성 편의를 제공하지만 문제를 일으킬 수 있습니다. 예를 들어 vendors는 EPUB conformance checkers를 업데이트하기 전까지 새로운 prefixes를 거부하는 경우가 많습니다. 문제를 피하기 위해 모든 prefixes를 선언하는 것이 권장됩니다.
reserved prefixes는 compact URL을 기대하는 속성에서
prefix 속성에 선언하지 않고 사용할
MAY 있습니다.
reserved prefixes는 prefix
속성에서 override하지 않는 것이 SHOULD NOT 좋습니다.
사용할 수 있는 reserved prefixes는 컨텍스트에 따라 다릅니다:
다음 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/ |
scheme 속성에서 값이 대응하는 ONIX
code list를 식별하기 위해
사용됩니다. |
| rendition | http://www.idpf.org/vocab/rendition/# | Package rendering vocabulary의 properties를 선언하기 위해 사용합니다. |
| schema | http://schema.org/ | Schema.org vocabulary의 properties를 선언하기 위해 사용합니다. |
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
속성을 참조하세요.
metadata 요소는 meta information을 캡슐화합니다.
metadata
package의
REQUIRED 첫 번째 자식.
없음
임의의 순서:
dc:identifier
[1개 이상]
dc:title
[1개 이상]
dc:language
[1개 이상]
Dublin Core Optional Elements
[0개 이상]
meta
[1개 이상]
link
[0개 이상]
package document의 metadata 요소에는 두 가지
주요 기능이 있습니다:
reading systems가 내부적으로 EPUB publication을 catalogue하고 사용자에게 제공하는 데 사용할 최소한의 meta information을 제공하는 것(예: bookshelf에 표시).
콘텐츠의 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]
property를 포함해야 MUST 합니다. 그 밖의 모든 metadata는
OPTIONAL입니다.
dcterms:modified
meta
요소는 임의의 vocabulary에서 온 metadata properties를 포함하기 위한
일반적인 메커니즘을 제공합니다. 이 메커니즘은 어떤 metadata 목적에도 사용할 수 있지만, 일반적으로
EPUB 명세에 정의된 rendering 및 accessibility metadata를 포함하는 데 사용됩니다.
accessibility metadata 권장 사항은 [epub-a11y-12]를 참조하세요.
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]됩니다.
dc:identifier 요소 [dcterms]는
UUID, DOI 또는 ISBN과 같은 identifier를 포함합니다.
dc:identifier
http://purl.org/dc/elements/1.1/
metadata의
REQUIRED 자식.
반복 가능.
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 property는
dc:identifier 요소의 값이 확립된 시스템 또는 이를 부여한 issuing authority를
따른다는 것을 나타내는 데 사용될 MAY 있습니다.
dc:title 요소 [dcterms]는
EPUB publication에 대한 이름의 인스턴스를 나타냅니다.
dc:title
http://purl.org/dc/elements/1.1/
metadata의
REQUIRED 자식.
반복 가능.
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-type 및 display-seq properties를 사용할 것을
권고했습니다(Great Cookbooks example 참조). 이러한 의미를
추가하는 것은 여전히 가능하지만, 이 역시 충분히 지원되지 않습니다.
dc:language 요소 [dcterms]는
EPUB publication 콘텐츠의 언어를 지정합니다.
dc:language
http://purl.org/dc/elements/1.1/
metadata의
REQUIRED 자식.
반복 가능.
id
[optional]
Text
각 dc:language 요소의 value는
well-formed language tag
[bcp47]여야 MUST 합니다.
다국어
EPUB publications을 위해 추가
dc:language 요소를 지정할 MAY 있지만,
reading systems는 문서 순서에서 첫 번째
dc:language
요소를 primary language로 취급합니다.
Publication
resources는 dc:language 요소에서 언어를 상속하지 않습니다.
각 리소스의 언어는 해당 형식의 intrinsic methods를 사용해 설정해야 합니다.
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/
metadata의
OPTIONAL 자식.
반복 가능.
Text
이 명세는 다음 절에서 언급한 경우를 제외하고 [dcterms] element definitions를 수정하지 않습니다.
dc:contributor 요소 [dcterms]는 콘텐츠 생성에서 보조 역할을 한
사람, 조직 등의 이름을 나타내는 데 사용됩니다.
dc:contributor 요소에 대한 요구 사항은 다른 모든 면에서
요소에 대한 요구 사항과 동일합니다.
dc:creator
dc:creator
요소 [dcterms]는 콘텐츠의 생성에 책임이 있는
사람, 조직 등의 이름을 나타냅니다. creator가 수행한 기능을 나타내기 위해
role property가 요소와
associated될 MAY 있습니다.
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
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 됩니다.
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가 요구하는 경우에만
대소문자를 구분합니다.
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 개발을 예상하지 않습니다.
meta 요소는 package metadata를 포함하기 위한 일반적인 수단을 제공합니다.
meta
metadata
요소의 자식으로 사용. 반복 가능.
Text
각 meta 요소는 metadata expression을 정의합니다.
property 속성은 expression에서 만들어지는 statement를 정의하는
compact URL을 받으며, 요소의 text content는
assertion을 나타냅니다. (자세한 내용은 5.3
어휘 연결
메커니즘을 참조하세요.)
이 명세는 meta 요소를 사용해 정의할 수 있는 두 가지 유형의
metadata expressions를 정의합니다:
meta 요소에 정의된 expression이 EPUB
publication의 어떤 측면을 설정하는 것입니다.
refines 속성을 생략한 meta 요소는 primary expression을 정의합니다.
meta 요소에 정의된 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 Vocabulary는
property 속성과 함께 사용할
default vocabulary입니다.
다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.
scheme 속성은 요소의 value가 얻어진 system 또는 scheme를 식별합니다. 이 속성의 값은
scheme를 정의하는 리소스로 해석되는
compact URL이어야
MUST 합니다. scheme 속성에는
default vocabulary가 없습니다(즉, 모든 값에는
prefix가 필요합니다).
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의 이전 버전과의 호환성을 보장하기 위한 것입니다.
link 요소는 metadata records와 같은 리소스를
EPUB
publication과 연결합니다.
link
metadata의
자식으로 사용.
반복 가능.
href
[required]
hreflang
[optional]
id
[optional]
media-type
[conditionally required]
properties
[optional]
refines
[optional]
rel
[required]
비어 있음
metadata
요소는 0개 이상의 link 요소를 포함할 MAY 있으며, 각 요소는
REQUIRED href 속성에서
publication resource 또는
linked resource의 위치를 식별합니다.
link 요소에서 참조된 리소스는 다음 경우에만
publication resources입니다:
spine에서 참조되는 경우; 또는
EPUB content document에 포함되거나 임베드되는 경우
(예: RDFa [rdfa-core]로 또는 JSON-LD
[json-ld11]로 serialized된 metadata record가
[html] script
요소에 임베드된 경우).
그 밖의 모든 경우(예: standalone [onix] records에 링크하는 경우), 참조된 리소스는 publication resources가 아닙니다(즉, core media type requirements의 적용을 받지 않음). 또한 manifest에 나열되어서는 MUST NOT 됩니다.
linked resources는 EPUB container 밖에 위치할 MAY 있지만, reading systems가 remote resources를 반드시 가져와야 하는 것은 아닙니다. 이를 원격으로 호스팅하기 전에 사용자의 reading experience에 어떤 영향을 줄 수 있는지 고려하는 것이 권장됩니다.
EPUB container 안의 모든 linked resources에는
media-type
속성을 지정해야 MUST 합니다. EPUB container 밖에 위치한 linked resources의
경우 같은 URL [url]에서 둘 이상의 media type이 제공될 수 있으므로
이는 OPTIONAL입니다.
OPTIONAL hreflang 속성은
linked resource의 언어를 식별합니다. 값은
well-formed language
tag [bcp47]여야
MUST 합니다.
REQUIRED rel 속성은 linked
resource가 EPUB publication과 갖는 관계를 설정하는
compact URLs의 공백으로 구분된 목록을 받습니다.
media-type 속성의 값이 항상 linked resource의 유형을 식별하기에 충분한 것은 아닙니다
(예: 많은 XML 기반 record formats가 media type "application/xml"을 사용함).
reading systems가 이러한 generic resources를 식별하는 데 도움을 주기 위해, semantic identifier가
properties 속성에 지정될 MAY 있습니다.
Metadata Link Vocabulary는
rel 및 properties 속성의
default
vocabulary입니다.
다른 vocabularies의 relationships와 properties는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.
하나 이상의 linked metadata records가 제공될 MAY 있습니다.
EPUB publication에 링크할 수 있는 metadata record formats와 serializations의 다양성, 그리고 그 사이에서 metadata properties를 비교하는 복잡성 때문에, 이 명세는 reading systems가 linked records를 처리할 것을 요구하지 않습니다.
full records 외에도, link 요소는 대체 형식에서 사용할 수 있는 개별 metadata
properties를 식별하는 데 사용될 MAY 있습니다.
manifest 요소는 콘텐츠 렌더링에 사용되는
publication resources의 완전한 목록을 제공합니다.
package
document를 제외하고,
manifest는 모든 publication resources를, 그것이
container resources이든
remote resources이든 상관없이 나열해야
MUST 합니다.
package document는 이미 container.xml
파일에 의해
식별되므로, manifest는 이에 대한 item 요소를 지정해서는
MUST NOT 됩니다(즉, self-reference는 아무 목적이 없습니다).
manifest는 publication resources를 나열하기 위한 것일 뿐입니다.
Linked resources 및 OCF
Container 처리를 위한 특수 파일(즉, META-INF 디렉터리의 파일 및
mimetype 파일)은 포함이 제한됩니다.
publication resources의 완전한 manifest를 제공하지 않으면 rendering issues가 발생할 수 있습니다. Reading systems는 이러한 리소스를 unzip하지 않거나 보안상의 이유로 접근을 막을 수 있습니다.
item 요소는 publication resource를 나타냅니다.
item
manifest의
자식으로 사용.
반복 가능.
fallback
[conditionally required]
href
[required]
id
[required]
media-overlay
[optional]
media-type
[required]
properties
[optional]
비어 있음
각 item 요소는 그
href
속성의 URL [url]로 publication resource를 식별합니다. 값은
absolute- 또는 path-relative-scheme-less-URL
string [url]이어야 MUST 합니다. 각 URL은
parsing 후 manifest 범위 안에서 고유해야
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를 제공합니다.
properties 속성은 리소스의 콘텐츠에 대한 정보를
reading systems에 제공합니다.
이 정보는 cover image 및 EPUB navigation
document와 같은 핵심 리소스의
discovery를 가능하게 합니다. 또한 예를 들어 리소스에 embedded scripting, MathML 또는 SVG가
포함되어 있는지 표시함으로써 reading systems가 rendering을 최적화할 수 있게 합니다.
Manifest Properties
Vocabulary는
properties 속성의
default vocabulary입니다.
다음 properties는 item 요소가 참조하는 리소스가 각각의 정의와 일치할 때마다
설정되어야 MUST 합니다:
이 properties는 리소스에 포함된 콘텐츠(예: [html]
iframe
요소를 통한 콘텐츠)에 재귀적으로 적용되지 않습니다. 예를 들어 non-scripted
XHTML content document가
scripted content
document를 임베드하는 경우, embedded document의 manifest
item
properties 속성에만 scripted 값이 있습니다.
정확히 하나의 item이 nav property를 사용해
EPUB navigation document로 선언되어야 MUST 합니다.
EPUB publication이 cover image를 포함하는 경우,
OPTIONAL cover-image
property를 설정하는 것이 권장됩니다.
다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.
spine 요소는 기본 reading order를 나타내는 manifest
item 참조의 순서 있는 목록을 정의합니다.
spine
id
[optional]
page-progression-direction
[optional]
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]
a
및
area
요소의
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).
outdated된 toc 속성은 IDREF [xml]를 받으며,
이는 NCX를 나타내는 manifest item을 식별합니다.
itemref 요소는 기본 reading
order 안의 EPUB content document 또는 foreign content document를 식별합니다.
itemref
spine의
자식으로 사용.
반복 가능.
id
[optional]
idref
[required]
linear
[optional]
properties
[optional]
비어 있음
각 itemref 요소는 자신의
idref 속성에 있는
IDREF [xml]를 통해
manifest 안의
item의
ID [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
Vocabulary는
properties 속성의
default vocabulary입니다.
다른 vocabularies의 terms는 5.3 어휘 연결 메커니즘에 정의된 대로 추가될 MAY 있습니다.
이 절은 비규범적입니다.
모든 렌더링 정보를 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는 콘텐츠가 최적으로 설계된 방식대로 표시될 수 있게 합니다.
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
itemref의 properties 속성에
rendition:layout-reflowable
spine override를 설정합니다.
Roll layouts는 layout 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 있습니다.
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을 그 설계에 따라 지칭합니다.
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
itemref의 properties attribute에
rendition: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]를 참조하세요.
pre-paginated layouts에서는 기본적으로 reading system이 각 fixed-layout document를 viewport에 별도로 표시하고, 해당 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
— synthetic spread를 사용하지 않고 fixed-layout document를 viewport 중앙에 배치합니다.rendition:page-spread-left
— 참조된 fixed-layout document를 synthetic spread의 left-hand slot에 배치합니다.rendition:page-spread-right
— 참조된 fixed-layout document를 synthetic spread의 right-hand slot에 배치합니다.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-left 및 rendition:page-spread-right
properties는 package rendering properties에 단일 vocabulary를 사용할 수 있도록 만들었습니다.
어느 property set이든 사용할 수 있지만, 오래된 reading systems는 unprefixed versions만
인식할 수도 있습니다.
rendition:page-spread-center는 two-page spreads와 single centered pages 사이를
전환하는 과정을 더 쉽게 이해할 수 있도록 만들었습니다.
rendition:layout property가
roll 값을 가진
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]를 참조하세요.
이 절은 비규범적입니다.
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이 되었음을 의미합니다.
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를 참조하세요.
이 절은 underlying [html] document model에 대한 EPUB 3 XHTML 콘텐츠 문서 extensions를 정의합니다.
[html]이 user agents가 vendor-neutral extensions를 지원하는 것을 허용하더라도, 그러한 extensions가 이 절에 나열되어 있지 않으면 EPUB 3의 supported features가 아닙니다.
epub:type
속성은 structural semantics를 표현하기 위해 XHTML 콘텐츠 문서에서 사용될
MAY 있습니다.
이 속성은 head element 또는
metadata content [html]에
사용되어서는 MUST NOT 됩니다.
[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 콘텐츠 문서에서 기본적으로 지원되며 사용할 수도 있습니다.
[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은 필요하지 않습니다.
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을 확장하는 것입니다.
이 절은 EPUB 3 XHTML 콘텐츠 문서에 적용되는 underlying [html] document model로부터의 deviations 및 그에 대한 constraints를 정의합니다.
XHTML 콘텐츠 문서는 embedded [mathml3]를 지원합니다. MathML markup의 occurrences는 다음 추가 restrictions와 함께, MathML specification [mathml3]에 표현된 constraints를 MUST 준수해야 합니다:
math element는
annotation-xml element 내부를 제외하고,
Presentation MathML만
포함해야 MUST 합니다.
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 property는
manifest item
element의 property로, XHTML 콘텐츠 문서가 embedded MathML을 포함함을 나타냅니다.
XHTML 콘텐츠 문서는 SVG embedding을 지원합니다:
img
또는
object
element에서. Reference로 embedded된 SVG는 SVG
core media types이므로 그 requirements는 이미 7.2 SVG 콘텐츠 문서에 정의되어 있습니다.
svg property는
manifest
item
element의 property로, XHTML 콘텐츠 문서가 embedded SVG(reference 또는 inclusion 방식)를
포함함을 나타냅니다.
이 절은 비규범적입니다.
[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의 사용은 권장되지 않습니다.
[html]
rp
element는 ruby markup을 인식하지 못하는 오래된
reading systems를 위한
fallback(즉, ruby markup 주변의 parenthesis display)을 제공하도록 의도되었습니다.
EPUB 3 reading systems는 ruby-aware이고 fallbacks를 제공할 수 있으므로,
rp elements의 사용은 권장되지 않습니다.
[html] embed
element element는 scripting을 지원하지 않는
reading systems를 위한 intrinsic fallback
facilities를 포함하지 않으므로, scripted resources와 함께 이 element를 사용하는 것은
권장되지 않습니다. [html]
object
element는 intrinsic fallback capabilities를 포함하므로 더 나은 alternative입니다.
이 절은 비규범적입니다.
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를 참조하세요.
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를 참조하세요.
이 specification은 SVG 콘텐츠 문서와 XHTML 콘텐츠 문서 안에 inclusion 방식으로 embedded된 SVG의 content model을 다음과 같이 제한합니다:
[svg] foreignObject
element:
[html] flow content 또는 정확히 하나의 [html] body element를
포함해야 MUST 합니다.
inclusion 방식으로 embedded된 SVGs의
경우, [html]에 정의된 restrictions on SVG에
따라 body element는 허용되지 않습니다.
7.1.2 XHTML requirements에 정의된 XHTML 콘텐츠 문서 모델을 준수하는 valid document fragment를 포함해야 MUST 합니다.
[svg]
title
element가 marked-up text를 포함하는 경우,
markup은 HTML namespace [infra]에
선언된 elements만 포함해야 MUST 합니다.
[svg] title element는 markup
elements를 허용하지만, 이 feature에 대한 support는 제한적입니다. 최대
interoperability를 위해 text-only titles 사용이 권장됩니다.
지정된 경우,
epub:type
attribute는 renderable elements [svg]에만
포함되어야 MUST 합니다.
SVG content model은 authors가 namespaced
attributes를 포함할 수 있게 하므로, 이 specification은
epub:type
attribute 또는 vocabulary association
mechanisms를 허용할 필요가 없습니다.
그러나 reference 방식과 inclusion 방식으로 embedded된 SVGs 사이의 한 가지 key difference는,
inclusion 방식으로 embedded된 SVGs는 root
svg
element
[svg]에
epub:prefix attribute를 가질 수 없다는 점입니다.
자세한 내용은 5.3.4
The
prefix attribute를 참조하세요.
이 절은 비규범적입니다.
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-paginated 및 roll 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에서만 권장됩니다.
이 절은 fixed-layout documents의 dimensional properties의 expression 및 interpretation에 대한 rules를 정의합니다.
Fixed-layout documents는 자신의 format에 적용되는 방식으로 initial containing block [css2]을 지정합니다:
XHTML fixed-layout documents의
경우,
initial
containing block [css2]은
viewport
meta tag 안의 REQUIRED
height 및
width definitions에서 얻으며, 여기서:
height
property는 자신의
value로 양의 number [css2]
또는 keyword
device-height를 가져야 MUST 합니다; 그리고
width property는 자신의 value로 양의
number [css2]
또는 keyword
device-width를 가져야 MUST 합니다.
device-width 및 device-height 값은 각각 reading system의
viewport의
width 및 height의 100%를 나타냅니다.
height 및 width 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 fixed-layout documents의
경우, initial containing block [css2]
dimensions는
viewBox
attribute [svg]를 사용해 표현되어야 MUST
합니다.
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는 다를 수 있습니다.
이 절은 XHTML 및 SVG 콘텐츠 문서 모두에서 사용할 수 있는 technologies에 대한 requirements를 정의합니다.
이 절은 비규범적입니다.
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를 참조하세요.
CSS style sheet는 다음을 만족해야 합니다:
다음 exceptions를 제외하고, 어떤 CSS properties든 포함할 MAY 있습니다:
direction
property [css-writing-modes-3]를
포함해서는 MUST NOT 됩니다.
unicode-bidi
property [css-writing-modes-3]를
포함해서는 MUST NOT 됩니다.
outdated prefixed properties를 포함할 MAY 있습니다.
UTF-8 또는 UTF-16 [unicode]으로 encoded되어야 MUST 하며, UTF-8이 RECOMMENDED encoding입니다.
이 specification은 direction 및
unicode-bidi properties의 사용을 제한합니다. 그 이유는
reading systems가 CSS processing을
구현하지 않거나 switch off할 수 있기 때문입니다. rendering의 이러한 aspects에 대한 제어가 필요할 때는
다음 format-specific methods를 사용해야 합니다:
이 절은 비규범적입니다.
다음 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가 보장되는 것은 아닙니다.
EPUB 콘텐츠 문서는 각각의 underlying specifications
([html] 및 [svg])에서 이를 위해 정의한
facilities를 사용해 scripting을 포함할
MAY 있습니다. EPUB 콘텐츠 문서가 scripting을 포함하는 경우, 이 specification은
이를 scripted content document라고 합니다. 이
label은 [html]
form
elements를 포함하는 XHTML 콘텐츠 문서에도
적용됩니다.
scripted property는
manifest 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 비활성화).
EPUB 3는 script execution을 위한 두 contexts를 정의합니다:
iframe
element 안에서 발생하는 경우; 그리고
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를 참조하세요.
container-constrained script는 다음 중 하나입니다:
[html]
script
element의 instance로서, [html]
iframe
element를 사용해 XHTML 콘텐츠 문서 안에 embedded된
XHTML 콘텐츠 문서에
포함된 것.
[svg] script
element의 instance로서, [html]
iframe
element를 사용해 XHTML 콘텐츠 문서 안에 embedded된
SVG 콘텐츠 문서에 포함된
것.
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).
spine-level script는 top-level content document에 포함된
[html]
script
또는 [svg] script
element의 instance입니다.
reading systems에서 spine-level scripting에 대한 support는 fixed-layout documents 및 scroll로 설정된 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를 읽을 수 없게 만들 수 있습니다.
이 절은 비규범적입니다.
reading system implementations의 가능한 variety가 매우 넓다는 점을, EPUB publications에 scripting functionality를 추가할 때 고려해야 합니다(예: 모든 devices가 physical keyboards를 갖는 것은 아니며, 많은 경우 soft keyboard는 text input elements에 대해서만 활성화됨). 따라서 keyboard events에만 의존하지 말고, 원하는 action을 trigger할 alternative ways를 항상 제공하세요.
scripting을 포함하는 EPUB 콘텐츠 문서는 content가 모든 users가 소비할 수 있는 상태로 유지되도록 관련 [wai-aria] accessibility techniques를 사용하는 것이 좋습니다 SHOULD.
scripting을 포함하는 EPUB 콘텐츠 문서는 그러한 content에 대한 fallbacks를
제공할 MAY
있습니다. 이는 intrinsic fallback mechanisms(예: [html]
object
및
canvas
elements에서 사용할 수 있는 것)을 사용하거나, intrinsic fallback이 applicable하지 않을 때
manifest-level
fallback을 사용하는 방식일 수 있습니다.
Scripts는 core media type resources 또는 그 fragments만 generate해야 MUST 합니다.
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를 추가할 수 있습니다.
epub:type
http://www.idpf.org/2007/ops
XHTML, SVG 및 media overlays에 대한 requirements를 참조하세요.
5.3 Vocabulary association mechanisms에 정의된 restrictions를 따르는, compact URLs의 whitespace-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]
div
및
span과
같은 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를 참조하세요.
이 절은 비규범적입니다.
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를 사용하여 읽을 수 있습니다.
이 절은 비규범적입니다.
현재 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가 제공됩니다.
이 절은 비규범적입니다.
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만 지원합니다.
media overlay document는 다음을 만족해야 합니다:
F.3 Media overlays schema에 정의된 media overlays schema에 대해 valid해야 MUST 하며, 9.3.2.2 Media overlay document definition에 표현된 모든 content conformance constraints를 준수해야 합니다.
하나를 초과하는 EPUB content document를 참조할 MAY 있지만, 하나를 초과하는 media overlay document가 같은 EPUB content document를 reference해서는 MUST NOT 됩니다.
달리 지정되지 않는 한, 이 절에서 정의되는 모든 elements [xml]는
http://www.w3.org/ns/SMIL namespace [xml-names]에 있습니다.
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]
epub:prefix
[optional]
추가 metadata vocabulary prefixes를 선언합니다.
자세한 정보는 9.3.3.3 Structural semantics in overlays를 참조하세요.
다음 순서로:
head 요소는 media overlay
document의 metadata를 위한
container입니다.
이 specification은 media overlay document에 반드시 나타나야 하는 metadata properties를 정의하지 않으므로,
head 요소는 OPTIONAL입니다.
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를 위해 제공됩니다.
body 요소는 media overlay
document에 포함된
presentation의 시작점입니다. 이는
par
및
seq
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]
epub:textref
[optional]
associated EPUB content document를 참조하고, 선택적으로 그 특정 부분을 식별합니다.
값은 path-relative-scheme-less-URL
string이어야 MUST 하며, 선택적으로
U+0023 (#) 및 URL-fragment string이
뒤따를 수 있습니다.
임의 순서로:
최소 하나의 par 또는
seq를 포함해야 MUST 합니다.
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]
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를 참조하세요.
임의 순서로:
최소 하나의 par 또는
seq를 포함해야 MUST 합니다.
par 요소는 media objects를 위한 parallel time container입니다.
par
하나 이상의 par elements가
body
및
seq
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]
임의 순서로:
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]
비어 있음
이 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(예: [html] video
element를 통해)를 참조할 수는 있지만, 그러한 media를 reference하면
예측할 수 없는 결과가 발생할 수 있습니다.
audio 요소는 audio media의 clip을 나타냅니다.
audio
par
element의 OPTIONAL child.
id
[optional]
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 합니다.
비어 있음
이 절은 비규범적입니다.
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을 나타내기 위해
clipBegin 및 clipEnd 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 참조).
이 절에서는 EPUB content document가 XHTML 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를 지원할 수 있습니다.
media overlay
document의
body는
두 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를 제공할 수 있습니다.
epub:textref attribute와
text
element의 src
attribute는 모두 associated EPUB content document의 특정 부분(예:
element의 ID를 통한 element)을 참조하는 URL-fragment string을 포함할 수 있습니다.
XHTML 및 SVG content documents의 경우, URL-fragment string은 각각 ID를 통한 특정 element에 대한 reference 또는 SVG Fragment Identifier [svg]인 것이 좋습니다 SHOULD.
다른 fragment identifier schemes도 사용할 MAY 있지만, reading systems가 그러한 identifiers를 지원하지 않을 수 있습니다.
이 절은 비규범적입니다.
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를 제공할 수 있습니다.
이 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]를 참조하세요.
structural semantics를
media overlay documents에서 표현하기 위해,
epub:type
attribute를
par,
seq,
및
body
elements에 지정할 MAY 있습니다.
epub:type attribute는 표시된 semantic type(s)에 적합한
reading system behavior를 용이하게 합니다.
이러한 behaviors의 예로는 skippability and escapability 및 table reading mode
[epub-rs-34]가 있습니다.
Media overlay documents는 추가 semantics를 정의하기
위해
epub:type attribute에 적용 가능한 vocabulary
association mechanisms를 사용할 MAY 있습니다.
현재 재생 중인 EPUB content document element에 대한 visual rendering information은 author-defined classes를 사용해 CSS Style Sheet에 표현할 MAY 있습니다.
사용되는 경우, class names는 package document에서 active-class 및 playback-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-class 및 playback-active-class properties는 항상 전체
EPUB publication에 적용되므로,
refines attribute와 함께 사용해서는
MUST NOT 됩니다.
EPUB content document가
media overlay document에 의해 전체 또는 일부
reference되는 경우, 해당 manifest
item
element는 media-overlay attribute를 지정해야 MUST
합니다. 이 attribute는 corresponding media overlay document에 대한 manifest item의
ID [xml]를
reference해야 MUST 합니다.
media-overlay attribute는 EPUB content documents에 대한 manifest
item elements에만 지정되어야 MUST 합니다.
media overlay documents에 대한 Manifest items는 media type
application/smil+xml을 가져야 MUST 합니다.
전체 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되어 있습니다.
읽는 동안 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를 나타냅니다.
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를 식별하지 않는 것이 권장됩니다.
이 절은 비규범적입니다.
EPUB 3는 Open Web Platform을 기반으로 하여, 그 underlying technologies에 내장된 structure, semantics 및, 더 나아가 accessibility를 활용할 수 있도록 합니다.
accessible web content를 저작하기 위한 주요 standards에는 다음이 포함됩니다:
accessible web content를 만들기 위한 requirements와 practices는 [wcag2]에 문서화되어 있습니다.
[wai-aria] specification은 native HTML elements와 attributes를 사용하지 않는 dynamic content를 accessible하게 만들기 위한 roles, states, properties를 정의합니다. 또한 web pages를 navigating하기 위한 landmarks set도 제공합니다.
[dpub-aria] specification은 common publishing structures를 식별하는 데 특화된 additional roles를 제공하는 [wai-aria]의 extension입니다.
[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할 수 있게 합니다).
이 절은 비규범적입니다.
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을 참조하세요.
이 절은 비규범적입니다.
EPUB publications는 의심하지 않는 users에게 다양한 privacy 및 security threats를 제기합니다. 이러한 threats 중 많은 것은 web content와 교차하지만, EPUB도 users가 malicious content에 access하도록 속이거나 sensitive information을 제공하도록 속이는 데 사용될 수 있는 고유한 methods of attack을 도입합니다. 주의해야 할 더 중요한 attack vectors에는 다음이 포함됩니다:
EPUB 3는 일부 publication resources를 remotely 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 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로 이동하게 할 수 있습니다.
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가 device의 network에 access할 수 있으면, user를 exploit할 다양한 channels를 제공합니다:
Network access는 third-party content가 user를 exploit할 수 있게 할 수도 있습니다.
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를 취할 수 있습니다:
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하게 만들 수 있습니다.
Malicious actors는 users가 their content를 trust하도록 속이기 위해 platform의 experience를 imitate하거나 replicate하도록 content를 design할 수도 있습니다.
EPUB 3는 자신이 기반으로 하는 underlying technologies를 확장하는 것을 피하려고 하지만, 몇 가지 new features를 도입했습니다. 하지만 이러한 features의 restricted scope는 그들이 제기할 수 있는 threats를 제한합니다:
Content switching과 multimedia control elements는 HTML에서 content hiding 및 script-less playback control만 허용합니다. 또한 이러한 features는 EPUB 3.0의 first release에서 도입되었으며 deprecated 되었고 더 이상 use가 권장되지 않습니다.
HTML 및 SVG에서 structural semantics의 expression은 elements의 annotation만 허용합니다.
한 가지 potential exception은 현재 epubReadingSystem object
[epub-rs-34]입니다. 이는 현재
reading system에 대한 information을 query할 수 있게 합니다.
이 object가 exposed하는 information은 EPUB publication의 rendering을 개선하는 데에만 사용하는 것이 권장됩니다
(즉, user와 그 environment를 profile하는 데 information을 사용하지 마세요).
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할 때(예: cookies 및 web 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에도 이점이 있습니다.
이 절은 비규범적입니다.
다음 package document와 XHTML 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 plane의 linked
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 plane의 EPUB 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에서 찾을 수 있습니다.
다음 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입니다:
scripted01.xhtml의 head 안의 script element에 있는
code는 document가 spine에서 referenced되므로 spine-level script입니다;
그리고
scripted02.xhtml의 script element에 있는 code는
그 code가 나타나는 XHTML document가 iframe element를 통해
scripted01.xhtml 안에 포함되므로 container-constrained script입니다.
이 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>
다음은 허용되는 clock values의 예입니다:
5:34:31.396 = 5시간, 34분, 31초 및 396밀리초
124:59:36 = 124시간, 59분 및 36초
0:05:01.2 = 5분, 1초 및 200밀리초
0:00:04 = 4초
09:58 = 9분 및 58초
00:56.78 = 56초 및 780밀리초
76.2s = 76.2초 = 76초 및 200밀리초
7.75h = 7.75시간 = 7시간 및 45분
13min = 13분
2345ms = 2345밀리초
12.345 = 12초 및 345밀리초
다음 표는 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 |
|---|---|---|
|
-//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
|
이 절은 비규범적입니다.
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만 정의합니다.
XHTML fixed-layout documents의 경우, viewport
meta tag [html]는 다음 definition을
준수하는 name 및 content attributes를 가져야 MUST 합니다:
name
attribute [html]의 값은 viewport이어야 MUST 합니다.
whitespace
normalization [xml] 이후
content
attribute [html]의 값은 다음 form이어야 MUST 합니다:
| 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 names 및 values에 대한 유일한 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 whitespace에 depends on하지만, Form Feed (U+000C) character는 [xml] definition에 따른 valid whitespace가 아닙니다. 이는 XML syntax(즉, XHTML content documents)에서 사용할 수 없습니다.
[html]
grammar가
meta element에 허용하는 다른 attributes에는 restrictions가
없습니다.
height 및 width properties와 그 expected values를 지정하는 방법에 대한 자세한 정보는
7.3.2
Fixed-layout document dimensions를 참조하세요.
viewport meta tag가 height 및 width 이외의 properties 사용과
height 및 width에 대한 values 생략을 허용하더라도, 그러한 사용은 강력히 권장되지 않습니다.
다른 properties를 설정하면 fixed-layout documents의 rendering에 unintended consequences가 발생할 수 있습니다.
이 appendix는 이 specification의 attributes가 vocabularies의 terms를 reference할 수 있게 하는 general set of mechanisms를 정의합니다. 또한 attributes와 함께 사용하기 위한 EPUB-specific vocabularies도 정의합니다.
vocabulary definition tables의 fields에는 다음과 같은 implicit requirements가 있습니다:
[xmlschema-2] datatypes를
사용해
REQUIRED value type을 지정합니다.
Datatypes는 xsd: prefix를 사용해 declared됩니다.
property를 지정할 MAY 있는 publication resource type(s)을 지정합니다.
이 field는 properties attribute에서 사용되는 properties에
나타납니다.
property를 지정할 MAY 있는 횟수를 지정합니다. 이는 globally 또는 다른 element나 property에 attached된 경우 모두에 해당합니다.
minimum cardinality가 one인 properties는 지정되어야 MUST 합니다.
property의 purpose를 설명하고 따라야 하는 additional usage requirements를 지정합니다.
비규범적 usage examples를 제공합니다.
property가 어떤 metadata와 associated될 MAY 있는지를 식별합니다.
이 field는 primary expressions and subexpressions 및 relationships를 정의하는 properties에 나타납니다.
metadata에 나타나야 MUST 하는 property의 이름을 지정합니다.
이 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/#입니다.
| Name: |
alternate-script
|
|---|---|
| Description: |
이 property는 일반적으로 internationalization purposes를 위해 |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or more
|
| Extends: | 모든 properties. |
| Name: |
belongs-to-collection
|
|---|---|
| Description: |
또한 각 collection instance에 대해
collection은 collection 내 EPUB publication의 position은
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or more
|
| Extends: | EPUB publication에 적용되며 자체의 다른 instances를 refine할 수 있습니다. |
| Name: |
collection-type
|
|---|---|
| Description: |
scheme이 지정되지 않은 경우, 이 specification은 다음 collection types도 정의합니다:
참고
reading systems가 이러한 values를 support할 필요는 없지만, 이를 지정하면 related EPUB publications를 더 meaningful한 방식으로 group할 option을 제공합니다. |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or one
|
| Extends: |
belongs-to-collection
|
| Name: |
display-seq
|
|---|---|
| Description: |
이 property는 precedence rules가 아직 정의되지 않은 경우에만 적용됩니다 (예: creators에는 document order에서의 appearance에 기반한 precedence가 부여됩니다). |
| Allowed value(s): |
xsd:unsignedInt
|
| Cardinality: |
zero or one
|
| Extends: | 모든 properties. |
| Name: |
file-as
|
|---|---|
| Description: | file-as property는 sorting을 위한 associated property의 normalized form을 제공합니다.
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or one
|
| Extends: | 모든 properties. |
| Name: |
group-position
|
|---|---|
| Description: |
EPUB publication은 하나 이상의 group에 속할 수 있습니다. |
| Allowed value(s): | 단일 xsd:unsignedInt 또는 decimal-separated numbers의 series (예:
1 또는 2.2.1).
|
| Cardinality: |
zero or one
|
| Extends: | 모든 properties. |
| Name: |
identifier-type
|
|---|---|
| Description: |
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or one
|
| Extends: |
dc:identifier,
dc:source
|
| 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 " |
| 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]을 참조하세요.
| Name: |
role
|
|---|---|
| Description: |
individual 또는 organization에 multiple roles를 assign할 때는 각 role을
separate |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or more
|
| Extends: |
,
,
dc:publisher
|
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을 참조하세요.
| Name: |
term
|
|---|---|
| Description: |
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or one
|
| Extends: |
|
| Name: |
title-type
|
|---|---|
| Description: |
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero or one
|
| Extends: |
dc:title
|
이 vocabulary의 properties는 metadata
link
element의 rel 및 properties attributes에서 사용할 수 있습니다.
이 properties를 referencing하기 위한 prefix URL은
http://idpf.org/epub/vocab/package/link/#입니다.
다음 values는 href attribute에서
referenced된 resource의 relationship을 establish하기 위해 link element의 rel attribute에서 사용할 수 있습니다.
| Name: |
alternate
|
|---|---|
| Description: |
|
| Cardinality: |
Zero or more
|
| Extends: | EPUB publication 또는 collection에만 적용됩니다. refines
attribute가 present한 경우 사용되어서는 MUST
NOT 됩니다. |
| Example: |
<link rel="alternate" href="package.json"
media-type="application/json-ld"/>
|
| Name: |
record
|
|---|---|
| Description: |
referenced resource가 metadata record임을 나타냅니다. 이 keyword가 지정된 경우 record의 media type은 일반적으로 linked되는 metadata record types의 list는 EPUB Linked Metadata Guide를 참조하세요. record type을 media type으로 식별할 수 없는 경우, identifier
property를
|
| Cardinality: |
Zero or more
|
| Extends: | EPUB publication 또는
collection에만 적용됩니다. refines attribute가
present한 경우 사용되어서는
MUST NOT 됩니다.
|
| Example: |
<link rel="record" href="book/52.atom"
media-type="application/atom+xml;type=entry;profile=opds-catalog"/>
|
| Name: |
voicing
|
|---|---|
| Description: |
referenced audio file이 refines attribute로 지정된 expression 또는 resource(일반적으로 title 또는 creator)의 aural representation을 제공함을 나타냅니다. 이 keyword가 지정된 경우 audio file의 media type은
|
| Cardinality: |
Zero or more
|
| Extends: | 모든 properties. 이 value가 사용될 때 refines
attribute는
present해야 MUST 합니다.
|
| Example: |
<link refines="#title" rel="voicing" media-type="audio/mpeg"
href="title.mp3" />
|
다음 values는 referenced resource가 나타내는 record type을 establish하기 위해
link
element의
properties attribute에서 사용할 수 있습니다.
이러한 values는 media type으로 unique하게 식별할 수 없는 record formats를 위해 제공됩니다.
| Name: |
onix
|
|---|---|
| Description: | onix property는 referenced resource가 ONIX record임을 나타냅니다
[onix]. |
| Example: |
<link rel="record" href="pub/meta/nor-wood-onix.xml"
media-type="application/xml" properties="onix"/>
|
이 properties를 referencing하기 위한 prefix URL은
http://www.idpf.org/vocab/rendition/#입니다.
"rendition:" prefix는 package rendering properties와 함께 사용하도록 reserved되어 있으며
package document에서 declare할 필요가 없습니다.
| Name: |
rendition:layout
|
|---|---|
| Description: |
reflowable 및 pre-paginated publications의 경우, global layout은 individual EPUB content documents에 대해 overriden될 MAY 있습니다. |
| Allowed value(s): |
다음 values 중 하나여야 MUST 합니다:
|
| Cardinality: |
zero or one
|
| Extends: | EPUB publication에만 적용됩니다. refines
attribute가
present한 경우 사용되어서는 MUST NOT 됩니다. |
| Name: |
rendition:layout-pre-paginated
|
|---|---|
| Description: |
|
| Application: |
spine
같은 properties attribute에서 다른 layout override property와 paired되어서는 MUST NOT 됩니다. roll layouts와 함께 지정되어서는 MUST NOT 됩니다. |
| Name: |
rendition:layout-reflowable
|
|---|---|
| Description: |
|
| Application: |
spine
같은 properties attribute에서 다른 layout override property와 paired되어서는 MUST NOT 됩니다. roll layouts와 함께 지정되어서는 MUST NOT 됩니다. |
| Name: |
rendition:page-spread-center
|
|---|---|
| Description: |
|
| Application: |
spine
다른 어떤 prefixed 또는 unprefixed spread placement property와도 paired되어서는 MUST NOT 됩니다. |
| Name: |
rendition:page-spread-left
|
|---|---|
| Description: |
|
| Application: |
spine
spine properties vocabulary의
|
| Name: |
rendition:page-spread-right
|
|---|---|
| Description: |
|
| Application: |
spine
spine properties vocabulary의
|
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하는 것입니다.
이 vocabulary의 properties는 manifest
item
element의 properties attribute에서 사용할 수 있습니다.
이 properties를 referencing하기 위한 prefix URL은
http://idpf.org/epub/vocab/package/item/#입니다.
| Name: |
cover-image
|
|---|---|
| Description: | cover-image property는 described publication
resource를 EPUB publication의 cover
image로 식별합니다. |
| Applies to: | 모든 raster 및 vector image types |
| Cardinality: |
Zero or one
|
| Name: |
mathml
|
|---|---|
| Description: | mathml property는 described publication
resource가
MathML markup의 하나 이상의 instances를 포함함을 나타냅니다. |
| Applies to: | EPUB content documents |
| Cardinality: |
Zero or more
|
| Name: |
remote-resources
|
|---|---|
| Description: |
자세한 정보는 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
|
| Name: |
scripted
|
|---|---|
| Description: | scripted property는 described publication
resource가
scripted content
document임을 나타냅니다(즉, scripting 및/또는 [html]
form
elements를 포함).
|
| Applies to: | EPUB content documents |
| Cardinality: |
Zero or more
|
| Name: |
svg
|
|---|---|
| Description: |
SVG markup이 resource에 직접 포함된 경우 이 property는 set되어야
MUST 하며,
SVG가 resource에서 referenced된 경우(예: [html]
|
| Applies to: | XHTML content documents; SVG content documents의 경우 value가 implied됩니다. |
| Cardinality: |
Zero or more
|
| Name: |
switch
|
|---|---|
| Description: |
|
| Applies to: | XHTML content documents. |
| Cardinality: |
Zero or more
|
이 vocabulary의 properties는 spine
itemref
element의
properties attribute에서 사용할 수 있습니다.
이 properties를 referencing하기 위한 prefix URL은
http://idpf.org/epub/vocab/package/itemref/#입니다.
| Name: |
page-spread-left
|
|---|---|
| Description: |
|
| Name: |
page-spread-right
|
|---|---|
| Description: |
|
이 vocabulary의 properties는
meta
element의
property attribute에서 사용할 수 있습니다.
이 properties를 referencing하기 위한 prefix URL은
http://idpf.org/epub/vocab/overlays/#입니다.
"media:" prefix는 이 vocabulary의 properties와 함께 사용하도록 reserved되어 있으며
package document에서 declare할 필요가 없습니다.
| 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>
|
| 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>
|
| Name: |
narrator
|
|---|---|
| Description: | narrator의 이름. |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
Zero or more
|
| Example: |
<meta property="media:narrator">Joe Speaker</meta>
|
| 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>
|
outdated feature는 deprecated되지는 않았지만 EPUB 3 reading systems에서 사용하도록 설계되지 않았거나, 상당한 기존 EPUB publications 기반을 invalid하게 만들지 않는다면 이상적으로 deprecated되었을 feature입니다.
EPUB publications는 이 절에서 정의된 outdated features를 포함할 MAY 있지만, 그 사용은 referenced definitions를 준수해야 MUST 합니다.
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을 가능하게 합니다.
EPUB 3가 IDPF에 의해 maintained되던 때,
collection element에 의존하는 여러 specifications가 개발되었습니다.
reading systems에서 adoption 및 implementation이 부족했기 때문에 이러한 specifications는 더 이상
maintained되지 않으며, 이 element의 사용은 더 이상 권장되지 않습니다.
EPUB 3 reading systems는 이러한 features를 ignore합니다. 이들은 각각
meta
element,
landmarks nav, 그리고 toc
nav로 대체됩니다.
이 features는 EPUB 2만 support하는 reading systems와의 backwards compatibility를 어느 정도 제공하기 위해서만 유지됩니다. 이러한 reading systems는 이제 드물기 때문에, 이러한 features를 포함하는 가치는 제한적입니다.
-epub-text-orientation
[epub-33]
-epub-writing-mode
[epub-33]
-epub-text-combine-horizontal
[epub-33]
-epub-hyphens
[epub-33]
-epub-line-break [epub-33]
-epub-text-align-last
[epub-33]
-epub-word-break [epub-33]
text-transform value -epub-fullwidth [epub-33]-epub-text-emphasis-color
[epub-33]
-epub-text-emphasis-position
[epub-33]
-epub-text-emphasis-style
[epub-33]
-epub-text-underline-position
[epub-33]
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 checkers가 EPUB publications에 outdated features가 존재한다는 이유만으로 alerts를 issue하지 않도록 권고합니다. feature가 그 definition을 준수하지 않거나 usage requirement를 otherwise break하는 경우에만 alerts를 issue하세요.
deprecated feature는 reading systems 및/또는 EPUB publications에서 support나 usage가 제한적이거나 없는 feature입니다.
다음 deprecated features는 사용하지 않는 것이 좋습니다 SHOULD NOT. 사용할 경우 그 usage는 referenced definitions를 준수해야 MUST 합니다.
xsd reserved prefix
[epub-33] for package metadata.
msv 및
prism
reserved prefixes [epub-33] for structural
semantics.
marc21xml-record
property [epubpublications-30] —
이는 media-type attribute value
"application/marcxml+xml"와 함께 사용하는 record keyword로
대체됩니다.
mods-record
property [epubpublications-30] — 이는
media-type attribute value
"application/mods+xml"와 함께 사용하는 record
keyword로
대체됩니다.
onix-record
property [epubpublications-30] — 이는
properties attribute value onix와 함께 사용하는 record keyword로
대체됩니다.
Working Group은 EPUB conformance checkers가 EPUB publications에서 deprecated features를 encountered할 때 그 존재에 대해 alert할 것을 권장합니다.
이 절은 비규범적입니다.
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 밖에서 발생할 수 있습니다. 따라서 언제든지 변경될 수 있습니다.
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가 필요합니다.
encryption.xml
files를 위한 schema는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.
signatures.xml
files를 위한 schema는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.
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으로 대체할 수 있습니다.
이 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합니다.
application
oebps-package+xml
없음.
없음.
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]을 참조하세요.
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이 없습니다.
없음.
이 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을 사용합니다.
이 media type은 EPUB format의 ebooks distribution에 널리 사용됩니다.
none
.opf
TEXT
EPUB Canonical Fragment Identifiers는 EPUB Publications에 대해 정의된 custom fragment identifiers입니다. 이들은 publication을 위해 defined된 모든 publication resource 내의 임의 content를 refer하는 데 사용될 수 있습니다. 이러한 identifiers는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.
Publishing Maintenance Working Group (epub-maintenance@w3.org)
COMMON
World Wide Web Consortium (W3C)
이 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합니다.
application
epub+zip
없음.
없음.
OCF ZIP container files는
application/zip media type으로 encoded된 binary files입니다.
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에도 적용됩니다.
없음.
이 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을 사용합니다.
이 media type은 EPUB format의 ebooks distribution에 널리 사용됩니다.
0: PK 0x03 0x04, 30: mimetype, 38:
application/epub+zip
OCF ZIP container files는 대부분 extension
.epub으로 식별됩니다.
ZIP
EPUB Canonical Fragment Identifiers는 EPUB Publications에 대해 정의된 custom fragment identifiers입니다. 이들은 publication을 위해 defined된 모든 publication resource 내의 임의 content를 refer하는 데 사용될 수 있습니다. 이러한 identifiers는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.
Publishing Maintenance Working Group (epub-maintenance@w3.org)
COMMON
World Wide Web Consortium (W3C)
audio
§9.3.2.2.8
body
§9.3.2.2.4
Compression
§4.2.6.3.2.2
container
§4.2.6.3.1.1
dc:contributor
§5.6.3.2.2
dc:creator
§5.6.3.2.3
dc:date
§5.6.3.2.4
dc:identifier
§5.6.3.1.1
dc:language
§5.6.3.1.3
dc:subject
§5.6.3.2.5
dc:title
§5.6.3.1.2
dc:type
§5.6.3.2.6
EncryptedData
§4.2.6.3.2.1
EncryptedKey
§4.2.6.3.2.1
encryption
§4.2.6.3.2.1
epub:type
§7.4.3.2
head
§9.3.2.2.2
item
§5.7.2
itemref
§5.8.2
link
§5.6.6
links
§4.2.6.3.1.4
manifest
§5.7.1
meta
§5.6.4
metadata
§5.6.1
package
§5.5
par
§9.3.2.2.6
rootfile
§4.2.6.3.1.3
rootfiles
§4.2.6.3.1.2
seq
§9.3.2.2.5
signatures
§4.2.6.3.6.1
smil
§9.3.2.2.1
spine
§5.8.1
text
§9.3.2.2.7
a
element
area
element
base
element
bdo
element
canvas
element
content attribute (for meta
element)
dir attribute (for html-global
element)
div
element
embed
element
form
element
href attribute (for a element)
html
element
iframe
element
img
element
li
element
name attribute (for meta
element)
object
type
ol
element
picture
element
role
attribute
rp
element
script
element
source
element
span
element
src attribute (for source
element)
srcset attribute (for source
element)
style attribute (for html-global
element)
template element
track
element
type attribute (for source
element)
video
element
list)
svg
element
title
element
이 절은 비규범적입니다.
이 change log는 EPUB 3.3 이후의 substantive changes만 식별한다는 점에 유의하세요 — 즉 EPUB publications의 conformance에 영향을 줄 수 있는 changes입니다.
addressed된 모든 issues의 list는 Working Group's issue tracker를 참조하세요.
rendition:align-x-center property를 deprecated했습니다. issue 2847을 참조하세요.rendition:flow, rendition:orientation,
rendition:spread와 그 override equivalents를 outdated
features list에 추가했습니다. issue 2841 및
related Working Group
resolution을 참조하세요.
collection element, legacy package document features 및
prefixed CSS properties를 그곳으로 이동했습니다. issue
2807을 참조하세요.xsd, msv 및 prism reserved
prefixes를 deprecated features section으로 이동했습니다. issue 2739를 참조하세요.source-of를 대체하기 위해 pageBreakSource property를
meta properties vocabulary에 추가했습니다. issue
2714를 참조하세요.application/x-font-ttf를
추가했습니다. issue 667을 참조하세요.
script elements에서 referenced된 resources가 exempt임을 clarified했습니다.
issue 2649를 참조하세요.
이 절은 비규범적입니다.
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에 기여했습니다:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: