1 <?xml version="1.0" encoding="UTF-8"?> 2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0"> 3 <xs:element name="recording"> 4 <xs:complexType> 5 <xs:sequence minOccurs="0" maxOccurs="1"> 6 <xs:element name="events"> 7 <xs:complexType> 8 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 9 <xs:element name="event" type="eventType" /> 10 </xs:sequence> 11 </xs:complexType> 12 </xs:element> 13 </xs:sequence> 14 </xs:complexType> 15 </xs:element> 16 <xs:complexType name="eventType"> 17 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 18 <xs:choice> 19 <xs:element name="struct" nillable="true" type="structType" /> 20 <xs:element name="array" nillable="true" type="arrayType" /> 21 <xs:element name="value" nillable="true" type="valueType" /> 22 </xs:choice> 23 </xs:sequence> 24 <xs:attribute use="required" name="type" type="xs:string" /> 25 </xs:complexType> 26 <xs:complexType name="structType"> 27 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 28 <xs:choice> 29 <xs:element name="struct" nillable="true" type="structType" /> 30 <xs:element name="array" nillable="true" type="arrayType" /> 31 <xs:element name="value" nillable="true" type="valueType" /> 32 </xs:choice> 33 </xs:sequence> 34 <xs:attribute use="required" name="name" type="xs:string" /> 35 </xs:complexType> 36 <xs:complexType name="arrayType"> 37 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 38 <xs:choice> 39 <xs:element name="struct" nillable="true" type="structElement" /> 40 <xs:element name="array" nillable="true" type="arrayElement" /> 41 <xs:element name="value" nillable="true" type="valueElement" /> 42 </xs:choice> 43 </xs:sequence> 44 <xs:attribute use="required" name="size" type="xs:int" /> 45 <xs:attribute use="required" name="name" type="xs:string" /> 46 </xs:complexType> 47 <xs:complexType name="valueType"> 48 <xs:simpleContent> 49 <xs:extension base="xs:string"> 50 <xs:attribute use="required" name="name" type="xs:string" /> 51 </xs:extension> 52 </xs:simpleContent> 53 </xs:complexType> 54 <xs:complexType name="structElement"> 55 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 56 <xs:choice> 57 <xs:element name="struct" nillable="true" type="structType" /> 58 <xs:element name="array" nillable="true" type="arrayType" /> 59 <xs:element name="value" nillable="true" type="valueType" /> 60 </xs:choice> 61 </xs:sequence> 62 <xs:attribute use="required" name="index" type="xs:int" /> 63 </xs:complexType> 64 <xs:complexType name="arrayElement"> 65 <xs:sequence minOccurs="0" maxOccurs="unbounded"> 66 <xs:choice> 67 <xs:element name="value" nillable="true" type="valueType" /> 68 <xs:element name="array" nillable="true" type="arrayType" /> 69 <xs:element name="struct" nillable="true" type="structType" /> 70 </xs:choice> 71 </xs:sequence> 72 <xs:attribute use="required" name="index" type="xs:int" /> 73 </xs:complexType> 74 <xs:complexType name="valueElement"> 75 <xs:simpleContent> 76 <xs:extension base="xs:string"> 77 <xs:attribute use="required" name="index" type="xs:int" /> 78 </xs:extension> 79 </xs:simpleContent> 80 </xs:complexType> 81 </xs:schema>