﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="DataTopic_Packaging" targetNamespace="https://imde.io/schema/azlon/1.2/packaging" elementFormDefault="qualified"
			xmlns="https://imde.io/schema/azlon/1.2/packaging" xmlns:code="https://imde.io/schema/azlon/1.0/codelists"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="Packaging">
		<xsd:complexType>
			<xsd:all>
				<xsd:element name="PackagingElements" minOccurs="1" maxOccurs="1">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="PackagingElement" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:all>
										<xsd:element name="PackagingType" minOccurs="1" maxOccurs="1">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:simpleContent>
																<xsd:extension base="xsd:string">
																	<xsd:attribute name="Type" type="xsd:string" use="required"/>
																</xsd:extension>
															</xsd:simpleContent>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="PackagingSubType" minOccurs="0" maxOccurs="1">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:simpleContent>
																<xsd:extension base="xsd:string">
																	<xsd:attribute name="Type" type="xsd:string" use="required"/>
																</xsd:extension>
															</xsd:simpleContent>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="ContactSensitivityClass" minOccurs="0" maxOccurs="1">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:simpleContent>
																<xsd:extension base="xsd:string">
																	<xsd:attribute name="Type" type="xsd:string" use="required"/>
																</xsd:extension>
															</xsd:simpleContent>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="RecyclingCodes" minOccurs="0" maxOccurs="1">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:simpleContent>
																<xsd:extension base="xsd:string">
																	<xsd:attribute name="Type" type="xsd:string" use="required"/>
																</xsd:extension>
															</xsd:simpleContent>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="Returnable" minOccurs="0" maxOccurs="1">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
														<xsd:complexType>
															<xsd:simpleContent>
																<xsd:extension base="xsd:string">
																	<xsd:attribute name="Type" type="xsd:string" use="required"/>
																</xsd:extension>
															</xsd:simpleContent>
														</xsd:complexType>
													</xsd:element>
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
										<xsd:element name="Materials" type="MaterialsType" minOccurs="0" maxOccurs="1"/>								
									</xsd:all>
									<xsd:attribute name="IsMainElement" type="xsd:boolean" use="required" />
									<xsd:attribute name="IsReturnable" type="xsd:boolean" use="required" />
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:all>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="MaterialsType">
		<xsd:sequence>
			<xsd:element name="Material" minOccurs="0" maxOccurs="unbounded" >
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="Class" minOccurs="1" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string">
													<xsd:attribute name="Type" type="xsd:string" use="required"/>
												</xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="Definition" minOccurs="1" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string">
													<xsd:attribute name="Type" type="xsd:string" use="required"/>
												</xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="QuantityUnits" minOccurs="1" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="QuantityUnit" minOccurs="1" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string">
													<xsd:attribute name="Type" type="xsd:string" use="required"/>
												</xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="Attributes" type="AttributesType" minOccurs="0" maxOccurs="1"/>					
						<xsd:element name="Materials" type="MaterialsType" minOccurs="0" maxOccurs="1"/>
					</xsd:all>
					<xsd:attribute name="Quantity" type="xsd:double" use="required" />
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="AttributesType">
		<xsd:sequence>
			<xsd:element name="Attribute" minOccurs="0" maxOccurs="unbounded" >
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="Key" minOccurs="1" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="Code" minOccurs="1" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string">
													<xsd:attribute name="Type" type="xsd:string" use="required"/>
												</xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="ValueUnits" minOccurs="0" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="ValueUnit" minOccurs="1" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string">
													<xsd:attribute name="Type" type="xsd:string" use="required"/>
												</xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="CodeList" minOccurs="0" maxOccurs="1">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string"></xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>						
						<xsd:element name="Values" minOccurs="1" maxOccurs="1">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="Value" minOccurs="0" maxOccurs="unbounded">
										<xsd:complexType>
											<xsd:simpleContent>
												<xsd:extension base="xsd:string"></xsd:extension>
											</xsd:simpleContent>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>						
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>
