﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="IkxBase"
	targetNamespace="http://schemas.webs.idu.de/cardo3/Ikx/IkxStructure"
	 elementFormDefault="qualified"
	 xmlns="http://schemas.webs.idu.de/cardo3/Ikx/IkxStructure"
	 xmlns:mstns="http://schemas.webs.idu.de/cardo3/Ikx/IkxStructure"
     xmlns:ikxbase="http://schemas.webs.idu.de/cardo3/Ikx/IkxBase"
     xmlns:iduMl="http://schemas.webs.idu.de/cardo3/Multilang"
	 xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:import schemaLocation="ikxbase.xsd" namespace="http://schemas.webs.idu.de/cardo3/Ikx/IkxBase"></xs:import>
	<xs:import schemaLocation="..\MultiLang.xsd" namespace="http://schemas.webs.idu.de/cardo3/Multilang"></xs:import>
	<!--
  Allgemeine Typen
  -->
	<xs:simpleType name="groupSortString">
		<xs:restriction base="xs:string">
			<xs:minLength value="3" />
			<xs:maxLength value="3" />
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="entitySortHintString">
		<xs:restriction base="xs:string">
			<xs:minLength value="0" />
			<xs:maxLength value="10" />
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>

	</xs:simpleType>
	<xs:simpleType name="idString">
		<xs:restriction base="xs:token">
			<xs:minLength value="1"/>
			<xs:maxLength value="20"/>
			<xs:whiteSpace value="collapse" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="classIdString">
		<xs:restriction base="idString">

		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="labelString">
		<xs:restriction base="xs:string">
			<xs:minLength value="0" />
			<xs:maxLength value="255" />
			<xs:whiteSpace value="collapse" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="groupOrTabName">
		<xs:restriction base="xs:string">
			<xs:minLength value="0" />
			<xs:maxLength value="50" />
			<xs:whiteSpace value="collapse" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="netTypeNameString">
		<xs:restriction base="xs:string">
			<xs:minLength value="2" />
			<xs:maxLength value="255" />
			<xs:whiteSpace value="collapse" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="descriptionString">
		<xs:restriction base="xs:string">
			<xs:minLength value="0" />
			<xs:maxLength value="2000" />
			<xs:whiteSpace value="collapse" />
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="mlDescriptionString">
		<xs:sequence>
			<xs:element name="Txt" minOccurs="0" maxOccurs="unbounded" nillable="true">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="descriptionString">
							<xs:attribute name="lng" type="iduMl:MLLanguages" use="required"></xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="mlLabelString">
		<xs:sequence>
			<xs:element name="Txt" minOccurs="0" maxOccurs="unbounded" nillable="true">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="labelString">
							<xs:attribute name="lng" type="iduMl:MLLanguages" use="required"></xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="mlGroupOrTabName">
		<xs:sequence>
			<xs:element name="Txt" minOccurs="0" maxOccurs="unbounded" nillable="true">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="groupOrTabName">
							<xs:attribute name="lng" type="iduMl:MLLanguages" use="required"></xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!--
  ################################################################
    Definition für Entitäten    
  ################################################################    
  -->
	<!-- 
    Datentype MDSimpleTypes
  -->
	<xs:simpleType name="MDSimpleTypes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Text">
				<xs:annotation>
					<xs:documentation>
						Text bis 255 Zeichen.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Integer">
				<xs:annotation>
					<xs:documentation>Ganzzahl.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Decimal">
				<xs:annotation>
					<xs:documentation>Dezimalzahl.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="DateTime">
				<xs:annotation>
					<xs:documentation>Datum + Uhrzeit.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Bool">
				<xs:annotation>
					<xs:documentation>Ja/Nein.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CLob">
				<xs:annotation>
					<xs:documentation>Text &gt; 255 Zeichen.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BLob">
				<xs:annotation>
					<xs:documentation>Binärdaten (Dokumente und Bilder).</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Geometry">
				<xs:annotation>
					<xs:documentation>Geometriedaten (Flächen, Linien, Punkte).</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
    Möglich Vererbungsmodi
  -->
	<xs:simpleType name="MDInheritMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="None">
				<xs:annotation>
					<xs:documentation>Keine Vererbung.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Replace">
				<xs:annotation>
					<xs:documentation>Lokaler Wert setzt geerbte Werte außer Kraft.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Add">
				<xs:annotation>
					<xs:documentation>Lokaler Wert ergänzt geerbte Werte.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
    Bedeutungen für Entitäten
  -->
	<xs:simpleType name="MDEntityMeaningsEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="None" />
			<xs:enumeration value="Description">
				<xs:annotation>
					<xs:documentation>
						Beschreibung des Gegenstandes.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Keyword">
				<xs:annotation>
					<xs:documentation>
						Diese Entität speichert Schlüsselwörter.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CreationDate">
				<xs:annotation>
					<xs:documentation>
						Datum der Erzeugung.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="ModifyDate">
				<xs:annotation>
					<xs:documentation>
						Datum der letzten Änderung.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Title">
				<xs:annotation>
					<xs:documentation>
						Der Titel/Anzeigename des Gegenstandes.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="PersonFirstName">
				<xs:annotation>
					<xs:documentation>
						Der Vorname einer Person.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="PersonSurname">
				<xs:annotation>
					<xs:documentation>
						Der Zuname einer Person.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="FullTextSearchContent">
				<xs:annotation>
					<xs:documentation>
						Bei einer Suche nach "allem" mit berücksichtigen.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RangeQueryRecommended">
				<xs:annotation>
					<xs:documentation>
						Nur sinnvoll bei numerischen oder Datumsfeldern, bei einer Suche ist es hierbei sinnvoll 2 Felder für von - bis zu generieren.
						Kann durch Suchoberflächen ausgewertet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="IsEnumerationField">
				<xs:annotation>
					<xs:documentation>
						Diese Entität stellt einen eindeutigen Wert für eine Nachschlageliste dar.
						Wird bei der XSD Generierung berücksichtigt.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="ShowInSearchResultTitle">
				<xs:annotation>
					<xs:documentation>
						Bei der einfachen Suche in Puzzle werden nur die Node-Title ausgegeben.
						Hiermit können Felder definiert werden, die zusätzlich im Titel mit ausgegeben werden sollen.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="LocationCity">
				<xs:annotation>
					<xs:documentation>
						Ein Ortsname für das Objekt.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="LocationCountry">
				<xs:annotation>
					<xs:documentation>
						Ländername des Objektes.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="LocationDeliveryPoint">
				<xs:annotation>
					<xs:documentation>
						Anschrift, Straße, Hausnummer, etc.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MDEntityMeanings">
		<xs:list itemType="MDEntityMeaningsEnum"></xs:list>
	</xs:simpleType>
	<!-- use Hints für Entitäten -->
	<xs:simpleType name="MDEntityUsageHintEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Unknown" />
			<xs:enumeration value="Internal">
				<xs:annotation>
					<xs:documentation>
						Entität kann nicht geändert werden (readonly).
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="InTableProjection">
				<xs:annotation>
					<xs:documentation>
						Entität wird bei der Generierung als SQL für eine Tabellenansicht mit einbezogen.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="IsPrimaryGeomColumn">
				<xs:annotation>
					<xs:documentation>
						Diese Spalte ist die primäre Geometrie der Klasse, wird für die Anzeige als Geodatenebene benötigt.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="IsSearchable">
				<xs:annotation>
					<xs:documentation>
						Diese Entität ist durchsuchbar.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="OpenInputformOnEditorStart">
				<xs:annotation>
					<xs:documentation>
						Diese Entität wird beim Starten des Editors bereits als Eingabeformular geöffnet.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RenderComplexWithNavigationBar">
				<xs:annotation>
					<xs:documentation>
						Komplexe Klassen werden normalerweise als Liste gerendert, hier kann eingestellt werden, dass diese als Formular mit Navibar dargestellt werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="UseInDocumentTemplate">
				<xs:annotation>
					<xs:documentation>
						Wert der Entität wird als Zusatzinfo an das Dokument übernommen und kann dort mit angezeigt werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="AllUnchangeable">
				<xs:annotation>
					<xs:documentation>
						FlagMaske für alle im Editor unveränderbaren Flags, identisch mit Internal.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MDEntityUsageHint">
		<xs:list itemType="MDEntityUsageHintEnum"></xs:list>
	</xs:simpleType>
	<!--
    Datenfeld einer Klasse
  -->
	<xs:complexType name="MDClassEntity_Type" final="#all">
		<xs:sequence>
			<xs:choice>
				<xs:element name="SimpleType" maxOccurs="1" minOccurs="1" nillable="false" type="MDSimpleTypes">
					<xs:annotation>
						<xs:documentation>Datentyp.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="ClassType"  maxOccurs="1" minOccurs="1" nillable="false" type="idString">
					<xs:annotation>
						<xs:documentation>Die ID einer vorhandenen Datenklasse.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:element name="MainTypeConfig" type="xs:string" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Spezifische Einstellungen zum ausgewählten Datentyp.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Label" type="labelString" maxOccurs="1" minOccurs="1" nillable="false">
				<xs:annotation>
					<xs:documentation>Der Anzeigetitel dieser Klasse in der primären Sprache.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MLLabel" type="mlLabelString" maxOccurs="1" minOccurs="0" nillable="false">
				<xs:annotation>
					<xs:documentation>Weitere Anzeigetitel dieser Klasse.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Description" type="descriptionString" maxOccurs="1" minOccurs="0" nillable="false">
				<xs:annotation>
					<xs:documentation>Eine verbale Beschreibung in der primären Sprache.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MLDescription" type="mlDescriptionString" maxOccurs="1" minOccurs="0" nillable="false">
				<xs:annotation>
					<xs:documentation>Weitere Beschreibungen.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="AutoLabelIndex" type="xs:int" minOccurs="0" maxOccurs="1" nillable="true">
				<xs:annotation>
					<xs:documentation>
						Index für das Generieren einer automatischen Kurzbeschriftung. Der Wert kann NULL sein.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="SortHint" type="entitySortHintString" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Sortierreihenfolge der Entitäten (Anzeigereihenfolge).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="QueryHint" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Optionale Angabe für die Beschreibung von Suchhinweisen.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="ikxbase:NumericRange"></xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:choice>
				<xs:element name="SubType" type="netTypeNameString" minOccurs="0" maxOccurs="1" nillable="false">
					<xs:annotation>
						<xs:documentation>
							Der Name einer .Net Klasse die das Interface IDU.KmiLib.Ikx.Extension.IIkxDataFieldExtension implementiert.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="MimeType" minOccurs="0" maxOccurs="1" nillable="false">
					<xs:annotation>
						<xs:documentation>
							Arten von IDU.KmiLib.Ikx.MimeTypes.IMimeTypeHandler.
						</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="MimeTypeEmail"/>
							<xs:enumeration value="MimeTypeFileLink"/>
							<xs:enumeration value="MimeTypeHtml"/>
							<xs:enumeration value="MimeTypeUrl"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
			</xs:choice>
			<xs:element name="SubTypeConfig" type="xs:string" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Spezifische Einstellungen zur ausgewählten Erweiterung oder SubType.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FormRendererTypeName" type="netTypeNameString" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Name einer .Net Datenklasse die das Interface IIkxEntityFormRenderer implementiert.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FormRendererConfig" type="xs:string" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Spezifische Einstellungen des eingestellten Renderers.
					</xs:documentation>
				</xs:annotation>
			</xs:element>

		</xs:sequence>
		<xs:attribute name="classEntityId" type="idString">
			<xs:annotation>
				<xs:documentation>
					Eindeutiger Name dieser Entität innerhalb der übergeordneten Klasse.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="inheritMode" type="MDInheritMode" default="None">
			<xs:annotation>
				<xs:documentation>Gibt den Modus der Datenvererbung für diese Feld an.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="minOccurrance" type="xs:int" use="optional" default="1">
			<xs:annotation>
				<xs:documentation>Mindesvorkommen.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxOccurrance" type="xs:int" use="optional" default="1">
			<xs:annotation>
				<xs:documentation>Maximales Vorkommen.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="entityMeaning" type="MDEntityMeanings" default="None">
			<xs:annotation>
				<xs:documentation>
					Bedeutung der Spalte.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="useHint" type="MDEntityUsageHint" default="Unknown">
			<xs:annotation>
				<xs:documentation>
					Verwendungshinweis.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!--
  ################################################################
    Definition für Klassen
  ################################################################
  -->
	<!-- 
    Aufzählungstyp für Verwendung einer Klasse
    entspricht: MDClassUsageType
  -->
	<xs:simpleType name="MDClassUsageTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Unknown" />
			<xs:enumeration value="MtSourceMetaData">
				<xs:annotation>
					<xs:documentation>
						Klasse kann für IKX-Metadata verwendet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="IkxBasedKk">
				<xs:annotation>
					<xs:documentation>
						Klasse kann für IKX-Kleinkataster verwendet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="OgcServiceMetaData">
				<xs:annotation>
					<xs:documentation>
						Klasse kann für IKX-Dienstemetadaten verwendet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Internal">
				<xs:annotation>
					<xs:documentation>
						Klasse kann im Editor nicht geändert werden (readonly).
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Public">
				<xs:annotation>
					<xs:documentation>
						Klasse ist öffentlich und kann an weiteren Stellen verwendet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="ExportJobMetaData">
				<xs:annotation>
					<xs:documentation>
						Klasse kann für ExportJob-Metadaten verwendet werden.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CardoPuzzle">
				<xs:annotation>
					<xs:documentation>
						Verwendung in cardo.Puzzle, nur verfügbar, wenn ein Lizenz vorliegt.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="AllUnchangeable">
				<xs:annotation>
					<xs:documentation>
						FlagMaske für alle im Editor unveränderbaren Flags, z.Z. Internal.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MDClassUsageType">
		<xs:list itemType="MDClassUsageTypeEnum" />
	</xs:simpleType>
	<!-- 
    Aufzählungstyp für Bedeutungen einer Klasse
    entspricht: MDClassMeanings
  -->
	<xs:simpleType name="MDClassMeaningsEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="None"/>
			<xs:enumeration value="Person"/>
			<xs:enumeration value="Address"/>
			<xs:enumeration value="HandleAsEnumerationValue">
				<xs:annotation>
					<xs:documentation>
						Diese Klasse wird als Enumerationstyp verwendet (bei Datenaustausch).
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MDClassMeanings">
		<xs:list itemType="MDClassMeaningsEnum"></xs:list>
	</xs:simpleType>
	<!--
  MDClass_Type
  entspricht: MDClassDB
  -->
	<xs:complexType name="MDClass_Type">
		<xs:sequence maxOccurs="1" minOccurs="1">
			<xs:element name="Label" type="labelString" maxOccurs="1" minOccurs="1" nillable="false">
				<xs:annotation>
					<xs:documentation>Der Anzeigetitel dieser Klasse (Hinweis: ist Unique in der Datenbank) in der primären Sprache.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MLLabel" type="mlLabelString" minOccurs="0" maxOccurs="1" nillable="false">
				<xs:annotation>
					<xs:documentation>Weitere Anzeigetitel dieser Klasse.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Description" type="descriptionString" maxOccurs="1" minOccurs="0" nillable="false">
				<xs:annotation>
					<xs:documentation>Eine verbale Beschreibung in der primären Sprache.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MLDescription" type="mlDescriptionString" minOccurs="0" maxOccurs="1" nillable="false">
				<xs:annotation>
					<xs:documentation>Weitere Anzeigetitel dieser Klasse.</xs:documentation>
				</xs:annotation>
			</xs:element>

			<xs:element name="TabPage" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="MLTabName" type="mlGroupOrTabName" maxOccurs="1" minOccurs="0" nillable="false">
							<xs:annotation>
								<xs:documentation>Weitere Anzeigetitel der Tab-Karte.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="FieldGroup" minOccurs="1" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="MLFieldGroupName" type="mlGroupOrTabName" maxOccurs="1" minOccurs="0" nillable="false">
										<xs:annotation>
											<xs:documentation>Weitere Anzeigetitel der Gruppe.</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="Entity" minOccurs="1" maxOccurs="unbounded" type="MDClassEntity_Type" nillable="false">
										<xs:annotation>
											<xs:documentation>
												Die Datenfelder.
											</xs:documentation>
										</xs:annotation>
									</xs:element>
								</xs:sequence>
								<xs:attribute name="fieldGroupName" use="optional" type="groupOrTabName">
									<xs:annotation>
										<xs:documentation>Der Titel der Gruppe, der Titel (oder Name) muss eindeutig innerhalb dieser Tab sein.</xs:documentation>
									</xs:annotation>
								</xs:attribute>
								<xs:attribute name="fieldGroupSort" use="optional" type="groupSortString" default="000">
									<xs:annotation>
										<xs:documentation>
											Sortierhinweis für die Felder innerhalb der Tab-Karte, bestehend aus 3 Zeichen.
										</xs:documentation>
									</xs:annotation>
								</xs:attribute>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="tabName" use="optional" type="groupOrTabName">
						<xs:annotation>
							<xs:documentation>Der Titel des Tabs, der Titel (oder Name) muss eindeutig innerhalb dieser Klasse sein.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="tabSort" use="optional" type="groupSortString" default="000">
						<xs:annotation>
							<xs:documentation>
								Sortierhinweis für die Tab-Karte, bestehend aus 3 Zeichen.
							</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="FormRendererTypeName" type="netTypeNameString" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Name einer .Net Datenklasse die das Interface IIkxClassFormRenderer implementiert.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FormRendererConfig" type="xs:string" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Spezifische Einstellungen des eingestellten Renderers.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="classId" type="classIdString" use="required">
			<xs:annotation>
				<xs:documentation>Der systemweit eindeutige Bezeichner der Klasse.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isPrivate" type="xs:boolean" default="false">
			<xs:annotation>
				<xs:documentation>
					Gibt an, ob diese Klasse Private ist. D.H. die Klasse kann nur von genau einer Entität verwendet werden.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="useAsLookup" type="xs:boolean" default="false">
			<xs:annotation>
				<xs:documentation>
					Gibt an, ob diese Klasse als Nachschlagetyp verwaltet werden soll.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="useHint" type="MDClassUsageType" use="required">
			<xs:annotation>
				<xs:documentation>
					Flags für die Verwendungshinweise der Klasse.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="classMeaning" type="MDClassMeanings" use="optional" default="None">
			<xs:annotation>
				<xs:documentation>
					Semantische Bedeutung der Klasse.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="ClassDefintions">
		<xs:complexType>
			<xs:sequence>
				<xs:element type="MDClass_Type" name="Class" minOccurs="1" maxOccurs="unbounded"></xs:element>
			</xs:sequence>
			<xs:attribute name="primaryLanguage" type="iduMl:MLLanguages" default="De">
				<xs:annotation>
					<xs:documentation>Die primäre Sprache der Installation, siehe cardogis.com/itn.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
</xs:schema>