다음도 참조하십시오 번역.
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이 Recommendation 트랙을 사용하여 Recommendation으로 공개했습니다.
W3C는 이 명세를 웹의 표준으로 널리 배포할 것을 권고합니다.
W3C Recommendation은 광범위한 합의 형성 이후 W3C와 그 회원들이 승인하고, Working Group 구성원들이 구현에 대해 로열티 없는 라이선스를 약속한 명세입니다. 이 Recommendation의 향후 업데이트에는 새 기능이 포함될 수 있습니다.
이 문서는 W3C 특허 정책에 따라 운영되는 그룹이 작성했습니다. W3C는 이 그룹의 산출물과 관련하여 제출된 모든 특허 공개의 공개 목록을 유지하며, 해당 페이지에는 특허를 공개하기 위한 지침도 포함되어 있습니다. 개인이 필수 청구항을 포함한다고 믿는 특허에 대해 실제 지식을 가지고 있는 경우, 그 개인은 W3C 특허 정책 제6절에 따라 해당 정보를 공개해야 합니다.
이 문서는 2025년 8월 18일 W3C Process Document의 적용을 받습니다.
이 섹션은 비규범적입니다.
EPUB 3는 디지털 도서(전자책)를 위한 형식으로 널리 채택되어 왔으며, 이번 개정판은 복잡한 레이아웃, 풍부한 미디어와 상호작용성, 전 세계 타이포그래피 기능을 포함하여 더 넓은 범위의 출판 요구사항을 더 잘 지원하도록 이 형식의 기능을 계속 확장합니다. 출판자는 도서, 잡지, 교육용·전문용·과학용 출판물을 포함한 폭넓은 콘텐츠에 EPUB 3 형식을 활용할 것으로 예상됩니다.
이 명세는 EPUB 3의 핵심을 나타내며, 이 표준의 산출물인 EPUB 출판물에 대한 적합성 요구사항을 포함합니다. EPUB 3를 구성하는 다른 명세는 다음과 같습니다.
EPUB 3 Reading Systems [epub-rs-33] — EPUB 읽기 시스템에 대한 처리 요구사항을 정의합니다. EPUB 읽기 시스템은 EPUB 출판물을 소비하고 그 콘텐츠를 사용자에게 제시하는 애플리케이션입니다.
EPUB Accessibility [epub-a11y-11] — EPUB 출판물에 대한 접근성 적합성 및 발견 요구사항을 정의합니다.
이러한 명세는 EPUB 3에 속하는 것으로 인정되는 공식 목록을 나타내며, 표준의 일부로 규범적으로 참조되는 기능을 포함합니다. 확장 명세의 개발은 주기적으로 EPUB 출판물에 새로운 기능을 추가합니다. 표준의 핵심 개정판 밖에서 정의된 특징과 기능은 이 명세에서 공식적으로 인정되지 않더라도 EPUB 제작자와 읽기 시스템 개발자가 사용할 수 있습니다.
비규범적인 EPUB 3 Overview [epub-overview-33]는 EPUB 3에 대한 일반적인 소개를 제공합니다. 이전 버전에서의 기술적 변경 목록도 변경 로그에서 확인할 수 있습니다.
이 섹션은 비규범적입니다.
이 섹션은 이 명세가 정의하는 중심 산출물인 EPUB 출판물을 통해 이 명세의 구성을 검토합니다.
가장 기본적인 의미에서 EPUB 출판물은 콘텐츠를 논리적 순서로 제시하기 위해 해당 리소스를 렌더링하는 방법에 대한 지침을 포함한 리소스 묶음입니다. EPUB 출판물에서 허용되는 리소스의 유형과 그 사용에 대한 제한은 3. 출판물 리소스에서 정의됩니다.
파일 확장자가 .epub인 ZIP 기반 아카이브는 배포를 위해 EPUB 출판물의
리소스를 묶습니다. EPUB 출판물은 적합한 ZIP 아카이브이므로 많은
소프트웨어 프로그램으로 압축을 풀 수 있어 제작과 소비가 모두 단순해집니다.
컨테이너 형식은 압축된 콘텐츠가 EPUB 출판물을 나타낸다는 것을 판별하는 수단
(mimetype 파일)을 제공할 뿐 아니라, 비규범 리소스를 위한 보편적으로 명명된
디렉터리(/META-INF)도 제공합니다. 이러한 리소스 중 핵심은
container.xml 파일이며, 이 파일은 읽기 시스템을 사용 가능한 패키지 문서로
안내합니다. 컨테이너 형식에 대한 자세한 내용은
4. Open Container Format (OCF)을 참조하십시오.
EPUB 출판물은 일반적으로 하나의 패키지 문서로 표현됩니다. 이 문서는 읽기 시스템이 사용자에게 콘텐츠를 제시하는 데 사용하는 메타데이터를 포함합니다. 예를 들어 책장에 표시할 제목과 저자, 그리고 콘텐츠가 리플로우 가능한지 또는 고정 레이아웃인지 여부 같은 렌더링 메타데이터가 포함됩니다. 또한 리소스의 매니페스트를 제공하고, 사용자가 콘텐츠를 진행해 나갈 때 문서를 렌더링할 기본 순서를 나열하는 스파인을 포함합니다. 패키지 문서에 대한 요구사항은 5. 패키지 문서를 참조하십시오.
EPUB 출판물의 실제 콘텐츠 — 사용자가 읽기 시작할 때 제시되는 내용 — 는 Open Web Platform을 기반으로 하며 XHTML과 SVG 두 가지 유형으로 제공됩니다. 이러한 문서는 EPUB 콘텐츠 문서라고 하며, 일반적으로 올바른 렌더링에 필요한 이미지, 오디오 및 비디오 클립, 스크립트, 스타일 시트 같은 여러 추가 리소스를 참조합니다.
EPUB 콘텐츠 문서를 만들기 위한 규칙과 요구사항에 대한 자세한 정보는 6. EPUB 콘텐츠 문서를 참조하고, 접근성 요구사항은 [epub-a11y-11]를 참조하십시오.
EPUB 출판물에는 EPUB 탐색 문서라는 또 다른 핵심 파일도 포함됩니다. 이 문서는 목차와 같은 중요한 탐색 기능을 제공하여 사용자가 콘텐츠를 빠르고 쉽게 탐색할 수 있게 합니다. 탐색 문서는 특수한 유형의 XHTML 콘텐츠 문서이며, EPUB 제작자가 이를 콘텐츠 안에서 사용할 수도 있게 합니다(즉, 기계 처리를 위한 목차와 사용자 소비를 위한 또 다른 목차를 따로 만들지 않도록 함). 이 문서에 대한 자세한 내용은 7. EPUB 탐색 문서를 참조하십시오.
EPUB 출판물은 기본적으로 사용 가능한 화면 공간에 맞게 리플로우되도록 의도됩니다. 이미지 및/또는 CSS 위치 지정을 사용하여 픽셀 단위로 정밀한 고정 레이아웃을 가진 출판물을 만드는 것도 가능합니다. 레이아웃을 제어하는 메타데이터는 8. 레이아웃 렌더링 제어에서 정의됩니다.
미디어 오버레이 문서는 EPUB 콘텐츠 문서를 보완합니다. 이 문서는 EPUB 콘텐츠 문서의 텍스트를 사전 녹음된 오디오와 동기화하기 위한 선언적 마크업을 제공합니다. 그 결과 읽기 시스템이 내레이션에 맞춰 텍스트를 강조 표시하는 낭독 경험을 만들 수 있습니다. 미디어 오버레이 문서의 정의는 9. 미디어 오버레이를 참조하십시오.
개념적으로는 단순하지만 EPUB 출판물은 여기서 제시한 것처럼 ZIP 패키지 안의 HTML 페이지와 종속 자산의 모음 이상입니다. EPUB 출판물이 읽기 경험을 향상하기 위해 제공하는 주요 특징과 기능에 대한 추가 정보는 참조된 명세에서 확인할 수 있으며, EPUB 3의 기능에 대한 더 일반적인 소개는 비규범적인 [epub-overview-33]에서 제공합니다.
읽기 시스템에 대한 처리 요구사항은 [epub-rs-33]를 참조하십시오. EPUB 제작자가 EPUB 출판물을 만들기 위해 그 문서를 반드시 읽을 필요는 없지만, 읽기 시스템이 콘텐츠를 어떻게 제시하는지 이해하면 사용자에게 최적으로 제시되는 출판물을 만드는 데 도움이 될 수 있습니다.
이 섹션은 비규범적입니다.
EPUB 3가 기반으로 삼는 기술은 끊임없이 진화하고 있습니다. 일반적으로 "living" 또는 "evergreen" 표준이라고 불리는 일부 표준은 매일 변경될 수 있으며, EPUB 출판물의 유효성에 미치는 영향은 즉각적입니다. 다른 표준은 업데이트 빈도가 낮으며, EPUB 3가 새 개정을 거치기 전까지는 변경 사항이 EPUB 출판물에 영향을 주지 않을 수 있습니다.
모든 경우에, 이전에는 유효했던 기능이 더 이상 사용되지 않게 될 수 있습니다 (예: 지원 부족 또는 보안 문제 때문). 따라서 EPUB 제작자는 폭넓은 지원이 없는 기능을 사용할 때 주의해야 하며 EPUB 적합성 검사기를 최신 상태로 유지해야 합니다.
[html] 표준은 지속적으로 진화하고 있으며, 더 이상 버전별 릴리스가 없습니다. 이 표준은 다시 MathML, SVG, CSS, JavaScript와 같이 계속 진화하는 여러 기술을 참조합니다.
EPUB에 대한 이 접근 방식의 이점은 EPUB 출판물이 새로운 개정 없이도 항상 웹의 변경 사항을 따라갈 수 있다는 것입니다. 그러나 EPUB 제작자는 자신의 프로세스를 최신 상태로 유지하기 위해 HTML 및 HTML이 참조하는 다양한 기술의 변경 사항을 추적해야 합니다.
이 명세에서 정의하는 XHTML 프로필은 달리 명시되지 않는 한 의미, 구조 및 처리 동작의 모든 정의를 HTML에서 상속합니다.
또한 이 명세는 EPUB 제작자가 XHTML 콘텐츠 문서에 포함할 수 있는 [html] 문서 모델에 대한 확장 집합을 정의합니다.
이 명세는 [svg]의 특정 버전을 참조하지 않고 날짜 없는 참조를 사용합니다. 이 참조에 모호성이 있는 경우에는 최신 권고 명세가 권위 있는 참조입니다.
이 접근 방식은 EPUB이 SVG 표준의 변경 사항을 항상 따라가도록 보장합니다. 그러나 EPUB 제작자는 자신의 프로세스를 최신 상태로 유지하기 위해 SVG 표준의 변경 사항을 추적해야 합니다.
EPUB 3는 CSS Working Group Snapshot [csssnapshot]에서 정의한 CSS를 지원합니다. EPUB 3는 전 세계 언어에 대한 일관된 지원을 보장하기 위해 일부 접두사 CSS 속성도 유지합니다.
EPUB 3는 Presentation Markup [mathml3]만 지원합니다. Content Markup은 구조화된 마크업 주석 안에서만 허용됩니다.
이 명세는 [smil3]의 하위 집합에 의존하며, 9.2.2 미디어 오버레이 문서 정의에서 정의하는 미디어 오버레이 요소와 속성은 이 하위 집합에서 파생됩니다.
이 명세는 EPUB 출판물에서 표현된 URL과 관련된 용어 및 처리에 대해 [url] 표준을 참조합니다. 새롭거나 개정된 웹 형식은 이 표준을 채택할 것으로 예상되지만, 그 전까지는 이 명세가 일부 형식의 내부 요구사항(예: 유효한 상대 경로)과 충돌할 수 있습니다. 특히 국제화된 URL 사용과 관련하여 그렇습니다. 어떤 형식이 국제화된 URL을 허용하지 않는 경우(즉, URL이 [rfc3986] 또는 이전 규격을 준수해야 하는 경우), 해당 요구사항이 그 리소스 내에서 우선합니다.
이 명세는 EPUB 3에 특화된 다음 용어를 정의합니다.
한 섹션에서 용어가 처음 나타나는 경우에만 해당 정의로 링크됩니다.
Codec은 최적의 압축을 위해 설계되었거나 최적화된 스트리밍 기능을 제공하는 비디오 및 오디오 미디어 유형처럼, 고유한 이진 형식 특성을 가진 콘텐츠를 가리킵니다.
출판물 리소스 중 EPUB 컨테이너 안에 위치한 리소스를 말합니다. 이는 EPUB 컨테이너 안에 있지 않은 원격 리소스와 대비됩니다.
리소스 위치에 대한 미디어 유형별 규칙은 3.6 리소스 위치를 참조하십시오.
URL [url]로서, OCF 추상 컨테이너를 나타내는 루트 디렉터리의 URL입니다. 이는 구현별로 다르지만, EPUB 제작자는 이것이 4.2.5 OCF 추상 컨테이너의 URL에서 정의한 속성을 가진다고 가정해야 합니다.
URL로서, OCF 추상 컨테이너 안의 파일 또는 디렉터리의 URL이며, 4.2.5 OCF 추상 컨테이너의 URL에서 정의됩니다.
출판물 리소스 중 3.2 핵심 미디어 유형에 나열된 MIME 미디어 유형 [rfc2046] 중 하나를 준수하여, 따라서 폴백을 제공할 필요가 없는 리소스를 말합니다 (cf. 외부 리소스).
"core media type resource"라는 명칭은 리소스가 EPUB 콘텐츠 문서 및 외부 콘텐츠 문서의 렌더링에 사용될 때만 적용됩니다. 예를 들어 핵심 미디어 유형 리소스가 EPUB 콘텐츠 문서의 미디어 유형도 갖고 있지 않다면, 폴백 없이 스파인에서 사용할 수 없습니다.
EPUB 출판물에 대해 이 명세의 요구사항을 검증하고 그 적합성을 보고하는 애플리케이션입니다.
EPUB 출판물을 위한 ZIP 기반 패키징 및 배포 형식이며, 4.3 OCF ZIP 컨테이너에서 정의됩니다.
EPUB container와 OCF ZIP container는 동의어입니다.
출판물 리소스 중 스파인 또는 매니페스트 폴백 체인에서 참조되며, XHTML 또는 SVG 콘텐츠 문서 정의 중 하나를 준수하는 리소스를 말합니다.
EPUB 콘텐츠 문서는 EPUB 출판물의 콘텐츠 전체 또는 일부 (즉, 텍스트, 시각 및/또는 오디오 콘텐츠)를 포함합니다.
EPUB 출판물을 제작하는 개인, 조직 또는 프로세스입니다.
EPUB 출판물의 제작에는 많은 개인의 작업이 관여하는 경우가 많으며, 여러 조직에 걸쳐 나뉠 수 있습니다(예: 출판사가 작업의 전부 또는 일부를 외주하는 경우). EPUB 출판물을 제작하는 데 사용되는 프로세스에 따라 책임은 조직(예: 출판사), 출판물을 준비하는 개인 (예: 기술 편집자), 또는 자동 절차(예: 출판 파이프라인의 일부)에 있을 수 있습니다. 그 결과 모든 당사자나 프로세스가 모든 요구사항이 충족되도록 보장할 책임을 지는 것은 아니지만, 최종 EPUB 출판물의 적합성에 책임을 지는 EPUB 제작자는 항상 존재합니다.
이 명세의 이전 버전에서는 EPUB 제작자를 라고 불렀습니다.
자세한 내용은 5.6.1
manifest 요소를 참조하십시오.
인간과 기계가 읽을 수 있는 전역 탐색 정보를 포함하는 XHTML 콘텐츠 문서의 특수화입니다. EPUB 탐색 문서는 7. EPUB 탐색 문서에서 표현된 제약을 준수합니다.
EPUB 컨테이너에 패키징된 상호 관련 리소스 집합으로 구성된 논리적 문서 엔티티입니다.
EPUB 출판물은 일반적으로 하나의 지적 또는 예술적 저작물을 나타내지만, 이 명세는 콘텐츠의 성격을 제한하지 않습니다.
이 명세에 적합한 방식으로 사용자에게 제시하기 위해 EPUB 출판물을 처리하는 시스템입니다.
패키지 문서에서 EPUB 콘텐츠 문서 및 외부 콘텐츠 문서의 순서 있는 목록을 정의하는 섹션입니다. 이 목록은 EPUB 출판물의 기본 읽기 순서를 나타냅니다.
자세한 내용은 5.7.1
spine 요소를 참조하십시오.
Exempt resources는 출판물 리소스의 특수한 분류로, 읽기 시스템이 그 렌더링을 지원할 필요는 없지만 EPUB 제작자도 이를 위한 폴백을 제공할 필요가 없습니다.
자세한 내용은 3.4 면제 리소스를 참조하십시오.
OCF 추상 컨테이너 안의 모든 유형의 파일 이름을 말하며, 디렉터리인지 또는 디렉터리 안의 파일인지 여부와 무관합니다.
파일 또는 디렉터리의 파일 경로는 루트 디렉터리를 기준으로 한 전체 경로이며, 4.2.4 파일 경로 도출에서 지정한 알고리즘으로 정의됩니다.
EPUB 콘텐츠 문서 중 고정 치수를 가지며
스파인에서
직접 참조되는 문서입니다.
고정 레이아웃 문서는 패키지 문서에서 pre-paginated로
지정되며, 이는 8.2 고정 레이아웃에서
정의됩니다.
출판물 리소스 중
스파인
요소에서 참조되거나,
매니페스트 폴백 체인에서 참조되며,
EPUB 콘텐츠 문서가 아닌 모든 리소스를
말합니다.
itemref
외부 콘텐츠 문서가 스파인 itemref 요소에서 참조되는 경우,
적어도 하나의 EPUB 콘텐츠 문서를 포함하는 매니페스트 폴백 체인이 필요합니다.
XHTML과 SVG를 제외하고, 모든 핵심 미디어 유형 리소스는 스파인에서 직접 참조될 때 외부 콘텐츠 문서가 됩니다.
MIME 미디어 유형 [rfc2046]을 가진 출판물 리소스 중 3.2 핵심 미디어 유형에 나열된 어떤 유형과도 일치하지 않는 리소스입니다. 외부 리소스는 3.3 외부 리소스에서 정의한 폴백 요구사항의 적용을 받습니다.
"foreign resource"라는 명칭은 EPUB 콘텐츠 문서 및 외부 콘텐츠 문서의 렌더링에 사용되는 리소스에만 적용됩니다.
Foreign resource와 foreign content document는 서로 바꿔 쓸 수 있는 용어가 아닙니다. 스파인에서 사용될 때 외부로 간주되는 리소스의 유형은 EPUB 콘텐츠 문서에서 사용될 때 외부로 간주되는 리소스의 유형보다 더 넓습니다.
패키지
문서의
요소에서만 참조되는 리소스입니다(즉,
EPUB
출판물의 렌더링에 함께 사용되지 않음).
link
링크된 리소스는 출판물 리소스가 아니지만 EPUB 컨테이너에 저장될 수 있습니다. 폴백은 필요하지 않습니다.
XHTML 콘텐츠 문서를 사전 녹음된 오디오 내레이션과 연결하여, 9. 미디어 오버레이에서 정의한 동기화 재생 경험을 제공하는 XML 문서입니다.
Non-codec은 내부 데이터 구조의 특성상 압축으로 이점을 얻는 콘텐츠 유형을 가리킵니다. 예를 들어 HTML, CSS 등 문자 문자열에 기반한 파일 형식이 있습니다.
OCF 추상 컨테이너는 OCF ZIP 컨테이너의 콘텐츠를 위한 파일 시스템 모델을 정의하며, 이는 4.2 OCF 추상 컨테이너에서 정의됩니다.
EPUB 출판물의 렌더링을 설명하는 출판물 리소스이며, 5. 패키지 문서에서 정의됩니다. 패키지 문서는 EPUB 출판물에 대한 메타 정보를 담고, 리소스의 매니페스트를 제공하며, 기본 읽기 순서를 정의합니다.
EPUB 출판물의 논리와 렌더링에 기여하는 콘텐츠 또는 지침을 포함하는 리소스입니다. 이 리소스가 없으면 읽기 시스템은 EPUB 제작자가 의도한 대로 EPUB 출판물을 렌더링하지 못할 수 있습니다. 출판물 리소스의 예로는 패키지 문서, EPUB 콘텐츠 문서, CSS 스타일 시트, 오디오, 비디오, 이미지, 포함된 글꼴 및 스크립트가 있습니다.
EPUB 제작자는 출판물 리소스를 패키지 문서의 매니페스트에 나열해야 하며, 일반적으로 모두 EPUB 컨테이너에 묶습니다 (예외적으로 3.6 리소스 위치에 나열된 리소스는 EPUB 컨테이너 밖에 위치시킬 수 있음).
출판물 리소스 중 EPUB 컨테이너 바깥, 일반적으로 웹에 위치한 리소스입니다.
EPUB 컨테이너 안의 출판물 리소스는 컨테이너 리소스라고 합니다.
리소스 위치에 대한 미디어 유형별 규칙은 3.6 리소스 위치를 참조하십시오.
루트 디렉터리는 OCF 추상 컨테이너 파일 시스템의 기반을 나타냅니다. 이 디렉터리는 본질적으로 가상입니다.
스크립팅을 포함하는 EPUB 콘텐츠 문서, 또는
[html]
form
요소를 포함하는 XHTML 콘텐츠 문서입니다.
자세한 내용은 6.3.2 스크립팅을 참조하십시오.
EPUB 콘텐츠 문서 중 6.2 SVG 콘텐츠 문서에서 표현된 제약을 준수하는 문서입니다.
장치 화면에서 인접한 두 페이지를 동시에 렌더링하는 것입니다.
EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서 중 직접 또는 폴백 체인을 통해 스파인에서 참조되는 문서입니다.
EPUB 출판물에 대한 기본
식별자입니다. 고유 식별자는 unique-identifier
속성으로
지정된
패키지 문서 안의
요소의
값입니다.
dc:identifier
콘텐츠의 중대한 개정, 축약 등은 새 고유 식별자를 필요로 합니다.
EPUB 읽기 시스템에서 EPUB 출판물이 사용자에게 시각적으로 렌더링되는 영역입니다.
EPUB 콘텐츠 문서 중 6.1 XHTML 콘텐츠 문서에서 정의한 [html] 프로필을 준수하는 문서입니다.
비규범으로 표시된 섹션뿐 아니라, 이 명세의 모든 저작 지침, 다이어그램, 예제 및 참고는 비규범적입니다. 이 명세의 그 밖의 모든 내용은 규범적입니다.
이 문서에서 핵심어 MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD, 그리고 SHOULD NOT은 여기에 표시된 것처럼 모두 대문자로 나타날 때에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석되어야 합니다.
모든 알고리즘 설명은 비규범적입니다.
이 섹션은 비규범적입니다.
패키지 문서 메타데이터 예제에서는 예약된 접두사가 선언 없이 사용됩니다.
Dublin Core 요소 [dcterms]에 대한 참조는 dc: 접두사를
사용합니다. 이 접두사는 그 사용이 유효하려면
패키지 문서에서 선언되어야 합니다
(xmlns:dc="http://purl.org/dc/elements/1.1/")
epub 네임스페이스 접두사 [xml-names]도
항상 명시적 선언이 있는 것은 아니지만 요소와 속성에서 사용됩니다
(xmlns:epub="http://www.idpf.org/2007/ops").
EPUB 출판물은 다음을 만족해야 합니다.
MUST 그 콘텐츠의 적어도 하나의 렌더링을 다음과 같이 정의해야 합니다.
SHOULD [epub-a11y-11]에 정의된 접근성 요구사항을 준수해야 합니다.
MUST EPUB 컨테이너에 패키징되어야 하며, 이는 4. Open Container Format (OCF)에서 정의됩니다.
또한 모든 출판물 리소스는 3. 출판물 리소스의 요구사항을 MUST 준수해야 합니다.
이 명세의 나머지 부분은 구체적인 적합성 세부사항을 다룹니다.
이 섹션은 비규범적입니다.
이 명세의 복잡성과 EPUB 출판물에서 사용되는 기술의 수 때문에, EPUB 제작자는 자신의 콘텐츠의 적합성을 검증하기 위해 EPUB 적합성 검사기를 사용하는 것이 권장됩니다.
EPUBCheck는 출판 업계에서 사용하는 사실상의 EPUB 적합성 검사기이며, EPUB의 각 새 버전에 맞춰 업데이트되어 왔습니다. 이는 여러 저작 도구에 통합되어 있으며, 대체 인터페이스와 다른 언어로도 제공됩니다(자세한 내용은 Apps and Tools 페이지를 참조하십시오).
EPUB 제작자는 자신의 EPUB 출판물을 검증할 때 이 명세의 요구사항 (키워드 "MUST", "MUST NOT" 및 "REQUIRED"로 식별되는 관행)을 위반하지 않는지 확인해야 합니다. 이러한 유형의 문제는 종종 EPUB 출판물이 렌더링되지 않거나 일관되지 않은 방식으로 렌더링되는 결과를 낳습니다. 이러한 문제는 일반적으로 오류 또는 치명적 오류로 보고됩니다.
EPUB 제작자는 또한 자신의 EPUB 출판물이 이 명세의 권고사항 (키워드 "SHOULD", "SHOULD NOT" 및 "RECOMMENDED"로 식별되는 관행)을 위반하지 않는지 확인해야 합니다. 이러한 관행을 따르지 않아도 유효하지 않은 EPUB 출판물이 되는 것은 아니지만, 상호운용성 문제와 사용자 읽기 경험에 영향을 미치는 기타 문제로 이어질 수 있습니다. 이러한 문제는 일반적으로 경고로 보고됩니다.
EPUB 출판물의 공급업체, 배포업체 및 기타 소매업체는 EPUB 적합성 검사기에서 문제가 하나도 없다는 결과만을 근거로 수락 또는 거부를 결정하기 전에 권장 관행의 중요성을 고려해야 합니다. EPUB 제작자가 모든 경우에 권장 관행을 따를 수 없는 정당한 이유가 있을 수 있습니다.
이 섹션은 비규범적입니다.
EPUB 출판물은 여러 다른 범주의 리소스로 구성되며, 이 범주들이 모두 상호 배타적인 것은 아닙니다. 어떤 리소스는 출판물 리소스이고, 어떤 것은 그렇지 않습니다. 일부 출판물 리소스는 기본적으로 스파인에서 허용되지만, 그 밖의 모든 리소스에는 폴백이 필요합니다. 일부 리소스는 EPUB 콘텐츠 문서의 렌더링에 사용될 수 있으며, 다른 리소스는 폴백과 함께만 사용할 수 있습니다.
각 리소스 범주의 기술적 정의를 읽어 이러한 차이를 이해하려는 것은 복잡할 수 있습니다. 범주화를 더 쉽게 이해할 수 있도록, 이 소개에서는 리소스가 어떻게 그룹화되고 참조되는지 설명하기 위해 서로 다른 평면이라는 개념을 사용합니다.
세 평면은 다음과 같습니다.
동일한 리소스가 둘 이상의 평면에 존재할 수 있으며, 이 명세에서는 어떤 평면을 논의하는지에 따라 다르게 참조됩니다. 예를 들어 EPUB 콘텐츠 문서의 렌더링에 사용되는 핵심 미디어 유형 리소스(콘텐츠 평면)는 스파인에도 나열되어 있다면 외부 콘텐츠 문서(스파인 평면)가 될 수도 있습니다.
다음 섹션에서는 이러한 평면을 더 자세히 설명합니다.
리소스가 서로 다른 평면에 어떻게 들어맞는지 보여주는 상세한 예제는 H.1 리소스를 참조하십시오.
매니페스트 평면은 EPUB 출판물의 모든 리소스를 정의합니다. 이는 패키지 문서의 매니페스트와 유사하지만, 그 목록에 없는 리소스도 포함합니다.
이 그룹의 주요 리소스는 출판물 리소스로 지정되며, 이는 EPUB 출판물을
사용자에게 렌더링하는 데 사용되는 모든 리소스입니다. EPUB 제작자는
항상 이러한 리소스를
요소에 나열해야 합니다.
manifest
출판물 리소스는 스파인 평면 및 콘텐츠 평면에서의 사용에 따라 추가로 분류됩니다.
매니페스트 평면에는 링크된 리소스 집합도 포함됩니다. 이러한 리소스는 직접 렌더링과는 부수적인 관계에 있습니다. 예를 들어 메타데이터 레코드와 외부 콘텐츠로의 링크 (예: EPUB 출판물을 구매할 위치)가 여기에 포함됩니다.
출판물 리소스와 달리, 이러한 리소스는 패키지 문서 매니페스트에 나열되지 않습니다
(즉, EPUB 출판물 렌더링에 필수적이지 않기 때문입니다). 대신 패키지 문서 메타데이터의
요소에서 정의됩니다. 이러한 요소는 매니페스트
link
요소가 출판물 리소스를 정의하는 방식과 유사하게 그 성격과 목적을 정의합니다. (이런 방식으로,
이는 매니페스트의 확장과 같습니다.)
item
링크된 리소스에 대한 자세한 내용은 5.5.6
link 요소를 참조하십시오.
매니페스트 평면의 리소스는 때때로 위치한 장소에 따라 다시 나뉩니다. 대부분의 출판물 리소스는 EPUB 컨테이너 안에 위치해야 하지만(이를 컨테이너 리소스라고 함), EPUB 3는 오디오, 비디오, 글꼴 및 스크립트 데이터 리소스를 컨테이너 밖에 호스팅하는 것을 허용합니다. 이러한 예외는 EPUB 출판물의 다운로드와 로딩 속도를 높이기 위해 만들어졌습니다. 이러한 리소스는 일반적으로 상당히 크며, 글꼴의 경우 표시에는 필수적이지 않기 때문입니다. 원격으로 호스팅되는 경우 이러한 출판물 리소스는 원격 리소스라고 합니다.
링크된 리소스는 EPUB 출판물 렌더링에 필수적이지 않으므로, 그 위치에 대한 요구사항이 없으며 따라서 위치에 따른 특별한 명칭도 없습니다. EPUB 컨테이너 안에 있을 수도 있고 바깥에 있을 수도 있습니다.
EPUB 컨테이너 밖의 하이퍼링크된 콘텐츠(예: 웹 페이지)는 출판물 리소스가 아니므로 매니페스트에 나열되지 않습니다. 읽기 시스템은 일반적으로 이러한 링크를 EPUB 출판물의 일부가 아니라 별도의 브라우저 인스턴스에서 엽니다.
스파인 평면은 스파인이 설정한 기본 읽기 순서에 사용되는 리소스를 정의하며, 여기에는 선형 및 비선형 콘텐츠가 모두 포함됩니다. 스파인은 사용자가 EPUB 출판물을 진행함에 따라 이러한 리소스를 어떻게 로드할지 읽기 시스템에 지시합니다. 많은 리소스가 EPUB 컨테이너에 묶일 수 있지만, 모두가 기본적으로 스파인에서 허용되는 것은 아닙니다.
EPUB 3는 EPUB 콘텐츠 문서라는 특별한 리소스 분류를 정의하며, EPUB 제작자는 이를 아무 제한 없이 스파인에서 사용할 수 있습니다. EPUB 콘텐츠 문서는 XHTML 콘텐츠 문서와 SVG 콘텐츠 문서를 모두 포함합니다.
외부 콘텐츠 문서라고 하는 다른 유형의 리소스를 스파인에서 사용하려면 EPUB 콘텐츠 문서로의 폴백을 포함해야 합니다. 이 확장성 모델은 EPUB 제작자가 형식을 실험할 수 있게 하면서도, 외부 콘텐츠 문서에 대한 지원이 보장되지 않으므로 읽기 시스템이 항상 사용자가 읽을 수 있는 무언가를 렌더링할 수 있게 보장합니다.
매니페스트 폴백이라는 메커니즘을 통해 EPUB 제작자는
외부 콘텐츠 문서에 대한 폴백을 제공할 수 있습니다. 이 모델에서는 외부 콘텐츠
문서의 매니페스트 항목이
읽기 시스템이 해당 형식을 지원하지 않을 때 시도할 수 있는 다음
가능한 리소스를 가리키는 fallback 속성을
포함해야 합니다. 흔하지는 않지만, 폴백 리소스가 또 다른 폴백을 지정할 수 있으므로
체인이 여러 리소스 깊이로 이어질 수 있습니다. 유일한 요구사항은
매니페스트 폴백 체인 안에 적어도 하나의 EPUB 콘텐츠 문서가 있어야 한다는 것입니다.
폴백 체인의 모든 리소스는 스파인에 직접 나열되지는 않지만, 읽기 시스템이 그중 어느 것이든 사용할 수 있으므로 스파인의 일부로, 나아가 스파인 평면의 일부로 간주됩니다.
자세한 내용은 3.5.1 매니페스트 폴백을 참조하십시오.
매니페스트 폴백은 EPUB의 기술적 요구사항을 충족하지만, 읽기 시스템에서 실질적인 지원은 거의 없습니다. 그 사용은 읽을 수 없는 출판물로 이어질 수 있으므로 강하게 권장되지 않습니다.
EPUB 콘텐츠 문서에 매니페스트 폴백을 제공하는 것은 가능하지만, 필수도 아니고 일반적이지도 않습니다. 예를 들어 스크립트 콘텐츠 문서는 스크립팅을 지원하지 않는 읽기 시스템을 위해 스크립트 없는 대체 항목으로 폴백할 수 있습니다.
콘텐츠 평면은 EPUB 콘텐츠 문서와 외부 콘텐츠 문서를 렌더링할 때 사용되는 리소스를 분류합니다. 이러한 유형의 리소스에는 포함된 미디어, CSS 스타일 시트, 스크립트 및 글꼴이 포함됩니다. 이러한 리소스는 읽기 시스템 지원에 따라 세 범주로 나뉩니다. 핵심 미디어 유형 리소스, 외부 리소스, 그리고 면제 리소스입니다.
핵심 미디어 유형 리소스는 읽기 시스템이 지원해야 하는 리소스이므로, EPUB 또는 외부 콘텐츠 문서에서 제한 없이 사용할 수 있습니다. 핵심 미디어 유형 리소스에 대한 자세한 내용은 3.2 핵심 미디어 유형을 참조하십시오.
핵심 미디어 유형 리소스라는 사실이 읽기 시스템이 항상 그 리소스를 렌더링한다는 뜻은 아닙니다. 모든 읽기 시스템이 EPUB 3의 모든 기능을 지원하는 것은 아니기 때문입니다. 예를 들어 뷰포트가 없는 읽기 시스템은 이미지와 같은 시각 콘텐츠를 렌더링하지 않습니다.
핵심 미디어 유형 리소스의 반대는 외부 리소스입니다. 이는 읽기 시스템이 렌더링을 지원한다고 보장되지 않는 리소스입니다. 따라서 스파인에서 외부 콘텐츠 문서를 사용할 때 렌더링을 보장하기 위해 폴백이 필요한 것과 유사하게, 콘텐츠 문서에서 외부 리소스를 사용할 때도 폴백이 필요합니다. 이러한 폴백은 두 가지 방법 중 하나로 제공됩니다. 호스트 형식의 기능을 사용하거나 매니페스트 폴백을 사용하는 방법입니다.
선호되는 방법은 호스트 형식의 폴백 기능을 사용하는 것입니다. 예를 들어 많은 HTML 요소는
내재적 폴백 기능을 가지고 있습니다. 한 예는
picture
요소 [html]로, EPUB 제작자가
여러 대체 이미지 형식을 지정할 수 있게 합니다.
내재적 폴백 방법을 사용할 수 없는 경우 매니페스트 폴백을 사용하는 것도 가능하지만, 이 방법은 이전 섹션에서 주의한 것처럼 권장되지 않습니다. 외부 리소스에 대한 자세한 내용은 3.3 외부 리소스를 참조하십시오.
핵심 미디어 유형 리소스와 외부 리소스 사이에 있는 것이 면제 리소스입니다. 이는 읽기 시스템이 이를 렌더링한다고 보장할 수 없다는 점에서 외부 리소스와 가장 밀접하게 관련됩니다. 그러나 핵심 미디어 유형과 마찬가지로 폴백이 필요하지 않습니다.
면제 리소스는 핵심 미디어 유형이 정의되어 있지 않지만
폴백을 제공하는 것이 번거롭거나 불필요한 특정 경우를 다루는 경향이 있습니다. 여기에는
비디오 삽입, 접근성 트랙 추가, 그리고 [html] link 요소에서 리소스로 링크하는 것이 포함됩니다.
이러한 예외에 대한 자세한 내용은 3.4 면제 리소스를 참조하십시오.
핵심 미디어 유형 리소스에서 흔히 혼동되는 지점은 XHTML과 SVG가 각각의 EPUB 콘텐츠 문서 정의를 준수해야 한다는 요구사항과 함께 핵심 미디어 유형 리소스로 나열된다는 점입니다. 이를 통해 EPUB 제작자는 XHTML 및 SVG 문서를 EPUB 콘텐츠 문서 안에 삽입하면서도 저작 및 읽기 시스템 지원에 대한 요구사항의 일관성을 유지할 수 있습니다.
실제로 이는 EPUB 제작자가 XHTML 및 SVG 핵심 미디어 유형 리소스를 아무 수정이나 폴백 없이 스파인에 넣을 수 있음을 의미합니다(이들은 또한 적합한 XHTML 및 SVG 콘텐츠 문서이기도 함). 하지만 이는 고유한 경우입니다. 그 밖의 모든 핵심 미디어 유형 리소스는 스파인에서 사용될 때 외부 콘텐츠 문서가 됩니다(즉, 외부 콘텐츠 문서는 XHTML 및 SVG를 제외한 모든 외부 리소스와 모든 핵심 미디어 유형 리소스를 포함합니다).
EPUB 제작자는 EPUB 콘텐츠 문서 및 외부 콘텐츠 문서에서 사용되는 경우, 다음 표에 정의된 MIME 미디어 유형 [rfc2046] 명세를 준수하는 출판물 리소스를 폴백 없이 MAY 포함할 수 있습니다. 이러한 리소스는 핵심 미디어 유형 리소스로 분류됩니다.
XHTML 콘텐츠 문서 및 SVG 콘텐츠 문서를 제외하고, EPUB 제작자는 스파인에서 직접 참조되는 핵심 미디어 유형 리소스에 대해 매니페스트 폴백을 MUST 제공해야 합니다. 이 경우 해당 리소스는 외부 콘텐츠 문서입니다.
표의 열은 다음 정보를 나타냅니다.
미디어 유형—주어진 출판물 리소스를 매니페스트에서 나타내는 데 사용되는 MIME 미디어 유형 [rfc2046].
표에 둘 이상의 미디어 유형이 나열되어 있는 경우, 첫 번째가 선호되는 미디어 유형입니다. EPUB 제작자는 모든 새 EPUB 출판물에 선호되는 미디어 유형을 사용해야 합니다.
| 미디어 유형 | 콘텐츠 유형 정의 | 적용 대상 |
|---|---|---|
| 이미지 | ||
image/gif
|
[gif] | GIF 이미지 |
image/jpeg
|
[jpeg] | JPEG 이미지 |
image/png
|
[png] | PNG 이미지 |
image/svg+xml
|
SVG 콘텐츠 문서 | SVG 문서 |
image/webp
|
[rfc9649] | WebP 이미지 |
| 오디오 | ||
audio/mpeg
|
[mp3] | MP3 오디오 |
audio/mp4
|
[mpeg4-audio], [mp4] | MP4 컨테이너를 사용하는 AAC LC 오디오 |
audio/ogg; codecs=opus
|
[rfc7845] | OGG 컨테이너를 사용하는 OPUS 오디오 |
| 스타일 | ||
text/css
|
CSS 스타일 시트 | CSS 스타일 시트. |
| 글꼴 | ||
|
[truetype] | TrueType 글꼴 |
|
[opentype] | OpenType 글꼴 |
|
[woff] | WOFF 글꼴 |
font/woff2
|
[woff2] | WOFF2 글꼴 |
| 기타 | ||
application/xhtml+xml
|
XHTML 콘텐츠 문서 | XML 구문을 사용하는 HTML 문서 [html]. |
|
[rfc4329] | 스크립트. |
application/x-dtbncx+xml
|
[opf-201] | 레거시 NCX. |
application/smil+xml
|
미디어 오버레이 | EPUB 미디어 오버레이 문서 |
핵심 미디어 유형 리소스로 포함된다고 해서 모든 읽기 시스템이 해당 리소스의 렌더링을 지원한다는 뜻은 아닙니다. 읽기 시스템 지원은 애플리케이션의 기능에도 달려 있습니다(예: 뷰포트가 있는 읽기 시스템은 이미지 핵심 미디어 유형 리소스를 지원해야 하지만, 뷰포트가 없는 읽기 시스템은 그렇지 않습니다). 어떤 읽기 시스템의 렌더링 기능이 어떤 핵심 미디어 유형 리소스 지원을 요구하는지에 대한 자세한 내용은 핵심 미디어 유형 [epub-rs-33]을 참조하십시오.
Working Group은 일반적으로 웹 브라우저 코어 — EPUB 3 읽기 시스템이 기반으로 삼는 렌더링 엔진 — 에서 폭넓게 지원되는 형식만 핵심 미디어 유형 리소스로 포함합니다. 이는 EPUB 출판물 렌더링의 예측 가능성을 보장하기 위한 읽기 시스템 개발자와 EPUB 제작자 사이의 합의입니다.
외부 리소스는 핵심 미디어 유형 리소스와 달리, EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서에서 사용될 때 읽기 시스템 지원이 보장되지 않는 리소스입니다.
EPUB 제작자는 외부 리소스에 대해 폴백을 MUST 제공해야 하며, 폴백은 다음 형식 중 하나를 취합니다.
호스트 형식이 제공하는 내재적 폴백 메커니즘(예: [html] 요소는 종종 둘 이상의 미디어 유형을 참조하거나, 미디어 유형을 렌더링할 수 없을 때 대체 삽입 메시지를 표시하는 기능을 제공합니다); 또는
매니페스트 폴백 체인. 이는
패키지 문서의
요소에 정의됩니다.
item
요소가 제공하는 내재적 폴백 기능은 [html] 및 [svg] 명세를 참조하십시오.
3.5.2 내재적 폴백도 특정 요소에 대해 폴백이 어떻게 해석되는지에 대한 추가 정보를 제공합니다.
면제 리소스는 외부 리소스 및 핵심 미디어 유형 리소스와 속성을 공유합니다. 이는 외부 리소스와 가장 유사하며, 읽기 시스템 지원이 보장되지 않는다는 점에서 그렇습니다. 그러나 핵심 미디어 유형 리소스와 마찬가지로 폴백이 필요하지 않습니다.
면제 리소스에는 소수의 특수한 경우만 있습니다. 예를 들어 비디오는 현재 핵심 미디어 유형 비디오 형식에 대한 합의가 없기 때문에(즉, 폴백할 형식이 없기 때문에) 폴백에서 면제됩니다. 마찬가지로 오디오 및 비디오 트랙은 EPUB 제작자가 읽기 시스템이 가장 잘 지원하는 어떤 형식이든 사용하여 접근성 요구사항을 충족할 수 있도록 면제됩니다.
다음 목록은 EPUB 제작자가 이를 사용할 수 있는 위치에 대한 제한을 포함하여, 콘텐츠별 면제 리소스의 경우를 자세히 설명합니다.
글꼴 핵심 미디어 유형으로 이미 다루지 않은 모든 글꼴 리소스는 면제 리소스입니다.
이 면제는 읽기 시스템 지원 기대와 무관하게 EPUB 제작자가 어떤 글꼴 형식이든 폴백 없이 사용할 수 있게 합니다. 지원되지 않는 경우 CSS 규칙이 폴백 글꼴을 보장하기 때문입니다.
자세한 내용은 글꼴에 대한 읽기 시스템 지원 요구사항 [epub-rs-33]을 참조하십시오.
[html] link 요소에서 참조되며 이미 핵심
미디어 유형 리소스가 아닌 모든 리소스(예:
CSS 스타일 시트)는 면제 리소스입니다.
[webvtt]
캡션, 자막 및 설명과 같은 모든 오디오 및 비디오 트랙 중
[html] track
요소에서 참조되는 것은 면제 리소스입니다.
[html]
video
요소에서 참조되는 모든 비디오 코덱
— 자식
source
요소를 포함 — 은 면제 리소스입니다.
위에서 만든 면제는 스파인에는 적용되지 않습니다. 면제 리소스가 스파인에서 사용되고, 그것이 동시에 EPUB 콘텐츠 문서가 아니라면, 그 맥락에서는 폴백이 필요합니다.
콘텐츠별 면제에 더해, 리소스는 다음 조건을 만족하면 면제 리소스로 분류됩니다.
EPUB 콘텐츠 문서에 직접 삽입되지 않음(예: [html] 삽입된 콘텐츠 및 [svg] image 및 foreignObject
요소를 통해).
이 면제는 EPUB 제작자가 EPUB 읽기 시스템이 사용할 목적이 아닌 리소스를 EPUB 컨테이너에 포함할 수 있게 합니다. 이 면제의 주요 사례는 데이터 파일이 EPUB 출판물과 함께 이동할 수 있도록 하는 것입니다. 이는 스크립트가 구성 EPUB 콘텐츠 문서에서 사용하기 위한 것이든, 외부 애플리케이션이 사용하기 위한 것이든 상관없습니다(예: 과학 저널은 EPUB 컨테이너에서 추출하는 방법에 대한 지침과 함께 데이터 세트를 포함할 수 있습니다).
또한 EPUB 제작자는 읽기 시스템이나 EPUB 적합성 검사기가 해당 리소스의 폴백 기능을 이해할 필요 없이 외부 콘텐츠 문서에서 외부 리소스를 사용할 수 있습니다 (즉, 외부 콘텐츠 문서에 대한 폴백 요구사항이 그 안의 모든 렌더링 문제를 포괄합니다). 해당 리소스가 EPUB 콘텐츠 문서에서 참조되지 않으므로, 자동으로 폴백에서 면제됩니다.
매니페스트 폴백은 패키지 문서의 기능으로, 출판물 리소스에 대한 매니페스트 폴백 체인을 만들어 읽기 시스템이 렌더링할 수 있는 대체 형식을 선택할 수 있게 합니다.
폴백 체인은 매니페스트
요소의 itemfallback
속성을 사용하여 생성됩니다. 이 속성은 현재 item의
폴백인 다른 매니페스트 item의 ID [xml]를 참조합니다.
주어진 item의 fallback
속성에서 시작하여 읽기 시스템이 도달할 수 있는 모든 참조의 순서 있는 목록이
그 item에 대한 전체 폴백 체인을 나타냅니다. 이 체인은 또한
EPUB 제작자가 선호하는 폴백
순서를 나타냅니다.
매니페스트 폴백에는 두 가지 경우가 있습니다.
EPUB 제작자는 외부 콘텐츠 문서에 대해 폴백 체인을 MUST 지정하여 읽기 시스템이 항상 스파인 항목을 렌더링할 수 있게 해야 합니다. 이 경우 체인은 적어도 하나의 EPUB 콘텐츠 문서를 MUST 포함해야 합니다.
EPUB 제작자는 EPUB 콘텐츠 문서에 대해 폴백을 MAY 제공할 수 있습니다 (예: 스크립트 콘텐츠에 대한 폴백을 제공하기 위해).
폴백 체인이 둘 이상의 EPUB 콘텐츠 문서를 포함하는 경우, EPUB 제작자는
properties 속성을 사용하여
각각의 목적을 구분할 수 있습니다.
EPUB 제작자는 참조하는 요소가 내재적 폴백 기능을 가지지 않는 경우 외부 리소스에 대해 콘텐츠 폴백을 MUST 제공해야 합니다. 이 경우 폴백 체인은 적어도 하나의 핵심 미디어 유형 리소스를 MUST 포함해야 합니다.
EPUB 제작자는 핵심 미디어 유형 리소스에 대해서도 매니페스트 폴백을 MAY 제공할 수 있습니다(예: 읽기 시스템이 둘 이상의 이미지 형식 중에서 선택할 수 있게 하기 위해).
지정된 매니페스트 폴백의 유형과 관계없이, 폴백 체인은 체인 안의
item 요소에 대한 자기 참조나 순환 참조를
MUST
NOT 포함해야 합니다.
data URL로 표현된 리소스에는 매니페스트 폴백을 사용할 수 없으므로, EPUB 제작자는 내재적 폴백 메커니즘을 사용할 수 있는 경우에만 외부 리소스를 data URL로 표현할 수 있습니다.
다음 섹션들은 특정 요소의 내재적 폴백 요구사항에 대한 추가 설명을 제공합니다.
EPUB
제작자는 오디오 외부 리소스에 대한 내재적 폴백으로
[html] 플로우 콘텐츠를 미디어 요소
(즉, audio 또는 video) 안에 삽입하여
사용해서는 MUST NOT 됩니다. 오직 자식
source
요소 [html]만 내재적
폴백 기능을 제공합니다.
audio 또는
video 요소를 인식하지 못하는 오래된 읽기 시스템(예: EPUB 2 읽기 시스템)만
삽입된 콘텐츠를 렌더링합니다. 읽기 시스템이 이러한 요소는 지원하지만 사용 가능한 미디어 형식은
지원하지 않는 경우, 삽입된 콘텐츠를 사용자에게 렌더링하지 않습니다.
폴백 요구사항은 audio 및 video 요소에서 참조되는
오디오 외부 리소스에만 적용됩니다. 비디오 리소스에는 폴백이 필요하지 않습니다.
비디오는 면제 리소스입니다.
[html]
img
요소에 EPUB 제작자가 지정할 수 있는 소스가 다양하기 때문에,
그 사용에는 다음 폴백 조건이 적용됩니다.
데이터 블록은 이를 포함하는
XHTML 콘텐츠 문서와는 별도의 MIME 미디어 유형
[rfc2046]을
가지지만,
[html]
script
요소에 대해 그러한 메커니즘이 지정되어 있지 않으므로 내재적 폴백을 제공할 수 없습니다.
또한 데이터 블록은 EPUB 컨테이너 안의 독립 파일로 정의될 수 없고
항상 인라인 script 요소로 삽입되므로 매니페스트 폴백을
제공하는 것도 불가능합니다.
하지만 script 요소는 사용자 콘텐츠를 나타내지 않습니다 — 데이터 블록은 스크립트로 조작되지 않는 한 렌더링되지 않으며,
스크립트가 렌더링하는 콘텐츠에는 이미 핵심
미디어 유형 요구사항이 있습니다 — 따라서 원시 데이터에 대한 폴백을 요구하는 것은
유용한 목적을 제공하지 않습니다.
따라서 EPUB 제작자가 스크립팅 목적으로 데이터 블록을 포함할 수 있도록, 이러한 데이터 블록은 폴백 요구사항에서 면제됩니다.
이 면제는 데이터 블록을 데이터 파일에 대한 면제와 일치시킵니다.
[svg]는 공개 시점에 데이터 블록을 정의하지 않지만, 향후 업데이트에서 이 개념이 추가된다면 동일한 제외가 적용됩니다.
EPUB 제작자는 다음 유형의 출판물 리소스를 EPUB 컨테이너 밖에 호스팅할 수 MAY 있습니다.
EPUB 제작자는 그 밖의 모든 리소스를 EPUB 컨테이너 안에 MUST 저장해야 합니다.
가능한 경우 모든 리소스를 EPUB 컨테이너 안에 저장하는 것이 강하게 권장됩니다. 이렇게 하면 연결 상태와 무관하게 사용자가 전체 표현에 접근할 수 있기 때문입니다.
리소스가 EPUB 컨테이너 밖에 위치해야 하는 경우, EPUB 제작자는
자신의 출판물과 사용자가 네트워크 공격에 노출되는 위협을 제한하기 위해
보안 https URI 스킴 [rfc9110]을 통해
이를 참조할 것을 RECOMMENDED 합니다. 읽기
시스템은 http와 같은 안전하지 않은 스킴을 사용해 참조된
원격 리소스를 로드하지 않을 수 있습니다.
출판물 리소스 위치에 대한 이러한 규칙은 주어진 리소스가 핵심 미디어 유형 리소스인지 외부 리소스인지와 관계없이 적용됩니다.
매니페스트
이 원격 리소스를 참조한다는 것을 표시하는 방법에 대한 자세한 내용은
itemremote-resources 속성을 참조하십시오.
data: URL 스킴 [rfc2397]은 리소스를
URL 문자열에 직접 인코딩하는 데 사용됩니다. 이 스킴의 장점은 EPUB 제작자가
리소스를 다른 리소스 안에 삽입하여 외부 파일이 필요 없게 할 수 있다는 것입니다.
EPUB 제작자는 다음 시나리오에서 data URL을 사용해서는 MUST NOT 됩니다. 이러한 경우 최상위 콘텐츠 문서 또는 최상위 브라우징 컨텍스트 [html]가 될 수 있기 때문입니다.
패키지 문서의 href 속성에서 — 이는 매니페스트
요소와 메타데이터
item
요소 모두에 적용됩니다;
link
[html] 또는 [svg] a
요소의 href 속성에서. 단,
[html]
iframe
요소 안에 있는 경우는 예외입니다;
[html] area 요소의
href 속성에서. 단,
iframe 요소 안에 있는 경우는 예외입니다;
[ecmascript]
window.open 또는 document.open 호출에서.
삽입의 결과로, data URL의 데이터는 매니페스트 보고 목적에서 자체적인 고유 출판물 리소스로 간주되지 않습니다 (즉, 이를 포함하는 출판물 리소스만 나열됩니다). 그러나 이 데이터는 자체 미디어 유형을 가지므로 여전히 외부 리소스 제한의 적용을 받습니다. 따라서 EPUB 제작자는 data URL을 핵심 미디어 유형 리소스로 인코딩하거나, 호스트 형식의 내재적 폴백 메커니즘을 사용하여 폴백을 MUST 제공해야 합니다.
file: URL 스킴은 [rfc8089]에서
"호스트(‘파일 시스템’)의 구조화된 객체 명명 및 접근 환경에 저장된 객체(‘파일’)를 식별하는" 것으로
정의됩니다. 이는 일반적으로 로컬 운영
시스템에서 파일을 가져오는 데 사용됩니다.
서로 다른 호스트 간에 전송될 수 있는 EPUB 출판물에서 file URL을 사용하는 것은 보안 위험을 나타내며 상호운용성도 없습니다. 그 결과 EPUB 제작자는 EPUB 출판물에서 file URL을 MUST NOT 사용해야 합니다.
XML 기반 미디어 유형 [rfc2046]인 모든 출판물 리소스는 다음을 만족해야 합니다.
MAY 그 미디어 유형에 적합한 외부 식별자 — B. 허용된 외부 식별자에서 정의됨 — 를 참조하거나 외부 식별자를 생략하는 문서 유형 선언만 지정할 수 있습니다 [xml].
MUST NOT XInclude [xinclude]를 사용해서는 안 됩니다.
MUST UTF-8 또는 UTF-16 [unicode]으로 인코딩되어야 하며, UTF-8이 RECOMMENDED 인코딩입니다.
위 제약은 주어진 출판물 리소스가 핵심 미디어 유형 리소스인지 외부 리소스인지와 관계없이 적용됩니다.
이 섹션은 비규범적입니다.
OCF는 EPUB 출판물에 필요한 컨테이너 기술입니다. OCF는 다음 워크플로에서 역할을 할 수 있습니다.
이 섹션은 파일 컬렉션을 추상적으로 구조화하는 규칙, 즉 "추상 컨테이너"를 정의합니다. 또한 이 추상 컨테이너를 ZIP 아카이브 안에서 표현하는 규칙, 즉 "물리 컨테이너"도 정의합니다. ZIP 물리 컨테이너에 대한 규칙은 [odf]에서 사용하는 ZIP 기술을 기반으로 합니다.
OCF는 또한 이 기능이 필요한 EPUB 출판물을 위해 삽입된 글꼴을 난독화하는 표준 방법도 정의합니다.
이 섹션은 비규범적입니다.
OCF 추상 컨테이너 파일 시스템 모델은 하나의 공통 루트 디렉터리를 사용합니다. 모든 컨테이너 리소스는 루트 디렉터리를 머리로 하는 디렉터리 트리 안에 위치하지만, 이 명세는 그 리소스에 대한 특정 파일 시스템 구조를 의무화하지 않습니다.
파일 시스템 모델에는 루트 디렉터리의 직접 자식이며 다음 특수 파일을 저장하는
META-INF라는 필수 디렉터리도 포함됩니다.
container.xml
[required]
signatures.xml
[optional]
여러 자산에 대한 디지털 서명을 포함합니다.
encryption.xml
[optional]
출판물 리소스의 암호화에 대한 정보를 포함합니다. 이 파일은 EPUB 제작자가 글꼴 난독화를 사용할 때 필수입니다.
metadata.xml
[optional]
OCF ZIP 컨테이너에 대한 메타데이터를 저장하는 데 사용됩니다.
rights.xml
[optional]
디지털 권리에 대한 정보를 저장하는 데 사용됩니다.
manifest.xml
[optional]
Open Document Format [odf]에서 허용하는 컨테이너 콘텐츠의 매니페스트입니다.
META-INF 디렉터리 안의 여러 파일에 대한 적합성 요구사항은
4.2.6
META-INF 디렉터리를 참조하십시오.
OCF 추상 컨테이너의 가상 파일 시스템은 컨테이너의 모든 콘텐츠에 대해 하나의 공통 루트 디렉터리를 MUST 가져야 합니다.
OCF 추상 컨테이너는 컨테이너 루트 디렉터리의 직접 자식인
META-INF라는 구성 파일용 디렉터리를 MUST 포함해야 합니다.
이 디렉터리의 콘텐츠에 대한 요구사항은 4.2.6
META-INF 디렉터리를 참조하십시오.
루트 디렉터리의 파일 이름 mimetype은 OCF ZIP
컨테이너에서 사용하도록 예약되어 있으며,
이는 4.3 OCF ZIP 컨테이너에서
설명합니다.
META-INF 디렉터리 안의 파일과 mimetype 파일은
출판물 리소스가 아니므로
매니페스트에
나열되어서는 MUST
NOT 됩니다.
EPUB 제작자는 그 밖의 모든 파일을
META-INF 디렉터리 안이 아닌 한, 루트 디렉터리의 자손인
OCF 추상 컨테이너 안의 임의 위치에 배치할 수 MAY 있습니다.
EPUB 제작자는
EPUB 출판물에서
META-INF 디렉터리 안의 파일을 참조해서는
MUST NOT 됩니다.
일부 읽기 시스템은 패키지 문서가 저장된 디렉터리 밖의 리소스에 대한 접근을 제공하지 않습니다. 따라서 EPUB 제작자는 상호운용성 문제를 피하기 위해 모든 리소스를 패키지 문서를 포함하는 디렉터리 또는 그 아래에 배치해야 합니다.
이 문제는 출판물의 여러 렌디션을 만들 때 [epub-multi-rend-11] 더 흔히 발생합니다.
OCF 추상 컨테이너의 맥락에서, 파일 경로와 파일 이름은 스칼라 값 문자열 [infra]입니다(즉, 그 값은 대소문자를 구분합니다).
또한 다음 제한은 대부분의 운영 체제에서 파일 경로와 파일 이름을 수정 없이 사용할 수 있도록 설계되었습니다.
파일 이름은 255바이트를 초과해서는 MUST NOT 됩니다.
OCF 추상 컨테이너 안의 모든 디렉터리 또는 파일의 파일 경로는 65535바이트를 초과해서는 MUST NOT 됩니다.
일반적으로 사용되는 운영 체제에서 다음 문자를 일관되게 지원하지 않을 수 있으므로, 파일 이름은 다음 [unicode] 문자를 사용해서는 MUST NOT 됩니다.
SOLIDUS: / (U+002F)
QUOTATION MARK: " (U+0022)
ASTERISK: * (U+002A)
마지막 문자로서의 FULL STOP: . (U+002E)
COLON: : (U+003A)
LESS-THAN SIGN: < (U+003C)
GREATER-THAN SIGN: > (U+003E)
QUESTION MARK: ? (U+003F)
REVERSE SOLIDUS: \ (U+005C)
VERTICAL LINE: | (U+007C)
DEL (U+007F)
C0 범위 (U+0000 … U+001F)
C1 범위 (U+0080 … U+009F)
Private Use Area (U+E000 … U+F8FF)
모든 Unicode Non Characters, 구체적으로:
Basic Multilingual Plane의 32개 연속 문자
(U+FDD0 … U+FDEF)
Basic Multilingual Plane의 마지막 두 코드 포인트
(U+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 제작자는 이러한 문자도 피하는 것이 권장됩니다. EPUB 적합성 검사기가 그 사용을 표시할 것으로 예상되기 때문입니다.
이전 읽기 시스템과의 호환성을 위해, 파일 이름은 SPACE (U+0020) 문자를 포함해서는 SHOULD NOT 됩니다.
같은 디렉터리 안의 모든 파일 이름은 Unicode 정준 정규화 [uax15]와 이후 전체 대소문자 접기를 [unicode] 적용한 결과가 고유해야 MUST 합니다. (자세한 내용은 Unicode Canonical Case Fold Normalization Step [charmod-norm]를 참조하십시오.)
EPUB 제작자가 리소스를 동적으로 통합하는 경우 (즉, 이름 지정이 자신의 통제 밖에 있는 경우), 파일 이름을 255바이트 제한 안에 유지하기 위한 자동 잘라내기가 손상을 초래할 수 있음을 알아야 합니다. 이는 UTF-8 같은 다중 바이트 인코딩에서 바이트와 문자의 차이 때문이며, 따라서 문자 중간에서 잘라내는 것을 피하는 것이 중요합니다. 자세한 내용은 [international-specs]의 "문자열 길이 잘라내기 또는 제한" 섹션을 참조하십시오.
OCF 추상 컨테이너 안의 파일 또는 디렉터리 file이 주어졌을 때 파일 경로를 도출하려면, 다음 단계를 적용합니다 ([infra]의 용어를 사용해 표현):
컨테이너 루트 URL은 URL [url]이며, 루트 디렉터리의 URL입니다. 이는 구현별로 다르지만, EPUB 제작자는 이것이 다음 속성을 가진다고 MUST 가정해야 합니다.
/"를
컨테이너 루트 URL을
base로 하여 처리한 결과는
컨테이너 루트 URL입니다.
.."를
컨테이너 루트 URL을
base로 하여 처리한 결과는
컨테이너 루트 URL입니다.
OCF 추상 컨테이너 안의 파일 또는 디렉터리의 콘텐츠 URL은 해당 파일의 파일 경로를 컨테이너 루트 URL을 base로 하여 구문 분석한 결과입니다.
컨테이너 루트 URL은 읽기 시스템이 EPUB 컨테이너의 루트에 할당하는 URL입니다. 이는 일반적으로 읽기 시스템이 내부적으로 컨테이너 파일 시스템을 어떻게 구현하는지에 따라 달라집니다.
그러나 읽기 시스템은 임의의 URL을 사용할 수 없으며, 위에서 정의한 제약을 준수하는 URL을 사용해야 합니다. 이러한 제약은 EPUB 안에서 발견되는 모든 상대 URL 문자열이 항상 컨테이너 안의 리소스 URL로 구문 분석되도록 보장합니다(그 리소스가 존재할 수도 있고 존재하지 않을 수도 있음). 이러한 제약의 주된 이유는 구문 분석된 URL이 컨테이너 파일 밖으로 "누출"되어 발생할 수 있는 잠재적 런타임 보안 문제를 피하기 위한 것입니다.
예를 들어 https://localhost:12345/ 또는
https://www.example.org:12345/ 같은 URL은 이러한 속성을 준수합니다.
그러나
https://localhost:12345/path/to.epub/,
file:///path/to.epub#path=/, 또는 jar:file:/path/to.epub!/EPUB/
같은 URL은 그렇지 않습니다(이 세 예제를 base로 하여 URL 문자열 ".."를 구문 분석하면
각각 https://localhost:12345/path/, file:///path/, 그리고 구문 분석
오류가 반환됩니다). 위에서 정의한 속성을 준수하는 URL을 루트 디렉터리에 할당하는 것은
읽기 시스템의 책임입니다.
구문 분석은 파일 경로의 일부 문자를 그
퍼센트 인코딩 대체 형태로 바꿀 수 있습니다. 예를 들어
A/B/C/file name.xhtml은 A/B/C/file%20name.xhtml이 됩니다.
문자열 url은
valid-relative-ocf-URL-with-fragment
string입니다.
이는 path-relative-scheme-less-url
string이고, 선택적으로 U+0023 (#) 및
url-fragment string이 뒤따르며, 다음 단계가
true를 반환하는 경우입니다.
컨테이너 루트 URL을
https://a.example.org/A/로 설정합니다.
알고리즘의 목표는 url이 컨테이너 밖으로 "누출"되는 것으로
보일 수 있는지 감지하는 것입니다. 이를 위해 표준 URL 구문 분석 알고리즘을 인공 루트 URL과 함께 사용하며,
"누출" 감지는 구문 분석 결과를 첫 번째 테스트 경로
세그먼트(A)의 존재와 비교하여 수행합니다. (이 알고리즘의 목적상 인공 컨테이너 루트 URL은
첫 번째 테스트 경로 세그먼트를 사용함으로써 필수 속성을 의도적으로
위반합니다.)
base를 url이 사용되는 컨텍스트(문서 또는 환경)에서 정의되고 패키지 문서의 콘텐츠 URL에 따른 url 구문 분석에 반드시 사용해야 하는 base URL로 둡니다 (5.2 패키지 문서의 URL 구문 분석 참조).
패키지 문서 안의 URL인 경우 base 변수는
패키지 문서의 콘텐츠 URL로 설정됩니다.
META-INF 디렉터리 안의 문서인 경우, base 변수는
컨테이너 루트 URL로 설정됩니다(4.2.6.2 META-INF
디렉터리의 URL 구문 분석 참조). XHTML 콘텐츠
문서 안의 URL인 경우, 구문 분석에 사용되는 base URL은
HTML 표준에서 정의됩니다. 일반적으로 이는
콘텐츠 문서의 콘텐츠 URL입니다(권장되지 않는
base 요소가 사용되지 않는 한).
컨테이너 루트 URL을
https://b.example.org/B/로 설정합니다.
서로 다른 인공 컨테이너 루트 URL 설정으로 같은 단계를 두 번 반복하는 이유는
url 문자열이 /A/도 포함하는 경우 발생할 수 있는 충돌을
피하기 위해서입니다. 예를 들어 url이
../../A/doc.xhtml인 경우를 고려하십시오.
testURLStringA가 https://a.example.org/로 시작하지 않거나
testURLStringB가 https://b.example.org/로 시작하지 않으면,
true를 반환합니다.
결과 중 어느 하나라도 테스트 URL 호스트를 공유하지 않으면, 이는 url 또는
그 base URL(예: HTML에서 base 요소로 명시적으로 설정된 경우)이
절대이며 컨테이너 밖을 가리킨다는 뜻입니다. 이는 허용됩니다.
testURLStringA가 https://a.example.org/A/로 시작하고
testURLStringB가 https://b.example.org/B/로 시작하면,
true를 반환합니다.
첫 번째 테스트 경로 세그먼트(A, 각각
B)의 존재는 URL이 컨테이너 밖으로 누출되지 않음을 나타냅니다.
OCF 추상 컨테이너에서 모든 URL 문자열은 absolute-url-with-fragment string 또는 valid-relative-ocf-URL-with-fragment string이어야 MUST 합니다.
또한 모든 relative-URL-with-fragment strings [url]는 구문 분석 후 OCF 추상 컨테이너 안에 존재하는 파일의 콘텐츠 URL과 같아야 MUST 합니다.
URL 문자열에 대한 이러한 제약은 다음을 의미합니다.
/ (U+002F)로 시작하는 상대 URL 문자열(예:
/EPUB/content.xhtml)은 허용되지 않습니다;
EPUB/../../../../config.xml)은
허용되지 않습니다; 어떤 경우에도 위에서 설명한 허용되지 않는 URL 문자열조차 구문 분석 후에는 컨테이너 밖으로 "누출"되지 않습니다(이 섹션의 첫 번째 참고에서 설명한 것처럼). 그럼에도 불구하고 비적합 또는 레거시 읽기 시스템 및 도구 체인과의 더 나은 상호운용성을 위해 허용되지 않습니다.
모든 OCF 추상 컨테이너는
자신의 루트 디렉터리 안에 META-INF라는
디렉터리를 MUST 포함해야 합니다.
이 디렉터리는 구성 파일, 특히 4.2.6.3 예약된 파일에서 정의한 파일을 위해 예약됩니다.
META-INF 디렉터리에
위치한 파일에서
사용되는 URL 문자열 url을 구문 분석하려면, URL parser를
컨테이너 루트 URL을 base로 하여
url에 MUST 적용해야 합니다.
META-INF 디렉터리 안의 REQUIRED
container.xml 파일은
OCF 추상
컨테이너에서 사용할 수 있는 패키지 문서를 식별합니다.
달리 지정하지 않는 한, 이 섹션에서 정의하는 모든 [xml]
요소는
urn:oasis:names:tc:opendocument:xmlns:container 네임스페이스 [xml-names]에
속합니다.
이 파일의 콘텐츠는 다른 네임스페이스의 모든 요소와 속성(그러한 요소의 모든 속성과 콘텐츠 포함)을 제거한 후, 이 섹션의 정의에 대해 유효해야 MUST 합니다.
XML Schema도 이 파일의 콘텐츠를 비공식적으로 정의합니다.
container 요소는
container.xml 파일의 모든 정보를 캡슐화합니다.
각 rootfile 요소는 EPUB 컨테이너 안의 하나의
패키지 문서 위치를 식별합니다.
rootfile
요소의 자식으로 사용합니다. 반복 가능.
rootfiles
full-path
[required]
패키지 문서의 위치를 식별합니다.
이 속성의 값은 path-relative-scheme-less-URL string [url]이어야 MUST 합니다. 경로는 루트 디렉터리를 기준으로 합니다.
media-type
[required]
패키지 문서의 미디어 유형을 식별합니다.
이 속성의 값은
"application/oebps-package+xml"이어야
MUST 합니다.
비어 있음
EPUB 제작자가 둘 이상의
rootfile 요소를 정의하는 경우, 각각은 동일한 EPUB 버전을 준수하는
패키지 문서를 참조해야 MUST
합니다. 각 패키지 문서는 EPUB 출판물의 하나의 렌더링을
나타냅니다.
EPUB 컨테이너는 둘 이상의 패키지 문서를 참조할 수 있는 기능을 제공하지만, 이 명세는 사용할 수 있는 옵션을 해석하거나 선택하는 방법을 정의하지 않습니다. 콘텐츠의 둘 이상의 렌더링을 묶는 방법에 대한 자세한 내용은 [epub-multi-rend-11]을 참조하십시오.
links 요소는
OCF ZIP 컨테이너 처리에 필요한 리소스를
식별합니다.
이 명세는 현재 links
요소의 용도를 정의하지 않습니다. 사용 예는 [epub-multi-rend-11]를
참조하십시오.
link
요소의 자식으로 사용합니다. 반복 가능.
links
href
[required]
리소스의 위치를 식별합니다.
link 요소의 href
속성 값은 path-relative-scheme-less-URL
string
[url]이어야
MUST 합니다. 경로는
루트
디렉터리를 기준으로 합니다.
media-type
[optional]
참조된 리소스의 유형과 형식을 식별합니다.
이 속성의 값은 미디어 유형 [rfc2046]이어야 MUST 합니다.
rel
[required]
리소스의 관계를 식별합니다.
이 속성의 값은 공백으로 구분된 토큰 목록이어야 MUST 합니다.
비어 있음
이 섹션은 비규범적입니다.
META-INF 디렉터리 안의 OPTIONAL
encryption.xml 파일은
컨테이너 콘텐츠에 대한 모든 암호화 정보를 담습니다. EPUB 제작자가 컨테이너 안의
리소스를 암호화하는 경우, 사용된 암호화에 대한 정보를 제공하기 위해
encryption.xml 파일을 MUST 포함해야 합니다.
encryption
urn:oasis:names:tc:opendocument:xmlns:container
없음
임의 순서로:
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 추상
컨테이너가 비 XML 데이터를 포함할 수 있더라도, EPUB
제작자는 XML Encryption을 사용하여 OCF 추상 컨테이너의 모든 데이터를
암호화할 수 있습니다. OCF 암호화는 컨테이너 안의 전체 파일 암호화만 지원하며,
파일의 일부는 지원하지 않습니다. EPUB 제작자는
encryption.xml 파일이 존재할 때 이를 암호화해서는
MUST NOT 됩니다.
암호화된 데이터는 OCF 추상 컨테이너에서 암호화되지 않은 데이터를 대체합니다. 예를 들어
EPUB 제작자가 photo.jpeg라는 이미지를 암호화하는 경우,
photo.jpeg 리소스의 콘텐츠를 그 암호화된 콘텐츠로
대체해야 합니다. ZIP 디렉터리 안에서 EPUB 제작자는 암호화된 파일을
Deflate 압축하는 대신 저장하는 것이 SHOULD 권장됩니다.
일부 상황에서는 EPUB 출판물에서 참조하는 삽입된 글꼴을
제한 없는 사용을 위해 추출하기 더 어렵게 만들도록 저장 방식을
난독화해야 합니다. 난독화는 암호화가 아니지만, 읽기 시스템은
난독 해제할 글꼴을 식별하기 위해 글꼴 난독화 알고리즘과 함께
encryption.xml 파일을 사용합니다.
EPUB 제작자는 다음 파일을 암호화해서는 MUST NOT 됩니다.
mimetype
META-INF/container.xml
META-INF/encryption.xml
META-INF/manifest.xml
META-INF/metadata.xml
META-INF/rights.xml
META-INF/signatures.xml
package document =] EPUB 제작자는 이후 XML Signature용 Decryption Transform [xmlenc-decrypt]을 사용하여 서명된 리소스를 암호화할 수 MAY 있습니다. 이 기능은 읽기 시스템이 서명 전에 암호화된 데이터와 서명 후 암호화된 데이터를 구분할 수 있게 합니다.
OCF ZIP 컨테이너에 저장할 때, EPUB 제작자는 non-codec 콘텐츠 유형의 데이터 스트림을 암호화하기 전에 압축하는 것이 SHOULD 권장됩니다. EPUB 제작자는 Deflate 압축을 사용해야 MUST 합니다. 이 관행은 ZIP 컨테이너에 저장된 파일 항목의 크기가 더 작아지도록 보장합니다.
EPUB 제작자는 codec 콘텐츠 유형의 데이터 스트림을 암호화하기 전에 압축해서는 SHOULD NOT 됩니다. 이러한 경우 추가 압축은 제작 시 불필요한 처리 오버헤드(특히 대형 리소스 파일에서)를 도입하고, 소비 시 오디오/비디오 재생 성능에 영향을 줍니다. 일부 경우, 특정 암호화 방식과 압축의 조합은 미디어 재생 전에 전체 리소스의 길이를 판별하는 것이 기술적으로 불가능하기 때문에 (예: HTTP Content-Length 헤더), 읽기 시스템이 부분 콘텐츠 요청(예: HTTP 바이트 범위)을 처리하는 능력을 손상시킬 수도 있습니다.
EPUB 제작자가 암호화 전에 데이터 스트림을 압축하는 경우, 아래에 정의된
Compression XML 요소에 따라 초기 리소스(즉, 압축 및 암호화 전)의
크기를 지정하기 위해 추가 EncryptionProperties 메타데이터를 제공하는 것이
SHOULD 권장됩니다. EPUB 제작자가 암호화 전에 데이터 스트림을
압축하지 않는 경우, 초기 리소스(즉, 암호화 전)의 크기를 지정하기 위해
추가
EncryptionProperties 메타데이터를 제공할 수 MAY 있습니다.
Compression
http://www.idpf.org/2016/encryption#compression
EncryptionProperty의 OPTIONAL 자식.
[required]사용된 압축 방법을 식별합니다.
값은 "0"(압축 없음) 또는 "8"
(Deflate 알고리즘)입니다.
[required]초기 리소스의 크기(바이트 수)를 나타냅니다.
값은 양의 정수입니다.
비어 있음
META-INF 디렉터리 안의 OPTIONAL
manifest.xml 파일은
컨테이너 안 파일의 매니페스트를 제공합니다.
OCF 명세는 매니페스트의 형식을 의무화하지 않습니다.
패키지 문서가 EPUB 출판물 처리를 위해 사용되는 유일한 매니페스트를 지정한다는 점에 유의하십시오. 읽기 시스템은 이 파일을 사용하지 않습니다.
META-INF 디렉터리 안의 OPTIONAL
metadata.xml 파일은
컨테이너 수준 메타데이터만을 위한 것입니다.
EPUB 제작자가 metadata.xml
파일을 포함하는 경우, 그 안에서는 네임스페이스로 한정된 요소
[xml-names]만 사용하는 것이
SHOULD 권장됩니다. 이 파일은
네임스페이스 http://www.idpf.org/2013/metadata 안의
metadata 루트 요소 [xml]를
포함하는 것이 SHOULD 권장되지만, 이 명세는
이전 버전과의 호환성을 위해 다른 루트 요소를 허용합니다.
이 명세의 이 버전은
metadata.xml 파일에서 사용할 메타데이터를 정의하지 않습니다. 이 명세의 향후 버전은
컨테이너 수준 메타데이터를 정의할 수 MAY 있습니다.
이 명세는 META-INF 디렉터리 안의
OPTIONAL rights.xml 파일을
권리 보유자, 중개자 및 사용자 사이의 EPUB 출판물의 신뢰할 수 있는 교환을 위해
예약합니다.
EPUB 제작자가
rights.xml 파일을 포함하지 않는 경우,
OCF 추상 컨테이너의 어떤 부분도
컨테이너 수준에서 권리 관리되지 않습니다. 권리 표현은
EPUB 출판물 안에 존재할 수 있습니다.
META-INF 디렉터리 안의 OPTIONAL
signatures.xml 파일은
컨테이너와 그 콘텐츠에 대한 디지털 서명을 담습니다.
signatures
urn:oasis:names:tc:opendocument:xmlns:container
없음
Signature [1개 이상]signature 요소는 [xmldsig-core1]에서
정의한 Signature 유형의 자식 요소를 포함합니다.
EPUB 제작자는
EPUB 출판물 전체 또는 그 일부에 서명을 적용할 수 있으며, 어떤 종류의 데이터든
(즉 XML뿐만 아니라) 서명하도록 지정할 수 있습니다.
XML Schema도
signatures.xml 파일의 콘텐츠를 비공식적으로 정의합니다.
EPUB 제작자가 signatures.xml 파일을 포함하지 않는 경우,
컨테이너 수준에서 OCF 추상 컨테이너의 어떤
부분도
서명하지 않은 것입니다.
디지털 서명은 EPUB 출판물 안에 존재할 수 있습니다.
EPUB 제작자가 OCF 추상 컨테이너에 대한 데이터 서명을 생성할 때,
그 서명을 signatures 요소의 마지막 자식
Signature 요소로 추가하는 것이 SHOULD
권장됩니다.
signatures.xml 파일 안의 각 Signature는
URL [url]로 서명이 적용되는 데이터를 식별하며,
[xmldsig-core1]
Manifest 요소와 그 Reference 하위 요소를 사용합니다.
EPUB 제작자는 개별 컨테이너 파일을 따로 또는 함께 서명할 수 있습니다.
각 파일을 따로 서명하면 읽기 시스템이 독립적으로 검증할 수 있는
리소스의 다이제스트 값이 생성됩니다. 이 접근 방식은 Signature
요소를 더 크게 만들 수 있습니다. EPUB 제작자가 파일을 함께 서명하는 경우,
서명된 파일 집합을 하나의 XML Signature Manifest 요소에
나열하고 하나 이상의 Signature 요소가 이를 참조하도록 할 수 있습니다.
EPUB 제작자는 signatures.xml 파일을 제외하고
OCF 추상 컨테이너 안의 일부 또는 모든 파일 전체에 서명할 수 있습니다. 이는
그 파일이 계산된 서명 정보를 포함하기 때문입니다. EPUB 제작자가
signatures.xml 파일에 서명할지 여부와 그 방법은 목적에 따라 달라집니다.
EPUB 제작자가 자신의 서명을 무효화하지 않고 OCF
추상 컨테이너에 서명을 추가하거나 제거할 수 있도록 하려는 경우,
signatures.xml 파일에 서명해서는
SHOULD
NOT 됩니다.
EPUB 제작자가 서명의 추가 또는 제거가 자신의 서명을 무효화하도록 하려는 경우,
[xmldsig-core1]의
Section 6.6.4에서 정의한
Enveloped Signature 변환을 사용하여 생성 중인
Signature를 제외한 기존 서명 파일 전체에 서명할 수 있습니다.
이 변환은 모든 이전 서명에 서명하며, 이후 서명이 패키지에 추가되면
무효가 됩니다.
EPUB 제작자가 기존 서명의 제거가 자신의 서명을 무효화하도록 하면서도 서명의 추가는 허용하려는 경우, XPath 변환을 사용하여 기존 서명만 서명할 수 있습니다. 그러나 그러한 변환의 세부사항은 이 명세의 범위를 벗어납니다.
[xmldsig-core1]
명세는 서명에 어떤 의미론도 연결하지 않습니다. 에이전트는 예를 들어
서명을 설명하는 정보를 Signature 요소에 추가하여 의미 정보를 포함할 수 있습니다.
[xmldsig-core1]
명세는 SignatureProperties 요소를 사용하는 것과 같이
추가 정보를 서명에 추가하는 방법을 설명합니다.
이 섹션은 비규범적입니다.
OCF ZIP 컨테이너는 OCF 추상 컨테이너의 물리적인 단일 파일 표현입니다. 컨테이너는 다음을 가능하게 합니다.
서로 다른 개인 및/또는 서로 다른 조직 간에 진행 중인 EPUB 출판물을 교환하는 것;
출판사 또는 변환 업체에서 배포 또는 판매 채널로 EPUB 출판물을 전송하는 것; 그리고
EPUB 출판물을 EPUB 읽기 시스템 또는 사용자에게 전달하는 것.
OCF ZIP 컨테이너는 [zip]에서 지정한 ZIP 형식을 사용하지만, 다음 제약 및 설명을 따릅니다.
OCF ZIP 컨테이너의 콘텐츠는 적합한 OCF 추상 컨테이너여야 MUST 합니다.
OCF ZIP 컨테이너는 ZIP 파일이 여러 저장 매체에 걸치거나 여러 파일로 분할될 수 있게 하는 ZIP application note [zip]의 기능을 사용해서는 MUST NOT 됩니다.
OCF ZIP 컨테이너는 ZIP 아카이브 안에 저장된 (압축되지 않은) ZIP 항목과 Deflate 압축된 ZIP 항목만 포함해야 MUST 합니다.
OCF ZIP 컨테이너는 application note [zip]의 섹션 V, 하위 섹션 G에서 "Version 1"로 정의된 ZIP64 확장을 사용할 수 MAY 있으며, 콘텐츠가 이를 필요로 할 때에는 그 확장만 사용하는 것이 SHOULD 권장됩니다.
OCF ZIP 컨테이너는 ZIP 형식에서 정의한 암호화 기능을
사용해서는 MUST NOT 되며, 대신 암호화는
4.2.6.3.2
암호화 파일(encryption.xml)에서
설명한 기능을 사용해 수행되어야 MUST 합니다.
OCF ZIP 컨테이너는 파일 시스템 이름을 UTF-8 [unicode]로 인코딩해야 MUST 합니다.
다음 제약은 OCF ZIP 컨테이너 아카이브의 특정 필드에 적용됩니다.
로컬 파일 헤더 테이블에서, EPUB
제작자는
version needed to extract 필드를 주어진 파일에 필요한 최대 버전 수준과
일치하도록 10, 20 또는 45 값으로
설정해야 MUST 합니다(예: Deflate의 경우 20,
ZIP64의 경우 45).
로컬 파일 헤더 테이블에서 EPUB 제작자는
compression method 필드를 0 또는
8 값으로 설정해야 MUST 합니다.
EPUB 제작자는 OCF ZIP
컨테이너의 첫 번째 파일로
mimetype 파일을 포함해야 MUST 합니다. 또한:
mimetype 파일의 콘텐츠는 US-ASCII [us-ascii]로
인코딩된 MIME 미디어 유형 [rfc2046]
문자열 application/epub+zip이어야
MUST 합니다.
mimetype 파일은 선행 또는 후행 패딩이나
공백을 포함해서는 MUST NOT 됩니다.mimetype 파일은 Unicode 바이트 순서 표시 U+FEFF로
시작해서는 MUST NOT 됩니다.mimetype
파일을 압축하거나 암호화해서는 MUST NOT 됩니다.application/epub+zip 미디어 유형에 대한 추가 정보는
I.2
application/epub+zip 미디어 유형을 참조하십시오.
글꼴을 보호하는 더 나은 방법이 존재합니다. 예를 들어 [woff] 및 [woff2] 글꼴은 라이선스 정보 삽입을 허용하고 글꼴 테이블 압축을 통해 일부 보호를 제공합니다. 원격 호스팅 글꼴을 사용하는 것도 글꼴 서브세팅을 가능하게 합니다. EPUB 제작자는 다른 선택지가 없는 경우에만 이 섹션에서 정의한 글꼴 난독화를 사용하는 것이 권장됩니다. 난독화의 한계도 참조하십시오.
이 섹션은 비규범적입니다.
OCF ZIP 컨테이너는 근본적으로 ZIP 파일이므로, 일반적으로 사용 가능한 ZIP 도구를 사용하여 패키지에서 암호화되지 않은 콘텐츠 스트림을 추출할 수 있습니다. 더구나 ZIP 파일의 특성상 일부 시스템에서는 그 콘텐츠가 다른 네이티브 컨테이너(예: 폴더)처럼 보일 수 있습니다.
ZIP 파일의 이러한 단순성은 매우 유용하지만, 글꼴을 암호화하지 않는 데 따른 부작용으로 글꼴 추출이 쉬운 것이 바람직하지 않은 경우에는 문제가 됩니다. 예를 들어 제3자 글꼴을 포함하려는 EPUB 제작자는 일반적으로 그 글꼴이 다른 사람에 의해 추출되어 재사용되는 것을 원하지 않습니다. 더 중요하게는, 많은 상업용 글꼴이 삽입을 허용하지만, 글꼴 삽입은 단순히 원본 글꼴 파일을 콘텐츠와 함께 제공하는 것이 아니라 그 글꼴을 EPUB 출판물의 필수적인 일부로 만드는 것을 의미합니다.
현대 운영 체제에 통합 ZIP 지원이 매우 보편적이므로, 글꼴을 단순히 OCF ZIP 컨테이너에 넣는 것만으로는 그 글꼴이 다른 맥락에서 재사용될 수 없음을 나타내기에 충분하지 않습니다. 이러한 불확실성은 EPUB 출판물의 유용한 글꼴 삽입 기능을 약화시킬 수 있습니다.
일부 글꼴 공급업체는 자신의 글꼴 재사용을 억제하기 위해, 그 글꼴이 어떤 방식으로든 EPUB 출판물에 묶여 있는 경우에만 EPUB 출판물에서의 사용을 허용할 수 있습니다. 즉, 글꼴 파일이 해당 컴퓨팅 장치의 기본 도구를 사용하여 운영 체제에 직접 설치될 수 없고, 다른 EPUB 출판물에서 직접 사용될 수도 없는 경우입니다.
글꼴에 대한 디지털 권리 관리 또는 집행 시스템을 제공하는 것은 이 명세의 범위를 벗어납니다. 대신 이 섹션은 난독화된 글꼴에 대한 일반 접근을 얻기 위해 최종 OCF 수신자가 추가 작업을 해야 하는 난독화 방법을 정의합니다.
이 섹션은 비규범적입니다.
이 명세는 난독화가 암호화라고 주장하지 않으며, 리소스가 저작권 침해로부터 안전하다고 보장하지도 않습니다. 바라는 것은 이 알고리즘이 OCF ZIP 컨테이너의 압축을 푸는 것만으로는 글꼴이 단순히 추출되어 복사될 수 없다는 어느 정도의 보장을 요구하는 공급업체의 요구사항을 충족하는 것뿐입니다.
난독화는 어떤 보호 방식과 마찬가지로, 난독 해제된 상태의 글꼴에 접근하는 것을 완전히 막을 수 없습니다. 이 메커니즘은 라이선스 세부사항을 모르는 사람에게 장애물을 제공할 뿐입니다. 다음과 같은 대체 수단을 통해 결연한 사용자가 글꼴에 완전히 접근하는 것을 막지는 못합니다.
그 결과, 이 난독화 방법이 개별 글꼴 라이선스의 요구사항을 충족하는지는 라이선스 허가자와 라이선스 사용자에게 달린 문제입니다. EPUB 제작자는 자신의 난독화 사용이 글꼴 라이선스 요구사항을 충족하는지 보장할 책임이 있습니다.
EPUB 제작자는 읽기 시스템이 글꼴을 난독 해제할 필요가 없으므로 난독화가 읽기 시스템에서 상호운용성 문제를 일으킬 수 있음도 알아야 합니다. 그 결과 출판물의 시각적 표현이 읽기 시스템마다 다를 수 있습니다.
또한 이 알고리즘은 글꼴 난독화로 제한된다는 점에 유의하십시오. EPUB 컨테이너 안의 어떤 리소스든 난독화하기 위한 범용 메커니즘으로 의도된 것이 아닙니다.
EPUB 제작자는 난독화 알고리즘에서 사용되는 키를 고유 식별자에서 도출해야 MUST 합니다.
XML
1.0 명세의 섹션 2.3 [xml]에서 정의한
모든 공백 문자는 이 식별자에서 제거되어야 MUST 합니다 — 구체적으로
Unicode 코드 포인트 U+0020, U+0009, U+000D 및
U+000A입니다.
EPUB 제작자는 Secure Hash Standard [fips-180-4]에서 지정한 대로 결과 문자열의 UTF-8 표현에 대한 SHA-1 다이제스트를 생성해야 MUST 합니다. 그런 다음 이 다이제스트를 알고리즘의 키로 사용할 수 있습니다.
글꼴을 난독화하는 데 사용되는 알고리즘은 글꼴 파일의 처음 1040바이트(~1KB)를 수정하는 것으로 구성됩니다. (드물게 글꼴 파일이 1040바이트보다 작은 경우, 이 과정은 파일 전체를 수정합니다.)
원본 데이터를 난독화하려면, 원시 글꼴 파일의 첫 번째 바이트와 난독화 키의 첫 번째 바이트에 논리적 배타적 논리합(XOR)을 수행한 결과를 삽입된 글꼴의 첫 번째 바이트로 저장합니다.
소스와 키의 다음 바이트로 이 과정을 반복하고 키의 모든 바이트에 대해 계속합니다. 이 시점에서 과정은 키의 첫 번째 바이트와 소스의 21번째 바이트에서 시작하여 계속됩니다. 이런 방식으로 1040바이트가 인코딩되면(또는 소스의 끝에 도달하면), 소스의 남은 데이터를 목적지로 직접 복사합니다.
EPUB 제작자는 글꼴을 압축하고
OCF ZIP
컨테이너에 추가하기 전에 난독화해야 MUST 합니다.
난독화는 암호화가 아니므로, 이 요구사항은
4.2.6.3.2
암호화 파일(encryption.xml)에서
글꼴을 암호화하기 전에 압축하라는 요구사항을 위반하지 않습니다.
다음 의사 코드는 난독화 알고리즘의 예를 보여줍니다.
기술적으로 암호화된 데이터는 아니지만, 모든 난독화된 글꼴은
EPUB 출판물과 함께 제공되는
encryption.xml 파일에 항목을 가져야
MUST 합니다(4.2.6.3.2
암호화 파일(encryption.xml) 참조).
EPUB 제작자는 각 난독화된 글꼴에 대해
EncryptedData 요소를 지정해야 MUST 합니다.
각 EncryptedData 요소는 Algorithm 속성 값이
http://www.idpf.org/2008/embedding인 자식
EncryptionMethod
요소를 포함해야 MUST 합니다. 이 속성의 존재는
이 명세에서 설명한 알고리즘의 사용을 신호합니다.
EPUB 제작자는 CipherData 요소의
CipherReference 자식에 난독화된 글꼴의 경로를
나열해야 MUST 합니다. 난독화 알고리즘은 글꼴로 제한되므로,
CipherReference 요소의 URI 속성은
글꼴 핵심 미디어 유형 리소스를 참조해야
MUST 합니다.
삽입된 글꼴이 다른 EPUB 출판물로 단순 복사되는 것을 방지하기 위해,
EPUB 제작자는 encryption.xml
파일에 난독화 키를 제공해서는
MUST NOT 됩니다.
달리 명시되지 않는 한, 이 섹션에서 정의된 모든 [xml] 요소는
http://www.idpf.org/2007/opf
네임스페이스 [xml-names]에 속합니다.
이 섹션은 비규범적입니다.
패키지 문서는 XML 문서로, 각각이 EPUB 출판물의 특정 측면에 대한 정보를 캡슐화하는 요소 집합으로 구성됩니다. 이러한 요소는 메타데이터를 중앙화하고, 개별 리소스를 상세히 기술하며, 렌더링에 필요한 읽기 순서와 기타 정보를 제공하는 역할을 합니다.
다음 목록은 패키지 문서에서 찾을 수 있는 정보를 요약합니다.
메타데이터 — EPUB 출판물에 관한 정보를 포함하거나 참조하기 위한 메커니즘.
매니페스트 — URL [url]을 통해 출판물 리소스 집합을 식별하고, MIME 미디어 유형 [rfc4839]을 통해 설명합니다.
스파인 — 읽기 시스템이 집합 내의 다른 모든 리소스에 도달하거나 이를 활용할 수 있게 하는, 매니페스트의 최상위 리소스에 대한 ID 참조의 정렬된 시퀀스입니다. 스파인은 기본 읽기 순서를 정의합니다.
컬렉션 — EPUB 출판물 내의 하위 구성요소를 캡슐화하고 식별하는 방법.
매니페스트 폴백 체인 — 콘텐츠 동등물로서 최상위 리소스의 정렬된 목록을 정의하는 메커니즘입니다. 그러면 읽기 시스템은 자신이 렌더링할 수 있는 리소스를 기준으로 리소스 중에서 선택할 수 있습니다.
EPUB 출판물은 둘 이상의 패키지 문서를 참조할 수 있으며, 이를 통해 콘텐츠의 대체
표현을 허용할 수 있습니다. 자세한 내용은 4.2.6.3.1
컨테이너 파일(container.xml)을 참조하십시오.
패키지 문서의 파일 속성에 대한 정보는 I.1
application/oebps-package+xml 미디어 유형을 참조하십시오.
패키지 문서에서 사용되는 URL 문자열 url을 구문 분석하려면, URL parser [url]를 url에 MUST 적용해야 하며, 패키지 문서의 콘텐츠 URL을 base로 사용해야 합니다.
package 요소는 패키지 문서에서 표현되는 모든 정보를 캡슐화합니다.
package
이 순서로:
version 속성은 주어진 EPUB 출판물이
준수하는 EPUB 명세
버전을 지정합니다. 이 속성은 EPUB 3에 대한 적합성을 나타내기 위해
"3.0" 값을 가져야 MUST 합니다.
이 명세의 업데이트는 EPUB 3의 새 버전을 나타내지 않습니다(즉, 각 새 3.X
명세는 EPUB 3 형식의 연속입니다). 작업 그룹은 기존 콘텐츠를 무효화할 수 있는 변경을
최소화하여 version
속성 값이 변경되지 않은 채 유지되도록 하는 데 전념합니다.
unique-identifier 속성은 선호되는 또는 기본
식별자를 제공하는
요소를 식별하는 IDREF
[xml]를 취합니다.
dc:identifier
prefix 속성은
이 명세에서 예약하지 않은 접두사에 대한 선언 메커니즘을 제공합니다.
자세한 내용은 D.1.4
prefix 속성을 참조하십시오.
metadata 요소는 메타 정보를 캡슐화합니다.
metadata
의
REQUIRED 첫 번째 자식.
package
없음
임의 순서로:
dc:identifier[1 or more]
dc:title[1 or more]
dc:language[1 or more]
Dublin Core Optional Elements
[0 or more]
meta[1 or more]
link[0 or more]
패키지 문서의 metadata 요소에는 두 가지
주요 기능이 있습니다.
읽기 시스템이 EPUB 출판물을 내부적으로 목록화하고 사용자에게 사용할 수 있게 하는 데 사용할 최소한의 메타 정보를 제공하는 것 (예: 책장에 표시).
콘텐츠의 레이아웃과 표시를 제어하는 데 필요한 모든 렌더링 메타데이터에 대한 접근을 제공하는 것(예: 고정 레이아웃 속성).
패키지 문서는 복잡한 메타데이터 인코딩 기능을 제공하지 않습니다. EPUB 제작자가 더 자세한 정보를 제공해야 하는 경우,
요소를 사용하여 메타데이터 레코드(예:
[onix] 같은 국제 표준을 준수하거나
맞춤 목적을 위해 생성된 것)를 연결할 수 있습니다.
이 접근 방식은 읽기 시스템이 메타데이터를 원래 형식으로 처리할 수 있게 하여,
최소한의 패키지 문서 구조를 사용하도록 변환할 때 발생할 수 있는 잠재적 문제와
정보 손실을 피합니다.
link
이 철학에 따라, 패키지 문서는 다음과 같은 최소한의
메타데이터 요구사항만 가집니다. 즉, [dcterms]
,
dc:title,
및
dc:identifier
요소와 함께 [dcterms]
dc:language
속성을 포함해야 MUST 합니다.
그 밖의 모든 메타데이터는 OPTIONAL입니다.
dcterms:modified
요소는 임의의 어휘에서 온 메타데이터 속성을 포함하기 위한
일반 메커니즘을 제공합니다. EPUB 제작자는 어떤 메타데이터 목적에도 이 메커니즘을 사용할 수
MAY 있지만, 일반적으로 EPUB 명세에 정의된 렌더링 메타데이터를
포함하는 데 사용합니다.
meta
접근성 메타데이터 권장사항은 [epub-a11y-11]를 참조하십시오.
Dublin Core 요소 [dcterms] 및
요소는 필수 자식 텍스트 콘텐츠
[dom]를 가집니다. 이 명세는 이러한 요소의 설명에서
이 콘텐츠를 요소의 값이라고 부릅니다.
meta
이러한 요소는 선행 및 후행 ASCII 공백 [infra]을 제거한 후 비어 있지 않은 값을 가져야 MUST 합니다(즉, 적어도 하나의 비공백 문자로 구성되어야 합니다).
이러한 요소 값 안의 공백은 중요하지 않습니다. 하나 이상의 공백 문자 시퀀스는 처리 중에 하나의 공백으로 축약 [infra]됩니다.
dc:identifier 요소 [dcterms]는
UUID, DOI 또는 ISBN 같은 식별자를 포함합니다.
dc:identifier
http://purl.org/dc/elements/1.1/
의
REQUIRED 자식.
반복 가능.
metadata
id
[conditionally required]
텍스트
EPUB 제작자는 정확히 하나의
EPUB 출판물에 고유한 식별자 — 그
고유 식별자 — 를
dc:identifier 요소 안에 제공해야 MUST 합니다.
이 dc:identifier 요소는
요소의 packageunique-identifier
속성에서 참조되는 값을 가진
id 속성을 지정해야 MUST 합니다.
정적이지는 않지만, EPUB 제작자는 EPUB 출판물의 고유 식별자를 가능한 한 드물게 변경해야 합니다. 고유 식별자는 참조와 배포 목적 모두를 위해 최대한 지속적이어야 합니다. EPUB 제작자는 메타데이터 업데이트, 정오표 수정 또는 이와 유사한 사소한 변경 같은 경미한 개정을 할 때 새 식별자를 발급해서는 안 됩니다.
EPUB 제작자는 추가 식별자를 지정할 수 MAY 있습니다.
EPUB 제작자는 가능할 때마다 식별자에 absolute-URL strings [url]를 사용하는 것이 권장됩니다. 예를 들어 EPUB 제작자가 소유한 도메인을 포함하면 식별자의 고유성을 향상할 수 있으며, namespace identifier [rfc8141]가 있는 URN을 사용하면 읽기 시스템의 처리가 개선됩니다.
EPUB 제작자는 dc:identifier 요소의 값이 확립된 시스템을 준수하거나
발급 기관에서 부여한 것임을 나타내기 위해 identifier-type
속성을 사용할 수 MAY 있습니다.
dc:title 요소 [dcterms]는
EPUB 출판물의 이름 인스턴스를 나타냅니다.
dc:title
http://purl.org/dc/elements/1.1/
의
REQUIRED 자식.
반복 가능.
metadata
텍스트
문서 순서상 첫 번째 dc:title 요소가 EPUB 출판물의
주 제목입니다(즉, 읽기 시스템이 사용자에게 제시하는 기본 제목).
EPUB 제작자는 읽기 시스템에서 제목이 일관되게 렌더링되도록
하나의 dc:title 요소만 사용해야 합니다.
여러 부분으로 된 제목을 위해 둘 이상의 dc:title 요소를 포함할 수는
있지만, 추가 dc:title 요소에 대한 읽기 시스템 지원은 일관되지 않습니다.
읽기 시스템은 추가 세그먼트를 무시하거나 예기치 않은 방식으로 결합할 수 있습니다.
예를 들어 다음 예제는 기본적인 여러 부분 제목을 보여 줍니다.
<metadata …>
<dc:title>
THE LORD OF THE RINGS
</dc:title>
<dc:title>
Part One: The Fellowship of the Ring
</dc:title>
…
</metadata>
같은 제목을 대신 하나의 dc:title 요소를 사용하여 다음과 같이 표현할 수 있습니다.
<metadata …>
<dc:title>
THE LORD OF THE RINGS, Part One:
The Fellowship of the Ring
</dc:title>
…
</metadata>
이 명세의 이전 버전은 여러 부분 제목의 세그먼트를 식별하고
형식화하기 위해 title-type 및 display-seq 속성을 사용할 것을
권장했습니다(Great
Cookbooks 예제 참조). 이러한 의미론을 추가하는 것은 여전히 가능하지만,
역시 충분히 지원되지는 않습니다.
dc:language 요소 [dcterms]는
EPUB 출판물 콘텐츠의 언어를 지정합니다.
dc:language
http://purl.org/dc/elements/1.1/
의
REQUIRED 자식.
반복 가능.
metadata
id
[optional]
텍스트
각 dc:language 요소의 값은 올바른 형식의 언어 태그
[bcp47]여야
MUST 합니다.
EPUB 제작자는 다국어 출판물에 대해
추가 dc:language 요소를 지정할 수 MAY 있지만,
읽기 시스템은 문서 순서상 첫 번째
dc:language 요소를 EPUB 출판물의 기본 언어로 취급합니다.
출판물
리소스는 자신의 언어를
dc:language 요소(들)로부터 상속하지 않습니다. EPUB 제작자는
해당 형식의 고유한 방법을 사용하여 리소스의 언어를 설정해야 합니다.
[dcterms] 요소 중
,
dc:identifier,
및
dc:language을
제외한 모든 요소는 OPTIONAL로 지정됩니다. 이러한 요소는 다음
일반화된 정의를 준수합니다.
dc:title
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/
의
OPTIONAL 자식.
반복 가능.
metadata
텍스트
이 명세는 다음 섹션에서 언급한 경우를 제외하고 [dcterms] 요소 정의를 수정하지 않습니다.
dc:contributor 요소 [dcterms]는 콘텐츠 생성에서
보조 역할을 한 사람, 조직 등의 이름을 나타내는 데 사용됩니다.
dc:contributor 요소에 대한 요구사항은 그 밖의 모든 측면에서
요소의 요구사항과 동일합니다.
dc:creator
dc:creator
요소 [dcterms]는 콘텐츠 생성에 책임이 있는
사람, 조직 등의 이름을 나타냅니다. EPUB 제작자는 제작자가 수행한 기능을 나타내기 위해
연결하여 role 속성을
해당 요소와 함께 사용할 수 MAY 있습니다.
dc:creator 요소는 EPUB 제작자가 읽기 시스템이
사용자에게 표시하길 의도하는 제작자의 이름을 포함해야 합니다.
EPUB 제작자는 제작자 이름의 정규화된 형태를 연결하기 위해
file-as 속성을 사용할 수 MAY 있으며,
제작자 이름을 다른 언어 또는 문자로 나타내기 위해
alternate-script 속성을 사용할 수 있습니다.
EPUB 출판물에 제작자가 둘 이상 있는 경우,
EPUB 제작자는 각각을 별도의 dc:creator 요소에 지정해야 합니다.
metadata 섹션 안의 dc:creator 요소의 문서 순서가
표시 우선순위를 결정하며, 처음 만나는 dc:creator 요소가
기본 제작자입니다.
EPUB 제작자는 보조 기여자를
요소를 사용하여 나타내야 합니다.
dc:contributor
dc:date 요소
[dcterms]는
EPUB 출판물의 출판일을 정의합니다.
출판일은 마지막 수정일(EPUB
제작자가 EPUB 출판물을 마지막으로 변경한 시각)과
같지 않습니다.
날짜 문자열은 [iso8601-1]을, 특히 W3C Date and Time Formats [datetime]에 표현된 하위 집합을 준수하는 것이 RECOMMENDED됩니다. 이러한 문자열은 사람과 기계가 모두 읽을 수 있기 때문입니다.
EPUB 제작자는 [dcterms] 어휘 또는 유사한 어휘에서 사용할 수 있는 전문화된 날짜 속성을 사용하여 추가 날짜를 표현해야 합니다.
EPUB 출판물은 둘 이상의
dc:date 요소를 포함해서는 MUST NOT 됩니다.
dc:subject
요소 [dcterms]는
EPUB 출판물의 주제를 식별합니다. EPUB 제작자는 요소의
값을 사람이 읽을 수 있는 표제나 레이블로 설정해야 하지만,
주제 분류 체계가 별도의 설명 레이블을 제공하지 않는 경우에는 코드 값을 사용할 수 있습니다.
EPUB 제작자는 요소의 값을 가져온 시스템이나 스킴을
authority 속성을 사용하여 식별할 수
MAY 있습니다.
스킴이 식별되는 경우, EPUB 제작자는
term 속성을 사용하여 주제 코드를
연결해야 MUST 합니다.
term 속성은 스킴을 지정하지 않는
dc:subject 요소와 연결되어서는
MUST NOT 됩니다.
dc:subject 요소와
term 속성의 값은 지정된 스킴이 요구하는 경우에만
대소문자를 구분합니다.
dc:type 요소
[dcterms]는
EPUB 출판물이 특수한 유형임을 나타내는 데
사용됩니다(예: EPUB 형식으로 패키징된 주석 또는 사전).
EPUB 제작자는 임의의 텍스트 문자열을 값으로 사용할 수 MAY 있습니다.
이전 IDPF EPUB 3 Working Group은 이 요소와 함께 사용할 수 있도록 특수 EPUB 출판물 유형의 비규범 레지스트리를 유지했습니다. 이 Working Group은 더 이상 레지스트리를 유지하지 않으며 새로운 특수 출판물 유형을 개발할 계획도 없습니다.
meta 요소는 패키지 메타데이터를 포함하는 일반적인 수단을 제공합니다.
meta
요소의 자식으로 사용합니다. 반복 가능.
metadata
텍스트
각 meta 요소는 메타데이터 표현식을 정의합니다.
property 속성은 표현식에서 만들어지는 진술을 정의하는
property
데이터 유형 값을 취하며, 요소의 텍스트 콘텐츠는 단언을 나타냅니다.
(자세한 내용은 D.1 어휘 연결 메커니즘을
참조하십시오.)
이 명세는 EPUB 제작자가 meta
요소를 사용하여 정의할 수 있는 두 가지 유형의 메타데이터 표현식을 정의합니다.
meta 요소 안에서 정의된
표현식이 EPUB 출판물의 어떤 측면을 설정하는 경우입니다.
refines 속성을 생략한 meta 요소는 기본
표현식을 정의합니다.
meta 요소 안에서 정의된 표현식이
그 의미를 강화하기 위해 refines 속성을 사용하여 다른 표현식 또는 리소스와
연결되는 경우입니다. 예를 들어 하위 표현식은 미디어 클립의 길이를 표현하여
미디어 클립을 정제하거나, 사람의 역할을 정의하여 제작자 또는 기여자
표현식을 정제할 수 있습니다.
EPUB 제작자는 다른 하위 표현식의 의미를 정제하는 데 하위 표현식을 사용할 수 MAY 있으며, 이를 통해 정보 체인을 만들 수 있습니다.
모든 [dcterms] 요소는 기본 표현식을 나타내며, meta 요소 하위 표현식에 의한 정제를 허용합니다.
Meta Properties Vocabulary는 property
속성과 함께 사용할 기본 어휘입니다.
EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.
scheme 속성은 EPUB 제작자가 요소의
값을 얻은 시스템 또는 스킴을 식별합니다.
이 속성의 값은 스킴을 정의하는 리소스로 해석되는
property 데이터 유형
값이어야 MUST 합니다. scheme 속성에는
기본 어휘가 없습니다(즉, 모든 값에는
접두사가 필요합니다).
metadata 섹션은 마지막 수정일을 포함하는
정확히 하나의 dcterms:modified
속성 [dcterms]을 포함해야
MUST 합니다. 이 속성의
값은 확장 형식
YYYY-MM-DDThh:mm:ssZ와 일치하는 날짜와 하루 중 시각의
[iso8601-1]
완전 표현이어야 MUST 합니다.
EPUB 제작자는 마지막 수정일을 협정 세계시(UTC)로 표현해야
MUST 하며,
"Z"(Zulu) 시간대 표시자로 끝내야 MUST 합니다.
EPUB 제작자는 EPUB 출판물을 변경할 때마다 마지막 수정일을 업데이트해야 합니다.
EPUB 제작자는 패키지 문서 메타데이터에 추가 modified 속성을
지정할 수 MAY 있지만,
그것들은 다른 주체를 가져야 MUST 합니다(즉, 요소 또는 리소스를
참조하는 refines 속성이 필요합니다).
마지막 수정일에 대한 요구사항은 EPUB 출판물에 대해 릴리스 식별자 [epubpackages-32]를 정의한 이전 EPUB 3 버전과의 호환성을 보장하기 위한 것입니다.
link 요소는 메타데이터 레코드 같은 리소스를 EPUB
출판물과 연결합니다.
link
의
자식으로 사용합니다.
반복 가능.
metadata
href
[required]
hreflang
[optional]
id
[optional]
media-type
[conditionally required]
properties
[optional]
refines
[optional]
rel
[required]
비어 있음
요소는 0개 이상의 metadatalink 요소를 포함할 수 MAY 있으며,
각 요소는 자신의 REQUIRED
href 속성에서 출판물 리소스 또는
연결된 리소스의 위치를 식별합니다.
link 요소에서 참조되는 리소스는 다음인 경우에만
출판물 리소스입니다.
스파인에서 참조되는 경우; 또는
EPUB 콘텐츠 문서 안에 포함되거나 삽입된 경우
(예: [html] script
요소에 삽입된 RDFa [rdfa-core]로 직렬화된
메타데이터 레코드 또는 JSON-LD [json-ld11]로 직렬화된 메타데이터 레코드).
그 밖의 모든 경우(예: 독립형 [onix] 레코드에 연결하는 경우), 참조된 리소스는 출판물 리소스가 아닙니다 (즉, 핵심 미디어 유형 요구사항의 적용을 받지 않음). 그리고 EPUB 제작자는 이를 매니페스트에 나열해서는 MUST NOT 됩니다.
EPUB 제작자는 연결된 리소스를 EPUB 컨테이너 안이나 외부에 둘 수 MAY 있지만, 읽기 시스템은 EPUB 컨테이너 밖의 리소스를 가져올 필요가 없다는 점을 고려해야 합니다.
연결된 리소스가 EPUB 컨테이너 밖에 위치한 경우,
같은 URL [url]에서 둘 이상의
미디어 유형이 제공될 수 있으므로 media-type
속성은 OPTIONAL입니다. EPUB 제작자는
EPUB 컨테이너 안의 모든 연결된 리소스에 대해 이 속성을 지정해야
MUST 합니다.
OPTIONAL hreflang 속성은
연결된 리소스의 언어를 식별합니다. 이 값은 올바른 형식의 언어
태그 [bcp47]여야
MUST 합니다.
REQUIRED rel 속성은 연결된
리소스가 EPUB 출판물과 가지는 관계를 설정하는, 공백으로 구분된
property 값 목록을 취합니다.
media-type 속성의 값만으로는 연결된 리소스의 유형을 식별하기에 항상
충분하지 않습니다(예: 많은 XML 기반 레코드 형식은 미디어 유형
"application/xml"을 사용합니다). 이러한 일반 리소스의 식별에서
읽기 시스템을 돕기 위해, EPUB 제작자는
properties 속성에 의미 식별자를 지정할 수 MAY 있습니다.
Metadata Link Vocabulary는 rel 및
properties 속성과 함께 사용할 기본 어휘입니다.
EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 관계와 속성을 추가할 수 MAY 있습니다.
EPUB 제작자는 하나 이상의 연결된 메타데이터 레코드를 제공할 수 MAY 있습니다.
EPUB 제작자가 EPUB 출판물에 연결할 수 있는 메타데이터 레코드 형식과 직렬화가 다양하고, 그들 사이의 메타데이터 속성 비교가 복잡하기 때문에, 이 명세는 읽기 시스템이 연결된 레코드를 처리하도록 요구하지 않습니다.
전체 레코드 외에도, EPUB 제작자는 대체 형식에서 사용할 수 있는 개별 메타데이터 속성을
식별하기 위해 link 요소를 사용할 수도 MAY 있습니다.
manifest 요소는 콘텐츠 렌더링에 사용되는 출판물 리소스의 완전한 목록을 제공합니다.
패키지
문서를 제외하고,
manifest는 모든 출판물 리소스를 그것이
컨테이너 리소스인지 원격 리소스인지와
관계없이 나열해야
MUST 합니다.
패키지 문서는 이미 container.xml 파일로 식별되므로,
manifest는 이를 위한 item 요소를 지정해서는
MUST NOT 안 됩니다(즉,
자기 참조는 아무 목적도 없습니다).
매니페스트는 출판물 리소스를 나열하기 위한 것일 뿐입니다. 연결된
리소스 및 OCF 컨테이너 처리를 위한 특수 파일
(즉, META-INF 디렉터리의 파일과
mimetype 파일)은 포함할 수 없습니다.
출판물 리소스의 완전한 매니페스트를 제공하지 않으면 렌더링 문제가 발생할 수 있습니다. 읽기 시스템은 그러한 리소스를 압축 해제하지 않거나 보안상의 이유로 해당 리소스에 대한 접근을 막을 수 있습니다.
item 요소는 출판물 리소스를 나타냅니다.
item
의
자식으로 사용합니다.
반복 가능.
manifest
fallback
[conditionally required]
href
[required]
id
[required]
media-overlay
[optional]
media-type
[required]
properties
[optional]
비어 있음
각 item 요소는 자신의 href
속성 안의 URL [url]로 출판물 리소스를 식별합니다.
값은 absolute- 또는 path-relative-scheme-less-URL
string [url]이어야 MUST 합니다.
EPUB 제작자는
각 URL이 구문 분석 후
manifest 범위 안에서 고유하도록 보장해야 MUST 합니다.
item 요소로 식별되는 출판물 리소스는
media-type 속성에 제공된 MIME
미디어 유형 [rfc2046]에서
추론되는 적용 가능한 명세(들)를 준수해야 MUST 합니다. 핵심 미디어 유형 리소스의 경우, EPUB 제작자는
3.2 핵심 미디어 유형에서 지정한 미디어
유형을
사용해야 MUST 합니다.
fallback 속성은 참조된 출판물 리소스에 대한
폴백을 지정합니다. fallback 속성의 IDREF [xml]
값은
manifest 안의 다른 item으로 해석되어야
MUST 합니다.
하나의 item에 대한 폴백은 또 다른
item에 대한 폴백을 지정할 수 MAY 있으며,
이런 식으로 이어져 폴백 옵션의 체인을 만들 수 있습니다. 폴백 체인의 사용과 관련된
추가 요구사항은 3.5.1 매니페스트
폴백을 참조하십시오.
media-overlay 속성은 이
item으로 설명되는 리소스에 대한
미디어 오버레이 문서를
식별하는 IDREF [xml]를 취합니다.
자세한 내용은 9.3.5
미디어 오버레이 패키징을 참조하십시오.
manifest 안의 item 요소 순서는 중요하지 않습니다.
요소가 콘텐츠 문서의 표시 순서를 제공합니다.
spine
properties 속성은 리소스의 콘텐츠에 관한 정보를
읽기 시스템에 제공합니다.
이 정보는 표지 이미지 및 EPUB 내비게이션 문서 같은 핵심 리소스의
발견을 가능하게 합니다. 또한 예를 들어 해당 리소스가 삽입된 스크립팅, MathML 또는 SVG를
포함하는지 여부를 나타내어 읽기 시스템이 렌더링을 최적화할 수 있게 합니다.
Manifest Properties
Vocabulary는 properties 속성의
기본 어휘입니다.
EPUB 제작자는
item 요소가 참조하는 리소스가 각각의 정의와 일치할 때마다
다음 속성을 설정해야 MUST 합니다.
이러한 속성은 리소스 안에 포함된 콘텐츠에는 재귀적으로 적용되지 않습니다(예:
[html]
iframe
요소를 통해). 예를 들어 스크립트가 없는 XHTML 콘텐츠 문서가
스크립트 콘텐츠
문서를 삽입하는 경우, 삽입된 문서의 매니페스트
item
properties 속성에만 scripted 값이 있습니다.
EPUB 제작자는 nav 속성을 사용하여 정확히 하나의
item을 EPUB 내비게이션 문서로 선언해야
MUST 합니다.
EPUB 출판물이 표지 이미지를 포함하는 경우, cover-image 속성을 설정하는 것이
권장되지만,
이 속성 설정은 OPTIONAL입니다.
EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.
bindings 요소는 이 명세에서 지원하지 않는 미디어 유형에 대한 사용자 정의
처리기 집합을 정의합니다.
이 요소의 사용은 사용 중단됨입니다.
자세한 내용은 [epubpublications-301]의 bindings
요소 정의를 참조하십시오.
spine 요소는 기본 읽기 순서를 나타내는 매니페스트
item 참조의 정렬된 목록을 정의합니다.
spine
id
[optional]
page-progression-direction
[optional]
itemref[1 or more]
spine은 최소 하나의
EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서를 지정해야
MUST 합니다.
EPUB 제작자는
spine 안의 출판물 리소스에서 하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서를
spine에 나열해야 MUST 합니다. 여기서 하이퍼링크는
사용자가 현재 리소스에서 벗어나 탐색해야 하는 모든 연결 메커니즘을 포함합니다.
일반적인 하이퍼링크 메커니즘에는 [html]
a
및
area
요소의
href
속성과 스크립트 링크(예: DOM Events 및/또는 폼 요소 사용)가 포함됩니다.
하이퍼링크된 리소스를 나열해야 하는 요구사항은 재귀적으로 적용됩니다
(즉, EPUB 제작자는 하이퍼링크된 문서에서 하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서를
나열해야 하며, 이런 식으로 계속됩니다.).
EPUB 제작자는 EPUB 내비게이션 문서를 spine에 포함하는지 여부와 관계없이,
EPUB 내비게이션 문서에서
하이퍼링크되는 모든 EPUB 및 외부 콘텐츠 문서도
spine에 나열해야 MUST 합니다.
page-progression-direction
속성은 콘텐츠가 흐르는 전역 방향을 설정합니다. 허용되는 값은
ltr(왼쪽에서 오른쪽), rtl(오른쪽에서 왼쪽) 및 default입니다.
EPUB 제작자가 default 값을 지정하면 선호 방향을 표현하지 않는 것이며,
읽기 시스템이 렌더링 방향을 선택할 수 있습니다.
page-progression-direction 속성이 전역 흐름 방향을 설정하지만,
개별 EPUB 콘텐츠 문서 및 EPUB 콘텐츠 문서의 일부는 이 설정을 재정의할 수
MAY 있습니다
(예: writing-mode CSS 속성을 통해). 읽기 시스템도
기본 방향을 재정의하는 메커니즘을 제공할 수 있습니다(예: 대체 스타일시트를
적용할 수 있는 버튼 또는 설정).
itemref 요소는 기본 읽기 순서 안의 EPUB 콘텐츠 문서 또는 외부 콘텐츠 문서를 식별합니다.
itemref
의
자식으로 사용합니다.
반복 가능.
spine
id
[optional]
idref
[required]
linear
[optional]
properties
[optional]
비어 있음
각 itemref 요소는 자신의
idref 속성 안의
IDREF [xml]를 통해
매니페스트 안의
의
ID [xml]를 참조해야
MUST 합니다.
itemitem 요소 ID는 두 번 이상 참조되어서는 MUST NOT 안 됩니다.
참조된 각 매니페스트 item은
a) EPUB 콘텐츠 문서이거나, b)
외부 콘텐츠 문서로서 그
매니페스트 폴백 체인에
EPUB 콘텐츠 문서를 포함해야 MUST 합니다.
EPUB 출판물은 EPUB 내비게이션 문서를 요구하지만, 이를 스파인에 포함하는 것은 필수가 아닙니다.
linear 속성은 참조된
item이 기본 읽기 순서에 기여하고
읽기 시스템이 순차적으로 읽어야 하는 콘텐츠를
포함하는지("yes"), 또는 읽기 시스템이 순서를 벗어나 접근할 수 있는
기본 콘텐츠를 보완하거나 강화하는 보조 콘텐츠를 포함하는지("no")를 나타냅니다.
보조 콘텐츠의 예에는 주석, 설명 및 답안지가 포함됩니다.
linear 속성은 사용자가 기본 읽기 순서의 일부로 접근해야 하는 콘텐츠와,
읽기 시스템이 예를 들어 팝업 창에 표시하거나 음성 렌더링에서 생략할 수 있는
보충 콘텐츠를 구별할 수 있게 합니다.
그러나 콘텐츠가 비선형이라고 지정한다고 해서 읽기 시스템이 이를 특정 방식으로 제시해야 하는 것은 아닙니다. 이는 목적에 대한 힌트일 뿐입니다. 예를 들어 읽기 시스템은 비선형 콘텐츠를 스파인에서 나타나는 위치에 제시할 수도 있고, 사용자가 스파인의 끝에 도달할 때까지 건너뛸 수도 있습니다.
EPUB 제작자는 사용자가 선형 스파인 항목 사이에서 이를 만나는 것이 타당한 경우를 제외하고, 비선형 콘텐츠를 스파인의 끝에 나열해야 합니다.
선형 itemref 요소는 linear
속성 값이 명시적으로 "yes"로 설정되어 있거나 해당 속성을 생략한 요소입니다 —
읽기 시스템은 속성이 없는 itemref 요소에 대해 값 "yes"를
가정합니다. 스파인은 최소 하나의
선형 itemref 요소를 포함해야 MUST 합니다.
EPUB 제작자는 모든 비선형 콘텐츠에 접근할 수 있는 수단(예: 콘텐츠 안의 하이퍼링크 또는 EPUB 내비게이션 문서로부터의 하이퍼링크)을 제공해야 MUST 합니다.
Spine Properties
Vocabulary는 properties 속성의
기본 어휘입니다.
EPUB 제작자는 D.1 어휘 연결 메커니즘에 정의된 대로 다른 어휘의 용어를 추가할 수 MAY 있습니다.
collection 요소는 관련된 리소스 그룹을 정의합니다.
collection
package의 OPTIONAL 여섯 번째 요소. 반복 가능.
이 순서로: metadata
[0 or 1], (
collection[1 or more] 또는 (
collection[0 or more], link
[1 or more] ))
collection 요소는 EPUB 제작자가
다양한 잠재적 사용을 위해 리소스를 논리적 그룹으로 조립할 수 있게 합니다. 예를 들어,
여러 EPUB 콘텐츠 문서에
나뉘어 있는 의미 있는 콘텐츠 단위(예: 여러 문서에 나뉜 색인)로 재조립할 수 있게 하거나,
전문화된 목적의 리소스(예: 미리보기 콘텐츠)를 식별하거나, EPUB 출판물에 관한 추가 정보를 제시하는
리소스를 함께 모을 수 있습니다.
EPUB 제작자는 각
collection
요소의 역할을 그 role 속성에서 식별해야 MUST 하며,
그 값은 하나 이상의 NMTOKEN
[xmlschema-2] 및/또는 absolute-URL-with-fragment
strings [url]이어야 MUST 합니다.
전문화된 컬렉션 작성에 대한 요구사항은 각각의 명세에서 정의합니다.
이전 IDPF EPUB 3 Working Group은 role 확장 레지스트리와 사용자 정의 확장 role 목록을 모두 유지했습니다. 이 Working Group은 더 이상 이러한 레지스트리를 유지하지 않습니다.
새 collection 요소 role의 생성은 이제 사용 중단됨입니다.
전문화된 컬렉션의 생성에 대한 자세한 내용은, 그 사용에 대한 요구사항 및 제한사항을 포함하여,
[epubpackages-32]의
collection
요소 정의를 참조하십시오.
패키지 문서의 레거시 기능은 EPUB 제작자가 EPUB 2 출판물만 지원하는 읽기 시스템에서 어느 정도 작동할 수 있는 콘텐츠를 작성할 수 있도록 하기 위해서만 EPUB 2에서 유지되었습니다.
이러한 기능은 EPUB 3 읽기 시스템이 개발되던 중복 기간을 해결하기 위해 주로 추가되었습니다. 당시에는 사용자가 EPUB 2 읽기 시스템에서 EPUB 3 출판물을 열 가능성이 여전히 높았기 때문입니다.
EPUB 2 출판물만 처리하는 읽기 시스템은 이제 드물기 때문에, EPUB 제작자는 이러한 레거시 기능을 추가하려고 노력하기 전에 자신의 출판물이 여전히 이러한 유형의 오래된 기기에서 열릴 가능성을 고려해야 합니다.
EPUB 제작자는 EPUB 2 읽기 시스템과의 호환성 목적을 위해 이 섹션에서 정의한 레거시 기능을 포함할 수 MAY 있습니다.
EPUB 3 읽기 시스템은 사용자에게 출판물을 제시할 때 이러한 기능을 사용하지 않습니다.
EPUB 적합성 검사기는 EPUB 출판물 안에 레거시 기능이 존재한다고 해서 EPUB 제작자에게 경고해서는 안 됩니다. 그 포함은 하위 호환성을 위해 유효하기 때문입니다. EPUB 적합성 검사기는 레거시 기능이 그 정의를 준수하지 않거나 달리 사용 요구사항을 위반하는 경우 EPUB 제작자에게 반드시 경고해야 합니다.
meta
요소 [opf-201]는 EPUB 2
읽기 시스템을 위한
일반 메타데이터를 포함하는 수단을 제공합니다.
자세한 내용은 [opf-201]의
meta
요소 정의를 참조하십시오.
EPUB 3
요소는 서로 다른 속성을 사용하고 텍스트 콘텐츠를 요구하며,
EPUB 3 읽기 시스템을 위한 메타데이터 기능을 제공합니다.
meta
[opf-201] meta 요소는
또한 EPUB 제작자가 EPUB 2 읽기 시스템을 위해
표지 이미지를 식별할 수 있게 합니다. EPUB 3에서는 이미지에 대한 매니페스트
에
itemcover-image 속성을 사용하여 표지 이미지를
식별해야 합니다.
guide
요소 [opf-201]는 EPUB 2
읽기 시스템에서
핵심 구조로의 기계 처리 가능한 내비게이션을 제공합니다.
자세한 내용은 [opf-201]의
guide 요소
정의를 참조하십시오.
EPUB 내비게이션 문서 안의 landmarks nav는 EPUB 3 읽기 시스템에서 이 기능을 제공합니다.
NCX [opf-201]는 EPUB 2 읽기 시스템을 위한 목차를 제공합니다.
자세한 내용은 [opf-201]의 NCX 정의를 참조하십시오.
EPUB 내비게이션 문서는 EPUB 3 읽기 시스템에서 NCX를 대체합니다.
이 섹션은 비규범적입니다.
이 섹션은 XHTML 콘텐츠 문서를 만들기 위한 [html]의 프로파일을 정의합니다. 이 프로파일을 준수하는 XML 문서의 인스턴스는 핵심 미디어 유형 리소스이며, 이 명세에서는 XHTML 콘텐츠 문서라고 부릅니다.
XHTML 콘텐츠 문서는 다음과 같습니다.
6.1.4 HTML 편차 및 제약에서 명시적으로 재정의하지 않는 한, [html]에서 정의한 모든 문서 구성에 대한 적합성 기준을 준수해야 MUST 합니다.
6.1.3 HTML 확장에 정의된 대로 [html] 문법에 대한 확장을 포함할 수 MAY 있으며, 그 안에서 정의된 모든 콘텐츠 적합성 제약을 준수해야 MUST 합니다.
달리 명시되지 않는 한, XHTML 콘텐츠 문서는 의미론, 구조 및 처리 동작에 대한 모든 정의를 [html] 명세에서 상속합니다.
EPUB 출판물이 [epub-a11y-11]의 접근성 요구사항을 따르라는 권장은 XHTML 콘텐츠 문서에도 적용됩니다. 접근성을 참조하십시오.
이 섹션은 기반이 되는 [html] 문서 모델에 대한 EPUB 3 XHTML 콘텐츠 문서 확장을 정의합니다.
EPUB 제작자는
XHTML 콘텐츠 문서에서
구조적 의미론을 표현하기 위해
속성을 사용할 수 MAY 있습니다.
epub:type
[html-rdfa] 명세는 EPUB 제작자가 콘텐츠를 의미적으로 풍부하게 하기 위해 XHTML 콘텐츠 문서에서 사용할 수 MAY 있는 속성 집합을 정의합니다. 이러한 속성의 사용은 [html-rdfa]에 정의된 요구사항을 준수해야 MUST 합니다.
[html-rdfa] 명세는 저자가 RDFa 속성을 사용할 때 [html] 콘텐츠 모델에 대한 변경을 정의합니다. 이 수정된 콘텐츠 모델은 XHTML 콘텐츠 문서에서 유효합니다.
RDFa를 나열한 것은 Working Group의 선호를 표현하는 것이 아니라, 이러한 속성이 HTML 문법의 확장을 나타낸다는 것만을 의미합니다. EPUB 제작자는 XHTML 콘텐츠 문서에서 microdata 속성 [html] 및 linked data [json-ld11]도 지정할 수 있으며, 둘 다 기본적으로 지원됩니다.
switch 요소는 EPUB 제작자가 사용자에게 표시되는 콘텐츠를 맞춤화할 수 있는
간단한 메커니즘을 제공합니다. 이는 EPUB 읽기 시스템의
스크립팅 기능에 의존하지 않습니다.
이 요소의 사용은 사용 중단됨입니다.
자세한 내용은 [epubcontentdocs-301]의 switch
요소 정의를 참조하십시오.
trigger 요소는 스크립트 및 비스크립트 컨텍스트 모두에서 오디오 및 비디오 재생 같은
멀티미디어 객체를 제어하기 위한, 마크업으로 정의된 사용자 인터페이스의 생성을 가능하게 합니다.
이 요소의 사용은 사용 중단됨입니다.
자세한 내용은 [epubcontentdocs-301]의
epub:trigger
요소 정의를 참조하십시오.
XHTML 콘텐츠 문서는 사용자 정의 속성을 포함할 수 MAY 있습니다. 이는 네임스페이스 URL의 도메인 [url]에 다음 문자열 중 어느 것도 포함하지 않는 접두사가 붙은 [xml-names] 속성입니다.
w3.orgidpf.org사용자 정의 속성을 사용할 때, 콘텐츠는 어떤 읽기 시스템에서 렌더링되더라도 정보 손실이나 그 밖의 중대한 품질 저하 없이 사용자가 소비할 수 있는 상태로 유지되어야 MUST 합니다.
사용자 정의 속성은 보통 읽기 시스템별 방식으로 정의되며, 다른 읽기 시스템이 사용하도록 의도된 것이 아닙니다. 이 명세는 여러 독립적인 읽기 시스템이 사용할 수 있는 확장을 제공하도록 확장되어야 합니다.
이 섹션은 EPUB 3 XHTML 콘텐츠 문서에 적용되는, 기반 [html] 문서 모델로부터의 편차와 이에 대한 제약을 정의합니다.
XHTML 콘텐츠 문서는 삽입된 [mathml3]을 지원합니다. MathML 마크업의 출현은 MathML 명세 [mathml3]에 표현된 제약을 준수해야 MUST 하며, 다음 추가 제한사항을 따릅니다.
math 요소는
annotation-xml 요소 안을 제외하고
Presentation MathML만
포함해야 MUST 합니다.
EPUB
제작자는 XHTML 콘텐츠 문서의 MathML 마크업 안에
Content MathML을 포함할 수
MAY 있으며, 존재하는 경우 이를
semantics
요소의 annotation-xml 자식 요소 안에 포함해야
MUST 합니다.
EPUB 제작자가 앞 조건에 따라 Content MathML을
포함하는 경우, 해당 annotation-xml
요소의 encoding 속성을 기능적으로 동등한 값인
MathML-Content 또는 application/mathml-content+xml 중
하나로 설정하고, name 속성을 contentequiv로 설정해야
MUST 합니다.
이 하위 집합은 [html] 사용자 에이전트와의 호환성을 유지하면서, 읽기 시스템의 구현 부담을 줄이고 접근성을 증진합니다.
XHTML 콘텐츠 문서는 SVG 삽입을 지원합니다.
img
또는
object
요소에서. 참조로 삽입된 SVG는 SVG
핵심 미디어 유형이므로, 그 요구사항은 이미 6.2
SVG 콘텐츠 문서에 정의되어 있습니다.
이 섹션은 비규범적입니다.
[html] base
요소는 URL 구문 분석을 위한 문서 기본 URL을 지정하는 데 사용할 수 있습니다.
EPUB 출판물에서 이를 사용할 때,
base 요소의 해석은 의도치 않게 원격
리소스에 대한 참조를 초래할 수 있습니다.
또한 읽기 시스템이 하이퍼링크의 위치를
잘못 해석하게 할 수도 있습니다(예: base 요소가 절대 URL을 지정하면
출판물 안의 다른 문서에 대한 상대 링크가 웹 사이트에 대한 링크처럼 보일 수 있음).
중대한 상호운용성 문제를 피하기 위해, EPUB
제작자는
base 요소를 사용해서는 안 됩니다.
[html]
rp
요소는 루비 마크업을 인식하지 못하는 오래된 읽기 시스템을 위한
폴백을 제공하기 위한 것입니다(즉, ruby 마크업 주위에 괄호 표시).
EPUB 3 읽기 시스템은 루비를 인식하고 폴백을 제공할 수 있으므로,
EPUB 제작자는
rp 요소를 사용해서는 안 됩니다.
[html] embed
element 요소는 스크립팅을 지원하지 않는
읽기 시스템에 폴백
콘텐츠를 제공하기 위한 내재적 기능을 포함하지 않으므로, 참조된 리소스가 스크립팅을 포함하는 경우
EPUB 제작자는
이 요소를 사용하지 않는 것이 권장됩니다.
[html]
object
요소는 내재적 폴백 기능을 포함하므로 더 나은 대안입니다.
읽기 시스템은 [svg]의 모든 기능을 지원하지 않을 수 있으며, 읽기 시스템이 실행되는 모든 플랫폼에서 이를 지원하지 않을 수도 있습니다. 그러한 기능을 활용할 때, EPUB 제작자는 상호운용성과 문서 수명에 내재된 위험을 고려해야 합니다.
이 섹션은 비규범적입니다.
Scalable Vector Graphics (SVG) 명세 [svg]는 최종 형태의 벡터 그래픽과 텍스트를 표현하기 위한 형식을 정의합니다.
EPUB 제작자는 일반적으로 XHTML 콘텐츠 문서를 최상위 문서 유형으로 사용하지만, SVG 콘텐츠 문서의 사용도 허용됩니다. EPUB 제작자는 보통 최종 형태의 페이지 이미지가 콘텐츠의 유일하게 적합한 표현인 경우 같은 특정한 특수 사례에서만 SVG가 필요합니다(예: 표지 아트 또는 만화나 코믹북의 맥락).
이 섹션은 [svg] 문서에 대한 프로파일을 정의합니다. 이 프로파일을 준수하는 XML 문서의 인스턴스는 핵심 미디어 유형 리소스이며, 이 명세에서는 SVG 콘텐츠 문서라고 부릅니다.
이 섹션은 SVG 콘텐츠 문서에 대한 적합성 요구사항을 정의합니다. XHTML 콘텐츠 문서에 삽입된 SVG에 대한 적합성 요구사항은 6.1.4.2 삽입된 SVG를 참조하십시오.
SVG 콘텐츠 문서는 적합한 SVG 독립 파일 [svg]이어야 MUST 하며, 6.2.3 SVG에 대한 제한사항에 표현된 모든 콘텐츠 적합성 제약을 준수해야 합니다.
EPUB 출판물이 [epub-a11y-11]의 접근성 요구사항을 따르라는 권장은 SVG 콘텐츠 문서에도 적용됩니다. 접근성을 참조하십시오.
이 명세는 SVG 콘텐츠 문서 및 XHTML 콘텐츠 문서에 포함으로 삽입된 SVG의 콘텐츠 모델을 다음과 같이 제한합니다.
[svg] foreignObject
요소:
[html] flow content 또는 정확히 하나의
[html] body 요소를 포함해야
MUST 합니다.
포함으로 삽입된 SVG의 경우,
[html]에 정의된
SVG에 대한 제한사항에 따라
body 요소는 허용되지 않습니다.
6.1.2 XHTML 요구사항에 정의된 XHTML 콘텐츠 문서 모델을 준수하는 유효한 문서 조각을 포함해야 MUST 합니다.
[svg]
title
요소가 마크업된 텍스트를 포함하는 경우,
그 마크업은 HTML 네임스페이스 [infra]에
선언된 요소만 포함해야 MUST 합니다.
지정된 경우,
속성은 렌더링 가능한 요소 [svg]에만
포함되어야 MUST 합니다.
epub:type
SVG 콘텐츠 모델은 저자가 네임스페이스가 있는
속성을 포함할 수 있도록 허용하므로, 이 명세는
속성 또는 어휘 연결
메커니즘을 허용할 필요가 없습니다.
epub:type
그러나 참조로 삽입된 SVG와 포함으로 삽입된 SVG 사이의 핵심 차이 하나는,
포함으로 삽입된 SVG는 루트
svg
요소에 epub:prefix 속성을 가질 수 없다는 점입니다
[svg]. 자세한 내용은 D.1.4
prefix 속성을 참조하십시오.
이 섹션은 XHTML 및 SVG 콘텐츠 문서 모두에서 사용할 수 있는 기술에 대한 요구사항을 정의합니다.
이 섹션은 비규범적입니다.
CSS는 Open Web Platform의 필수적인 일부입니다. 독자, 출판자 및 문서 저자는 HTML이 "그냥 작동"하기를 기대하듯 CSS도 "그냥 작동"하기를 기대합니다.
과거에 EPUB은 특정 속성에 대한 지원을 의무화하고 수많은 다른 속성의 접두사 버전을 제공하는 CSS 프로파일을 정의했습니다. CSS Working Group은 더 이상 접두사 속성의 사용을 권장하지 않지만, 이 명세는 기존 콘텐츠를 깨뜨리지 않기 위해 일부 접두사 속성을 유지합니다. 그러나 이 섹션에 정의된 사소한 예외를 제외하면, EPUB은 CSS 정의를 W3C에 맡깁니다.
일부 읽기 시스템은 CSS의 원하는 기능을 모두 지원하지 않을 수 있다는 점을 염두에 두십시오. 다음은 특히 문제가 되는 것으로 알려져 있습니다.
읽기 시스템으로 인한 페이지 나누기는 스타일시트와 잘 상호작용하지 않을 수 있습니다. 읽기 시스템이 때때로 열을 사용해 페이지를 나누기 때문입니다. 이로 인해 뷰포트 크기 값이 올바르지 않을 수 있습니다. 고정 및 절대 위치 지정은 특히 문제가 됩니다.
일부 유형의 화면은 애니메이션과 전환을 제대로 렌더링하지 못합니다(예: 지연 시간이 긴 화면).
CSS 스타일시트:
다음 예외를 제외하고 모든 CSS 속성을 포함할 수 MAY 있습니다.
direction
속성 [css-writing-modes-3]을
포함해서는 MUST NOT 됩니다.
unicode-bidi
속성 [css-writing-modes-3]을
포함해서는 MUST NOT 됩니다.
6.3.1.3 접두사 속성에 정의된 접두사 속성을 포함할 수 MAY 있습니다.
UTF-8 또는 UTF-16 [unicode]으로 인코딩되어야 MUST 하며, UTF-8이 RECOMMENDED 인코딩입니다.
EPUB의 이전 버전은 접두사가 붙은 CSS 속성을 포함했는데, 이는 세계 언어와 관련된 많은 CSS 기능이 아직 성숙하지 않았기 때문입니다. 이러한 접두사를 사용해 작성된 콘텐츠에 대한 하위 호환성을 보장하기 위해, 이 명세에서는 그것들이 유지되었습니다. 달리 언급되지 않는 한, 접두사 속성과 값은 적절한 CSS 명세에 설명된 접두사 없는 동등 항목과 정확히 동일하게 동작합니다. 접두사 속성은 E. 접두사 CSS 속성에 문서화되어 있습니다.
EPUB 제작자는 접두사 없는 속성을 사용해야 하며, 읽기 시스템은 현재 CSS 명세를 지원해야 합니다. 이 명세는 [epubcontentdocs-301]의 널리 사용되는 접두사 속성을 유지하지만, 덜 사용되는 속성에 대한 지원은 제거합니다. EPUB 제작자는 제거된 속성에 대해 가능한 경우 CSS 네이티브 해결책을 사용해야 합니다.
Working Group은 현재 이러한 접두사 속성을 사용하는 EPUB 제작자가 지원이 허용하는 즉시 접두사 없는 버전으로 이동할 것을 권장합니다. Working Group은 EPUB의 다음 주요 버전에서 이를 지원할 것으로 예상하지 않기 때문입니다.
EPUB 콘텐츠 문서는 각각의 기반 명세
([html] 및 [svg])에서 이에 대해
정의한 기능을 사용하여 스크립팅을 포함할 수 MAY 있습니다. EPUB 콘텐츠 문서가
스크립팅을 포함하는 경우, 이 명세는 이를 스크립트 콘텐츠 문서라고 부릅니다. 이
레이블은 [html]
form
요소를 포함하는 XHTML 콘텐츠 문서에도
적용됩니다.
매니페스트 item 요소의
scripted 속성은 EPUB 콘텐츠 문서가
스크립트 콘텐츠 문서임을 나타내는 데 사용됩니다.
[html] script 요소가 data
block [html]을 포함하는 경우, 이는 스크립트 콘텐츠를
나타내지 않습니다.
[svg]는 발행 시점 기준으로 data block을 정의하지 않지만, 향후 업데이트에서 이 개념이 추가된다면 동일한 제외가 적용될 것입니다.
EPUB 제작자는 읽기 시스템이 각 EPUB 출판물에 고유한 origin [html]이 할당된 것처럼 동작해야 한다는 점에 유의해야 합니다. 실제로 이는 스크립트가 EPUB 출판물 간에 데이터를 공유할 수 없다는 뜻입니다.
스크립트가 어떤 컨텍스트에서 사용되는지도 읽기 시스템이 그 스크립트에 부여하는 권한과 제한을 결정합니다(자세한 내용은 스크립팅 [epub-rs-33]을 참조하십시오).
읽기 시스템은 다른 EPUB 기능을 비활성화하거나 다른 렌더링 및 사용자 경험을 제공하는 방식으로 스크립트 콘텐츠 문서를 렌더링할 수 있습니다(예: 페이지 나누기 비활성화).
EPUB 3은 스크립트 실행을 위한 두 가지 컨텍스트를 정의합니다.
iframe
요소 안에서 발생하는 경우; 및
스크립트는 다른 컨텍스트에서 실행될 수 있지만, 이러한 컨텍스트에 대한
읽기 시스템 지원은 선택 사항입니다.
예를 들어 스크립트 SVG 문서는 [html]
object
요소에서 참조될 수 있습니다.
자세한 내용은 스크립트 처리 [epub-rs-33]를 참조하십시오.
EPUB 제작자가 코드를
script 요소에 직접 삽입하든, 해당 요소의 src 속성을 통해
참조하든, 실행 컨텍스트에는 차이가 없습니다.
EPUB 제작자가 스크립트에 사용하는 컨텍스트는 스크립트가 수행할 수 있는 작업과 읽기 시스템에서의 지원 가능성 모두에 영향을 주며, 다음 하위 섹션에서 설명합니다.
두 컨텍스트의 차이에 대한 예는 H.2 스크립팅 컨텍스트를 참조하십시오.
컨테이너 제약 스크립트는 다음 중 하나입니다.
[html]
script
요소의 인스턴스로,
[html]
iframe
요소를 사용하여 XHTML 콘텐츠 문서에 삽입된
XHTML 콘텐츠 문서
안에 포함된 것.
[svg] script
요소의 인스턴스로,
[html]
iframe
요소를 사용하여 XHTML 콘텐츠 문서에 삽입된
SVG 콘텐츠 문서 안에
포함된 것.
컨테이너 제약 스크립트는 자신을 삽입하는
EPUB 콘텐츠 문서(즉,
iframe 요소를 포함하는 문서)의 DOM을 수정하는 명령을 포함해서는
MUST NOT 됩니다. 또한 이를 포함하는 사각형의 크기를 조작하는
명령도 포함해서는 MUST NOT 됩니다.
EPUB 제작자는 읽기 시스템에서 컨테이너 제약 스크립팅에 대한 지원이 리플로 가능 문서에서만 권장된다는 점에 유의해야 합니다 [epub-rs-33]. 또한 읽기 시스템의 고정 레이아웃 문서에서의 지원은 선택 사항입니다.
EPUB 제작자는 스크립팅 지원이 없는 읽기 시스템에서 컨테이너 제약 스크립트가 우아하게 성능 저하되도록 보장해야 합니다(6.3.2.5 스크립팅 폴백 참조).
스크립팅 사용을 컨테이너 제약 모델로 제한하기로 선택한 EPUB 제작자는 스크립트 콘텐츠와 비스크립트 콘텐츠 사이에서 더 일관된 사용자 경험을 보장할 수 있습니다 (예: 일관된 페이지 나누기 동작).
스파인 수준 스크립트는 최상위 콘텐츠 문서 안에 포함된
[html]
script
또는 [svg] script
요소의 인스턴스입니다.
EPUB 제작자는 읽기 시스템에서 스파인 수준 스크립팅 지원이 고정 레이아웃 문서 및 스크롤로 설정된 리플로 가능 문서 [epub-rs-33]에서만 권장된다는 점에 유의해야 합니다. 또한 그 밖의 모든 컨텍스트에서 읽기 시스템 지원은 선택 사항입니다.
스파인 수준 스크립팅을 포함하는 최상위 콘텐츠 문서는 스크립팅이 비활성화되었거나 사용할 수 없을 때(예: 점진적 향상 기법이나 폴백을 사용하여) 정보 손실이나 그 밖의 중대한 품질 저하 없이 사용자가 소비할 수 있는 상태로 유지되어야 SHOULD 합니다. 최상위 콘텐츠 문서에서 비스크립트 환경을 고려하지 않으면 EPUB 출판물을 읽을 수 없게 될 수 있습니다.
이 섹션은 비규범적입니다.
EPUB 제작자는 자신의 EPUB 출판물에 스크립팅 기능을 추가할 때 가능한 읽기 시스템 구현의 폭넓은 다양성을 고려해야 합니다(예: 모든 기기에 물리적 키보드가 있는 것은 아니며, 많은 경우 소프트 키보드는 텍스트 입력 요소에 대해서만 활성화됩니다). 따라서 EPUB 제작자는 키보드 이벤트에만 의존해서는 안 되며, 원하는 동작을 트리거할 대체 방법을 항상 제공해야 합니다.
스크립팅을 포함하는 EPUB 콘텐츠 문서는 모든 사용자가 콘텐츠를 소비할 수 있도록 관련 [wai-aria] 접근성 기법을 사용해야 SHOULD 합니다.
스크립팅을 포함하는 EPUB 콘텐츠 문서는
그러한 콘텐츠에 대한 폴백을 제공할 수 MAY 있습니다. 이는
([html]
object
및
canvas
요소에서 사용할 수 있는 것 같은) 내재적 폴백 메커니즘을 사용하거나, 내재적
폴백이 적용되지 않는 경우 매니페스트 수준
폴백을 사용하여 제공할 수 있습니다.
EPUB 제작자는 스크립트가 핵심 미디어 유형 리소스 또는 그 조각만 생성하도록 보장해야 MUST 합니다.
이 섹션은 비규범적입니다.
모든 렌더링 정보를 EPUB이 기반으로 하는 하위 기술만으로 표현할 수 있는 것은 아닙니다. 예를 들어, CSS가 포함된 HTML은 강력한 레이아웃 기능을 제공하지만, 이러한 기능은 렌더링되는 문서의 범위로 제한됩니다.
이 섹션은 EPUB 제작자가 패키지 수준의 렌더링 의도(즉, EPUB 읽기 시스템에 의해서만 구현될 수 있는 기능)를 표현할 수 있게 하는 속성을 정의합니다. 읽기 시스템이 원하는 렌더링을 지원하는 경우, 이러한 속성은 EPUB 제작자가 최적으로 설계한 대로 콘텐츠를 사용자에게 제시할 수 있게 합니다.
이 섹션은 비규범적입니다.
EPUB 출판물은 인쇄 책이나 PDF 파일과 달리 변화하도록 설계되었습니다. 콘텐츠는 화면과 사용자의 필요에 맞게 흐르거나 다시 흐릅니다. 렌더링과 CSS에서 언급한 것처럼 “콘텐츠 표현은 사용자가 특정 콘텐츠 표현에 맞춰야 하는 것이 아니라 사용자에게 맞게 조정됩니다.” [epub-overview-33]
그러나 이 원칙이 모든 유형의 문서에 적용되는 것은 아닙니다. 때로는 콘텐츠와 디자인이 너무 얽혀 있어 이를 분리할 수 없습니다. 외형의 어떤 변경도 의미를 바꾸거나 모든 의미를 잃을 위험이 있습니다. 고정 레이아웃 문서는 콘텐츠에 리플로 가능한 EPUB이 적합하지 않을 때 EPUB 제작자에게 표현에 대한 더 큰 제어권을 제공합니다.
EPUB 제작자는 패키지 문서 속성 집합을 사용하여 고정 레이아웃을 정의하고, 읽기 시스템에서의 렌더링을 제어합니다. 또한 각 고정 레이아웃 문서의 치수를 해당 EPUB 콘텐츠 문서에 설정합니다.
EPUB 3은 고정 레이아웃 콘텐츠를 표현하기 위한 여러 메커니즘을 제공합니다. 고정 레이아웃 콘텐츠가 필요한 경우, EPUB 제작자가 선택하는 메커니즘은 원하는 정밀도, 파일 크기, 접근성 등을 포함한 많은 요인에 따라 달라집니다. 이 섹션은 EPUB 제작자의 메커니즘 선택을 지시하려 하지 않습니다.
rendition:layout 속성은 콘텐츠가 리플로 가능한지 또는 사전 페이지화되었는지를
지정합니다.
rendition:layout
속성이 meta 요소에 지정되면, 페이지화된 또는 리플로 가능한 레이아웃
스타일이 전역적으로 적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).
EPUB 제작자는 rendition:layout
속성에 다음 값 중 하나를 사용해야 MUST 합니다.
콘텐츠가 사전 페이지화되지 않습니다(즉, 읽기 시스템이 렌더링할 때 동적 페이지화를 적용합니다). 기본값.
콘텐츠가 사전 페이지화됩니다(즉, 읽기 시스템은 렌더링할 때
스파인
하나당 정확히 한 페이지를 생성합니다).
itemref
읽기 시스템은 일반적으로 사전 페이지화된 문서에 사용자 또는 사용자 에이전트 스타일시트 적용을 제한하거나 거부합니다. 동적 스타일 변경이 그러한 문서의 고유 속성에 의도하지 않은 결과를 가져올 가능성이 높기 때문입니다. EPUB 제작자는 리플로 가능한 콘텐츠 대신 사전 페이지화된 콘텐츠를 사용하기로 선택할 때, 이러한 제한이 사용성과 접근성에 미치는 부정적 영향을 고려해야 합니다. 관련 정보는 지침 1.4 - 텍스트 구성 제공 [uaag20]을 참조하십시오.
스파인 항목에 대해 속성이
pre-paginated로 설정된 경우, 해당 콘텐츠 치수는 8.2.2.6
콘텐츠 문서 치수에 정의된 대로 설정되어야 MUST 합니다.
EPUB 제작자는 rendition:layout 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.
또한 refines 속성을 사용하여 이 속성을 선언해서는
MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면
8.2.2.1.1 레이아웃
재정의를 참조하십시오.
EPUB 제작자는 주어진
스파인 항목에 대한 전역 값을 재정의하기 위해,
다음 속성을 스파인
요소에 로컬로 지정할 수 MAY 있습니다.
itemref
EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.
rendition:orientation 속성은 EPUB 제작자가
콘텐츠가 렌더링되기를 의도하는 방향을
지정합니다.
rendition:orientation
속성이
요소에 지정되면,
의도된 방향이 전역적으로 적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).
meta
EPUB 제작자는
rendition:orientation 속성에 다음 값 중 하나를 사용해야 MUST 합니다.
읽기 시스템은 콘텐츠를 가로 방향으로 렌더링해야 합니다.
읽기 시스템은 콘텐츠를 세로 방향으로 렌더링해야 합니다.
콘텐츠에 방향 제약이 없습니다. 기본값.
EPUB 제작자는
rendition:orientation 속성을 두 번 이상 선언해서는
MUST NOT 안 됩니다.
또한 refines 속성을 사용하여 이 속성을 선언해서는
MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.2.2.2.1 방향
재정의를 참조하십시오.
EPUB 제작자는 주어진
스파인 항목에 대한 전역 값을 재정의하기 위해,
다음 속성을 스파인
요소에 로컬로 지정할 수 MAY 있습니다.
itemref
EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.
rendition:spread 속성은 의도된 읽기 시스템
합성 펼침면 동작을 지정합니다.
rendition:spread 속성이
meta 요소에 지정되면, 의도된 합성 펼침면 동작이 전역적으로
적용됨을 나타냅니다(즉, 모든 스파인 항목에 대해).
EPUB 제작자는 rendition:spread
속성에 다음 값 중 하나를 사용해야 MUST 합니다.
스파인 항목을 합성 펼침면에 포함하지 않습니다. 읽기 시스템은 항목을 화면 중앙에 위치한 단일 뷰포트에 표시해야 합니다.
장치가 가로 방향일 때만 스파인 항목에 대해 합성 펼침면을 렌더링합니다.
세로 방향에서만 펼침면을 사용하는 것은 사용 중단됨입니다.
세로 방향에서 읽을 수 있는 펼침면은 가로 방향에서도 읽을 수 있으므로, EPUB 제작자는
대신 "both" 값을 사용해야 합니다.
장치 방향과 관계없이 합성 펼침면을 렌더링합니다.
EPUB 제작자가 명시적인 합성 펼침면 동작을 정의하지 않습니다. 기본값.
EPUB 제작자는 rendition:spread 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.
또한 refines 속성을 사용하여 이 속성을 선언해서는
MUST NOT 안 됩니다. 개별 EPUB 콘텐츠 문서에 속성을 설정하려면
8.2.2.3.1 합성 펼침면
재정의를 참조하십시오.
XHTML 및
SVG 콘텐츠 문서의 맥락에서 합성 펼침면을
사용할 때, viewport meta 요소 및
viewBox 속성을 통해 제공된 치수는 각각
펼침면의 한 페이지 크기를 나타냅니다.
page-progression-direction 속성을 사용한 전역 흐름 방향 선언과
콘텐츠 문서 내의 로컬 페이지 진행 방향에 대한 정보는
요소를 참조하십시오.
spine
EPUB 제작자는 주어진
스파인 항목에 대한 전역 값을 재정의하기 위해,
다음 속성을 스파인
요소에 로컬로 지정할 수 MAY 있습니다.
itemref
rendition:spread-portrait 속성은 사용 중단됨입니다.
spread-portrait
속성 정의를 참조하십시오.
EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.
읽기 시스템이 합성
펼침면을 렌더링할 때 기본 동작은 다음
EPUB 콘텐츠 문서를 다음 사용 가능한 비어 있는
뷰포트에 렌더링하여 펼침면을 채우는 것입니다. 여기서 다음 사용
가능한 뷰포트는 주어진 페이지 진행 방향이나
EPUB 콘텐츠 문서 내의
로컬 선언에 의해 결정됩니다. EPUB 제작자는 자신의 스파인
itemref 요소에 다음 속성 중 하나를 지정하여 이 자동 채우기 동작을
재정의하고, 읽기 시스템이 문서를 특정 뷰포트에 배치하도록 강제할 수 MAY 있습니다.
rendition:page-spread-center
rendition:page-spread-center 속성은 스파인 항목을 가운데 배치하기 위한
spread-none 속성의 별칭입니다.
rendition:page-spread-left
rendition:page-spread-left 속성은 스파인 항목을 두 페이지 펼침면의
왼쪽 슬롯에 배치하기 위한
page-spread-left 속성의 별칭입니다.
rendition:page-spread-right
rendition:page-spread-right 속성은 스파인 항목을 두 페이지 펼침면의
오른쪽 슬롯에 배치하기 위한
page-spread-right 속성의 별칭입니다.
rendition:page-spread-center, rendition:page-spread-left, 및
rendition:page-spread-right 속성은 사전 페이지화된 콘텐츠와 리플로 가능한
콘텐츠 모두에 적용됩니다. 이들은 읽기 시스템이 합성 펼침면을 생성할 때만 적용됩니다.
EPUB 제작자는 특정 장치 방향에서 펼침면을 사용하도록 자주 표시하지만, 콘텐츠 자체가
실제 펼침면을 나타내는 것은 아닙니다(즉, 두 페이지짜리 지도처럼 읽기 가능성을 위해
읽기 시스템이 나란히 렌더링해야 하는 두 개의 연속 페이지). 두 개의 연속 페이지가 실제
펼침면을 나타낸다는 것을 표시하려면, EPUB 제작자는 인접한 두 EPUB 콘텐츠 문서에 대한
스파인 항목에
rendition:page-spread-left 및 rendition:page-spread-right
속성을 사용해야 SHOULD 하며, 한 페이지 표시 또는 두 페이지 표시가
모두 허용되는 스파인 항목에서는 해당 속성을 생략해야 합니다.
EPUB 제작자는 주어진 스파인 항목에
rendition:page-spread-* 속성 및/또는 그 접두사 없는 동등 항목을
둘 이상 선언해서는 MUST NOT 안 됩니다(예: 읽기 시스템이 속성 중
하나만 지원하는 경우에 대비하여
"rendition:page-spread-left page-spread-left"를 둘 다 지정하는 것은 유효함).
rendition:page-spread-left 및 rendition:page-spread-right
속성은 모든 고정 레이아웃 속성에 단일 어휘를 사용할 수 있도록 만들어졌습니다.
EPUB 제작자는 어느 속성 집합이든 사용할 수 있지만, 오래된 읽기 시스템은 접두사 없는
버전만 인식할 수 있습니다.
rendition:page-spread-center는 EPUB 제작자가 두 페이지 펼침면과
단일 가운데 페이지 사이를 전환하는 과정을 더 쉽게 이해할 수 있도록 만들어졌습니다.
EPUB 제작자는 읽기 시스템에서 펼침면 동작을 비활성화하기 위해
rendition:page-spread-center 또는 spread-none 중
어느 것이든 사용할 수 있습니다.
rendition:viewport 속성은 EPUB
제작자가 rendition:layout 속성이
pre-paginated로 설정된 XHTML 및 SVG 콘텐츠 문서에 대해 CSS
initial containing block (ICB) [css2]을
표현할 수 있게 합니다.
이 속성의 사용은 사용 중단됨입니다.
자세한 내용은 [epubpublications-301]의 rendition:viewport
속성 정의를 참조하십시오.
이 섹션은 고정 레이아웃 문서의 치수 속성을 표현하고 해석하기 위한 규칙을 정의합니다.
고정 레이아웃 문서는 해당 형식에 적용되는 방식으로 자신의 initial containing block [css2]을 지정합니다.
XHTML 고정 레이아웃
문서의 경우, initial
containing block [css2]은
viewport
meta 태그 안의 REQUIRED height
및 width 정의에서 얻어지며, 여기서:
height
속성은 자신의 값으로
양의 number [css2]
또는 키워드
device-height를 가져야 MUST 하며;
width 속성은 자신의 값으로 양의 number [css2]
또는 키워드
device-width를 가져야 MUST 합니다.
device-width 및 device-height 값은 각각 읽기 시스템의
뷰포트 너비와 높이의 100%를 가리킵니다.
height 및 width 정의는 [html]
head 요소 안에서 문서 순서상 첫 번째
viewport meta 태그에 지정되어야 MUST 합니다.
읽기 시스템은 이후의 viewport meta 태그를 무시합니다.
EPUB 제작자는 viewport meta 태그 안에 둘 이상의 height
또는
width 정의를 지정해서는 MUST NOT 안 됩니다.
SVG 고정 레이아웃
문서의 경우, initial containing block [css2]
치수는 viewBox
속성 [svg]을 사용하여 표현되어야 MUST 합니다.
initial containing block 정의는 그것이 정의된 문서에만 영향을 줍니다. 같은 출판물 안의 다른 콘텐츠 문서에 있는 containing block의 치수는 다를 수 있습니다.
EPUB 콘텐츠 문서의 렌더링을 제어하여 고정 레이아웃을 만드는 것은 다른 기술로 처리되지 않는 명백한 필요이지만, 리플로 가능한 콘텐츠에도 EPUB 출판물에 고유한 고려사항이 있습니다(예: 뷰포트에서 콘텐츠 흐름을 처리하는 방법). 이 섹션은 EPUB 제작자가 리플로 가능한 콘텐츠의 표현 측면을 제어할 수 있게 하는 속성을 정의합니다.
rendition:flow 속성은 EPUB 제작자가
읽기 시스템이 콘텐츠 오버플로를 처리하는 방식에 대해
선호하는 바를 지정합니다.
rendition:flow 속성이
meta 요소에 지정되면, 오버플로 콘텐츠 처리에 대한 EPUB 제작자의 전역 선호를
나타냅니다(즉, 모든 스파인 항목에 대해).
EPUB 제작자는 동적 페이지화 또는 스크롤을 선호한다고 나타낼 수 MAY
있습니다. 스크롤 콘텐츠의 경우, 연속된 EPUB 콘텐츠 문서를 하나의 연속 스크롤 보기로
렌더링할지, 또는 각각을 별도로 렌더링할지(즉, 각 문서 사이에 동적 페이지 나누기를 두는지)를
지정할 수도 있습니다.
EPUB 제작자는 rendition:flow
속성에 다음 값 중 하나를 사용해야 MUST 합니다.
모든 오버플로 콘텐츠를 동적으로 페이지화합니다.
모든 EPUB 콘텐츠 문서를 오버플로 콘텐츠가 스크롤 가능하도록 렌더링하고, EPUB 출판물을 스파인 항목에서 스파인 항목으로 이어지는 하나의 연속 스크롤로 제시합니다 (로컬로 재정의된 경우 제외).
EPUB 제작자는 리소스마다 블록 흐름 방향이 서로 다른 출판물을 만들어서는 SHOULD NOT 안 됩니다. EPUB 읽기 시스템에서 연속 스크롤 렌디션이 문제가 될 수 있기 때문입니다.
모든 EPUB 콘텐츠 문서를 오버플로 콘텐츠가 스크롤 가능하도록 렌더링하고, 각 스파인 항목을 별도의 스크롤 가능한 문서로 제시합니다.
읽기 시스템의 기본 방법 또는 사용자 선호 중 적용 가능한 것에 따라 오버플로 콘텐츠를 렌더링합니다. 기본값.
두 개의 리플로 가능한 EPUB 콘텐츠 문서가 스파인에서 순차적으로
나타날 때, 해당 [html] body 요소의 기본 렌더링은
page-break-before
속성 [csssnapshot]이 always로 설정된 것과
일관된다는 점에 유의하십시오. rendition:flow 속성을 사용하는 것 외에도,
EPUB 제작자는 읽기 시스템이 그러한 재정의를 지원하는 경우 적절한 스타일시트 선언을 통해
이 동작을 재정의할 수 MAY 있습니다.
EPUB 제작자는 rendition:flow 속성을 두 번 이상 선언해서는 MUST NOT 안 됩니다.
또한 refines
속성을 사용하여 이 속성을 선언해서는 MUST NOT 안 됩니다.
개별 EPUB 콘텐츠 문서에 속성을 설정하려면 8.3.1.1
스파인 재정의를 참조하십시오.
rendition:flow가 paginated로 설정된 EPUB 출판물의
렌더링.
세 개의 열 모양 직사각형이 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있으며, 텍스트가 한 직사각형에서 다음 직사각형으로 흐릅니다. 텍스트는 'Chapter 1', '2', 및 '3'이라는 머리글로 구획되어 있습니다. 가장 왼쪽 직사각형은 태블릿의 개략도 안에 포함되어 있습니다.
rendition:flow가 paginated로 설정된 EPUB 출판물의
렌더링.세 개의 열 모양 직사각형이 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있으며, 텍스트가 한 직사각형에서 다음 직사각형으로 흐릅니다. 텍스트는 'Chapter 1', '2'라는 머리글로 구획되어 있습니다. 'Chapter 2' 섹션은 가장 오른쪽 직사각형의 맨 위에서 시작되어 가운데 직사각형의 아래쪽에 빈 공간을 남깁니다. 가장 왼쪽 직사각형은 태블릿의 개략도 안에 포함되어 있습니다.
rendition:flow가 scrolled-continuous로 설정된 EPUB 출판물의
렌더링.단일 열 모양의 띠(즉, 아래쪽 가장자리가 없는 직사각형)에 텍스트가 띠를 따라 아래로 흐릅니다. 텍스트는 'Chapter 1', '2'라는 머리글로 구획되어 있습니다. 띠의 위쪽 부분은 태블릿의 개략도 안에 포함되어 있습니다.
rendition:flow가 scrolled-doc로 설정된 EPUB 출판물의
렌더링.
세 개의 열 모양 띠(즉, 아래쪽 가장자리가 없는 직사각형)가 왼쪽에서 가운데, 가운데에서 오른쪽으로 각각 화살표로 연결되어 있고, 각 띠에는 텍스트가 아래로 흐릅니다. 텍스트는 'Chapter 1', '2' 및 '3'이라는 머리글로 구획되어 있습니다. 각 띠는 장 머리글로 시작하여 띠를 따라 아래로 흐릅니다. 가장 왼쪽 띠의 위쪽 부분은 태블릿의 개략도 안에 포함되어 있습니다.
EPUB 제작자는 주어진 스파인
항목에 대한 전역 값을 재정의하기 위해,
다음 속성을 스파인
요소에 로컬로 지정할 수 MAY 있습니다.
itemref
EPUB 제작자는 주어진 스파인 항목에 이러한 재정의 중 둘 이상을 사용해서는 MUST NOT 안 됩니다.
rendition:align-x-center 속성은 주어진 스파인 항목이 뷰포트 또는 펼침면에서 수평으로 가운데
정렬되어야 함을 지정합니다.
이 속성은 모든 EPUB 콘텐츠 문서에 대해 전역적으로 설정되어서는
MUST NOT 안 됩니다(즉,
refines 속성이 없는
요소에서). 이는
meta
요소의 itemrefproperties 속성을 통해 개별 EPUB 콘텐츠 문서에 대한 스파인 재정의로만
사용할 수 있습니다.
이 속성은 주로 콘텐츠 렌더링 안에서 신뢰할 수 있는 가운데 정렬 제어가 없는 상황에서 "Naka-Tobira (中扉)"(섹션 제목 페이지)를 처리하기 위해 개발되었습니다. 그러나 CSS에서 페이지 미디어 지원이 발전함에 따라, 이 속성은 사용 중단될 것으로 예상됩니다. EPUB 제작자는 효과적인 경우 CSS 해결책을 사용하는 것이 권장됩니다.
이 섹션은 비규범적입니다.
주류 전자책, 교육 도구 및 인쇄물 장애가 있는 사람을 위해 형식화된 전자책은 동기화된 오디오 내레이션을 포함하는 저작물의 몇 가지 예입니다. EPUB 3에서 EPUB 제작자는 미디어 오버레이 문서를 사용하여 사전 녹음된 오디오 내레이션의 타이밍과 그것이 EPUB 콘텐츠 문서 마크업과 어떻게 관련되는지를 설명함으로써 이러한 유형의 책을 만들 수 있습니다. 이 명세는 미디어 오버레이의 파일 형식을 [smil3]의 하위 집합으로 정의합니다. 이는 XML에서 동기화된 멀티미디어 정보를 표현하기 위한 W3C 권고입니다.
미디어 오버레이가 가능하게 하는 텍스트와 오디오의 동기화는 전통적인 책의 텍스트를 따라가는 데 어려움이 있는 모든 사용자에게 향상된 접근성을 제공합니다. 또한 미디어 오버레이는 어떤 이유로든 텍스트를 읽을 수 없는 독자에게 연속적인 청취 경험을 제공하는데, 이는 전통적인 오디오 삽입 기법이 제공할 수 없는 것입니다. 이는 전통적으로 접근성 문제로 여겨지지 않는 목적(예: 언어 학습)에도 유용합니다.
미디어 오버레이 기능은 이 기능을 지원하지 않는 EPUB 읽기 시스템에는 투명합니다. EPUB 출판물에 미디어 오버레이를 포함해도, 미디어 오버레이를 인식하지 못하는 읽기 시스템이 마치 미디어 오버레이가 없는 것처럼 EPUB 출판물을 렌더링하는 능력에는 영향을 주지 않습니다.
EPUB의 미디어 오버레이는 오디오북과 동등하지 않습니다. 오디오북은 주로 오디오 기반이며 텍스트는 가끔 대체 형식으로 제공되기 때문입니다. W3C [audiobooks] 권고는 오디오 출판물을 만들기 위한 것입니다.
이 명세의 향후 버전은 비디오 미디어 지원(예: 동기화된 텍스트/수어 책)을 통합할 수 있지만, 이 버전은 오디오 미디어를 EPUB 콘텐츠 문서와 동기화하는 것만 지원합니다.
미디어 오버레이 문서는 다음과 같습니다.
G.3 미디어 오버레이 스키마에 정의된 미디어 오버레이 스키마에 대해 유효해야 MUST 하며, 9.2.2 미디어 오버레이 문서 정의에 표현된 모든 콘텐츠 적합성 제약을 준수해야 합니다.
둘 이상의 EPUB 콘텐츠 문서를 참조할 수 MAY 있지만, 둘 이상의 미디어 오버레이 문서는 동일한 EPUB 콘텐츠 문서를 참조해서는 MUST NOT 안 됩니다.
이 섹션에서 정의된 모든 요소 [xml]는 달리
지정되지 않는 한 https://www.w3.org/ns/SMIL
네임스페이스 [xml-names]에 있습니다.
smil 요소는 미디어 오버레이 문서의 모든 정보를
캡슐화합니다.
smil
version
[required]
미디어 오버레이 문서가 따르는 [smil3] 명세의 버전 번호를 지정합니다.
이 속성은 "3.0" 값을 가져야 MUST
합니다.
id
[optional]
epub:prefix
[optional]
추가 메타데이터 어휘 접두사를 선언합니다.
자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.
이 순서로:
head 요소는 미디어 오버레이 문서 안의 메타데이터를 위한
컨테이너입니다.
이 명세는 미디어 오버레이 문서에 반드시 나타나야 하는 메타데이터 속성을 정의하지 않으므로,
head 요소는 OPTIONAL입니다.
metadata 요소는 미디어 오버레이 문서의 메타데이터를 나타냅니다.
metadata 요소는 임의의 메타정보 구조화 언어에서 온
메타데이터를 포함할 수 있게 하는 확장 지점입니다.
metadata
요소의 자식으로.
head
없음
임의의 네임스페이스에서 온 요소 [0 or more]
이 명세는 미디어 오버레이 문서에서 어떤 메타데이터 속성도 요구하지 않습니다.
metadata 요소는 사용자 정의 메타데이터 요구사항을 위해 제공됩니다.
body 요소는
미디어 오버레이 문서에 포함된 표현의 시작점입니다.
이는
및
par
요소의 주요 시퀀스를 포함합니다.
seq
body
body 요소는
요소의 REQUIRED 자식입니다.
해당 요소가 존재하는 경우
smil
요소 뒤에 옵니다.
head
epub:type
[optional]
대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.
값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.
id
[optional]
epub:textref
[optional]
관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.
값은 path-relative-scheme-less-URL
string이어야 MUST 하며, 선택적으로
U+0023 (#)와 URL-fragment string이 뒤따를 수
있습니다.
임의 순서로:
par 또는 seq를 적어도 하나 포함해야 MUST 합니다.
seq 요소는 미디어 객체 및/또는 자식 시간 컨테이너를 위한 순차 시간 컨테이너입니다.
seq
epub:type
[optional]
대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.
값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.
id
[optional]
epub:textref
[required]
관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.
값은 path-relative-scheme-less-URL
string이어야 MUST 하며, 선택적으로
U+0023 (#)와 URL-fragment string이 뒤따를 수
있습니다.
자세한 내용은 9.3.2.1 오버레이 구조를 참조하십시오.
임의 순서로:
par 또는 seq를 적어도 하나 포함해야 MUST 합니다.
par 요소는 미디어 객체를 위한 병렬 시간 컨테이너입니다.
par
epub:type
[optional]
대응하는 EPUB 콘텐츠 문서 요소의 구조적 의미론 표현입니다.
값은 공백으로 구분된 property 유형 목록입니다. 자세한 내용은 9.3.3 오버레이의 구조적 의미론을 참조하십시오.
id
[optional]
임의 순서로:
text 요소는 EPUB 콘텐츠 문서 안의 요소를 참조합니다.
text 요소는 일반적으로 텍스트 요소를 참조하지만, 다른 EPUB 콘텐츠 문서 미디어 요소를 참조할 수도 있습니다.
형제
요소가 없는 경우, 이 요소가 참조하는 텍스트 콘텐츠는 텍스트 음성 변환을 통해 렌더링될 수 있습니다.
audio
text
요소의 REQUIRED 자식으로.
par
src
[required]
관련 EPUB 콘텐츠 문서를 참조하고, 선택적으로 그 특정 부분을 식별합니다.
값은 path-relative-scheme-less-URL
string이어야 MUST 하며, 선택적으로
U+0023 (#)와 URL-fragment string이 뒤따를 수
있습니다.
id
[optional]
비어 있음
이 명세는 text 요소의 src 속성에 제한을 두지 않습니다.
그러나 EPUB 제작자는
스타일 정보와의 연결이 효과적이 되도록 CSS로 스타일링할 수 있는
콘텐츠를 참조해야 합니다(즉, XHTML의 palpable content 또는 SVG의 paths, basic shapes, 또는 text 요소).
[epub-rs-33]는 더 이상 읽기 시스템에 시간 지정
미디어의 재생(즉, 참조된 미디어의 자동 시작)에 대한 지침을 제공하지 않습니다.
text 요소의 src 속성은 삽입된 시간 지정
미디어(예: [html] video
요소를 통해)를 참조할 수 있지만, 그러한 미디어를 참조하면
예측할 수 없는 결과가 발생할 수 있습니다.
audio 요소는 오디오 미디어 클립을 나타냅니다.
audio
요소의 OPTIONAL 자식.
par
id
[optional]
src
[required]
오디오 파일에 대한 relative- 또는 absolute-URL string [url] 참조입니다. 오디오 파일은 핵심 미디어 유형 리소스 표에 나열된 오디오 형식 중 하나여야 MUST 합니다.
clipBegin
[optional]
오디오 클립의 시작 지점에 해당하는 물리적 미디어 안의 오프셋을 지정하는 clock value입니다.
[smil3] clock value여야 MUST 합니다.
H.4 Clock values를 참조하십시오.
clipEnd
[optional]
오디오 클립의 끝 지점에 해당하는 물리적 미디어 안의 오프셋을 지정하는 clock value입니다.
[smil3] clock value여야 MUST 합니다.
H.4 Clock values를 참조하십시오.
종료 위치의 시간상 오프셋은 clipBegin 속성에 지정된 시작 오프셋보다
뒤에 있어야 MUST 합니다.
비어 있음
이 섹션은 비규범적입니다.
EPUB 제작자는 출판물의 사전 녹음된 내레이션을 일련의 오디오 클립으로 나타낼 수 있으며, 각 클립은 EPUB 콘텐츠 문서의 일부에 대응합니다. 예를 들어 하나의 오디오 클립은 일반적으로 하나의 구문이나 단락을 나타내지만, 다른 클립이나 문서의 텍스트와의 상대적인 순서를 추론하지는 않습니다. 미디어 오버레이는 [smil3] 마크업을 사용하여 구조화된 오디오 내레이션을 EPUB 콘텐츠 문서의 대응하는 텍스트(또는 다른 미디어)에 연결함으로써 이러한 동기화 문제를 해결합니다. 미디어 오버레이는 실제로 이러한 클립의 재생 순서를 정의하는 SMIL 3.0의 단순화된 하위 집합입니다.
미디어 오버레이를 구조화하는 데 주로 사용되는 SMIL 요소는
(주요
시퀀스에 사용),
body
(시퀀스) 및
seq
(병렬)입니다. (이러한 요소와 기타 SMIL 요소에 대한 자세한 내용은 9.2.2
미디어 오버레이 문서 정의를 참조하십시오.)
par
par 요소는 미디어 오버레이의 기본 구성 요소이며 EPUB 콘텐츠 문서의
구문에 대응합니다. 이 요소는 콘텐츠를 동기화하기 위한 두 가지 핵심 정보를 제공합니다.
1) 해당 구문에 대한 내레이션을 포함하는 오디오 클립; 2) 관련 EPUB 콘텐츠 문서 조각을
가리키는 포인터. par 요소는 이 정보를 나타내기 위해 두 개의
미디어 요소 자식을 사용합니다.
요소와
audio
요소입니다. textpar 요소의 미디어 객체 자식은 병렬로 시간이 지정되므로, 읽기
시스템은 오디오 클립과 EPUB 콘텐츠 문서 조각을 동시에 렌더링하여 동기화된 표현을 만듭니다.
text 요소의 src 속성은 URL [url] 참조로
EPUB 콘텐츠 문서의 관련 구문, 문장 또는 기타 세그먼트를 참조합니다. audio
요소의 src 속성도 마찬가지로 대응하는 오디오 클립의 위치를 참조하며, 클립 안의
특정 오프셋을 나타내기 위해 OPTIONAL clipBegin 및 clipEnd
속성을 추가합니다.
EPUB 제작자는 par 요소를 순차적으로 함께 배치하여 일련의 구문이나 문장을
형성합니다. EPUB 콘텐츠 문서의 모든 요소가 미디어 오버레이 문서에서 대응하는
par 요소를 가지는 것은 아니며, 오디오 내레이션과 관련된 요소만 가집니다.
EPUB 제작자는 par 요소를 seq 요소에 추가하여 장과 부 같은 더
복잡한 구조를 정의할 수도 있습니다(9.3.2.1 오버레이 구조 참조).
이 섹션에서는 EPUB 콘텐츠 문서가 XHTML 콘텐츠 문서라고 가정합니다. EPUB 제작자가 미디어 오버레이를 SVG 콘텐츠 문서와 함께 사용할 수는 있지만, 재생 동작은 일관되지 않을 수 있으므로 상호운용성이 보장되지 않습니다.
EPUB 제작자는 리플로 가능한 EPUB 콘텐츠 문서와 고정 레이아웃 EPUB 콘텐츠 문서 모두의 재생에 대한 읽기 시스템 지원이 보장되지 않는다는 점도 인식해야 합니다. 읽기 시스템의 페이지화 전략 차이 때문에 일부 읽기 시스템은 한쪽 또는 다른쪽 레이아웃 형식에서만 미디어 오버레이를 지원할 수 있습니다.
미디어 오버레이 문서의
는 두 요소로 구성됩니다.
body
요소와
par
요소입니다. 이러한 요소의 순서는 읽기 시스템이
재생 중에 대응하는 EPUB 콘텐츠 문서의 콘텐츠를 렌더링하는
방식을 나타냅니다.
seq
par 요소는 단어, 구문, 문장, 표 셀, 목록 항목, 이미지 또는 마크업 안의
기타 식별 가능한 콘텐츠 조각 같은 콘텐츠 세그먼트를 나타냅니다. 각 요소는 재생 중에
표시할
콘텐츠(
요소 안)와
동기화할
오디오(text
요소 안)를 모두 식별합니다.
audio
seq 요소는 시퀀스 — 콘텐츠의 논리적 구성요소를 함께 나타내는
seq 및/또는 par 요소 집합 — 를 나타냅니다.
EPUB 제작자는 이를 사용하여 섹션, 부가 설명,
머리글, 표, 목록 및 각주 같은 중첩 컨테이너를 나타낼 수 있습니다. 이는 EPUB 제작자가
이러한 컨테이너에 내재한 구조를 미디어 오버레이 문서 안에 유지할 수 있게 합니다.
seq 요소는 epub:textref 속성을 포함해야
MUST 합니다. seq 요소는 동기화 지시를 제공하지 않으므로,
이 속성은 읽기 시스템이
조각을 텍스트 안의 위치와 일치시킬 수 있게 합니다.
섹션, 그림, 표, 각주 같은 구조를 seq 요소로 그룹화하는 이유는 읽기
시스템이 재생 중에 그 시작 및 끝 위치를 식별할 수 있게 하기 위해서입니다. 그러면 읽기
시스템은 긴 그림을 건너뛰기, 페이지 나누기 안내 렌더링 끄기(9.4 건너뛰기 가능성과 빠져나가기 가능성 참조), 또는
표 같은 구조에 맞게 읽기 모드를 사용자 정의하는 등 콘텐츠의 레이아웃에 맞춘 재생
옵션을 제공할 수 있습니다.
epub:textref 속성과
요소의 textsrc
속성은 관련 EPUB 콘텐츠 문서의 특정 부분(예: ID를 통한
요소)을 참조하는 URL-fragment string을 포함할 수 있습니다.
XHTML 및 SVG 콘텐츠 문서의 경우, URL-fragment string은 각각 ID를 통한 특정 요소에 대한 참조 또는 SVG Fragment Identifier [svg]이어야 SHOULD 합니다.
EPUB 제작자는 다른 조각 식별자 체계를 사용할 수 MAY 있지만, 읽기 시스템은 그러한 식별자를 지원하지 않을 수 있습니다.
이 섹션은 비규범적입니다.
미디어 오버레이의 세분도 수준은 EPUB
제작자가
EPUB 콘텐츠 문서를 어떻게 마크업하는지와
요소의 textsrc 속성 및
요소의 seqepub:textref
속성에서 사용하는 조각 식별자 유형에 따라 달라집니다. 예를 들어 [html] 요소를 참조할 때,
가장 세밀한 마크업 수준이 단락 수준이라면, 그것이 미디어 오버레이 동기화에서 가능한
가장 세밀한 수준입니다. 마찬가지로 구문이나 문장을 나타내는 [html]
span
요소와 같은 하위 단락 마크업을 사용할 수 있다면, 미디어 오버레이에서 더 세밀한 세분도가
가능합니다. 더 세밀한 세분도는 사용자가 단어나 구문으로 탐색하거나 텍스트를 검색할 때
동기화된 재생에 대해 더 정확한 결과를 제공하지만,
미디어 오버레이 문서의 파일 크기를 증가시킵니다.
요소의 존재에 의존하지 않는 조각 식별자 체계는 지원되는 경우 훨씬 더 세밀한 세분도를
제공할 수 있습니다.
이 명세는 사전 녹음된 오디오 클립에 더해 텍스트 음성 변환(TTS) — EPUB 출판물의 텍스트 콘텐츠를 합성 음성을 사용해 인공적인 인간 음성으로 렌더링하는 것 — 의 사용을 허용합니다.
미디어 오버레이
요소가 자신의
par
요소를 생략하는 경우, 그
audio
요소는 읽기 시스템에서 TTS를 통해
렌더링될 수 있습니다. 텍스트 조각이 TTS 렌더링에 적절하지 않은 경우(예: 텍스트 요소가 아니거나
텍스트 폴백이 없는 경우), 예기치 않은 결과가 발생할 수 있습니다.
text
EPUB 출판물에서 TTS 기술을 사용하는 방법에 대한 자세한 내용은 EPUB 3 Text-to-Speech Support [epub-tts-10]를 참조하십시오.
구조적 의미론을 미디어 오버레이 문서에서 표현하기 위해,
EPUB 제작자는
속성을
epub:type,
par,
및
seq
요소에 지정할 수 MAY 있습니다.
body
epub:type 속성은 표시된 의미 유형에 적합한 읽기
시스템 동작을 용이하게 합니다.
이러한 동작의 예로는 건너뛰기 가능성과 빠져나가기 가능성 및 표 읽기 모드 [epub-rs-33]가 있습니다.
미디어 오버레이 문서는 추가 의미론을 정의하기 위해
epub:type 속성에 대해 적용 가능한 어휘 연결 메커니즘을
사용할 수 MAY 있습니다.
EPUB 제작자는 현재 재생 중인 EPUB 콘텐츠 문서 요소에 대한 시각적 렌더링 정보를 저자 정의 클래스를 사용하여 CSS 스타일시트에 표현할 수 MAY 있습니다.
사용하는 경우, EPUB 제작자는 패키지 문서에서 active-class 및 playback-active-class 속성을 사용하여
클래스 이름을 선언해야 MUST 합니다.
EPUB 제작자는 자신이 정의하는 각 속성에 정확히 하나의 CSS 클래스 이름을 정의해야 MUST 합니다. 각 속성은 선택자를 포함하지 않는 유효한 CSS 클래스 이름 [css2]을 정의해야 MUST 합니다. 이 명세는 이러한 속성과 함께 사용하기 위한 이름을 예약하지 않습니다.
EPUB 제작자는 지정된 CSS 클래스에 대해 임의의 CSS 속성을 정의할 수 MAY 있지만, 관련 미디어 오버레이 문서가 있는 각 EPUB 콘텐츠 문서가 클래스 정의를 포함하는 CSS 스타일시트(삽입되었거나 링크된 것)를 포함하도록 보장해야 합니다. 이러한 정의가 없으면 읽기 시스템은 자체 스타일링을 제공하거나 아무 스타일링도 제공하지 않을 수 있습니다.
EPUB 제작자는 active-class 및
playback-active-class
속성을 refines 속성과 함께 사용해서는
MUST NOT 안 됩니다. 이 속성들은 항상 전체 EPUB
출판물에 적용되기 때문입니다.
EPUB 콘텐츠 문서가 미디어 오버레이 문서에 의해
전체 또는 일부 참조되는 경우, 해당 매니페스트
요소는 itemmedia-overlay 속성을 지정해야 MUST 합니다.
이 속성은 대응하는 미디어 오버레이 문서에 대한 매니페스트 item의
ID [xml]를
참조해야 MUST 합니다.
EPUB 제작자는 EPUB 콘텐츠 문서를 참조하는 매니페스트
item 요소에만 media-overlay 속성을 지정해야
MUST 합니다.
미디어 오버레이 문서에 대한 매니페스트 항목은 미디어 유형
application/smil+xml을 가져야 MUST 합니다.
EPUB 제작자는
패키지 문서에서
duration 속성이 있는
요소를 사용하여 전체 EPUB 출판물의 재생 시간을 지정해야
MUST 합니다.
meta
또한 EPUB 제작자는 각 미디어 오버레이 문서의 재생 시간을 제공해야
MUST 합니다. EPUB 제작자는 각 재생 시간 선언을 대응하는
매니페스트
과
연결하기 위해 itemrefines
속성을 사용해야 MUST 합니다.
각 미디어 오버레이 문서의 재생 시간 합계는 총 재생 시간과 ±1초 범위 안에서 같아야 SHOULD 합니다.
개별 재생 시간의 합계는 시간을 초의 가장 가까운 분수로 반올림하기 때문에 총 재생 시간과 정확히 일치하지 않을 수 있지만, 1초보다 큰 차이는 다른 문제에서 발생한 불일치를 나타냅니다.
EPUB 제작자는 패키지 문서에
narrator 정보를 지정할 수도 있고,
현재 재생 중인 EPUB 콘텐츠 문서 요소에 적용할
저자 정의 CSS 클래스 이름도 지정할 수
MAY 있습니다.
media: 접두사는 패키지 메타데이터에 이러한 속성을 포함하기 위해
예약되어 있습니다.
읽는 동안 사용자는 각주, 페이지 번호 또는 다른 유형의 보조 콘텐츠 같은 콘텐츠의 특정 기능을
켜거나 끄고 싶을 수 있습니다. 이 기능을 건너뛰기 가능성이라고 합니다. 읽기
시스템은
미디어 오버레이 요소의 epub:type 속성이
제공하는 의미 정보를 사용하여 사용자에게 건너뛸 수 있는 기능의 옵션을 언제 제공할지 결정합니다.
EPUB 제작자는 건너뛰기 가능성을 활성화하기 위해 다음 의미론을 사용할 수 MAY 있습니다.
그러나 이 목록은 완전하지 않습니다. 이는 구조적 의미론 어휘 [epub-ssv-11]에서 읽기 시스템이 건너뛰기 가능성 옵션을 제공할 가능성이 가장 높은 용어를 나타냅니다.
빠져나갈 수 있는 항목은 표와 목록 같은 중첩 구조로, 사용자가 이를 건너뛰고 중첩 구조 바로 뒤의 지점에서 계속 읽고 싶어 할 수 있는 항목입니다. 빠져나가기 가능성 기능은 전체 유형의 항목을 활성화하거나 비활성화하지 않고, 그로부터 빠져나갈 출구를 제공한다는 점에서 건너뛰기 가능성 기능과 다릅니다(예: 사용자가 빠져나가기를 선택하기 전에 콘텐츠 일부를 들을 수 있음).
EPUB 제작자는 빠져나가기 가능성을 활성화하기 위해 다음 의미론을 사용할 수 MAY 있습니다.
그러나 이 목록은 완전하지 않습니다. 이는 구조적 의미론 어휘 [epub-ssv-11]에서 읽기 시스템이 빠져나가기 가능성 옵션을 제공할 가능성이 가장 높은 용어를 나타냅니다.
때로는 빠져나갈 수 있는 구조가 다시 빠져나갈 수 있는 구조를 포함할 수 있습니다. 예를 들어 표는 사용자가 별도로 빠져나가고 싶어 할 수 있는 많은 행과 셀로 구성됩니다. 그러한 구조에서 빠져나가는 것에 대한 읽기 시스템 지원은 복잡하며 현재로서는 잘 지원되지 않습니다. EPUB 제작자는 더 나은 지원이 제공될 때까지 중첩된 빠져나갈 수 있는 구조를 식별하는 것을 피해야 합니다.
이 섹션은 비규범적입니다.
EPUB 3은 기반 기술에 내장된 구조, 의미론, 나아가 접근성을 활용할 수 있도록 명시적으로 오픈 웹 플랫폼을 기반으로 구축됩니다.
접근성 있는 웹 콘텐츠를 만들기 위한 요구사항과 관행은 이미 W3C의 Web Content Accessibility Guidelines (WCAG) [wcag2]에 문서화되어 있습니다. 이러한 지침은 EPUB 출판물에서 접근성을 정의하는 기반도 이룹니다.
현재 WCAG 지침(버전 2)은 웹 페이지에 크게 초점을 맞추고 있으므로, 별도의 명세인 EPUB Accessibility [epub-a11y-11]가 이 표준을 EPUB 출판물에 적용하는 방법을 정의합니다. 또한 메타데이터, 페이지화, 미디어 오버레이에 대한 EPUB 전용 요구사항과 권장사항을 추가합니다.
이 명세는 EPUB 출판물이 [epub-a11y-11]에 정의된 접근성 요구사항을 준수할 것을 권장합니다. 이 권장사항을 따르는 이점은 EPUB 출판물이 전 세계 관할권에서 법제화된 접근성 요구사항을 충족하도록 보장하는 데 도움이 된다는 점입니다.
그러나 EPUB 제작자는 법적 의무를 넘어 접근성을 모든 콘텐츠의 요구사항으로 다루어야 합니다. EPUB 출판물이 더 접근성 있을수록, 그 잠재 독자층도 더 커집니다.
이 명세는 접근성 요구사항이 EPUB 명세와 독립적으로 적응하고 발전할 수 있도록 접근성 요구사항을 통합하지 않습니다 — 접근성 관행은 더 자주 업데이트되어야 하는 경우가 많습니다. 접근성 명세는 과거, 현재, 미래 버전의 EPUB과 함께 사용하기 위한 것이기도 합니다. 별도 명세 접근 방식은 EPUB의 발전이 접근성을 특정 시점에 묶어 두지 않도록 보장합니다(즉, 이전 버전의 EPUB 제작자가 최신 접근성 요구사항을 참조할 수 있게 합니다).
이 섹션은 비규범적입니다.
EPUB 출판물의 특수성은 그 구조에 있습니다. EPUB 형식은 HTML, CSS, SVG, JavaScript 및 기타 리소스를 포함한 구조화되고 의미론적으로 강화된 웹 콘텐츠를 단일 파일 컨테이너로 배포하기 위해 표현, 패키징, 인코딩하는 수단을 제공합니다.
이는 EPUB 3의 보안 및 개인정보 보호 문제가 주로 이러한 형식의 기능과 연결되어 있으며, 웹 콘텐츠가 제시하는 위협을 매우 밀접하게 반영한다는 것을 의미합니다.
콘텐츠 위험은 의도적으로 악의적인 저작 의도와 동일시되는 경우가 많지만, EPUB 제작자는 최선의 의도로 따르는 많은 관행도 사용자를 개인정보 보호 및 보안 문제에 노출할 수 있음을 알아야 합니다. 이 섹션의 나머지 부분은 EPUB 제작자가 이러한 위험을 인식하고 완화하는 데 도움이 되도록 EPUB 3의 위험 모델을 살펴봅니다.
읽기 시스템과 관련된 위험은 [epub-rs-33]의 보안 및 개인정보 보호 섹션을 참조하십시오.
이 섹션은 비규범적입니다.
EPUB 출판물은 의심하지 않는 사용자에게 다양한 개인정보 보호 및 보안 위협을 제기합니다. 이러한 위협 중 다수는 웹 콘텐츠와 교차하지만, EPUB은 사용자를 속여 악성 콘텐츠에 접근하게 하거나 민감한 정보를 제공하게 하는 데 사용할 수 있는 고유한 공격 방법도 도입합니다. EPUB 제작자와 사용자가 알아야 할 더 중요한 공격 벡터에는 다음이 포함됩니다.
EPUB 3은 일부 출판물 리소스가 원격으로 호스팅될 수 있도록 허용합니다. 구체적으로는 EPUB 출판물의 다운로드와 열기에 부정적인 영향을 줄 수 있는 크기의 리소스(예: 오디오, 비디오, 글꼴)입니다. 의도한 대로 사용될 때 사용자에게 도움이 되지만, 이러한 예외는 출판물에 악성 콘텐츠를 주입하는 데도 사용될 수 있습니다.
이 위협은 악의적 행위자가 만든 콘텐츠에 접근하는 경우로 제한되지 않습니다. EPUB 제작자가 신뢰할 수 없는 출처(예: 제3자 오디오 및 비디오)의 콘텐츠를 삽입하면, 사용자가 손상된 리소스를 받을 가능성은 항상 존재합니다.
배포 시점에 악성코드와 익스플로잇을 검사하는 것도 항상 신뢰할 수 있는 것은 아닙니다. EPUB 컨테이너에 삽입되어 제공되는 리소스와 달리, 악성 콘텐츠는 출판 후 언제든지 교체될 수 있기 때문입니다.
EPUB의 origin은 EPUB 제작자에게 알려져 있지 않으며,
각 읽기 시스템 구현에 따라 달라집니다. 따라서 EPUB 제작자가 자신이 제어하는 웹 서버에
원격 리소스를 호스팅하는 경우, 그 서버는
허용 가능한 origin을 지정해야 하는 보안 기능(예: CORS,
Content-Security-Policy,
또는 X-Frame-Options 헤더)을
사실상 사용할 수 없습니다.
의도적이든 아니든, 외부 웹 사이트와 리소스로 가는 링크는 사용자를 읽기 시스템이나 운영 체제를 손상시킬 수 있는 잠재적 익스플로잇에 노출합니다. 외부 링크는 일반적으로 웹 브라우저에서 열리고 브라우저 보안 모델의 적용을 받지만, 이것이 모든 익스플로잇으로부터 사용자를 보호하는 것은 아닙니다.
EPUB 제작자의 의도가 악의적이지 않더라도, 외부 링크에 추적 정보를 추가하는 것은 사용자의 동의 없이 사용자의 활동을 추적할 수 있게 하므로 사용자 개인정보 보호에 문제가 됩니다.
깨진 링크 하이재킹 — 도메인이 만료된 뒤 다른 당사자가 이를 구매하여 해당 도메인으로 가는 링크를 악용하는 경우 — 도 EPUB 제작자가 의도하지 않은 리소스로 사용자를 이동하게 할 수 있습니다.
EPUB 컨테이너에 삽입된 리소스도 악의적 행위자로부터 면역이 있는 것은 아닙니다. 특히 EPUB 출판물을 신뢰할 수 없는 출처에서 얻은 경우 그렇습니다. 리소스에는 익스플로잇이나 의도하지 않은 당사자에게 민감한 정보를 제출할 수 있는 양식이 포함될 수 있습니다. 이러한 행위자는 심볼릭 링크나 파일 별칭 같은 파일 간접 참조 기법을 사용하여 원격 리소스에 접근하려고 시도할 수도 있습니다.
게임 및 퀴즈 같은 제3자 콘텐츠의 사용도 EPUB 제작자가 콘텐츠를 완전히 검증할 수 없는 경우 보안 및 개인정보 보호 문제로 이어질 수 있습니다.
스크립트가 장치의 네트워크에 접근할 수 있으면, 사용자를 악용할 수 있는 다양한 채널이 제공됩니다.
네트워크 접근은 EPUB 제작자의 의도가 아니었더라도 제3자 콘텐츠가 사용자를 악용할 수 있게 할 수 있습니다.
디지털 권리 관리 체계를 사용한 EPUB 출판물의 암호화와 복호화는 사용자, 사용자가 이용하는 공급업체, 사용자의 읽기 선택에 관한 개인 식별 정보를 제3자에게 전달할 수 있게 할 수 있습니다.
이러한 공격의 효과는 또한 사용자가 자신이 상호작용하는 출판물이 신뢰할 수 있는 출처에서 온 것이라고 믿도록 속이는 데 의존하는 경우가 많습니다. 이러한 기만은 다음과 같은 형태를 취할 수 있습니다.
EPUB 출판물은 사용자가 이를 합법적인 출처에서 온 것으로 믿도록 속이기 위해 자신에 대한 거짓 정보를 포함할 수 있습니다. 예를 들어 악의적인 EPUB 제작자는 저작물의 제목, 저자, 식별자, 출판사를 위조할 수 있습니다.
이 잘못된 정보 자체가 즉각적인 피해를 주지는 않지만, 사용자가 EPUB 출판물 안의 악성 양식, 링크 및 기타 콘텐츠를 신뢰할 수 있는 출처에서 온 것으로 믿고 신뢰하게 만들 수 있습니다.
악의적인 EPUB 제작자는 사용자가 자신의 콘텐츠를 신뢰하도록 속이기 위해 플랫폼의 경험을 모방하거나 복제하도록 콘텐츠를 설계할 수도 있습니다.
EPUB 3은 자신이 기반으로 하는 하위 기술을 확장하는 것을 피하려고 하지만, 몇 가지 새로운 기능을 도입했습니다. 그러나 이러한 기능의 제한된 범위는 이들이 제기할 수 있는 위협을 제한합니다.
콘텐츠 전환 및 멀티미디어 제어 요소는 HTML에서 콘텐츠 숨기기와 스크립트 없는 재생 제어만 허용합니다. 또한 EPUB 3.0의 첫 릴리스에서 도입된 이러한 기능은 사용 중단됨이며 더 이상 사용이 권장되지 않습니다.
HTML 및 SVG에서의 구조적 의미론 표현은 요소에 주석을 다는 것만 허용합니다.
잠재적인 한 가지 예외는 epubReadingSystem 객체
[epub-rs-33]입니다. 이는 EPUB 제작자가 현재 읽기
시스템에 대한 정보를 조회할 수 있게 합니다.
EPUB 제작자는 이 객체가 노출하는 정보를 콘텐츠 렌더링을 개선하는 데만 사용하도록 유의해야 합니다
(즉, 사용자의 프로필과 환경을 작성하는 데 해당 정보를 사용하지 말아야 합니다).
EPUB 제작자가 사용자를 악용하는 모든 방법을 방지할 수는 없지만, 궁극적으로는 자신의 콘텐츠를 안전하게 구성할 책임이 있습니다. 이는 이전 섹션에서 설명한 악성 익스플로잇 유형에 EPUB 출판물이 노출되는 것을 제한하기 위한 예방 조치를 취해야 함을 의미합니다.
몇 가지 실용적인 단계는 다음과 같습니다.
EPUB 제작자는 사용자의 개인정보 보호 권리도 고려해야 하며, 의도적으로 데이터를 수집하는 상황을 피해야 합니다. 이상적으로 EPUB 제작자는 사용자를 추적해서는 SHOULD NOT 안 되지만, 모든 유형의 출판에서 이것이 현실적인 것은 아닙니다.
EPUB 제작자가 사용자를 추적해야 하는 경우, EPUB 출판물을 열기 전에(예: 교육 과정 작업에서) 정보를 수집하기 위해 사용자의 승인을 받아야 SHOULD 합니다. 이것이 가능하지 않다면, 사용자가 EPUB 출판물에 처음 접근할 때 허가를 받아야 SHOULD 합니다. EPUB 제작자는 또한 사용자가 추적을 거부할 수 있도록 해야 SHOULD 하며, 자신에 대해 수집된 모든 데이터를 관리하고 삭제할 수 있는 기능을 사용자에게 제공해야 합니다.
EPUB 제작자는 사용자에 관한 정보의 의도치 않은 수집도 고려해야 합니다. 출판사의 웹 사이트에 있는 콘텐츠로 링크하거나, 출판사 서버에 리소스를 원격 호스팅하면, 특히 고유한 추적 식별자가 URL에 추가된 경우 사용자 프로파일링으로 이어질 수 있습니다.
EPUB 출판물 안에서 사용자 정보를 수집하고 저장할 때(예: cookies 및 web storage [html] 사용을 통해), EPUB 제작자는 읽기 시스템의 다른 EPUB 출판물에 의한 데이터 절도 가능성을 고려해야 합니다. [epub-rs-33]는 EPUB 출판물에 대한 고유 origin 요구사항을 도입하여 공격 가능성을 제한하지만, 읽기 시스템이 EPUB 출판물에 공유 영구 저장소 접근을 허용할 위험은 여전히 존재합니다(예: 업데이트되지 않은 오래된 읽기 시스템 및 부적합한 최신 읽기 시스템). 따라서 EPUB 제작자는 민감한 사용자 데이터를 영구 저장소에 저장해서는 SHOULD NOT 안 됩니다. EPUB 제작자가 민감한 데이터를 저장해야 한다면, 익스플로잇 발생 시 데이터에 쉽게 접근하는 것을 방지하기 위해 데이터를 암호화해야 SHOULD 합니다.
출판사와 공급업체가 디지털 권리 관리 체계를 사용해야 하는 경우, 암호화 또는 복호화를 수행하기 위해 사용자나 사용자의 콘텐츠에 관한 정보를 외부 당사자에게 이용하거나 전송하지 않는 체계를 선호해야 합니다.
보안 및 개인정보 보호 위험을 최대한 줄이기 위해, EPUB 제작자는 장기 보존을 목표로 EPUB 출판물을 제작해야 SHOULD 합니다. 이렇게 만들어진 EPUB 출판물은 일반적으로 자체 완결적이고, 네트워크 접근에 의존하지 않으며, 디지털 권리 관리로 암호화되지 않아 가능한 공격 벡터의 상당수를 제거합니다. [iso22424]는 EPUB 출판물을 위한 그러한 보존 형식의 예입니다. 모든 EPUB 제작자가 이러한 수준의 자체 완결성을 달성할 수 있는 것은 아니지만, 이러한 관행을 가능한 한 많이 따르면 전반적인 사용자 개인정보 보호와 보안에 여전히 도움이 됩니다.
이 명세에는 아직 읽기 시스템에서 완전히 지원되지 않거나, Working Group이 더 이상 사용을 권장하지 않거나, EPUB 2 읽기 시스템과의 상호운용성을 위해서만 유지되는 특정 기능이 포함되어 있습니다. 이 섹션은 이러한 기능에 부여된 지정의 의미와 지원 기대치를 정의합니다.
구현이 부족한 기능은 EPUB 3.3 이전에 도입된 기능으로, Working Group이 충분한 구현 경험을 확인하지 못한 기능입니다.
이러한 기능은 이러한 제한에도 불구하고 유지하는 것이 중요하다고 간주됩니다. 이는 EPUB 제작자가 구현해 사용하고 있음이 알려져 있거나 (즉, 사용 중단하면 기존 콘텐츠가 무효화됨) 그리고/또는 EPUB이 구축된 콘텐츠 모델에 필수적이기 때문입니다.
이 명세가 어떤 기능을 구현이 부족한 것으로 지정하는 경우, EPUB 제작자는 설명된 대로 해당 기능을 사용할 수 MAY 있습니다.
EPUB 적합성 검사기는 EPUB 출판물에서 구현이 부족한 기능을 발견하면 EPUB 제작자에게 그 존재를 알려야 하지만, 해당 기능의 포함을 표준 위반으로 취급해서는 안 됩니다(즉, 오류나 경고를 내보내지 않음).
구현이 부족함이라는 레이블이 향후 표준 버전에서 제거될지, 또는 사용 중단으로 대체될지는 현재로서는 결정할 수 없습니다. EPUB 제작자는 이러한 기능을 사용할 때 현재와 미래 모두에 발생할 수 있는 상호운용성 문제를 신중하게 고려해야 합니다.
기능을 구현이 부족한 것으로 표시하는 것은 EPUB이 W3C로 이전되기 전에 개발되었던 서로 다른 절차를 고려하기 위한 일회성 조치입니다. 이 레이블은 W3C 절차에 따라 개발되는 새로운 기능에는 사용되지 않습니다.
사용 중단된 기능은 Working Group이 이 명세 버전에서 더 이상 사용을 권장하지 않는 기능입니다. 사용 중단된 기능은 일반적으로 읽기 시스템에서 지원이 제한적이거나 없고/또는 EPUB 출판물에서의 사용이 제한적입니다.
이 명세가 어떤 기능을 사용 중단된 것으로 지정하는 경우, EPUB 제작자는 자신의 EPUB 출판물에서 그 기능을 사용해서는 SHOULD NOT 안 됩니다.
EPUB 적합성 검사기는 EPUB 출판물에서 사용 중단된 기능을 발견하면 EPUB 제작자에게 그 존재를 알려야 합니다.
다음 표는 공개 및 시스템 식별자 [xml] 중 문서 유형 선언에서 허용되는 것을 나열합니다. [xml]
EPUB 제작자는 자신의 매니페스트 선언에 지정된, 나열된 미디어 유형 [rfc2046]을 가진 출판물 리소스에서만 이러한 외부 식별자를 사용할 수 MAY 있습니다. (자세한 내용은 3.9 XML 적합성을 참조하십시오.)
| 미디어 유형 | 공개 식별자 | 시스템 식별자 |
|---|---|---|
|
-//W3C//DTD MathML 3.0//EN
|
http://www.w3.org/Math/DTD/mathml3/mathml3.dtd
|
application/x-dtbncx+xml
|
-//NISO//DTD ncx 2005-1//EN
|
http://www.daisy.org/z3986/2005/ncx-2005-1.dtd
|
image/svg+xml
|
-//W3C//DTD SVG 1.1//EN
|
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
|
이 섹션은 비규범적입니다.
구조적 의미론은 요소가 수행하는 구체적인 구조적 목적에 관한 추가 의미를 더합니다.
속성은 EPUB
콘텐츠 문서와 미디어 오버레이 문서에서
도메인별 의미론을 표현하는 데 사용되며, 이 속성이 전달하는 구조 정보는 기반 어휘를 보완합니다.
epub:type
적용된 의미론은, 유사한
role
속성 [html]을 사용할 때와 달리, 보조 기술에 대한 요소의 성격을
바꾸지 않고 포함된 요소의 의미를 정교화합니다. 다시 말해 이 속성은 콘텐츠의 접근성을 향상시키지
않으며, 목적에 관한 힌트만 제공합니다.
의미론적 메타데이터는 출판 워크플로와 저자 정의 목적에서 사용할 수 있도록 콘텐츠를 풍부하게 합니다. 또한 읽기 시스템이 문서의 구조와 콘텐츠에 대해 더 많이 알 수 있게 합니다(예: 미디어 오버레이에서 건너뛰기 가능성과 빠져나가기 가능성을 활성화하기 위해).
이 명세는 속성 축을 사용하여 구조적 의미론을 추가하는 방법을 정의합니다. 즉, 새로운
요소를 추가하는 대신, EPUB 제작자는
기존 요소에 epub:type 속성을 붙여 원하는 의미론을 추가할 수 있습니다.
epub:type
http://www.idpf.org/2007/ops
D.1 어휘 연결 메커니즘에 정의된 제한사항을 가진, 공백으로 구분된 property 값 목록입니다.
공백은 [xml]에 정의된 문자 집합입니다.
epub:type 속성은
role
속성 [html]과 성격이 유사하지만, 두 속성은 서로 다른 목적을
수행합니다.
epub:type 속성의 값은 화면 읽기 프로그램 같은 보조 기술을 통한 접근을
향상시키지 않습니다. 이러한 값은 해당 기술에서 사용하는 접근성 APIs에
매핑되지 않기 때문입니다. 이는
[html]
div
및
span
같은 의미론적으로 중립적인 요소에 epub:type 값을 추가해도 보조 기술에 대해
더 접근성 있게 만들지 않는다는 뜻입니다. 오직 ARIA 역할만이 보조 기술이 이러한 요소를 이해하는
방식에 영향을 줍니다.
따라서 epub:type 속성은 출판 의미론과 읽기
시스템 향상만을 의도합니다. 읽기 시스템은
보조 기술과의 상호작용이 필수적이지 않은 경우, 내장된 소리내어 읽기 또는 미디어 오버레이 기능 같은
접근성 향상을 제공하기 위해 epub:type 값을 사용할 수 있습니다.
접근 가능한 출판 역할에 관한 자세한 내용은 Digital Publishing WAI-ARIA Module [dpub-aria]을 참조하십시오.
epub:type 속성은 그것이 나타나는 요소에 의미론을 굴절시킵니다. 그 값은 문서 인스턴스와
연결된 외부 어휘에서 비롯된, 하나 이상의 공백으로 구분된 용어입니다.
epub:type 속성의 기본 어휘는
EPUB 3 Structural Semantics Vocabulary [epub-ssv-11]입니다. EPUB 제작자는
이 어휘에 속하지 않는 접두사 없는 용어를 포함할 수 MAY 있지만, 사용자 정의 의미론을 추가하는 데 선호되는 방법은 해당 용어에
접두사를 사용하는 것입니다. 자세한 내용은 D.1 어휘 연결
메커니즘을 참조하십시오.
이 부록은 이 명세의 속성이 어휘의 용어를 참조할 수 있도록 하는 일반적인 메커니즘 집합을 정의합니다. 또한 이러한 속성과 함께 사용할 EPUB 전용 어휘도 정의합니다.
이 섹션은 비규범적입니다.
EPUB은 property 데이터 유형을 사용하여 메타데이터 및
의미론적 어휘에 정의된 용어와 속성을 참조하는 공식적인 방법을 정의합니다.
예를 들어 epub:type 속성은 EPUB 콘텐츠 문서와
미디어 오버레이 문서에서 이 데이터 유형을 사용하여
구조적 의미론을 추가하며,
property 및 rel 속성은 이 데이터 유형을 사용하여
패키지
문서에서 속성과 관계를 정의합니다.
property 값은 CURIE [rdfa-core]와 유사합니다 — URL [url]을 압축된 형식으로 나타냅니다. 표현식은 접두사와 참조로 구성되며, 접두사 — 리터럴이든 암시적이든 — 는 일반적으로 용어 어휘로 해석되는 URL의 축약 매핑입니다. 읽기 시스템이 접두사를 URL 표현으로 변환하고 참조와 결합하면, 결과 URL은 일반적으로 해당 어휘 안에서 그 용어에 관한 사람이 읽을 수 있는 및/또는 기계가 읽을 수 있는 정보를 포함하는 조각으로 해석됩니다.
저작의 복잡성을 줄이기 위해, property 데이터 유형을 받는 각 속성은 기본 어휘도 정의합니다. 기본 어휘에서 참조되는 용어와 속성은 읽기 시스템이 URL에 매핑하는 데 사용하는 매핑이 미리 정의되어 있으므로 접두사를 포함하지 않습니다.
property 데이터 유형의 힘은 쉽게 확장할 수 있다는 데 있습니다. 새로운 용어와 속성을 통합하려면, EPUB 제작자는 접두사만 선언하면 됩니다. 또 다른 저작 편의로, 이 명세는 자주 사용되는 많은 출판 어휘에 대해 접두사를 예약하기도 합니다(즉, 그 선언은 선택 사항입니다).
다음 섹션들은 property 데이터 유형과 어휘 연결 메커니즘에 대한 추가 세부사항을 제공합니다.
property 데이터 유형은 URL [url]을 표현하는 압축된 수단이며, 콜론으로 참조와 구분되는 OPTIONAL 접두사로 구성됩니다.
| property |
=
|
[ prefix , ":" ] , reference; | |
| prefix |
=
|
? xsd:NCName ? ; | |
| reference |
=
|
? path-relative-scheme-less-URL string [url] ? ; | /* [url]에 정의된 대로 */ |
이 명세는 [rdfa-core]에 정의된 CURIE 데이터 유형에서 property 데이터 유형을 파생합니다. property는 CURIE의 하위 집합을 나타냅니다.
그러나 CURIE와는 두 가지 중요한 차이가 있습니다.
빈 reference는 위 정의에서는 유효하더라도 유효한 property 값을 나타내지 않습니다(즉, 접두사와 콜론만으로 구성된 property 값은 유효하지 않습니다).
빈 문자열은 위 정의에서는 유효하더라도 유효한 property를 나타내지 않습니다.
EPUB 제작자가 property 값에서 접두사를 생략하면, 표현된 참조는 해당 속성의 기본 어휘에 속한 용어를 나타냅니다.
기본 어휘는 EPUB 제작자가 property 값이 예상되는 곳에서 그 용어와 속성을 사용하기 위해 접두사를 선언할 필요가 없는 어휘입니다. EPUB 제작자는 기본 어휘의 용어와 속성에 접두사를 추가해서는 MUST NOT 안 됩니다.
EPUB 제작자는 prefix 속성을 사용하여 이러한
어휘와 연결된 URL에 접두사를 할당해서는 MUST NOT 안 됩니다.
기본 어휘에 대한 자세한 내용은 property 데이터 유형을 받는 각 속성의 정의를 참조하십시오.
prefix 속성은 property 값에서 사용할 접두사 매핑을
정의합니다.
prefix 속성의 값은 다음 형식의 하나 이상의 접두사-URL 매핑을 공백으로 구분한
목록입니다.
| prefixes |
=
|
mapping , { whitespace, { whitespace } , mapping } ; | |
| mapping |
=
|
prefix , ":" , space , { space } , ? xsd:anyURI ? ; | |
| prefix |
=
|
? xsd:NCName ? ; | |
| space |
=
|
#x20 ; | |
| whitespace |
=
|
(#x20 | #x9 | #xD | #xA) ; |
예약된 접두사를 제외하고, EPUB 제작자는
문서에서 사용되는 모든 접두사를 선언해야 MUST 합니다. EPUB 제작자는 해당
형식의
루트 요소
[xml]에만
prefix 속성을 지정해야 MUST 합니다.
이 속성이 패키지 문서에서 사용될 때는 네임스페이스가 없습니다.
EPUB 제작자는 EPUB 콘텐츠 문서와 미디어 오버레이 문서에서 이 속성을
http://www.idpf.org/2007/ops 네임스페이스로 선언해야 MUST 합니다.
prefix 속성은 [rdfa-core]의
동일한 이름의
prefix 속성을 모델로 하지만,
EPUB 제작자는 이 속성들을 서로 바꿔 사용할 수 없습니다. EPUB 콘텐츠 문서에서 네임스페이스가
없는 prefix 속성은 RDFa 속성입니다.
RDFa 표현식도 지정하는 EPUB 콘텐츠 문서에는 두 속성이 모두 나타나는 것이 일반적입니다.
<html … prefix="…"
xmlns:epub="http://www.idpf.org/2007/ops"
epub:prefix="…"> …
</html>
포함을 통해 삽입된 SVG의 경우, 접두사는 [html] 루트
html
요소에 선언되어야 MUST 함에 유의하십시오.
충돌을 피하기 위해, EPUB 제작자는 prefix
속성을 사용하여 기본 어휘에 매핑되는 접두사를 선언해서는
MUST NOT 안 됩니다.
EPUB 제작자는 '_' 접두사를 선언해서는 MUST NOT 안 됩니다. 이 명세가 RDFa [rdfa-core] 처리와의 향후 호환성을 위해 이 접두사를 예약하기 때문입니다.
패키지 문서의 대체 직렬화와의 향후 호환성을 위해, EPUB 제작자는 Dublin Core /elements/1.1/ 네임스페이스 [dcterms]에 대한 접두사를 선언해서는 MUST NOT 안 됩니다. EPUB 제작자는 [dcterms] 요소 중 패키지 문서 메타데이터에서 허용되는 것만 사용해야 MUST 합니다.
예약된 접두사는 저작 편의를 위한 것이지만, EPUB 제작자는 상호운용성 문제를 일으킬 수 있으므로 이에 의존하지 않아야 합니다. 예를 들어 EPUB 적합성 검사기는 개발자가 도구를 최신 명세 버전으로 업데이트하기 전까지 새로운 접두사를 거부하는 경우가 많습니다. EPUB 제작자는 이러한 문제를 피하기 위해 자신이 사용하는 모든 접두사를 선언해야 합니다.
EPUB 제작자는 property 값을 예상하는 속성에서 예약된 접두사를
prefix 속성에 선언하지 않고 사용할 수
MAY 있습니다.
EPUB 제작자는 prefix 속성에서 예약된 접두사를
재정의해서는 SHOULD NOT 안 됩니다.
EPUB 제작자가 사용할 수 있는 예약된 접두사는 컨텍스트에 따라 달라집니다.
EPUB 제작자는 패키지 문서 속성에서 다음 접두사를 선언하지 않고 사용할 수 MAY 있습니다.
| 접두사 | URL |
|---|---|
| a11y | http://www.idpf.org/epub/vocab/package/a11y/# |
| dcterms | http://purl.org/dc/terms/ |
| marc | http://id.loc.gov/vocabulary/ |
| media | http://www.idpf.org/epub/vocab/overlays/# |
| onix | http://www.editeur.org/ONIX/book/codelists/current.html# |
| rendition | http://www.idpf.org/vocab/rendition/# |
| schema | http://schema.org/ |
| xsd | http://www.w3.org/2001/XMLSchema# |
EPUB 제작자는 epub:type 속성에서 다음 예약된
접두사를 선언하지 않고 사용할 수 MAY 있습니다.
| 접두사 | URL |
|---|---|
| msv | http://www.idpf.org/epub/vocab/structure/magazine/# |
| prism | http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm# |
어휘 정의 표의 필드는 다음과 같은 암시적 요구사항을 가집니다.
[xmlschema-2] 데이터 유형을 사용하여 값의 REQUIRED 유형을 지정합니다.
EPUB 제작자가 해당 속성을 지정할 수 MAY 있는 출판물 리소스 유형을 지정합니다.
이 필드는 properties 속성에서 사용되는
속성에 나타납니다.
EPUB 제작자가 해당 속성을 전역적으로 또는 다른 요소나 속성에 붙여 지정할 수 MAY 있는 횟수를 지정합니다.
최소 카디널리티가 1인 속성은 지정되어야 MUST 합니다.
속성의 목적을 설명하고 EPUB 제작자가 따라야 하는 추가 사용 요구사항을 지정합니다.
비규범적 사용 예제를 제공합니다.
EPUB 제작자가 해당 속성을 연결할 수 MAY 있는 대상을 식별합니다.
이 필드는 기본 표현식 및 하위 표현식과 관계를 정의하는 속성에 나타납니다.
메타데이터에 나타나야 하는 MUST 속성의 이름을 지정합니다.
이 어휘의 속성은
요소의 metaproperty 속성에서 사용할 수 있습니다.
"Extends" 필드에 달리 표시되지 않는 한, 이 섹션에 정의된 속성은
하위 표현식을 정의하는 데 사용됩니다. 다시 말해, 이 섹션에 정의된
속성을 가진
요소는
보강되는 리소스나 표현식을 참조하는
metarefines 속성을 가져야
MUST 합니다.
이러한 속성을 참조하기 위한 접두사 URL은
http://idpf.org/epub/vocab/package/meta/#입니다.
| 이름: |
alternate-script
|
|---|---|
| 설명: |
이 속성은 일반적으로 국제화 목적으로 |
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or more
|
| 확장 대상: | 모든 속성. |
| 이름: |
belongs-to-collection
|
|---|---|
| 설명: |
또한 읽기 시스템이
컬렉션을 정리하고 이름 충돌을 피할 수 있도록(예:
관련 없는 컬렉션이 비슷한 이름을 공유하거나, 컬렉션의 서로 다른 판이 출시되는 경우),
EPUB 제작자는 컬렉션의 인스턴스를 고유하게
식별하는 식별자를 제공해야 SHOULD 합니다. 컬렉션은 컬렉션 안에서 EPUB 출판물의 위치는 |
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or more
|
| 확장 대상: | EPUB 출판물에 적용되며, 자기 자신의 다른 인스턴스를 정교화할 수 있습니다. |
| 이름: |
collection-type
|
|---|---|
| 설명: |
이 명세는 scheme이 지정되지 않은 경우 다음 컬렉션 유형도 정의합니다.
|
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or one
|
| 확장 대상: |
belongs-to-collection
|
| 이름: |
display-seq
|
|---|---|
| 설명: |
이 속성은 우선순위 규칙이 아직 정의되지 않은 곳에만 적용됩니다 (예: 제작자에는 문서 순서상 나타나는 순서에 따라 우선순위가 부여됨). |
| 허용 값: |
xsd:unsignedInt
|
| 카디널리티: |
zero or one
|
| 확장 대상: | 모든 속성. |
| 이름: |
file-as
|
|---|---|
| 설명: | file-as 속성은 정렬을 위해 연결된 속성의 정규화된 형식을 제공합니다. |
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or one
|
| 확장 대상: | 모든 속성. |
| 이름: |
group-position
|
|---|---|
| 설명: |
EPUB 제작자는 그룹을 설정하는 모든 메타데이터
속성에 EPUB 출판물은 둘 이상의 그룹에 속할 수 있습니다. |
| 허용 값: | 단일 xsd:unsignedInt 또는 점으로 구분된 숫자열(예:
1 또는 2.2.1).
|
| 카디널리티: |
zero or one
|
| 확장 대상: | 모든 속성. |
| 이름: |
identifier-type
|
|---|---|
| 설명: |
|
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or one
|
| 확장 대상: |
,
dc:source
|
이 속성의 사용은 사용 중단됨입니다.
자세한 내용은 [epubpublications-30]의 meta-auth
속성 정의를 참조하십시오.
| 이름: |
role
|
|---|---|
| 설명: |
개인 또는 조직에 여러 역할을 붙이는 경우, 역할의 중요도는 해당 역할을 포함하는
|
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or more
|
| 확장 대상: |
,
,
dc:publisher
|
| 이름: |
source-of
|
|---|---|
| 설명: |
이 명세는 참조된 |
| 허용 값: |
pagination
|
| 카디널리티: |
zero or one
|
| 확장 대상: |
dc:source
|
접근 가능한 페이지 내비게이션을 제공하는 방법에 대한 정보는 [epub-a11y-tech-11]를 참조하십시오.
| 이름: |
term
|
|---|---|
| 설명: |
|
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or one
|
| 확장 대상: |
|
| 이름: |
title-type
|
|---|---|
| 설명: |
|
| 허용 값: |
xsd:string
|
| 카디널리티: |
zero or one
|
| 확장 대상: |
|
이 어휘의 속성은 메타데이터
요소의 linkrel 및 properties 속성에서 사용할 수 있습니다.
이러한 속성을 참조하기 위한 접두사 URL은
http://idpf.org/epub/vocab/package/link/#입니다.
다음 값들은
href 속성에서 참조되는 리소스의 관계를 설정하기 위해
link 요소의 rel 속성에서 사용할 수 있습니다.
| 이름: |
alternate
|
|---|---|
| 설명: |
|
| 카디널리티: |
Zero or more
|
| 확장 대상: | EPUB 출판물 또는 컬렉션에만 적용됩니다. refines
속성이 있을 때 사용해서는 MUST
NOT 안 됩니다. |
| 예제: |
<link rel="alternate" href="package.json"
media-type="application/json-ld"/>
|
marc21xml-record 키워드의 사용은 사용 중단됨입니다.
이는 media-type 속성 값
"application/marcxml+xml"과 함께 사용하는 record
키워드로 대체됩니다.
자세한 내용은 [epubpublications-30]의 marc21xml-record
속성 정의를 참조하십시오.
mods-record 키워드의 사용은 사용 중단됨입니다. 이는
media-type 속성 값
"application/mods+xml"과 함께 사용하는 record
키워드로 대체됩니다.
자세한 내용은 [epubpublications-30]의 mods-record
속성 정의를 참조하십시오.
onix-record 키워드의 사용은 사용 중단됨입니다. 이는
properties 속성 값 onix와 함께 사용하는
record
키워드로 대체됩니다.
자세한 내용은 [epubpublications-30]의 onix-record
속성 정의를 참조하십시오.
| 이름: |
record
|
|---|---|
| 설명: |
참조된 리소스가 메타데이터 레코드임을 나타냅니다. 이 키워드가 지정된 경우, 레코드의 미디어 유형은
일반적으로 링크되는 메타데이터 레코드 유형 목록은 EPUB Linked Metadata Guide를 참조하십시오. 레코드의 유형을 미디어 유형으로 식별할 수 없는 경우,
|
| 카디널리티: |
Zero or more
|
| 확장 대상: | EPUB 출판물 또는
컬렉션에만 적용됩니다. refines 속성이 있을 때 사용해서는
MUST NOT 안 됩니다.
|
| 예제: |
<link rel="record" href="book/52.atom"
media-type="application/atom+xml;type=entry;profile=opds-catalog"/>
|
| 이름: |
voicing
|
|---|---|
| 설명: |
참조된 오디오 파일이 refines 속성으로 지정된 표현식 또는 리소스(일반적으로 제목 또는 제작자)의 청각적 표현을 제공함을 나타냅니다. 이 키워드가 지정된 경우, 오디오 파일의 미디어 유형은
|
| 카디널리티: |
Zero or more
|
| 확장 대상: | 모든 속성. 이 값이 사용될 때는 refines 속성이
있어야 MUST 합니다.
|
| 예제: |
<link refines="#title" rel="voicing" media-type="audio/mpeg"
href="title.mp3" />
|
xml-signature 키워드의 사용은 사용 중단됨입니다.
이는 다른 링크 방법으로 대체되지 않습니다.
자세한 내용은 [epubpublications-30]의 xml-signature
속성 정의를 참조하십시오.
xmp-record 키워드의 사용은 사용 중단됨입니다.
자세한 내용은 [epubpublications-30]의 xmp-record
속성 정의를 참조하십시오.
다음 값들은 참조된 리소스가 나타내는 레코드의 유형을 설정하기 위해
요소의
linkproperties 속성에서 사용할 수 있습니다.
이러한 값들은 미디어 유형만으로 고유하게 식별할 수 없는 레코드 형식을 위해 제공됩니다.
| 이름: |
onix
|
|---|---|
| 설명: | onix 속성은 참조된 리소스가 ONIX 레코드임을 나타냅니다
[onix]. |
| 예제: |
<link rel="record" href="pub/meta/nor-wood-onix.xml"
media-type="application/xml" properties="onix"/>
|
이러한 속성을 참조하기 위한 접두사 URL은
http://www.idpf.org/vocab/rendition/#입니다.
"rendition:" 접두사는 패키지 렌더링 속성과 함께 사용하도록
예약되어 있으며,
패키지 문서에서 선언할 필요가 없습니다.
이 부록의 다른 어휘와 달리, Package Rendering Vocabulary의 속성은
요소로 표현되는 속성과
meta
요소에 표현되는 스파인 재정의가
혼합되어 구성됩니다.
itemref
사용 요구사항도 이 부록이 아니라 8. 레이아웃 렌더링 제어에 정의되어 있습니다. 다음 표는 속성, 재정의, 그리고 그것들이 정의된 위치에 대한 지도를 제공합니다.
| 속성 | 재정의 | 정의 위치 |
|---|---|---|
rendition:layout |
|
8.2.2.1 레이아웃 |
rendition:orientation |
|
8.2.2.2 방향 |
rendition:spread |
|
8.2.2.3 합성 펼침면 |
| — |
|
8.2.2.4 펼침면 배치 |
rendition:viewport (사용 중단됨) |
— | 8.2.2.5 뷰포트 치수 (사용 중단됨) |
rendition:flow |
|
8.3.1
rendition:flow 속성 |
| — |
|
8.3.2
rendition:align-x-center 속성 |
읽기 시스템 개발자는 EPUB 콘텐츠 문서 렌더링에서 읽기 시스템별 문제를 해결하기 위해 이 명세에 정의되지 않은 기능을 도입할 수 있습니다.
이러한 실험을 용이하게 하기 위해, EPUB 제작자는 rendition:
접두사를 사용하지 않는다는 조건에서 패키지 문서에 사용할 사용자 정의 속성과
스파인
재정의를 포함할 수 MAY 있습니다.
사용자 정의 속성은 특정 읽기 시스템에 고유한 렌더링 문제만 해결해야 합니다. 이 명세는 여러 독립적인 읽기 시스템이 사용할 수 있는 확장을 제공하도록 확장되어야 합니다.
이 어휘의 속성은 매니페스트
요소의 itemproperties 속성에서 사용할 수 있습니다.
이러한 속성을 참조하기 위한 접두사 URL은
http://idpf.org/epub/vocab/package/item/#입니다.
| 이름: |
cover-image
|
|---|---|
| 설명: | cover-image 속성은 설명된 출판물
리소스를
EPUB 출판물의 표지 이미지로
식별합니다.
|
| 적용 대상: | 모든 래스터 및 벡터 이미지 유형 |
| 카디널리티: |
Zero or one
|
| 이름: |
mathml
|
|---|---|
| 설명: | mathml 속성은 설명된 출판물
리소스에
MathML 마크업 인스턴스가 하나 이상 포함되어 있음을 나타냅니다. |
| 적용 대상: | EPUB 콘텐츠 문서 |
| 카디널리티: |
Zero or more
|
| 이름: |
remote-resources
|
|---|---|
| 설명: |
자세한 내용은 3.6 리소스 위치를 참조하십시오. |
| 적용 대상: | 내부 참조 기능이 있는 모든 출판물 리소스 (예: XHTML 콘텐츠 문서, SVG 콘텐츠 문서, CSS 스타일시트 및 미디어 오버레이 문서). |
| 카디널리티: |
Zero or more
|
| 이름: |
scripted
|
|---|---|
| 설명: | scripted 속성은 설명된 출판물
리소스가
스크립트 포함 콘텐츠
문서임을 나타냅니다(즉, 스크립팅 및/또는 [html]
form
요소를 포함함).
|
| 적용 대상: | EPUB 콘텐츠 문서 |
| 카디널리티: |
Zero or more
|
| 이름: |
svg
|
|---|---|
| 설명: |
SVG 마크업이 리소스에 직접 포함된 경우 이 속성을 설정해야 MUST
하며,
SVG가 리소스에서 참조되는 경우(예: [html]
|
| 적용 대상: | XHTML 콘텐츠 문서; 이 값은 SVG 콘텐츠 문서에는 암시됩니다. |
| 카디널리티: |
Zero or more
|
| 이름: |
switch
|
|---|---|
| 설명: |
|
| 적용 대상: | XHTML 콘텐츠 문서. |
| 카디널리티: |
Zero or more
|
이 어휘의 속성은 스파인
요소의
itemrefproperties 속성에서 사용할 수 있습니다.
이러한 속성을 참조하기 위한 접두사 URL은
http://idpf.org/epub/vocab/package/itemref/#입니다.
| 이름: |
page-spread-left
|
|---|---|
| 설명: |
|
| 이름: |
page-spread-right
|
|---|---|
| 설명: |
|
이 어휘의 속성은
요소의
metaproperty 속성에서 사용할 수 있습니다.
이러한 속성을 참조하기 위한 접두사 URL은
http://www.idpf.org/epub/vocab/overlays/#입니다.
"media:" 접두사는 이 어휘의 속성과 함께 사용하도록 예약되어
있으며 패키지 문서에서 선언할 필요가 없습니다.
| 이름: |
active-class
|
|---|---|
| 설명: | 현재 재생 중인 EPUB 콘텐츠 문서 요소에 적용할 EPUB 제작자 정의 CSS 클래스 이름입니다. |
| 허용 값: |
xsd:string
|
| 카디널리티: |
Zero or one
|
| 예제: |
<meta
property="media:active-class">-epub-media-overlay-active</meta>
|
| 이름: |
duration
|
|---|---|
| 설명: | 전체 프레젠테이션 또는 특정 미디어 오버레이 문서의 지속 시간입니다. 지정된 지속 시간은 저작 시점에 알려진 오디오 클립을 고려하므로, 외부 리소스의 라이브 스트리밍과 음성 합성은 제외합니다. |
| 허용 값: |
[smil3] clock value이어야 MUST 합니다. |
| 카디널리티: | EPUB 출판물과 각 미디어 오버레이 문서마다 정확히 하나입니다. |
| 예제: |
<meta property="media:duration">1:36:20</meta>
|
| 이름: |
narrator
|
|---|---|
| 설명: | 낭독자의 이름입니다. |
| 허용 값: |
xsd:string
|
| 카디널리티: |
Zero or more
|
| 예제: |
<meta property="media:narrator">Joe Speaker</meta>
|
| 이름: |
playback-active-class
|
|---|---|
| 설명: | 재생이 활성화되어 있을 때 EPUB 콘텐츠 문서의 문서 요소에 적용할 저자 정의 CSS 클래스 이름입니다. |
| 허용 값: |
xsd:string
|
| 카디널리티: |
Zero or one
|
| 예제: |
<meta
property="media:playback-active-class">-epub-media-overlay-playing</meta>
|
이 부록은 EPUB에서 지원하는 접두사가 붙은 CSS 속성을 설명합니다.
접두사 정의는 더 이상 해당 CSS 대응 항목과 동기화되지 않습니다. 경우에 따라 이러한 속성의 접두사가 없는 버전은 이제 추가 값을 지원합니다. 읽기 시스템은 접두사가 붙은 속성에서 새 구문을 지원하지 않을 수 있으므로, EPUB 제작자는 더 새로운 기능에는 접두사가 없는 버전을 사용하는 것이 권장됩니다.
이 섹션은 [css-writing-modes-3]에 대한
-epub- 접두사 속성을 설명합니다.
이 속성은 text-orientation
속성 [css-writing-modes-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-orientation |
|---|---|
| 값: | mixed | upright | sideways | sideways-right |
기존 콘텐츠와의 호환성을 위해, -epub-text-orientation 속성은 사용 중단된
vertical-right, rotate-right 및
rotate-normal 키워드도 지원합니다. 다음 표는 이러한 값이 지정될 때의
효과를 명시합니다.
| 사용 중단된 값 | 사용할 값 |
|---|---|
vertical-right |
mixed |
rotate-right |
sideways |
rotate-normal |
sideways |
이 속성은 writing-mode 속성
[css-writing-modes-3]의 접두사가 붙은 버전이며,
동일한 구문과 동작을 가집니다.
| 이름: | -epub-writing-mode |
|---|---|
| 값: | horizontal-tb | vertical-rl | vertical-lr |
이 속성들은 text-combine-upright
속성 [css-writing-modes-3]의 접두사가 붙은 버전이지만,
-epub-text-combine은
사용 중단되었습니다.
| 이름: | -epub-text-combine-horizontal |
|---|---|
| 값: | none | all |
| 이름: | -epub-text-combine (사용 중단됨) |
|---|---|
| 값: | none | horizontal | horizontal <number> |
기존 콘텐츠와의 호환성을 위해, -epub-text-combine-horizontal 및
-epub-text-combine 속성은 사용 중단된 여러 키워드도 지원합니다. 다음 표는
이러한 값이 지정될 때의 효과를 명시합니다.
| 접두사가 붙은 버전 | CSS 대응 항목 |
|---|---|
-epub-text-combine-horizontal: none |
text-combine-upright: none |
-epub-text-combine-horizontal: all |
text-combine-upright: all |
-epub-text-combine: none |
text-combine-upright: none |
-epub-text-combine: horizontal |
text-combine-upright: all |
-epub-text-combine: horizontal <number> |
대응 항목 없음 |
이 섹션은 [css-text-3]에 대한
-epub- 접두사 속성(및 접두사가 붙은 값 하나)을 설명합니다.
이 속성은 hyphens 속성 [css-text-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-hyphens |
|---|---|
| 값: | none | manual | auto | all |
기존 콘텐츠와의 호환성을 위해, -epub-hyphens 속성은 사용 중단된
all 키워드도 지원합니다. 이 값은 더 이상 CSS에서 지원되지 않으며, 그 대신 사용할
대응 항목도 없습니다.
이 속성은 line-break 속성 [css-text-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-line-break |
|---|---|
| 값: | auto | loose | normal | strict |
이 속성은 text-align-last 속성
[css-text-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-align-last |
|---|---|
| 값: | auto | start | end | left | right | center | justify |
이 속성은 word-break 속성 [css-text-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-word-break |
|---|---|
| 값: | normal | keep-all | break-all |
이 속성은 text-transform 속성
[css-text-3]에 대한 접두사가 붙은 값입니다.
| 이름: | text-transform |
|---|---|
| 값: | -epub-fullwidth |
기존 콘텐츠와의 호환성을 위해, text-transform 속성은 사용 중단된
-epub-fullwidth 키워드도 지원합니다. 지정된 경우 이는
text-transform: full-width와 같은 효과를 가집니다.
이 섹션은 [css-text-decor-3]에 대한
-epub- 접두사 속성을 설명합니다.
이 속성은 text-emphasis-color
속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-emphasis-color |
|---|---|
| 값: | <color> |
이 속성은 text-emphasis-position
속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-emphasis-position |
|---|---|
| 값: | [ over | under ] && [ right | left ] |
이 속성은 text-emphasis-style
속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-emphasis-style |
|---|---|
| 값: | none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string> |
이 속성은 text-underline-position
속성 [css-text-decor-3]의 접두사가 붙은 버전입니다.
| 이름: | -epub-text-underline-position |
|---|---|
| 값: | auto | [ under || [ left | right ] ] | alphabetic |
기존 콘텐츠와의 호환성을 위해, -epub-text-underline-position
속성 값은 사용 중단된 alphabetic 키워드도 지원합니다. 지정된 경우 이는
text-underline-position: auto와 같은 효과를 가집니다.
이 섹션은 비규범적입니다.
EPUB 3의 이전 버전에서 사용되었던 viewport meta 태그의 Safari
HTML 정의는 공식적으로 인정된 표준이 아니므로, 이 명세는 EPUB 제작자가
너비와
높이 치수를 표현하여 고정 레이아웃 문서 렌더링에 사용할 수 있도록 기본 구문을
정의합니다.
이 문법의 구문은 [css-viewport-1]에 정의된 viewport
meta 태그의 파싱 알고리즘의 영향도 받았습니다.
가능한 모든 속성과 값을 정의하는 것은 이 명세의 범위가 아니므로, 이 구문은 의도적으로 가능한 한 일반적으로 남겨져 있습니다. 이는 속성과 값 쌍을 정의하기 위한 기본 요구사항과 표현식 사이의 가능한 구분자만 정의합니다.
고정 레이아웃 문서의 경우, viewport
meta 태그 [html]는 다음 정의를
준수하는 name
및 content 속성을 가져야 MUST 합니다.
name
속성 [html] 값은 viewport이어야
MUST 합니다.
공백
정규화 [xml] 이후의
content
속성 [html] 값은 다음 형식이어야
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 ; |
속성 이름과 값에 대한 유일한 제한은, 이들이 구분 문자나 할당 문자를 포함해서는 MUST NOT 안 된다는 것입니다.
이 섹션의 저작 요구사항은 공백 정규화 [xml] 이후에 적용됩니다(즉, 읽기 시스템이 앞뒤 공백을 제거하고 속성 내부의 여러 공백 인스턴스를 단일 공백으로 압축한 이후). EPUB 제작자는 결과가 이 정의에 유효한 한, 저작된 태그 안에 임의의 공백 문자 [xml]를 포함할 수 MAY 있습니다.
[html]
문법이
meta 요소에 허용하는 다른 속성에는 제한이 없습니다.
필수 height 및 width
속성과 그 필수 값을 지정하는 방법에 대한 자세한 내용은 8.2.2.6 콘텐츠 문서 치수를 참조하십시오.
viewport meta 태그는 EPUB 제작자가
height 및 width 이외의 속성을 사용하고, 이러한 속성에 값을
포함하지 않는 것을 허용하지만, 이러한 사용은 강하게 권장되지 않습니다. 다른 속성을 설정하면
고정 레이아웃 문서의 렌더링에 의도하지 않은 결과가 발생할 수 있습니다.
이 섹션은 비규범적입니다.
패키지 문서용 스키마는 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/package-30.nvdl에서 사용할 수 있습니다.
이 스키마를 사용한 검증에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 지원하는 처리기가 필요합니다.
NVDL 스키마 계층은 내장된 RELAX NG와 ISO Schematron 스키마만 사용하는 다중 패스 검증으로 대체할 수 있습니다.
이러한 스키마는 이 명세의 공식 개정과 별도로 업데이트되고 수정될 수 있습니다. 그 결과, 언제든지 변경될 수 있습니다.
container.xml 파일용 스키마는
https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/ocf-container-30.nvdl에서
사용할 수 있습니다.
이 스키마를 사용한 검증에는 [relaxng-schema]와 [xmlschema-2]를 지원하는 처리기가 필요합니다.
encryption.xml
파일용 스키마는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.
signatures.xml
파일용 스키마는 [xmlsec-rngschema-20130411]에 포함되어 있습니다.
미디어 오버레이 문서용 스키마는 https://github.com/w3c/epubcheck/tree/main/src/master/resources/com/adobe/epubcheck/schema/30/media-overlay-30.nvdl에서 사용할 수 있습니다.
이 스키마를 사용한 검증에는 [nvdl], [relaxng-schema], [isoschematron] 및 [xmlschema-2]를 지원하는 처리기가 필요합니다.
NVDL 스키마 계층은 내장된 RELAX NG와 ISO Schematron 스키마만 사용하는 다중 패스 검증으로 대체할 수 있습니다.
이 섹션은 비규범적입니다.
다음 패키지 문서와 XHTML 콘텐츠 문서의 발췌를 살펴보십시오.
<package …>
<metadata …>
…
<link rel="record"
href="meta/data.xml"
media-type="application/marc"/>
<link rel="record"
href="https://www.example.org/meta/data2.xml"
media-type="application/marc"/>
…
</metadata>
<manifest>
…
<item id="page"
href="page.xhtml"
media-type="application/xhtml+xml"/>
<item id="nav"
href="nav.xhtml"
media-type="application/xhtml+xml"
properties="nav"/>
<item id="style"
href="style.css"
media-type="text/css"/>
<item id="font_otf"
href="fonts/font-file.otf"
media-type="font/otf"/>
<item id="font_otf_remote"
href="https://www.example.org/fonts/font-file2.otf"
media-type="font/otf"/>
<item id="font_cff"
href="fonts/font-file.cff"
media-type="font/sfnt"/>
<item id="pls"
href="speech/cmn.pls"
media-type="application/pls+xml"/>
<item id="image_1"
href="media/image_1.png"
media-type="image/png"/>
<item id="image_2"
href="media/image_2.png"
media-type="image/png"
fallback="image_desc"/>
<item id="image_desc"
href="image_desc.xhtml"
media-type="application/xhtml+xml"/>
<item id="image_3_heic"
href="media/image_3.heic"
media-type="image/heic"/>
<item id="image_3_png"
href="media/image_3.png"
media-type="image/png"/>
<item id="widget"
href="widget.xhtml"
media-type="application/xhtml+xml"/>
…
</manifest>
<spine>
…
<itemref idref="page_001"/>
<itemref idref="image_2"/>
…
</spine>
</package>
<html …>
<head …>
…
<link rel="stylesheet" type="text/css" href="style.css"/>
<link rel="pronunciation" type="application/pls+xml" href="speech/cmn.pls"/>
…
</head>
<body>
<img src="media/image1_png"/>
…
<a href="media/image_2.png">…</a>
…
<picture>
<source srcset="media/image_3.heic" type="image/heic"/>
<img src="media/image_3.png"/>
</picture>
…
<iframe src="widget.xhtml"></iframe>
…
<a href="https://www.example.org/some_content">…</a>
</body>
</html>
EPUB 출판물의 다양한 리소스는 다음과 같이 분류할 수 있습니다. (이러한 범주에 대한 자세한 내용은 3. 출판물 리소스를 참조하십시오.)
meta/data.xml이 리소스는 EPUB
컨테이너에 저장된 메타데이터 레코드입니다. 이는 패키지 문서 메타데이터의
요소를 통해 링크됩니다. 따라서 이는 매니페스트 평면의 링크된
리소스입니다(즉, 매니페스트에
나열되지 않음).
이는 다른 어떤 평면에도 속하지 않습니다.
link
https://www.example.org/meta/data2.xml이 리소스는 원격에 저장된 메타데이터 레코드입니다. 이는 패키지 문서 메타데이터의
요소를 통해 링크됩니다. 따라서 이는 매니페스트 평면의 링크된 리소스입니다
(즉, 매니페스트에 나열되지 않음). 이는 다른 어떤 평면에도 속하지 않습니다.
link
page.xhtml이 리소스는 XHTML 문서입니다. 이는 [[EPUB spine | spine=]에 나열되어 있습니다. 이는 매니페스트 평면의 출판물 리소스, 컨테이너 리소스, 스파인 평면의 EPUB 콘텐츠 문서이며, 콘텐츠 평면에는 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.
nav.xhtml이 리소스는 EPUB 내비게이션 문서입니다. 이는 스파인에 나열되지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면이나 콘텐츠 평면 어느 쪽에도 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.
style.css이 리소스는 CSS 파일입니다. 이는 스파인에 나열되지 않지만 [html]
link 요소에서 참조됩니다. 이는
매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고,
콘텐츠 평면의 핵심 미디어 유형
리소스입니다. 대체 리소스는 필요하지 않습니다.
font/font-file.otf이 리소스는 TrueType 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.
https://www.example.org/fonts/font-file2.otf이 리소스는 TrueType 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 원격 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.
font/font-file.cff이 리소스는 Compact Font Format의 글꼴 파일입니다. 이는 스파인에 나열되지 않지만 CSS 파일에서 참조됩니다. 그 미디어 유형은 핵심 미디어 유형으로 나열되어 있지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 면제 리소스입니다. 대체 리소스는 필요하지 않습니다.
speech/cmn.pls이 리소스는 Pronunciation Lexicon 파일입니다. 이는 스파인에 나열되지 않지만
[html] link 요소에서 참조됩니다. 이는
매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며, 스파인 평면에는 존재하지 않고,
콘텐츠 평면의 면제 리소스입니다. 대체 리소스는 필요하지 않습니다.
image/image_1.png이 리소스는 PNG 이미지 파일입니다. 이는 스파인에 나열되지 않지만
[html]
img
요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너
리소스이며, 스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다.
대체 리소스는 필요하지 않습니다.
image/image_2.png이 리소스는 PNG 이미지 파일입니다. 이는 [html]
a
요소를 통해 참조됩니다. 하이퍼링크에서 참조되므로, 스파인에 나열되어야 must
합니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스, 스파인 평면의
외부 콘텐츠 문서이며,
콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 외부 콘텐츠 문서이므로 대체 리소스가
필요하며, 이는 매니페스트 대체를 통해 제공됩니다.
image_desc.xhtml이 리소스는 XHTML 문서입니다. 이는 매니페스트 대체의 "대상"이므로 스파인에 명시적으로 나열되지 않습니다(하지만 필요할 때 기존 스파인 항목을 "대체"함). 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스, 스파인 평면의 EPUB 콘텐츠 문서이며, 다른 EPUB 콘텐츠 문서를 렌더링할 때 "사용"되지 않으므로 콘텐츠 평면에는 존재하지 않습니다. 대체 리소스는 필요하지 않습니다.
image/image_3.heic이 리소스는 High Efficiency(HEIC) 이미지 파일입니다. 이는 스파인에 나열되지 않지만
[html]
source
요소에서 참조됩니다. 그 미디어 유형은 핵심 미디어 유형으로
나열되어 있지 않습니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며,
스파인 평면에는 존재하지 않고, 콘텐츠 평면의 외부 리소스입니다. 외부 리소스이므로
대체 리소스가 필요하며, 이는 [html]
picture
요소 안의 형제 [html]
img
요소를 통해 제공됩니다.
image/image_3.png이 리소스는 PNG 이미지 파일입니다. 이는 스파인에 나열되지 않지만
[html]
picture
요소의 내재적 대체로 사용되는 [html]
img
요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너 리소스이며,
스파인 평면에는 존재하지 않고, 콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는
필요하지 않습니다.
widget.xhtml이 리소스는 XHTML 문서입니다. 이는 스파인에 나열되지 않지만
[html]
iframe
요소에서 참조됩니다. 이는 매니페스트 평면의 출판물 리소스이자 컨테이너
리소스이며, 스파인 평면에는 존재하지 않고, 다른 EPUB 콘텐츠 문서를 렌더링할 때 "사용"되므로
콘텐츠 평면의 핵심 미디어 유형 리소스입니다. 대체 리소스는 필요하지 않습니다.
https://www.example.org/some_content이 리소스는 [html]
a
요소를 통해 참조되며 EPUB 컨테이너에 저장되지 않습니다. 읽기 시스템은 일반적으로 이 링크를
별도의 브라우저 인스턴스를 통해 엽니다. 이는 이 명세가 정의한 어떤 평면에도 없습니다.
다양한 유형의 리소스 사용에 관한 추가 예제는 5.6.2.2 예제에서 찾을 수 있습니다.
다음 예제 패키지 문서를 살펴보십시오.
<package …>
…
<manifest>
…
<item id="chap01"
href="scripted01.xhtml"
media-type="application/xhtml+xml"
properties="scripted"/>
<item id="inset01"
href="scripted02.xhtml"
media-type="application/xhtml+xml"
properties="scripted"/>
<item id="slideshowjs"
href="slideshow.js"
media-type="text/javascript"/>
</manifest>
<spine …>
<itemref idref="chap01"/>
…
</spine>
…
</package>
그리고 다음 scripted01.xhtml 파일을 살펴보십시오.
<html …>
<head>
…
<script type="text/javascript">
const te = navigator.epubReadingSystem.hasFeature("touch-events");
const te_message = te ? "passes" : "does not pass";
alert(`The reading system ${te_message} touch events to the content.`);
</script>
</head>
<body>
…
<iframe src="scripted02.xhtml" … />
…
</body>
</html>
그리고 다음 scripted02.xhtml 파일을 살펴보십시오.
<html …>
<head>
…
<script type="text/javascript" href="slideshow.js"></script>
</head>
<body>
…
</body>
</html>
이 예제들로부터 다음이 참입니다.
scripted01.xhtml의 head 안 script 요소에 있는
코드는 문서가 스파인에서 참조되므로 스파인 수준 스크립트입니다.
그리고
scripted02.xhtml의 script 요소에 있는 코드는, 그 코드가 나타나는
XHTML 문서가 iframe 요소를 통해 scripted01.xhtml에 포함되어 있으므로
컨테이너 제한 스크립트입니다.
이 예제는 서명되고 암호화된 EPUB 출판물을 OCF ZIP 컨테이너 안에 포함하기 위해 OCF 형식을 사용하는 방법을 보여 줍니다.
OCF ZIP 컨테이너 안의 파일 순서 목록:
mimetype
META-INF/container.xml
META-INF/signatures.xml
META-INF/encryption.xml
EPUB/As_You_Like_It.opf
EPUB/book.html
EPUB/nav.html
EPUB/images/cover.png
mimetype 파일의 내용
application/epub+zip
META-INF/container.xml 파일의 내용
<?xml version="1.0"?>
<container
version="1.0"
xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile
full-path="EPUB/As_You_Like_It.opf"
media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
META-INF/signatures.xml 파일의 내용
<signatures
xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<Signature
Id="AsYouLikeItSignature"
xmlns="http://www.w3.org/2000/09/xmldsig#">
<!--
SignedInfo is the information that is actually signed.
In this case, the SHA-1 algorithm is used to sign the
canonical form of the XML documents enumerated in the
Object element below.
-->
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
<Reference
URI="#AsYouLikeIt">
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>
…
</DigestValue>
</Reference>
</SignedInfo>
<!--
The signed value of the digest above, using the DSA
algorithm
-->
<SignatureValue>
…
</SignatureValue>
<!--
The key used to validate the signature
-->
<KeyInfo>
<KeyValue>
<DSAKeyValue>
<P>…</P>
<Q>…</Q>
<G>…</G>
<Y>…</Y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
<!--
The list of resources to sign (note that the canonical
form of XML documents is signed, while the binary form
of all other resources is used)
-->
<Object>
<Manifest
Id="AsYouLikeIt">
<Reference
URI="EPUB/As_You_Like_It.opf">
<Transforms>
<Transform
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>
</DigestValue>
</Reference>
<Reference URI="EPUB/book.html">
<Transforms>
<Transform
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>
</DigestValue>
</Reference>
<Reference
URI="EPUB/images/cover.png">
<DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>
</DigestValue>
</Reference>
</Manifest>
</Object>
</Signature>
</signatures>
META-INF/encryption.xml 파일의 내용
<?xml version="1.0"?>
<encryption
xmlns="urn:oasis:names:tc:opendocument:xmlns:container"
xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!--
The RSA-encrypted AES-128 symmetric key used to encrypt
data enumerated in EncryptedData blocks below
-->
<enc:EncryptedKey
Id="EK">
<enc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<ds:KeyInfo>
<ds:KeyName>
John Smith
</ds:KeyName>
</ds:KeyInfo>
<enc:CipherData>
<enc:CipherValue>
xyzabc…
</enc:CipherValue>
</enc:CipherData>
</enc:EncryptedKey>
<!--
Each EncryptedData block identifies a single resource
that has been encrypted using the AES-128 algorithm.
The data remains stored, in its encrypted form, in the
original file within the container.
-->
<enc:EncryptedData Id="ED1">
<enc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
<ds:KeyInfo>
<ds:RetrievalMethod
URI="#EK"
Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
</ds:KeyInfo>
<enc:CipherData>
<enc:CipherReference
URI="EPUB/book.html"/>
</enc:CipherData>
</enc:EncryptedData>
<enc:EncryptedData Id="ED2">
<enc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
<ds:KeyInfo>
<ds:RetrievalMethod
URI="#EK" Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
</ds:KeyInfo>
<enc:CipherData>
<enc:CipherReference
URI="EPUB/images/cover.png"/>
</enc:CipherData>
</enc:EncryptedData>
</encryption>
EPUB/As_You_Like_It.opf 파일의 내용
<?xml version="1.0"?>
<package
version="3.0"
xml:lang="en"
xmlns="http://www.idpf.org/2007/opf"
unique-identifier="pub-id">
<metadata
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:identifier
id="pub-id">
urn:uuid:B9B412F2-CAAD-4A44-B91F-A375068478A0
</dc:identifier>
<dc:language>
en
</dc:language>
<dc:title>
As You Like It
</dc:title>
<dc:creator
id="creator">
William Shakespeare
</dc:creator>
<meta
property="dcterms:modified">
2000-03-24T00:00:00Z
</meta>
<dc:publisher>
Project Gutenberg
</dc:publisher>
<dc:date>
2000-03-24
</dc:date>
<meta
property="dcterms:dateCopyrighted">
9999-01-01
</meta>
<dc:identifier
id="isbn13">
urn:isbn:9780741014559
</dc:identifier>
<dc:identifier
id="isbn10">
0-7410-1455-6
</dc:identifier>
<link
rel="xml-signature"
href="../META-INF/signatures.xml#AsYouLikeItSignature"/>
</metadata>
<manifest>
<item id="r4915"
href="book.html"
media-type="application/xhtml+xml"/>
<item id="r7184"
href="images/cover.png"
media-type="image/png"/>
<item id="nav"
href="nav.html"
media-type="application/xhtml+xml"
properties="nav"/>
</manifest>
<spine>
<itemref
idref="r4915"/>
</spine>
</package>
다음은 허용되는 시계 값의 예입니다.
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밀리초
이 부록은 EPUB 패키지 문서를 위한 미디어 유형
application/oebps-package+xml을 등록합니다. 이 등록은 RFC4839를 대체합니다(https://www.rfc-editor.org/rfc/rfc4839 참조).
패키지 문서는 EPUB 출판물을 설명하는 XML 파일입니다. 이는 EPUB 출판물 안의 리소스를 식별하고 메타데이터 정보를 제공합니다. 패키지 문서와 관련 명세는 World Wide Web Consortium (W3C)이 유지관리하고 정의합니다.
application
oebps-package+xml
없음.
없음.
UTF-8이면 8bit, UTF-16이면 binary.
패키지 문서는 XML이며 UTF-8 또는 UTF-16으로 표현됩니다. 패키지 문서가 UTF-8로 작성된 경우 파일은 8bit 호환입니다. UTF-16으로 작성된 경우에는 binary content-transfer-encoding을 사용해야 합니다. 자세한 내용은 [rfc7303]을 참조하십시오.
패키지 문서는 XML 1.0 명세를 따르는 올바른 형식의 XML을 포함합니다.
예를 들어 잘못된 형식의 데이터를 포함하는 악의적인 파일을 작성할 수 있음은 분명합니다. 대부분의 XML 파서는 적합성을 엄격하게 강제하여 이러한 공격으로부터 자신을 보호합니다.
패키지 문서를 읽는 모든 처리기는 가져온 데이터의 크기와 유효성을 엄격하게 검사해야 합니다.
현재 EPUB 3 명세에는 패키지 문서 형식 안에서 암호화, 서명 또는 인증을 위한 조항이 없습니다.
없음.
이 미디어 유형 등록은 https://www.w3.org/TR/epub-33/에 위치한 EPUB 3 명세가 설명하는 EPUB 패키지 문서를 위한 것입니다.
EPUB 3 명세는 https://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm에
위치하며 application/oepbs-package+xml 미디어
유형도 사용하는 Open Packaging Format 2.0.1 명세를 대체합니다.
이 미디어 유형은 EPUB 형식의 전자책 배포에 널리 사용됩니다.
없음
.opf
TEXT
EPUB Canonical Fragment Identifiers는 EPUB 출판물을 위해 정의된 사용자 정의 조각 식별자입니다. 이는 출판물에 대해 정의된 출판물 리소스 안의 임의 콘텐츠를 참조하는 데 사용할 수 있습니다. 이러한 식별자는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.
EPUB 3 Working Group (public-epub-wg@w3.org)
COMMON
World Wide Web Consortium (W3C)
이 부록은 EPUB Open Container
Format (OCF)을 위한 미디어 유형 application/epub+zip을 등록합니다.
OCF ZIP 컨테이너 또는 EPUB 컨테이너 파일은 zip 아카이브 형식을 기반으로 하는 컨테이너 기술입니다(https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT 참조). 이는 EPUB 출판물을 캡슐화하는 데 사용됩니다. OCF와 관련 표준은 World Wide Web Consortium (W3C)이 유지관리하고 정의합니다.
application
epub+zip
없음.
없음.
OCF ZIP 컨테이너 파일은
application/zip 미디어 유형으로 인코딩된 바이너리 파일입니다.
OCF ZIP 컨테이너 파일을 읽는 모든 처리기는 가져온 데이터의 크기와 유효성을 엄격하게 검사해야 합니다.
또한 OCF ZIP 컨테이너 파일 안에 삽입될 수 있는 다양한 콘텐츠 유형 때문에,
application/epub+zip은 여기에 언급된 것 이상의 보안상 영향을 주는 콘텐츠를
설명할 수 있습니다. 그러나 처리기가 추가 콘텐츠를 인식하고 처리하거나, 그 콘텐츠의 추가
처리가 다른 처리기로 디스패치되는 경우에만 보안 문제가 잠재적으로 발생합니다. 이러한 경우
보안 문제는 이 등록 문서의 영역 밖에 속합니다.
application/zip에 적용되는 보안 고려사항은 OCF ZIP
컨테이너 파일에도 적용됩니다.
없음.
이 미디어 유형 등록은 https://www.w3.org/TR/epub-33/에
위치한 EPUB 3 명세가 설명하는 EPUB Open Container Format (OCF)을 위한 것입니다.
EPUB 3 명세는 RFC 4839와
https://idpf.org/epub/20/spec/OCF_2.0.1_draft.doc에
위치하며 application/epub+zip 미디어 유형도 사용하는 Open Container
Format 2.0.1 명세를 모두 대체합니다.
이 미디어 유형은 EPUB 형식의 전자책 배포에 널리 사용됩니다.
0: PK 0x03 0x04, 30: mimetype, 38:
application/epub+zip
OCF ZIP 컨테이너 파일은 가장 자주
.epub 확장자로 식별됩니다.
ZIP
EPUB Canonical Fragment Identifiers는 EPUB 출판물을 위해 정의된 사용자 정의 조각 식별자입니다. 이는 출판물에 대해 정의된 출판물 리소스 안의 임의 콘텐츠를 참조하는 데 사용할 수 있습니다. 이러한 식별자는 https://idpf.org/epub/linking/cfi/에 정의되어 있습니다.
EPUB 3 Working Group (public-epub-wg@w3.org)
COMMON
World Wide Web Consortium (W3C)
audio
§9.2.2.8
body
§9.2.2.4
collection
§5.8.1
Compression
§4.2.6.3.2.2
container
§4.2.6.3.1.1
dc:contributor
§5.5.3.2.2
dc:creator
§5.5.3.2.3
dc:date
§5.5.3.2.4
dc:identifier
§5.5.3.1.1
dc:language
§5.5.3.1.3
dc:subject
§5.5.3.2.5
dc:title
§5.5.3.1.2
dc:type
§5.5.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
§C.2
head
§9.2.2.2
item
§5.6.2
itemref
§5.7.2
link
§5.5.6
links
§4.2.6.3.1.4
manifest
§5.6.1
meta
§5.5.4
metadata
§5.5.1
package
§5.4
par
§9.2.2.6
rootfile
§4.2.6.3.1.3
rootfiles
§4.2.6.3.1.2
seq
§9.2.2.5
signatures
§4.2.6.3.6.1
smil
§9.2.2.1
spine
§5.7.1
text
§9.2.2.7
a
요소
area
요소
base
요소
bdo
요소
canvas
요소
content 속성(meta
요소용)
dir 속성(html-global
요소용)
div
요소
embed
요소
form
요소
href 속성(a 요소용)
html
요소
iframe
요소
img
요소
li
요소
name 속성(meta
요소용)
object
유형
ol
요소
picture
요소
role
속성
rp
요소
script
요소
source
요소
span
요소
src 속성(source
요소용)
src 속성(img 요소용)
srcset 속성(source
요소용)
srcset 속성(img
요소용)
track
요소
type 속성(source
요소용)
video
요소
list용)
svg
요소
title
요소
이 섹션은 비규범적입니다.
이 변경 로그는 EPUB 3.2 이후의 실질적인 변경 사항, 즉 EPUB 출판물의 적합성에 영향을 줄 수 있는 변경 사항만 식별합니다.
해결된 모든 이슈 목록은 워킹 그룹의 이슈 트래커를 참조하십시오.
name을
hasFeature로 교체했습니다. 이슈
2543을 참조하십시오.
dir 속성을 구현 부족으로
표시했습니다. 풀 리퀘스트
2515를 참조하십시오.viewport meta 태그 안에 있어야 함을 명확히 했습니다. 풀
리퀘스트 2503을 참조하십시오.
acquire 및 xmp 속성을 제거했습니다. 이슈 2489를 참조하십시오.
epub:type 속성이 XHTML 콘텐츠 문서의
head 요소와 메타데이터 콘텐츠에 허용되지 않음을 명확히 했습니다. 이슈 2486을 참조하십시오.
viewport meta 태그 정의에서 값이 없는 속성을 허용했습니다. 풀 리퀘스트 2457를 참조하십시오.
viewport meta의 height와 width를 여러 번 선언해서는
안 된다는 추가 요구사항을 추가했습니다. 이슈
2442를 참조하십시오.epub:type 속성 사용 정의의 사소한 모순을 제거했습니다. 이슈 2434를 참조하십시오.href 속성을 다른 패키지 문서 요소를
참조하는 데 사용해서는 안 됨을 명확히 했습니다(즉, 매니페스트 또는 스파인 항목을 통해 리소스를
간접적으로 참조하는 것). 이슈
2420을 참조하십시오.text 요소 정의에 참고를 추가했습니다. 이슈
2397을 참조하십시오.
epub:type을 사용할 수 있는 요소에 대한 제한을
명시적으로 만들었습니다. 이슈 2377을 참조하십시오.meta 요소가 이제 공식적으로 정의되었습니다. 이슈
2292를 참조하십시오.
title 요소 안의 마크업은 HTML 요소로 제한됨을
명확히 했습니다. 이슈 2355를 참조하십시오.authority 속성 값에 대한 제한을 제거하고 이전 IDPF
레지스트리를 참조하는 참고를 추가했습니다. 이슈 2200을 참조하십시오.
collection-type 값을 인식하라는 권고를 제거하고 관련
콘텐츠의 개선된 처리를 가능하게 하는 참고로 대체했습니다. 이슈
2071을 참조하십시오.
epub:type 사용에 관한
오래된 요구사항을 제거했습니다. 이슈
2070을 참조하십시오.refines 속성은 전역 고정 레이아웃 속성 선언과 함께
사용해서는 안 됨을 명확히 했습니다. 이슈
2036을 참조하십시오.audio
요소를 선택 사항으로 만들어 정의를 명확히 하고, 해당 요소가 실제로 존재하지 않는 경우를 다루도록
명세의 다른 텍스트를 조정했습니다. 이슈 1986을 참조하십시오.
page-spread-center 속성이 이제
spread-none의 별칭입니다. 이슈
1929를 참조하십시오.
page-spread-center 사용이 중단되었습니다. 이제
spread-none의 별칭입니다. 이슈
1929를 참조하십시오.
base 요소를 추가했습니다.
이슈 1699를 참조하십시오.
file 스킴을 가진 절대 URL을
사용해서는 안 됩니다. 이슈 1688을 참조하십시오.link 요소를 사용하여 개별 메타데이터 속성을 대체 형식으로
링크할 수 있다는 명확한 텍스트를 추가했습니다. 이슈 1666을
참조하십시오.application/ecmascript를
추가했습니다. 이슈 1353을 참조하십시오.link 요소에서 참조되는 리소스가 핵심 미디어 유형
대체를 가져야 한다는 요구사항을 삭제했습니다. 이슈
1312를 참조하십시오.direction 속성에 대한 참조를 추가했습니다. 이슈
1614를 참조하십시오.
requiredExtensions 속성 관련 요구사항을 제거했습니다. 이슈 1087을 참조하십시오.dc:creator 및 dc:contributor 요소가
여러 역할을 가질 수 있도록 허용하고, publisher에 역할을 허용했습니다. 이슈 1129 및 이슈 1583을 참조하십시오.container.xml,
encryption.xml 및 signatures.xml 파일에 대한 요소 및 속성 정의를
추가했습니다. 모든 스키마는 비규범적인 것으로 간주됩니다. 이슈
1566을 참조하십시오.
META-INF 디렉터리에 위치해서는 안 된다고 요구했습니다. 이슈
1205를 참조하십시오.
refines 속성이 출판물 리소스를 참조할 때 조각 식별자를
사용하도록 권장했습니다. 이슈 1361을 참조하십시오.par 및
seq 순서가 기본 읽기 순서와 일치해야 한다는 요구사항을 지침으로 변경했습니다. 이슈 1458을 참조하십시오.
epub:type
속성이 없는 nav 요소는 EPUB 내비게이션 문서의 콘텐츠 모델 제한을 받지 않음을
명확히 했습니다. 이슈 976을 참조하십시오.dc:language 요소의 값은 올바른 형식의 언어 태그여야
함을 명확히 했습니다. 이슈 1325를 참조하십시오.dir 속성에 auto 값을 추가하고 속성의
우선순위를 명확히 했습니다. 이슈
1491 및 이슈 1494를 참조하십시오.link 요소에
hreflang 속성을 추가했습니다. 이슈
1488을 참조하십시오.
epub:type 속성이 출판물의 접근성을 향상시키지 않음을
명확히 했습니다. 접근성을 위해 role 속성과 DPUB-ARIA 어휘에 대한 포인터를
추가했습니다.toc nav의 순서가 스파인의 EPUB 콘텐츠 문서 순서와
각 파일 내 요소 순서와 일치해야 한다는 요구사항이 권고로 완화되었습니다. 이슈
1283을 참조하십시오.script 요소는 스크립팅 인스턴스가
아님을
명확히 했습니다. 이슈 1352를 참조하십시오.이 섹션은 비규범적입니다.
예술처럼 명세도 인간의 창작물입니다. Garth Conboy보다 EPUB를 위해 더 많은 일을 한 사람은 없습니다. 그는 1999년의 최초 OEB 1.0부터 오늘날의 EPUB 3.3까지, 모든 단계에 함께 있었습니다. 이 모든 일은 Garth의 비전, 지식, 그리고 초자연적일 만큼 훌륭한 성품이 없었다면 일어나지 않았을 것입니다. 우리는 EPUB 3.3을 그의 기억에 바칩니다. Garth, 우리는 영원히 당신에게 빚을 지고 있습니다.
다음 EPUB 3 Working Group 구성원들이 이 명세의 개발에 기여했습니다.
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: