<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Locale" type="LocaleType"/>
    
	<xs:complexType name="LocaleType">
		<xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element name="Localizations" type="LocalizationsType" maxOccurs="1"/>
			<xs:element name="Translations" type="TranslationsType" maxOccurs="1"/>
            <xs:element name="Images" type="ImagesType" maxOccurs="1"/>
		</xs:choice>
        <xs:attribute name="language" type="xs:string" use="required"/>
        <xs:attribute name="languageCode" type="xs:string" use="required"/>
	</xs:complexType>

    <xs:complexType name="LocalizationsType">
			<xs:sequence maxOccurs="1" minOccurs="0">
			<xs:element name="DateFormats" type="DateFormatsType" maxOccurs="1" minOccurs="0"/>
            <xs:element name="NumberFormats" type="NumberFormatsType" maxOccurs="1" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
    <xs:complexType name="DateFormatsType">
    	<xs:sequence maxOccurs="1" minOccurs="0">
			<xs:element name="Date" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
			<xs:element name="ShortDate" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
            <xs:element name="DateTime" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
			<xs:element name="Time" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
			<xs:element name="CustomDate" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
			<xs:element name="PickerDaySuffix" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
			<xs:element name="PickerYearSuffix" type="DateFormatType" maxOccurs="1" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
    <xs:complexType name="DateFormatType">
        <xs:attribute name="value" type="xs:string" use="required"/>
	</xs:complexType>
    <xs:complexType name="NumberFormatsType">
    	<xs:sequence maxOccurs="1" minOccurs="0">
			<xs:element name="DecimalSeparator" type="NumberFormatSeperatorType" maxOccurs="1" minOccurs="0"/>
            <xs:element name="ThousandSeparator" type="NumberFormatSeperatorType" maxOccurs="1" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
    <xs:complexType name="NumberFormatSeperatorType">
        <xs:attribute name="value" type="xs:string" use="required"/>
	</xs:complexType>

	<xs:complexType name="TranslationsType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Framework" type="LabelsType" maxOccurs="1"/>
            <xs:element name="Global" type="LabelsType" maxOccurs="1"/>
            <xs:element name="UserInterfaceContracts" type="UserInterfacesType" maxOccurs="1"/>
            <xs:element name="ConfirmationMessages" type="ConfirmationMessagesType" maxOccurs="1"/>
            <xs:element name="ValidationMessages" type="ValidationMessagesType" maxOccurs="1"/>
            <xs:element name="NavigationLabels" type="NavigationLabelsType" maxOccurs="1"/>
            <xs:element name="AdvancedSearch" type="AdvancedSearchObjectsType" maxOccurs="1"/>
            <xs:element name="PrintLayouts" type="PrintLayoutsType" maxOccurs="1"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="LabelsType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Label" type="LabelType"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="LabelsTypeWithId">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Label" type="LabelType"/>
		</xs:choice>
        <xs:attribute type="xs:string" name="id" use="required"/>
	</xs:complexType>

	<xs:complexType name="LabelType">
		<xs:attribute type="xs:string" name="id" use="required"/>
		<xs:attribute type="xs:string" name="text" use="required"/>
		<xs:attribute type="xs:string" name="translationStatus"/>
	</xs:complexType>

    <xs:complexType name="UserInterfacesType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="UserInterface" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType>

    <xs:complexType name="ConfirmationMessagesType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Process" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType>

    <xs:complexType name="ValidationMessagesType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="BusinessObject" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType> 

    <xs:complexType name="NavigationLabelsType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Process" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType>

    <xs:complexType name="AdvancedSearchObjectsType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="AdvancedSearchObject" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType>

    <xs:complexType name="PrintLayoutsType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="PrintLayout" type="LabelsTypeWithId"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="ImagesType">
    	<xs:choice maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Image" type="ImageType"/>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="ImageType">
		<xs:attribute type="xs:string" name="id" use="required"/>
		<xs:attribute type="xs:string" name="alternativeId" use="required"/>
	</xs:complexType>

</xs:schema>