<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	targetNamespace="http://uri.etsi.org/ttcn-3/3.0.0/tci/Values" 
	xmlns:Values="http://uri.etsi.org/ttcn-3/3.0.0/tci/Values" 
	xmlns:Templates="http://uri.etsi.org/ttcn-3/3.0.0/tci/Templates" 
	xmlns:Types="http://uri.etsi.org/ttcn-3/3.0.0/tci/Types" 
	xmlns:SimpleTypes="http://uri.etsi.org/ttcn-3/3.0.0/tci/SimpleTypes" elementFormDefault="qualified">

	<xsd:import namespace="http://uri.etsi.org/ttcn-3/3.0.0/tci/Templates.xsd" 
     schemaLocation="Templates.xsd"/>
	<xsd:import namespace="http://uri.etsi.org/ttcn-3/3.0.0/tci/Types.xsd" schemaLocation="Types.xsd"/>
	<xsd:import namespace="http://uri.etsi.org/ttcn-3/3.0.0/tci/SimpleTypes.xsd" 
     schemaLocation="SimpleTypes.xsd"/>
		
 	<xsd:attributeGroup name="ValueAtts">
		<xsd:attribute name="name" type="SimpleTypes:TString" use="optional"/>
		<xsd:attribute name="type" type="SimpleTypes:TString" use="optional"/>
		<xsd:attribute name="module" type="SimpleTypes:TString" use="optional"/>
 	</xsd:attributeGroup>

	<xsd:complexType name="Value" mixed="true">
		<xsd:choice>
			<xsd:element name="integer" type="Values:IntegerValue"/>
			<xsd:element name="float" type="Values:FloatValue"/>
			<xsd:element name="boolean" type="Values:BooleanValue"/>
			<xsd:element name="objid" type="Values:ObjidValue"/>
			<xsd:element name="verdicttype" type="Values:VerdictValue"/>
			<xsd:element name="bitstring" type="Values:BitstringValue"/>
			<xsd:element name="hexstring" type="Values:HexstringValue"/>
			<xsd:element name="octetstring" type="Values:OctetstringValue"/>
			<xsd:element name="charstring" type="Values:CharstringValue"/>
			<xsd:element name="universal_charstring" type="Values:UniversalCharstringValue"/>
			<xsd:element name="record" type="Values:RecordValue"/>
			<xsd:element name="record_of" type="Values:RecordOfValue"/>
			<xsd:element name="set" type="Values:SetValue"/>
			<xsd:element name="set_of" type="Values:SetOfValue"/>
			<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
			<xsd:element name="union" type="Values:UnionValue"/>
			<xsd:element name="anytype" type="Values:AnytypeValue"/>
			<xsd:element name="address" type="Values:AddressValue"/>
    	        </xsd:choice>
    		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

    <!-- general event elements -->    
	<xsd:complexType name="IntegerValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="FloatValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="BooleanValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="ObjidValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="VerdictValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="BitstringValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="HexstringValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="OctetstringValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="CharstringValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="UniversalCharstringValue">
		<xsd:simpleContent>
			<xsd:extension base="SimpleTypes:TString">
    				<xsd:attributeGroup ref="Values:ValueAtts"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

	<xsd:complexType name="RecordValue">
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="integer" type="Values:IntegerValue"/>
				<xsd:element name="float" type="Values:FloatValue"/>
				<xsd:element name="boolean" type="Values:BooleanValue"/>
				<xsd:element name="objid" type="Values:ObjidValue"/>
				<xsd:element name="verdicttype" type="Values:VerdictValue"/>
				<xsd:element name="bitstring" type="Values:BitstringValue"/>
				<xsd:element name="hexstring" type="Values:HexstringValue"/>
				<xsd:element name="octetstring" type="Values:OctetstringValue"/>
				<xsd:element name="charstring" type="Values:CharstringValue"/>
				<xsd:element name="universal_charstring" 
					type="Values:UniversalCharstringValue"/>
				<xsd:element name="record" type="Values:RecordValue"/>
				<xsd:element name="record_of" type="Values:RecordOfValue"/>
				<xsd:element name="set" type="Values:SetValue"/>
				<xsd:element name="set_of" type="Values:SetOfValue"/>
				<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
				<xsd:element name="union" type="Values:UnionValue"/>
				<xsd:element name="anytype" type="Values:AnytypeValue"/>
				<xsd:element name="address" type="Values:AddressValue"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="RecordOfValue">
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="integer" type="Values:IntegerValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="float" type="Values:FloatValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="boolean" type="Values:BooleanValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="objid" type="Values:ObjidValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="bitstring" type="Values:BitstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="hexstring" type="Values:HexstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="octetstring" type="Values:OctetstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="charstring" type="Values:CharstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="universal_charstring" 
					type="Values:UniversalCharstringValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="record" type="Values:RecordValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="record_of" type="Values:RecordOfValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="set" type="Values:SetValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="set_of" type="Values:SetOfValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="enumerated" type="Values:EnumeratedValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="union" type="Values:UnionValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="anytype" type="Values:AnytypeValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="address" type="Values:AddressValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:choice>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="SetValue">
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="integer" type="Values:IntegerValue"/>
				<xsd:element name="float" type="Values:FloatValue"/>
				<xsd:element name="boolean" type="Values:BooleanValue"/>
				<xsd:element name="objid" type="Values:ObjidValue"/>
				<xsd:element name="verdicttype" type="Values:VerdictValue"/>
				<xsd:element name="bitstring" type="Values:BitstringValue"/>
				<xsd:element name="hexstring" type="Values:HexstringValue"/>
				<xsd:element name="octetstring" type="Values:OctetstringValue"/>
				<xsd:element name="charstring" type="Values:CharstringValue"/>
				<xsd:element name="universal_charstring" 
					type="Values:UniversalCharstringValue"/>
				<xsd:element name="record" type="Values:RecordValue"/>
				<xsd:element name="record_of" type="Values:RecordOfValue"/>
				<xsd:element name="set" type="Values:SetValue"/>
				<xsd:element name="set_of" type="Values:SetOfValue"/>
				<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
				<xsd:element name="union" type="Values:UnionValue"/>
				<xsd:element name="anytype" type="Values:AnytypeValue"/>
				<xsd:element name="address" type="Values:AddressValue"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="SetOfValue">
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="integer" type="Values:IntegerValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="float" type="Values:FloatValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="boolean" type="Values:BooleanValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="objid" type="Values:ObjidValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="bitstring" type="Values:BitstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="hexstring" type="Values:HexstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="octetstring" type="Values:OctetstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="charstring" type="Values:CharstringValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="universal_charstring" 
					type="Values:UniversalCharstringValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="record" type="Values:RecordValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="record_of" type="Values:RecordOfValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="set" type="Values:SetValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="set_of" type="Values:SetOfValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="enumerated" type="Values:EnumeratedValue" 
					minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="union" type="Values:UnionValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="anytype" type="Values:AnytypeValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="address" type="Values:AddressValue" minOccurs="0" 
					maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:choice>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="EnumeratedValue">
		<xsd:sequence>
			<xsd:element name="element" type="SimpleTypes:TString"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="UnionValue">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="integer" type="Values:IntegerValue"/>
			<xsd:element name="float" type="Values:FloatValue"/>
			<xsd:element name="boolean" type="Values:BooleanValue"/>
			<xsd:element name="objid" type="Values:ObjidValue"/>
			<xsd:element name="verdicttype" type="Values:VerdictValue"/>
			<xsd:element name="bitstring" type="Values:BitstringValue"/>
			<xsd:element name="hexstring" type="Values:HexstringValue"/>
			<xsd:element name="octetstring" type="Values:OctetstringValue"/>
			<xsd:element name="charstring" type="Values:CharstringValue"/>
			<xsd:element name="universal_charstring" 
				type="Values:UniversalCharstringValue"/>
			<xsd:element name="record" type="Values:RecordValue"/>
			<xsd:element name="record_of" type="Values:RecordOfValue"/>
			<xsd:element name="set" type="Values:SetValue"/>
			<xsd:element name="set_of" type="Values:SetOfValue"/>
			<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
			<xsd:element name="union" type="Values:UnionValue"/>
			<xsd:element name="anytype" type="Values:AnytypeValue"/>
			<xsd:element name="address" type="Values:AddressValue"/>
		</xsd:choice>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="AnytypeValue">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="integer" type="Values:IntegerValue"/>
			<xsd:element name="float" type="Values:FloatValue"/>
			<xsd:element name="boolean" type="Values:BooleanValue"/>
			<xsd:element name="objid" type="Values:ObjidValue"/>
			<xsd:element name="verdicttype" type="Values:VerdictValue"/>
			<xsd:element name="bitstring" type="Values:BitstringValue"/>
			<xsd:element name="hexstring" type="Values:HexstringValue"/>
			<xsd:element name="octetstring" type="Values:OctetstringValue"/>
			<xsd:element name="charstring" type="Values:OctetstringValue"/>
			<xsd:element name="universal_charstring" 
				type="Values:UniversalCharstringValue"/>
			<xsd:element name="record" type="Values:RecordValue"/>
			<xsd:element name="record_of" type="Values:RecordOfValue"/>
			<xsd:element name="set" type="Values:SetValue"/>
			<xsd:element name="set_of" type="Values:SetOfValue"/>
			<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
			<xsd:element name="union" type="Values:UnionValue"/>
			<xsd:element name="address" type="Values:AddressValue"/>
		</xsd:choice>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>

	<xsd:complexType name="AddressValue">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="integer" type="Values:IntegerValue"/>
			<xsd:element name="float" type="Values:FloatValue"/>
			<xsd:element name="boolean" type="Values:BooleanValue"/>
			<xsd:element name="objid" type="Values:ObjidValue"/>
			<xsd:element name="verdicttype" type="Values:VerdictValue"/>
			<xsd:element name="bitstring" type="Values:BitstringValue"/>
			<xsd:element name="hexstring" type="Values:HexstringValue"/>
			<xsd:element name="octetstring" type="Values:OctetstringValue"/>
			<xsd:element name="charstring" type="Values:OctetstringValue"/>
			<xsd:element name="universal_charstring" 
				type="Values:UniversalCharstringValue"/>
			<xsd:element name="record" type="Values:RecordValue"/>
			<xsd:element name="record_of" type="Values:RecordOfValue"/>
			<xsd:element name="set" type="Values:SetValue"/>
			<xsd:element name="set_of" type="Values:SetOfValue"/>
			<xsd:element name="enumerated" type="Values:EnumeratedValue"/>
			<xsd:element name="union" type="Values:UnionValue"/>
			<xsd:element name="anytype" type="Values:AnytypeValue"/>
		</xsd:choice>
		<xsd:attributeGroup ref="Values:ValueAtts"/>
	</xsd:complexType>
</xsd:schema>