github.com/puellanivis/breton@v0.2.16/lib/net/dash/mpd/DASH-MPD.xsd (about) 1 <?xml version="1.0" encoding="UTF-8"?> 2 <xs:schema targetNamespace="urn:mpeg:dash:schema:mpd:2011" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="urn:mpeg:dash:schema:mpd:2011"> 3 4 <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> 5 6 <xs:annotation> 7 <xs:appinfo>Media Presentation Description</xs:appinfo> 8 <xs:documentation xml:lang="en"> 9 This Schema defines the Media Presentation Description for MPEG-DASH. 10 </xs:documentation> 11 </xs:annotation> 12 13 <!-- MPD: main element --> 14 <xs:element name="MPD" type="MPDtype"/> 15 16 <!-- MPD Type --> 17 <xs:complexType name="MPDtype"> 18 <xs:sequence> 19 <xs:element name="ProgramInformation" type="ProgramInformationType" minOccurs="0" maxOccurs="unbounded"/> 20 <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> 21 <xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> 22 <xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/> 23 <xs:element name="Metrics" type="MetricsType" minOccurs="0" maxOccurs="unbounded"/> 24 <xs:element name="EssentialProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 25 <xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 26 <xs:element name="UTCTiming" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 27 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 28 </xs:sequence> 29 <xs:attribute name="id" type="xs:string"/> 30 <xs:attribute name="profiles" type="xs:string" use="required"/> 31 <xs:attribute name="type" type="PresentationType" default="static"/> 32 <xs:attribute name="availabilityStartTime" type="xs:dateTime"/> 33 <xs:attribute name="availabilityEndTime" type="xs:dateTime"/> 34 <xs:attribute name="publishTime" type="xs:dateTime"/> 35 <xs:attribute name="mediaPresentationDuration" type="xs:duration"/> 36 <xs:attribute name="minimumUpdatePeriod" type="xs:duration"/> 37 <xs:attribute name="minBufferTime" type="xs:duration" use="required"/> 38 <xs:attribute name="timeShiftBufferDepth" type="xs:duration"/> 39 <xs:attribute name="suggestedPresentationDelay" type="xs:duration"/> 40 <xs:attribute name="maxSegmentDuration" type="xs:duration"/> 41 <xs:attribute name="maxSubsegmentDuration" type="xs:duration"/> 42 <xs:anyAttribute namespace="##other" processContents="lax"/> 43 </xs:complexType> 44 45 <!-- Presentation Type enumeration --> 46 <xs:simpleType name="PresentationType"> 47 <xs:restriction base="xs:string"> 48 <xs:enumeration value="static"/> 49 <xs:enumeration value="dynamic"/> 50 </xs:restriction> 51 </xs:simpleType> 52 53 <!-- Period --> 54 <xs:complexType name="PeriodType"> 55 <xs:sequence> 56 <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> 57 <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> 58 <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> 59 <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> 60 <xs:element name="AssetIdentifier" type="DescriptorType" minOccurs="0"/> 61 <xs:element name="EventStream" type="EventStreamType" minOccurs="0" maxOccurs="unbounded"/> 62 <xs:element name="AdaptationSet" type="AdaptationSetType" minOccurs="0" maxOccurs="unbounded"/> 63 <xs:element name="Subset" type="SubsetType" minOccurs="0" maxOccurs="unbounded"/> 64 <xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 65 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 66 </xs:sequence> 67 <xs:attribute ref="xlink:href"/> 68 <xs:attribute ref="xlink:actuate" default="onRequest"/> 69 <xs:attribute name="id" type="xs:string"/> 70 <xs:attribute name="start" type="xs:duration"/> 71 <xs:attribute name="duration" type="xs:duration"/> 72 <xs:attribute name="bitstreamSwitching" type="xs:boolean" default="false"/> 73 <xs:anyAttribute namespace="##other" processContents="lax"/> 74 </xs:complexType> 75 76 <!-- Event Stream --> 77 <xs:complexType name="EventStreamType"> 78 <xs:sequence> 79 <xs:element name="Event" type="EventType" minOccurs="0" maxOccurs="unbounded"/> 80 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 81 </xs:sequence> 82 <xs:attribute ref="xlink:href"/> 83 <xs:attribute ref="xlink:actuate" default="onRequest"/> 84 <xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/> 85 <xs:attribute name="value" type="xs:string"/> 86 <xs:attribute name="timescale" type="xs:unsignedInt"/> 87 </xs:complexType> 88 89 90 <!-- Event --> 91 <xs:complexType name="EventType"> 92 <xs:sequence> 93 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 94 </xs:sequence> 95 <xs:attribute name="presentationTime" type="xs:unsignedLong" default="0"/> 96 <xs:attribute name="duration" type="xs:unsignedLong"/> 97 <xs:attribute name="id" type="xs:unsignedInt"/> 98 <xs:attribute name="messageData" type="xs:string"/> 99 <xs:anyAttribute namespace="##other" processContents="lax"/> 100 </xs:complexType> 101 102 <!-- Adaptation Set --> 103 <xs:complexType name="AdaptationSetType"> 104 <xs:complexContent> 105 <xs:extension base="RepresentationBaseType"> 106 <xs:sequence> 107 <xs:element name="Accessibility" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 108 <xs:element name="Role" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 109 <xs:element name="Rating" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 110 <xs:element name="Viewpoint" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 111 <xs:element name="ContentComponent" type="ContentComponentType" minOccurs="0" maxOccurs="unbounded"/> 112 <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> 113 <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> 114 <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> 115 <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> 116 <xs:element name="Representation" type="RepresentationType" minOccurs="0" maxOccurs="unbounded"/> 117 </xs:sequence> 118 <xs:attribute ref="xlink:href"/> 119 <xs:attribute ref="xlink:actuate" default="onRequest"/> 120 <xs:attribute name="id" type="xs:unsignedInt"/> 121 <xs:attribute name="group" type="xs:unsignedInt"/> 122 <xs:attribute name="lang" type="xs:language"/> 123 <xs:attribute name="contentType" type="xs:string"/> 124 <xs:attribute name="par" type="RatioType"/> 125 <xs:attribute name="minBandwidth" type="xs:unsignedInt"/> 126 <xs:attribute name="maxBandwidth" type="xs:unsignedInt"/> 127 <xs:attribute name="minWidth" type="xs:unsignedInt"/> 128 <xs:attribute name="maxWidth" type="xs:unsignedInt"/> 129 <xs:attribute name="minHeight" type="xs:unsignedInt"/> 130 <xs:attribute name="maxHeight" type="xs:unsignedInt"/> 131 <xs:attribute name="minFrameRate" type="FrameRateType"/> 132 <xs:attribute name="maxFrameRate" type="FrameRateType"/> 133 <xs:attribute name="segmentAlignment" type="ConditionalUintType" default="false"/> 134 <xs:attribute name="subsegmentAlignment" type="ConditionalUintType" default="false"/> 135 <xs:attribute name="subsegmentStartsWithSAP" type="SAPType" default="0"/> 136 <xs:attribute name="bitstreamSwitching" type="xs:boolean"/> 137 </xs:extension> 138 </xs:complexContent> 139 </xs:complexType> 140 141 <!-- Ratio Type for sar and par --> 142 <xs:simpleType name="RatioType"> 143 <xs:restriction base="xs:string"> 144 <xs:pattern value="[0-9]*:[0-9]*"/> 145 </xs:restriction> 146 </xs:simpleType> 147 148 <!-- Type for Frame Rate --> 149 <xs:simpleType name="FrameRateType"> 150 <xs:restriction base="xs:string"> 151 <xs:pattern value="[0-9]*[0-9](/[0-9]*[0-9])?"/> 152 </xs:restriction> 153 </xs:simpleType> 154 155 156 <!-- Conditional Unsigned Integer (unsignedInt or boolean) --> 157 <xs:simpleType name="ConditionalUintType"> 158 <xs:union memberTypes="xs:unsignedInt xs:boolean"/> 159 </xs:simpleType> 160 161 <!-- Content Component --> 162 <xs:complexType name="ContentComponentType"> 163 <xs:sequence> 164 <xs:element name="Accessibility" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 165 <xs:element name="Role" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 166 <xs:element name="Rating" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 167 <xs:element name="Viewpoint" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 168 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 169 </xs:sequence> 170 <xs:attribute name="id" type="xs:unsignedInt"/> 171 <xs:attribute name="lang" type="xs:language"/> 172 <xs:attribute name="contentType" type="xs:string"/> 173 <xs:attribute name="par" type="RatioType"/> 174 <xs:anyAttribute namespace="##other" processContents="lax"/> 175 </xs:complexType> 176 177 <!-- Representation --> 178 <xs:complexType name="RepresentationType"> 179 <xs:complexContent> 180 <xs:extension base="RepresentationBaseType"> 181 <xs:sequence> 182 <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> 183 <xs:element name="SubRepresentation" type="SubRepresentationType" minOccurs="0" maxOccurs="unbounded"/> 184 <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> 185 <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> 186 <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> 187 </xs:sequence> 188 <xs:attribute name="id" type="StringNoWhitespaceType" use="required"/> 189 <xs:attribute name="bandwidth" type="xs:unsignedInt" use="required"/> 190 <xs:attribute name="qualityRanking" type="xs:unsignedInt"/> 191 <xs:attribute name="dependencyId" type="StringVectorType"/> 192 <xs:attribute name="mediaStreamStructureId" type="StringVectorType"/> 193 </xs:extension> 194 </xs:complexContent> 195 </xs:complexType> 196 197 <!-- String without white spaces --> 198 <xs:simpleType name="StringNoWhitespaceType"> 199 <xs:restriction base="xs:string"> 200 <xs:pattern value="[^\r\n\t \p{Z}]*"/> 201 </xs:restriction> 202 </xs:simpleType> 203 204 205 <!-- SubRepresentation --> 206 <xs:complexType name="SubRepresentationType"> 207 <xs:complexContent> 208 <xs:extension base="RepresentationBaseType"> 209 <xs:attribute name="level" type="xs:unsignedInt"/> 210 <xs:attribute name="dependencyLevel" type="UIntVectorType"/> 211 <xs:attribute name="bandwidth" type="xs:unsignedInt"/> 212 <xs:attribute name="contentComponent" type="StringVectorType"/> 213 </xs:extension> 214 </xs:complexContent> 215 </xs:complexType> 216 217 <!-- Representation base (common attributes and elements) --> 218 <xs:complexType name="RepresentationBaseType"> 219 <xs:sequence> 220 <xs:element name="FramePacking" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 221 <xs:element name="AudioChannelConfiguration" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 222 <xs:element name="ContentProtection" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 223 <xs:element name="EssentialProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 224 <xs:element name="SupplementalProperty" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> 225 <xs:element name="InbandEventStream" type="EventStreamType" minOccurs="0" maxOccurs="unbounded"/> 226 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 227 </xs:sequence> 228 <xs:attribute name="profiles" type="xs:string"/> 229 <xs:attribute name="width" type="xs:unsignedInt"/> 230 <xs:attribute name="height" type="xs:unsignedInt"/> 231 <xs:attribute name="sar" type="RatioType"/> 232 <xs:attribute name="frameRate" type="FrameRateType"/> 233 <xs:attribute name="audioSamplingRate" type="xs:string"/> 234 <xs:attribute name="mimeType" type="xs:string"/> 235 <xs:attribute name="segmentProfiles" type="xs:string"/> 236 <xs:attribute name="codecs" type="xs:string"/> 237 <xs:attribute name="maximumSAPPeriod" type="xs:double"/> 238 <xs:attribute name="startWithSAP" type="SAPType"/> 239 <xs:attribute name="maxPlayoutRate" type="xs:double"/> 240 <xs:attribute name="codingDependency" type="xs:boolean"/> 241 <xs:attribute name="scanType" type="VideoScanType"/> 242 <xs:anyAttribute namespace="##other" processContents="lax"/> 243 </xs:complexType> 244 245 <!-- Stream Access Point type enumeration --> 246 <xs:simpleType name="SAPType"> 247 <xs:restriction base="xs:unsignedInt"> 248 <xs:minInclusive value="0"/> 249 <xs:maxInclusive value="6"/> 250 </xs:restriction> 251 </xs:simpleType> 252 253 <!-- Video Scan type enumeration --> 254 <xs:simpleType name="VideoScanType"> 255 <xs:restriction base="xs:string"> 256 <xs:enumeration value="progressive"/> 257 <xs:enumeration value="interlaced"/> 258 <xs:enumeration value="unknown"/> 259 </xs:restriction> 260 </xs:simpleType> 261 262 <!-- Subset --> 263 <xs:complexType name="SubsetType"> 264 <xs:attribute name="contains" type="UIntVectorType" use="required"/> 265 <xs:attribute name="id" type="xs:string"/> 266 <xs:anyAttribute namespace="##other" processContents="lax"/> 267 </xs:complexType> 268 269 <!-- Segment information base --> 270 <xs:complexType name="SegmentBaseType"> 271 <xs:sequence> 272 <xs:element name="Initialization" type="URLType" minOccurs="0"/> 273 <xs:element name="RepresentationIndex" type="URLType" minOccurs="0"/> 274 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 275 </xs:sequence> 276 <xs:attribute name="timescale" type="xs:unsignedInt"/> 277 <xs:attribute name="presentationTimeOffset" type="xs:unsignedLong"/> 278 <xs:attribute name="indexRange" type="xs:string"/> 279 <xs:attribute name="indexRangeExact" type="xs:boolean" default="false"/> 280 <xs:attribute name="availabilityTimeOffset" type="xs:double"/> 281 <xs:attribute name="availabilityTimeComplete" type="xs:boolean"/> 282 <xs:anyAttribute namespace="##other" processContents="lax"/> 283 </xs:complexType> 284 285 <!-- Multiple Segment information base --> 286 <xs:complexType name="MultipleSegmentBaseType"> 287 <xs:complexContent> 288 <xs:extension base="SegmentBaseType"> 289 <xs:sequence> 290 <xs:element name="SegmentTimeline" type="SegmentTimelineType" minOccurs="0"/> 291 <xs:element name="BitstreamSwitching" type="URLType" minOccurs="0"/> 292 </xs:sequence> 293 <xs:attribute name="duration" type="xs:unsignedInt"/> 294 <xs:attribute name="startNumber" type="xs:unsignedInt"/> 295 </xs:extension> 296 </xs:complexContent> 297 </xs:complexType> 298 299 <!-- Segment Info item URL/range --> 300 <xs:complexType name="URLType"> 301 <xs:sequence> 302 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 303 </xs:sequence> 304 <xs:attribute name="sourceURL" type="xs:anyURI"/> 305 <xs:attribute name="range" type="xs:string"/> 306 <xs:anyAttribute namespace="##other" processContents="lax"/> 307 </xs:complexType> 308 309 <!-- Segment List --> 310 <xs:complexType name="SegmentListType"> 311 <xs:complexContent> 312 <xs:extension base="MultipleSegmentBaseType"> 313 <xs:sequence> 314 <xs:element name="SegmentURL" type="SegmentURLType" minOccurs="0" maxOccurs="unbounded"/> 315 </xs:sequence> 316 <xs:attribute ref="xlink:href"/> 317 <xs:attribute ref="xlink:actuate" default="onRequest"/> 318 </xs:extension> 319 </xs:complexContent> 320 </xs:complexType> 321 322 <!-- Segment URL --> 323 <xs:complexType name="SegmentURLType"> 324 <xs:sequence> 325 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 326 </xs:sequence> 327 <xs:attribute name="media" type="xs:anyURI"/> 328 <xs:attribute name="mediaRange" type="xs:string"/> 329 <xs:attribute name="index" type="xs:anyURI"/> 330 <xs:attribute name="indexRange" type="xs:string"/> 331 <xs:anyAttribute namespace="##other" processContents="lax"/> 332 </xs:complexType> 333 334 <!-- Segment Template --> 335 <xs:complexType name="SegmentTemplateType"> 336 <xs:complexContent> 337 <xs:extension base="MultipleSegmentBaseType"> 338 <xs:attribute name="media" type="xs:string"/> 339 <xs:attribute name="index" type="xs:string"/> 340 <xs:attribute name="initialization" type="xs:string"/> 341 <xs:attribute name="bitstreamSwitching" type="xs:string"/> 342 </xs:extension> 343 </xs:complexContent> 344 </xs:complexType> 345 346 <!-- Segment Timeline --> 347 <xs:complexType name="SegmentTimelineType"> 348 <xs:sequence> 349 <xs:element name="S" minOccurs="1" maxOccurs="unbounded"> 350 <xs:complexType> 351 <xs:attribute name="t" type="xs:unsignedLong"/> 352 <xs:attribute name="n" type="xs:unsignedLong" use="optional"/> 353 <xs:attribute name="d" type="xs:unsignedLong" use="required"/> 354 <xs:attribute name="r" type="xs:integer" use="optional" default="0"/> 355 <xs:anyAttribute namespace="##other" processContents="lax"/> 356 </xs:complexType> 357 </xs:element> 358 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 359 </xs:sequence> 360 <xs:anyAttribute namespace="##other" processContents="lax"/> 361 </xs:complexType> 362 363 <!-- Whitespace-separated list of strings --> 364 <xs:simpleType name="StringVectorType"> 365 <xs:list itemType="xs:string"/> 366 </xs:simpleType> 367 368 <!-- Whitespace-separated list of unsigned integers --> 369 <xs:simpleType name="UIntVectorType"> 370 <xs:list itemType="xs:unsignedInt"/> 371 </xs:simpleType> 372 373 <!-- Base URL --> 374 <xs:complexType name="BaseURLType"> 375 <xs:simpleContent> 376 <xs:extension base="xs:anyURI"> 377 <xs:attribute name="serviceLocation" type="xs:string"/> 378 <xs:attribute name="byteRange" type="xs:string"/> 379 <xs:attribute name="availabilityTimeOffset" type="xs:double"/> 380 <xs:attribute name="availabilityTimeComplete" type="xs:boolean"/> 381 <xs:anyAttribute namespace="##other" processContents="lax"/> 382 </xs:extension> 383 </xs:simpleContent> 384 </xs:complexType> 385 386 <!-- Program Information --> 387 <xs:complexType name="ProgramInformationType"> 388 <xs:sequence> 389 <xs:element name="Title" type="xs:string" minOccurs="0"/> 390 <xs:element name="Source" type="xs:string" minOccurs="0"/> 391 <xs:element name="Copyright" type="xs:string" minOccurs="0"/> 392 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 393 </xs:sequence> 394 <xs:attribute name="lang" type="xs:language"/> 395 <xs:attribute name="moreInformationURL" type="xs:anyURI"/> 396 <xs:anyAttribute namespace="##other" processContents="lax"/> 397 </xs:complexType> 398 399 <!-- Descriptor --> 400 <xs:complexType name="DescriptorType"> 401 <xs:sequence> 402 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 403 </xs:sequence> 404 <xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/> 405 <xs:attribute name="value" type="xs:string"/> 406 <xs:attribute name="id" type="xs:string"/> 407 <xs:anyAttribute namespace="##other" processContents="lax"/> 408 </xs:complexType> 409 410 <!-- Metrics --> 411 <xs:complexType name="MetricsType"> 412 <xs:sequence> 413 <xs:element name="Reporting" type="DescriptorType" maxOccurs="unbounded"/> 414 <xs:element name="Range" type="RangeType" minOccurs="0" maxOccurs="unbounded"/> 415 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 416 </xs:sequence> 417 <xs:attribute name="metrics" type="xs:string" use="required"/> 418 <xs:anyAttribute namespace="##other" processContents="lax"/> 419 </xs:complexType> 420 421 <!-- Metrics Range --> 422 <xs:complexType name="RangeType"> 423 <xs:attribute name="starttime" type="xs:duration"/> 424 <xs:attribute name="duration" type="xs:duration"/> 425 </xs:complexType> 426 427 </xs:schema>