/schemas/flv.xsd

https://code.google.com/ · XML Schema · 123 lines · 110 code · 13 blank · 0 comment · 0 complexity · 3b56e600458f1adc1e95deeb05dd2809 MD5 · raw file

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema targetNamespace="http://schemas.flvmeta.org/FLV/1.0/"
  3. elementFormDefault="qualified"
  4. xmlns="http://schemas.flvmeta.org/FLV/1.0/"
  5. xmlns:amf="http://schemas.flvmeta.org/AMF0/1.0/"
  6. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  7. >
  8. <xs:import namespace="http://schemas.flvmeta.org/AMF0/1.0/" schemaLocation="Amf0.xsd"/>
  9. <xs:element name="flv">
  10. <xs:complexType>
  11. <xs:sequence>
  12. <xs:element name="tag" type="tFlvTag" minOccurs="0" maxOccurs="unbounded"/>
  13. </xs:sequence>
  14. <xs:attribute name="version" use="optional" fixed="1" />
  15. <xs:attribute name="hasVideo" use="optional" type="xs:boolean" default="1"/>
  16. <xs:attribute name="hasAudio" use="optional" type="xs:boolean" default="1"/>
  17. </xs:complexType>
  18. </xs:element>
  19. <xs:complexType name="tFlvTag">
  20. <xs:choice>
  21. <xs:element name="videoData" type="tVideoData"/>
  22. <xs:element name="audioData" type="tAudioData"/>
  23. <xs:element name="scriptDataObject" type="tScriptDataObject"/>
  24. </xs:choice>
  25. <xs:attribute name="type" type="tTagType" use="required"/>
  26. <xs:attribute name="dataSize" type="xs:nonNegativeInteger" use="optional"/>
  27. <xs:attribute name="timestamp" type="xs:nonNegativeInteger" use="required"/>
  28. <xs:attribute name="streamID" type="xs:nonNegativeInteger" use="optional" fixed="0"/>
  29. <xs:attribute name="offset" type="xs:nonNegativeInteger" use="required"/>
  30. </xs:complexType>
  31. <xs:simpleType name="tTagType">
  32. <xs:restriction base="xs:string">
  33. <xs:enumeration value="audio"/>
  34. <xs:enumeration value="video"/>
  35. <xs:enumeration value="scriptData"/>
  36. </xs:restriction>
  37. </xs:simpleType>
  38. <xs:complexType name="tAudioData">
  39. <xs:attribute name="format" use="required" type="tAudioFormat"/>
  40. <xs:attribute name="rate" use="required" type="tAudioRate"/>
  41. <xs:attribute name="size" use="required" type="tAudioSize"/>
  42. <xs:attribute name="type" use="required" type="tAudioType"/>
  43. </xs:complexType>
  44. <xs:simpleType name="tAudioFormat">
  45. <xs:restriction base="xs:string">
  46. <xs:enumeration value="Linear PCM, platform endian"/>
  47. <xs:enumeration value="ADPCM"/>
  48. <xs:enumeration value="MP3"/>
  49. <xs:enumeration value="Linear PCM, little endian"/>
  50. <xs:enumeration value="Nellymoser 16-kHz mono"/>
  51. <xs:enumeration value="Nellymoser 8-kHz mono"/>
  52. <xs:enumeration value="Nellymoser"/>
  53. <xs:enumeration value="G.711 A-law logarithmic PCM"/>
  54. <xs:enumeration value="G.711 mu-law logarithmic PCM"/>
  55. <xs:enumeration value="reserved"/>
  56. <xs:enumeration value="AAC"/>
  57. <xs:enumeration value="Speex"/>
  58. <xs:enumeration value="MP3 8-Khz"/>
  59. <xs:enumeration value="Device-specific sound"/>
  60. </xs:restriction>
  61. </xs:simpleType>
  62. <xs:simpleType name="tAudioRate">
  63. <xs:restriction base="xs:float">
  64. <xs:enumeration value="5.5"/>
  65. <xs:enumeration value="11"/>
  66. <xs:enumeration value="22"/>
  67. <xs:enumeration value="44"/>
  68. </xs:restriction>
  69. </xs:simpleType>
  70. <xs:simpleType name="tAudioSize">
  71. <xs:restriction base="xs:integer">
  72. <xs:enumeration value="8"/>
  73. <xs:enumeration value="16"/>
  74. </xs:restriction>
  75. </xs:simpleType>
  76. <xs:simpleType name="tAudioType">
  77. <xs:restriction base="xs:string">
  78. <xs:enumeration value="mono"/>
  79. <xs:enumeration value="stereo"/>
  80. </xs:restriction>
  81. </xs:simpleType>
  82. <xs:complexType name="tVideoData">
  83. <xs:attribute name="frameType" use="required" type="tFrameType"/>
  84. <xs:attribute name="codecID" use="required" type="tVideoCodec"/>
  85. </xs:complexType>
  86. <xs:simpleType name="tFrameType">
  87. <xs:restriction base="xs:string">
  88. <xs:enumeration value="keyframe"/>
  89. <xs:enumeration value="inter frame"/>
  90. <xs:enumeration value="disposable inter frame"/>
  91. <xs:enumeration value="generated keyframe"/>
  92. <xs:enumeration value="video info/command frame"/>
  93. </xs:restriction>
  94. </xs:simpleType>
  95. <xs:simpleType name="tVideoCodec">
  96. <xs:restriction base="xs:string">
  97. <xs:enumeration value="JPEG"/>
  98. <xs:enumeration value="Sorenson H.263"/>
  99. <xs:enumeration value="Screen video"/>
  100. <xs:enumeration value="On2 VP6"/>
  101. <xs:enumeration value="On2 VP6 with alpha channel"/>
  102. <xs:enumeration value="Screen video version 2"/>
  103. <xs:enumeration value="AVC"/>
  104. </xs:restriction>
  105. </xs:simpleType>
  106. <xs:complexType name="tScriptDataObject">
  107. <xs:group ref="amf:tData" />
  108. <xs:attribute name="name" use="required" type="xs:string" />
  109. </xs:complexType>
  110. </xs:schema>