<!--
 Copyright (c) 2000-2021 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:
  Balasko, Jeno
  Raduly, Csaba
-->
<schema  xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:groups="www.example.org/groups"
xmlns:ns38="www.XmlTest.org/complex_minOccursMaxOccurs"
targetNamespace="www.XmlTest.org/complex_minOccursMaxOccurs">

<annotation><documentation xml:lang="EN">GLOBAL COMPLEX TYPES WITH MIN/MAX OF COMPOSITOR</documentation></annotation>

<complexType name="SeqTypeMin0max0">
	<sequence minOccurs="0" maxOccurs="0">
		<element name="elem" type="string"/>
	</sequence>
</complexType>

<complexType name="SeqTypeMin0max1">
	<sequence  minOccurs="0" maxOccurs="1">
		<element name="elem" type="string"/>
	</sequence>
</complexType>

<complexType name="SeqTypeMin1max1">
	<sequence >
		<element name="elem" type="string"/>
	</sequence>
</complexType>

<complexType name="SeqTypeMin0maxU">
	<sequence  minOccurs="0" maxOccurs="unbounded">
		<element name="elem" type="string"/>
	</sequence>
</complexType>

<complexType name="SeqTypeMin1maxU">
	<sequence  minOccurs="1" maxOccurs="unbounded">
		<element name="elem" type="string"/>
	</sequence>
</complexType>

<complexType name="ChoTypeMin0max1">
	<choice  minOccurs="0" maxOccurs="1">
		<element name="elem1" type="string"/>
		<element name="elem2" type="string"/>
	</choice>
</complexType>

<complexType name="ChoTypeMin0maxU">
	<choice  minOccurs="0" maxOccurs="unbounded">
		<element name="elem1" type="string"/>
		<element name="elem2" type="string"/>
	</choice>
</complexType>

<element name="ChoiceChildMinMax">
  <complexType>
	<choice>
		<element name="elem0" type="string" minOccurs="1" maxOccurs="5"/>
		<element name="elem1" type="string" minOccurs="0" />
		<element name="elem2" type="string" minOccurs="0" />
		<element name="elem3" type="string" minOccurs="0" maxOccurs="unbounded"/>
	</choice>
  </complexType>
</element>

<element name="minOccurs_maxOccurs_frame">
	<complexType>
		<choice minOccurs="0" maxOccurs="unbounded">
			<element ref="ns38:ChoiceChildMinMax"/>
		</choice>
	</complexType>
</element>

<complexType name="AllTypeMin0max1">
	<all  minOccurs="0" maxOccurs="1">
		<element name="elem1" type="string"/>
		<element name="elem2" type="string"/>
	</all>
</complexType>

<annotation><documentation xml:lang="EN">maxOccurs > 1 is not allowed for all</documentation></annotation>

<annotation><documentation xml:lang="EN">GLOBAL GROUPS WITH MIN/MAX OF COMPOSITOR</documentation></annotation>
<annotation><documentation xml:lang="EN">Note: minOcurs and maxOccurs are not allowed on named group definitions</documentation></annotation>

<group name="SeqGroup">
	<sequence>
		<element name="elem" type="string"/>
	</sequence>
</group>

<group name="ChoGroup">
	<choice>
		<element name="elem" type="string"/>
	</choice>
</group>

<group name="AllGroup">
	<all>
		<element name="elem" type="string"/>
	</all>
</group>



<complexType name="SeqMixed">
	<sequence>
		<element name="min0max0" type="string" minOccurs="0" maxOccurs="0"/>
		<element name="min0max1" type="string" minOccurs="0" maxOccurs="1"/>
		<element name="min1max1" type="string" minOccurs="1" maxOccurs="1"/>
		<element name="min0maxU" type="string" minOccurs="0" maxOccurs="unbounded"/>
		<element name="min1maxU" type="string" minOccurs="1" maxOccurs="unbounded"/>
		<element name="nilmin0max1" type="string" minOccurs="0" maxOccurs="1" nillable="true"/>
		<element name="nilmin0maxU" type="string" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
                <element name="Item" type="string" minOccurs="0" maxOccurs="0"/>
		<element name="Item" type="string" minOccurs="0" maxOccurs="1"/>
		<element name="Item" type="string" minOccurs="1" maxOccurs="1"/>
	</sequence>
</complexType>


</schema>
