|
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