<?xml version="1.0" encoding="UTF-8"?> 
<!--
 Copyright (c) 2000-2025 Ericsson Telecom AB
 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
-->
<xs:schema 
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:this="http://www.example.org/list/minmaxoccurs"
targetNamespace="http://www.example.org/list/minmaxoccurs">

<xs:element name="SequenceList">
  <xs:complexType>
    <xs:sequence>
        <xs:element name="Element0" minOccurs="1" maxOccurs="1">      
          <xs:simpleType>
            <xs:restriction> 
              <xs:simpleType> 
                <xs:list itemType="xs:string" /> 
              </xs:simpleType>
              <xs:minLength value="1" /> 
            </xs:restriction> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Element1" minOccurs="0" maxOccurs="1">      
          <xs:simpleType>
            <xs:restriction> 
              <xs:simpleType> 
                <xs:list itemType="xs:string" /> 
              </xs:simpleType>
              <xs:minLength value="1" /> 
            </xs:restriction> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Element2" minOccurs="0" maxOccurs="2">      
          <xs:simpleType>
            <xs:restriction> 
              <xs:simpleType> 
                <xs:list itemType="xs:string" /> 
              </xs:simpleType>
              <xs:minLength value="1" /> 
            </xs:restriction> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">      
          <xs:simpleType>
            <xs:restriction> 
              <xs:simpleType> 
                <xs:list itemType="xs:string" /> 
              </xs:simpleType>
              <xs:minLength value="1" /> 
            </xs:restriction> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Element4" minOccurs="0" maxOccurs="unbounded">      
          <xs:simpleType>
            <xs:restriction> 
              <xs:simpleType> 
                <xs:list itemType="xs:string" /> 
              </xs:simpleType>
            </xs:restriction> 
          </xs:simpleType>
        </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="SequenceList2">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Element0" minOccurs="1" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element1" minOccurs="0" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element2" minOccurs="0" maxOccurs="2">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
            </restriction>
          </simpleType>
        </xs:element>
      </xs:sequence>
  </xs:complexType>
</xs:element>


<xs:element name="SequenceList3">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Element0" minOccurs="1" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element1" minOccurs="0" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element2" minOccurs="0" maxOccurs="2">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
      </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="SequenceList4">
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Element0" minOccurs="1" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element1" minOccurs="0" maxOccurs="1">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element2" minOccurs="0" maxOccurs="2">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
        <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">
          <simpleType>
            <restriction>
              <simpleType>
                <list>
                  <simpleType>
                    <restriction base="string">
                      <length value="4" />
                    </restriction>
                  </simpleType>
                </list>    
              </simpleType>
              <length value="3"/>
            </restriction>
          </simpleType>
        </xs:element>
      </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:complexType name="ChoiceWithList">
  <xs:choice>
    <xs:element name="Element0">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="3"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element1" minOccurs="0">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="3"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element2" minOccurs="0">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="3"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="3"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element4" minOccurs="2" maxOccurs="3">
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:string" />
          </xs:simpleType>
          <xs:minLength value="3" />
          <xs:maxLength value="3" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element5" minOccurs="2" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:string" />
          </xs:simpleType>
          <xs:minLength value="3" />
          <xs:maxLength value="3" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
  </xs:choice>
</xs:complexType>

<xs:complexType name="ChoiceWithList2">
  <xs:choice>
    <xs:element name="Element0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element1" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element2" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element3" minOccurs="2" maxOccurs="3">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element4" minOccurs="0" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element5" type="integer"/>
  </xs:choice>
</xs:complexType>

<xs:complexType name="ChoiceWithList3">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="Element0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element1" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element2" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element3" minOccurs="2" maxOccurs="3">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element4" minOccurs="0" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element5" type="integer"/>
  </xs:choice>
</xs:complexType>




<xs:complexType name="ChoiceWithList4">
  <xs:choice>
    <xs:element name="Element0" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element1" minOccurs="0">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element2" minOccurs="0">
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:string" />
          </xs:simpleType>
          <xs:minLength value="3" />
          <xs:maxLength value="3" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element3" minOccurs="0">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="5"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element4" minOccurs="0">      
      <xs:simpleType>
        <xs:restriction> 
          <xs:simpleType> 
            <xs:list itemType="xs:string" /> 
          </xs:simpleType>
          <xs:minLength value="1" /> 
        </xs:restriction> 
      </xs:simpleType>
    </xs:element>
  </xs:choice>
</xs:complexType>


<xs:complexType name="ChoiceWithList5">
  <xs:choice>
    <xs:element name="Element." minOccurs="0" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element1" minOccurs="0" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:list itemType="xs:float" />
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element2" minOccurs="0" maxOccurs="unbounded">
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:string" />
          </xs:simpleType>
          <xs:minLength value="3" />
          <xs:maxLength value="3" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="Element3" minOccurs="0" maxOccurs="unbounded">
      <simpleType>
        <restriction>
          <simpleType>
            <list>
              <simpleType>
                <restriction base="string">
                  <length value="4" />
                </restriction>
              </simpleType>
            </list>    
          </simpleType>
          <length value="3"/>
        </restriction>
      </simpleType>
    </xs:element>
    <xs:element name="Element4" minOccurs="0" maxOccurs="unbounded">      
      <xs:simpleType>
        <xs:restriction> 
          <xs:simpleType> 
            <xs:list itemType="xs:string" /> 
          </xs:simpleType>
          <xs:minLength value="1" /> 
        </xs:restriction> 
      </xs:simpleType>
    </xs:element>
  </xs:choice>
</xs:complexType>

</xs:schema>
