/******************************************************************************
* Copyright (c) 2000-2021 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:
*   Szabo, Bence Janos
*
******************************************************************************/
//
//  File:          http_www_example_org_list_minmaxoccurs.ttcn
//  Description:
//  References:
//  Rev:
//  Prodnr:
//  Updated:       Mon Nov 14 10:11:16 2014
//  Contact:       http://ttcn.ericsson.se
//
////////////////////////////////////////////////////////////////////////////////
//	Generated from file(s):
//	- listMinMaxOccurs.xsd
//			/* xml version = "1.0" encoding = "UTF-8" */
//			/* targetnamespace = "http://www.example.org/list/minmaxoccurs" */
////////////////////////////////////////////////////////////////////////////////
//     Modification header(s):
//-----------------------------------------------------------------------------
//  Modified by:
//  Modification date:
//  Description:
//  Modification contact:
//------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////


module http_www_example_org_list_minmaxoccurs {


import from XSD all;


type record SequenceList
{
  record length(1 .. infinity) of XSD.String element0,
  record length(1 .. infinity) of XSD.String element1 optional,
  record length(0 .. 2) of record length(1 .. infinity) of XSD.String element2_list,
  record of record length(1 .. infinity) of XSD.String element3_list,
  record of record of XSD.String element4_list
}
with {
  variant "element";
  variant (element0) "name as capitalized";
  variant (element0) "list";
  variant (element1) "name as capitalized";
  variant (element1) "list";
  variant (element2_list) "untagged";
  variant (element2_list[-]) "name as 'Element2'";
  variant (element2_list[-]) "list";
  variant (element3_list) "untagged";
  variant (element3_list[-]) "name as 'Element3'";
  variant (element3_list[-]) "list";
  variant (element4_list) "untagged";
  variant (element4_list[-]) "name as 'Element4'";
  variant (element4_list[-]) "list";
};


type record SequenceList2
{
  record of XSD.String element0 length(4),
  record of XSD.String element1 length(4) optional,
  record length(0 .. 2) of record of XSD.String element2_list length(4),
  record of record of XSD.String element3_list length(4)
}
with {
  variant "element";
  variant (element0) "name as capitalized";
  variant (element0) "list";
  variant (element1) "name as capitalized";
  variant (element1) "list";
  variant (element2_list) "untagged";
  variant (element2_list[-]) "name as 'Element2'";
  variant (element2_list[-]) "list";
  variant (element3_list) "untagged";
  variant (element3_list[-]) "name as 'Element3'";
  variant (element3_list[-]) "list";
};


type record SequenceList3
{
  record length(3) of XSD.String element0 length(4),
  record length(3) of XSD.String element1 length(4) optional,
  record length(0 .. 2) of record length(3) of XSD.String element2_list length(4),
  record of record length(3) of XSD.String element3_list length(4)
}
with {
  variant "element";
  variant (element0) "name as capitalized";
  variant (element0) "list";
  variant (element1) "name as capitalized";
  variant (element1) "list";
  variant (element2_list) "untagged";
  variant (element2_list[-]) "name as 'Element2'";
  variant (element2_list[-]) "list";
  variant (element3_list) "untagged";
  variant (element3_list[-]) "name as 'Element3'";
  variant (element3_list[-]) "list";
};


type record SequenceList4
{
  record of record {
    record length(3) of XSD.String element0 length(4),
    record length(3) of XSD.String element1 length(4) optional,
    record length(0 .. 2) of record length(3) of XSD.String element2_list length(4),
    record of record length(3) of XSD.String element3_list length(4)
  } sequence_list
}
with {
  variant "element";
  variant (sequence_list) "untagged";
  variant (sequence_list[-]) "untagged";
  variant (sequence_list[-].element0) "name as capitalized";
  variant (sequence_list[-].element0) "list";
  variant (sequence_list[-].element1) "name as capitalized";
  variant (sequence_list[-].element1) "list";
  variant (sequence_list[-].element2_list) "untagged";
  variant (sequence_list[-].element2_list[-]) "name as 'Element2'";
  variant (sequence_list[-].element2_list[-]) "list";
  variant (sequence_list[-].element3_list) "untagged";
  variant (sequence_list[-].element3_list[-]) "name as 'Element3'";
  variant (sequence_list[-].element3_list[-]) "list";
};


type record ChoiceWithList
{
  union {
    record length(3) of XSD.String element0 length(4),
    record length(0 .. 1) of record length(3) of XSD.String element1_list length(4),
    record length(1) of record length(3) of XSD.String element2_list length(4),
    record length(1 .. infinity) of record length(3) of XSD.String element3_list length(4),
    record length(2 .. 3) of record length(3) of XSD.String element4_list,
    record length(2 .. infinity) of record length(3) of XSD.String element5_list
  } choice
}
with {
  variant (choice) "untagged";
  variant (choice.element0) "name as capitalized";
  variant (choice.element0) "list";
  variant (choice.element1_list) "untagged";
  variant (choice.element1_list[-]) "name as 'Element1'";
  variant (choice.element1_list[-]) "list";
  variant (choice.element2_list) "untagged";
  variant (choice.element2_list[-]) "name as 'Element2'";
  variant (choice.element2_list[-]) "list";
  variant (choice.element3_list) "untagged";
  variant (choice.element3_list[-]) "name as 'Element3'";
  variant (choice.element3_list[-]) "list";
  variant (choice.element4_list) "untagged";
  variant (choice.element4_list[-]) "name as 'Element4'";
  variant (choice.element4_list[-]) "list";
  variant (choice.element5_list) "untagged";
  variant (choice.element5_list[-]) "name as 'Element5'";
  variant (choice.element5_list[-]) "list";
};


type record ChoiceWithList2
{
  union {
    record of XSD.Float element0,
    record length(0 .. 1) of record of XSD.Float element1_list,
    record length(1) of record of XSD.Float element2_list,
    record length(2 .. 3) of record of XSD.Float element3_list,
    record length(1 .. infinity) of record of XSD.Float element4_list,
    XSD.Integer element5
  } choice
}
with {
  variant (choice) "untagged";
  variant (choice.element0) "name as capitalized";
  variant (choice.element0) "list";
  variant (choice.element1_list) "untagged";
  variant (choice.element1_list[-]) "name as 'Element1'";
  variant (choice.element1_list[-]) "list";
  variant (choice.element2_list) "untagged";
  variant (choice.element2_list[-]) "name as 'Element2'";
  variant (choice.element2_list[-]) "list";
  variant (choice.element3_list) "untagged";
  variant (choice.element3_list[-]) "name as 'Element3'";
  variant (choice.element3_list[-]) "list";
  variant (choice.element4_list) "untagged";
  variant (choice.element4_list[-]) "name as 'Element4'";
  variant (choice.element4_list[-]) "list";
  variant (choice.element5) "name as capitalized";
};


type record ChoiceWithList3
{
  record of union {
    record of XSD.Float element0,
    record length(0 .. 1) of record of XSD.Float element1_list,
    record length(1) of record of XSD.Float element2_list,
    record length(2 .. 3) of record of XSD.Float element3_list,
    record length(1 .. infinity) of record of XSD.Float element4_list,
    XSD.Integer element5
  } choice_list
}
with {
  variant (choice_list) "untagged";
  variant (choice_list[-]) "untagged";
  variant (choice_list[-].element0) "name as capitalized";
  variant (choice_list[-].element0) "list";
  variant (choice_list[-].element1_list) "untagged";
  variant (choice_list[-].element1_list[-]) "name as 'Element1'";
  variant (choice_list[-].element1_list[-]) "list";
  variant (choice_list[-].element2_list) "untagged";
  variant (choice_list[-].element2_list[-]) "name as 'Element2'";
  variant (choice_list[-].element2_list[-]) "list";
  variant (choice_list[-].element3_list) "untagged";
  variant (choice_list[-].element3_list[-]) "name as 'Element3'";
  variant (choice_list[-].element3_list[-]) "list";
  variant (choice_list[-].element4_list) "untagged";
  variant (choice_list[-].element4_list[-]) "name as 'Element4'";
  variant (choice_list[-].element4_list[-]) "list";
  variant (choice_list[-].element5) "name as capitalized";
};


type record ChoiceWithList4
{
  union {
    record length(0 .. 1) of record of XSD.Float element0_list,
    record length(1) of record of XSD.Float element1_list,
    record length(1) of record length(3) of XSD.String element2_list,
    record length(1) of record length(5) of XSD.String element3_list length(4),
    record length(1) of record length(1 .. infinity) of XSD.String element4_list
  } choice
}
with {
  variant (choice) "untagged";
  variant (choice.element0_list) "untagged";
  variant (choice.element0_list[-]) "name as 'Element0'";
  variant (choice.element0_list[-]) "list";
  variant (choice.element1_list) "untagged";
  variant (choice.element1_list[-]) "name as 'Element1'";
  variant (choice.element1_list[-]) "list";
  variant (choice.element2_list) "untagged";
  variant (choice.element2_list[-]) "name as 'Element2'";
  variant (choice.element2_list[-]) "list";
  variant (choice.element3_list) "untagged";
  variant (choice.element3_list[-]) "name as 'Element3'";
  variant (choice.element3_list[-]) "list";
  variant (choice.element4_list) "untagged";
  variant (choice.element4_list[-]) "name as 'Element4'";
  variant (choice.element4_list[-]) "list";
};


type record ChoiceWithList5
{
  union {
    record of record of XSD.Float element_list,
    record length(1 .. infinity) of record of XSD.Float element1_list,
    record length(1 .. infinity) of record length(3) of XSD.String element2_list,
    record length(1 .. infinity) of record length(3) of XSD.String element3_list length(4),
    record length(1 .. infinity) of record length(1 .. infinity) of XSD.String element4_list
  } choice
}
with {
  variant (choice) "untagged";
  variant (choice.element_list) "untagged";
  variant (choice.element_list[-]) "name as 'Element.'";
  variant (choice.element_list[-]) "list";
  variant (choice.element1_list) "untagged";
  variant (choice.element1_list[-]) "name as 'Element1'";
  variant (choice.element1_list[-]) "list";
  variant (choice.element2_list) "untagged";
  variant (choice.element2_list[-]) "name as 'Element2'";
  variant (choice.element2_list[-]) "list";
  variant (choice.element3_list) "untagged";
  variant (choice.element3_list[-]) "name as 'Element3'";
  variant (choice.element3_list[-]) "list";
  variant (choice.element4_list) "untagged";
  variant (choice.element4_list[-]) "name as 'Element4'";
  variant (choice.element4_list[-]) "list";
};


}
with {
  encode "XML";
  variant "namespace as 'http://www.example.org/list/minmaxoccurs' prefix 'this'";
  variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
}
