<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
	targetNamespace="http://www.post.ch/ShipmentModelLibrary/v02" 
	xmlns:sml="http://www.post.ch/ShipmentModelLibrary/v02" 
	xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	elementFormDefault="unqualified" attributeFormDefault="unqualified">
	
	<xs:element name="Extension" type="sml:ExtensionType"/>
	<xs:complexType name="EntriesListType">
		<xs:annotation>
			<xs:documentation>This type describes a generic document extension</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Entry" type="sml:EntryType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EntryType">
		<xs:annotation>
			<xs:documentation>This type describes a generic document extension</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Key" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>the name of this entry</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice>
				<xs:element name="Value" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>atomic value container</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="EntriesList" type="sml:EntriesListType" minOccurs="0">
					<xs:annotation>
						<xs:documentation>list of entries, used to represent arrays, maps, etc</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ExtensionType">
		<xs:annotation>
			<xs:documentation>This type describes a generic document extension. Is is intended to contains (key,value) pairs, where value can be either simple or  a list of values.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Entry" type="sml:EntryType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
