
-- OK: Everything is Fine

-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
-- .spelio.software.asn1c.test (9363.1.5.1)
-- .70

ModuleTestXERDecoding
	{ iso org(3) dod(6) internet(1) private(4) enterprise(1)
		spelio(9363) software(1) asn1c(5) test(1) 70 }
	DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
	/*
	 * This module defines several types for the XER decoder testing
	 * environment (defined elsewhere).
	 */

	PDU ::= CHOICE {
		sequence		Sequence,
		set			Set,
		setOf			SetOf,
		sequenceOf		SequenceOf,
		extensibleSet		ExtensibleSet,
		extensibleSequence	ExtensibleSequence,
		setOfNULL		SetOfNULL,
		setOfEnums		SetOfEnums,
		seqOfZuka		SeqOfZuka,
		...
	}

	Sequence ::= SEQUENCE {
		integer		INTEGER,
		sequence	Sequence   OPTIONAL,	-- backreference
		bits		BIT STRING OPTIONAL,
		string		UTF8String
	}

	Set ::= SET {
		roid		RELATIVE-OID,
		opaque		OCTET STRING	OPTIONAL
	}

	ExtensibleSet ::= SET {
		string	UTF8String OPTIONAL,
		...
	}

	ExtensibleSequence ::= SEQUENCE {
		string	UTF8String OPTIONAL,
		...,
		integer	INTEGER	OPTIONAL
	}

	SetOf ::= SET OF REAL
	SetOfNULL ::= SET OF NULL
	SetOfEnums ::= SET OF ENUMERATED { one, oneMore }
	SequenceOf ::= SEQUENCE OF id INTEGER { one(1), two(2) }
	SeqOfZuka ::= SEQUENCE OF zuka NULL

END
