/******************************************************************************
* Copyright (c) 2000-2025 Ericsson Telecom AB
*
* XSD to TTCN-3 Translator
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
*   Balasko, Jeno
*   Szabo, Bence Janos
*
******************************************************************************/
//
//  File:          www_example_org_type_substitution_complex_cascade.ttcn
//  Description:
//  References:
//  Rev:
//  Prodnr:
//  Updated:       Thu Dec 10 13:10:23 2014
//  Contact:       http://ttcn.ericsson.se
//
////////////////////////////////////////////////////////////////////////////////
//	Generated from file(s):
//	- type_substitution_complex_cascade.xsd
//			/* xml version = "1.0" encoding = "UTF-8" */
//			/* targetnamespace = "www.example.org/type/substitution/complex/cascade" */
////////////////////////////////////////////////////////////////////////////////
//     Modification header(s):
//-----------------------------------------------------------------------------
//  Modified by:
//  Modification date:
//  Description:
//  Modification contact:
//------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////


module www_example_org_type_substitution_complex_cascade {


import from XSD all;


type RequestType_derivations Request
with {
  variant "name as uncapitalized";
  variant "element";
};


type XSD.String MyProductionRequestType
with {
  variant "name as 'myProductionRequestType_'";
  variant "element";
};


type XSD.String MyProductionRequestType2
with {
  variant "name as 'myProductionRequestType2_'";
  variant "element";
};


/* The generic base type */


type record RequestType
{
	XSD.String commonName
}
with {
  variant "name as uncapitalized";
};


/* Production implementation */


type MyProductionRequestType_derivations Product
with {
  variant "name as uncapitalized";
  variant "element";
};


type record MyProductionRequestType_1
{
	XSD.String commonName,
	XSD.String productionName
}
with {
  variant "name as 'myProductionRequestType'";
};


type MyProductionRequestType2_derivations Product2
with {
  variant "name as uncapitalized";
  variant "element";
};


/* Derived type of myProductionRequestType */


type record MyProductionRequestType2_1
{
	XSD.String commonName,
	XSD.String productionName,
	XSD.Integer productItem optional
}
with {
  variant "name as 'myProductionRequestType2'";
};


/* Derived type of myProductionRequestType2 */


type record MyProductionRequestType3
{
	XSD.String commonName,
	XSD.String productionName,
	XSD.Integer productItem
}
with {
  variant "name as uncapitalized";
};


/* Derived type of myProductionRequestType3 */


type record MyProductionRequestType4
{
	XSD.String commonName,
	XSD.Integer productItem
}
with {
  variant "name as uncapitalized";
};


type union RequestType_derivations
{
	@default RequestType requestType,
	MyProductionRequestType_1 myProductionRequestType,
	MyProductionRequestType2_1 myProductionRequestType2,
	MyProductionRequestType3 myProductionRequestType3,
	MyProductionRequestType4 myProductionRequestType4
}
with {
  variant "useType";
};


type union MyProductionRequestType_derivations
{
	@default MyProductionRequestType_1 myProductionRequestType,
	MyProductionRequestType2_1 myProductionRequestType2,
	MyProductionRequestType3 myProductionRequestType3,
	MyProductionRequestType4 myProductionRequestType4
}
with {
  variant "useType";
};


type union MyProductionRequestType2_derivations
{
	@default MyProductionRequestType2_1 myProductionRequestType2,
	MyProductionRequestType3 myProductionRequestType3,
	MyProductionRequestType4 myProductionRequestType4
}
with {
  variant "useType";
};


}
with {
  encode "XML";
  variant "namespace as 'www.example.org/type/substitution/complex/cascade'";
  variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
}
