|
99 | 99 | </rule>
|
100 | 100 | </pattern>
|
101 | 101 |
|
102 |
| - <pattern id="opf.media.overlay"> |
103 |
| - <rule context="opf:item[@media-overlay]"> |
104 |
| - <let name="ref" value="./normalize-space(@media-overlay)"/> |
105 |
| - <let name="item" value="//opf:manifest/opf:item[normalize-space(@id) = $ref]"/> |
106 |
| - <let name="item-media-type" value="normalize-space($item/@media-type)"/> |
107 |
| - <assert test="$item-media-type = 'application/smil+xml'">media overlay items must be of |
108 |
| - the "application/smil+xml" type (given type was "<value-of select="$item-media-type" |
109 |
| - />")</assert> |
110 |
| - </rule> |
111 |
| - </pattern> |
112 |
| - |
113 |
| - <pattern id="opf.media.overlay.metadata.global"> |
114 |
| - <rule context="opf:manifest[opf:item[@media-overlay]]"> |
115 |
| - <assert test="//opf:meta[normalize-space(@property)='media:duration' and not (@refines)]">global |
116 |
| - media:duration meta element not set</assert> |
117 |
| - </rule> |
118 |
| - </pattern> |
119 |
| - |
120 |
| - <pattern id="opf.media.overlay.metadata.item"> |
121 |
| - <rule context="opf:manifest/opf:item[@media-overlay]"> |
122 |
| - <let name="mo-idref" value="normalize-space(@media-overlay)"/> |
123 |
| - <let name="mo-item" value="//opf:item[normalize-space(@id) = $mo-idref]"/> |
124 |
| - <let name="mo-item-id" value="$mo-item/normalize-space(@id)"/> |
125 |
| - <let name="mo-item-uri" value="concat('#', $mo-item-id)"/> |
126 |
| - <assert test="//opf:meta[normalize-space(@property)='media:duration' and normalize-space(@refines) = $mo-item-uri ]">item |
127 |
| - media:duration meta element not set (expecting: meta property='media:duration' |
128 |
| - refines='<value-of select="$mo-item-uri"/>')</assert> |
129 |
| - </rule> |
130 |
| - </pattern> |
131 |
| - |
132 | 102 | <pattern id="opf.bindings.handler">
|
133 | 103 | <rule context="opf:bindings/opf:mediaType">
|
134 | 104 | <let name="ref" value="./normalize-space(@handler)"/>
|
|
302 | 272 |
|
303 | 273 | <include href="./mod/id-unique.sch"/>
|
304 | 274 |
|
| 275 | + <!-- Media overlay checks --> |
| 276 | + |
| 277 | + <pattern id="opf.media.overlay"> |
| 278 | + <rule context="opf:item[@media-overlay]"> |
| 279 | + <let name="ref" value="./normalize-space(@media-overlay)"/> |
| 280 | + <let name="item" value="//opf:manifest/opf:item[normalize-space(@id) = $ref]"/> |
| 281 | + <let name="item-media-type" value="normalize-space($item/@media-type)"/> |
| 282 | + <assert test="$item-media-type = 'application/smil+xml'">media overlay items must be of |
| 283 | + the "application/smil+xml" type (given type was "<value-of select="$item-media-type" |
| 284 | + />")</assert> |
| 285 | + </rule> |
| 286 | + </pattern> |
| 287 | + |
| 288 | + <pattern id="opf.media.overlay.metadata.global"> |
| 289 | + <rule context="opf:manifest[opf:item[@media-overlay]]"> |
| 290 | + <assert test="//opf:meta[normalize-space(@property)='media:duration' and not (@refines)]">global |
| 291 | + media:duration meta element not set</assert> |
| 292 | + </rule> |
| 293 | + </pattern> |
| 294 | + |
| 295 | + <pattern id="opf.media.overlay.metadata.item"> |
| 296 | + <rule context="opf:manifest/opf:item[@media-overlay]"> |
| 297 | + <let name="mo-idref" value="normalize-space(@media-overlay)"/> |
| 298 | + <let name="mo-item" value="//opf:item[normalize-space(@id) = $mo-idref]"/> |
| 299 | + <let name="mo-item-id" value="$mo-item/normalize-space(@id)"/> |
| 300 | + <let name="mo-item-uri" value="concat('#', $mo-item-id)"/> |
| 301 | + <assert test="//opf:meta[normalize-space(@property)='media:duration' and normalize-space(@refines) = $mo-item-uri ]">item |
| 302 | + media:duration meta element not set (expecting: meta property='media:duration' |
| 303 | + refines='<value-of select="$mo-item-uri"/>')</assert> |
| 304 | + </rule> |
| 305 | + </pattern> |
| 306 | + |
| 307 | + <pattern id="opf.media.overlay.metadata.active-class"> |
| 308 | + <rule context="opf:meta[normalize-space(@property)='media:active-class']"> |
| 309 | + <report test="@refines"> @refines must not be used with the media:active-class property</report> |
| 310 | + </rule> |
| 311 | + </pattern> |
| 312 | + |
| 313 | + <pattern id="opf.media.overlay.metadata.playback-active-class"> |
| 314 | + <rule context="opf:meta[normalize-space(@property)='media:playback-active-class']"> |
| 315 | + <report test="@refines"> @refines must not be used with the media:playback-active-class property</report> |
| 316 | + </rule> |
| 317 | + </pattern> |
| 318 | + |
| 319 | + |
| 320 | + |
305 | 321 | <!-- EPUB 3.2 New Checks -->
|
306 | 322 |
|
307 | 323 | <pattern id="opf.spine.duplicate.refs">
|
|
0 commit comments