<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed Materials - Property of IBM

	IBM Cognos Products: cclcore

	(C) Copyright IBM Corp. 2005, 2015

	US Government Users Restricted Rights - Use, duplication or disclosure restricted 
	by GSA ADP Schedule Contract with IBM Corp.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="resources">
		<xs:annotation>
			<xs:documentation>The root element</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="memoryManagement">
					<xs:annotation>
						<xs:documentation>
							This element is used to configure the memory
							management of the I18NString UTF-8 to/from
							UTF-16 conversions. The
							"UTF8BytesPerCodePoint" attribute indicates
							how many bytes in a UTF-8 sequence an
							Unicode code point will require on average.
							The "MaxUTF16BytesPerCodePoint" attribute indicates 
							how many bytes to allocate for a UTF-16 encoded code point. 
							Valid values are 2 and 4, the default is 2.
						</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="UTF8BytesPerCodePoint" type="xs:float" use="optional" default="2.5"/>
						<xs:attribute name="MaxUTF16BytesPerCodePoint" type="xs:int" use="optional" default="2"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="replaceScaledZeroNumbers">
					<xs:annotation>
						<xs:documentation>
							This element is used to enable the
							replacement of a value that has been scaled
							to zero. For example, given -25000.3 with an
							applied scale of -6 and decimal position of
							0, the scaled number will be 0. This can be
							replaced by a user specified character in
							the report spec properties, or left as zero.
							The "allowReplace" attribute indicates
							whether the replacement is enabled ("true")
							or disabled ("false"). By default
							replacement of a scaled zero value is
							disabled.
						</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="allowReplace" type="xs:boolean" use="optional" default="false"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="allowNegativeZero">
					<xs:complexType>
						<xs:attribute name="value" type="xs:boolean" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="input" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:attribute name="encoding" type="xs:string" use="required"/>
						<xs:attribute name="sequence" type="xs:string" use="required"/>
						<xs:attribute name="replacement" type="xs:string" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="output" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:attribute name="encoding" type="xs:string" use="required"/>
						<xs:attribute name="sequence" type="xs:string" use="required"/>
						<xs:attribute name="replacement" type="xs:string" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="nonNormalizableCharacters" minOccurs="0">
					<xs:annotation>
						<xs:documentation>
							The character and character sequences which
							will not be affected by normalization.
						</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute name="inUse" type="xs:boolean" use="required"/>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="locales">
					<xs:annotation>
						<xs:documentation>
							The optional decimalSeparator, listSeparator and groupingSeparator attributes will overwrite the default setting for the locale from IBM Cognos.
							When overwriting, all the separators have to be in place (All or None).
							The decimalSeparator and listSeparator have to be different.
							The possible combinations for decimalSeparator and listSeparator would be: (Comma ',', Semicolon ';') or (Period '.', Semicolon ';') or (Period '.', Comma ',').
							And the groupingSeparator has to be different from decimalSeparator too.
						</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="locale" maxOccurs="unbounded">
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:string">
											<xs:attribute name="defaultVariant" type="xs:string" use="optional"/>
											<xs:attribute name="csvEncoding" use="required">
												<xs:simpleType>
													<xs:restriction base="xs:string"/>
												</xs:simpleType>
											</xs:attribute>
											<xs:attribute name="lcid" type="xs:string" use="optional"/>
											<xs:attribute name="isRTL" type="xs:boolean" use="optional"/>
											<xs:attribute name="zeroDigit" type="xs:string" use="optional"/>
											<xs:attribute name="decimalSeparator" type="xs:string" use="optional"/>
											<xs:attribute name="listSeparator" type="xs:string" use="optional"/>
											<xs:attribute name="groupingSeparator" type="xs:string" use="optional"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="langLocMappingTable">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="2"/>
												<xs:maxLength value="3"/>
												<xs:pattern value="[a-z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="5"/>
												<xs:maxLength value="6"/>
												<xs:pattern value="[a-z,-]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ISOCountryCodeToISOCurrencyCode">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="3"/>
												<xs:maxLength value="3"/>
												<xs:pattern value="[A-Z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:maxLength value="3"/>
												<xs:minLength value="3"/>
												<xs:pattern value="[A-Z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="currencyCodeMappingTable">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="3"/>
												<xs:maxLength value="3"/>
												<xs:pattern value="[A-Z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:maxLength value="3"/>
												<xs:minLength value="3"/>
												<xs:pattern value="[A-Z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="LCIDtoCurrencyCodeMappingTable">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" type="xs:decimal" use="required"/>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:maxLength value="3"/>
												<xs:minLength value="3"/>
												<xs:pattern value="[A-Z]*"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ISOCurrencyCodetoSymbolMappingTable">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" type="xs:string" use="required"/>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string"/>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="timezones">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="timezone" type="xs:string" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="equivalentTimeZoneIDMappingTable">
					<xs:annotation>
						<xs:documentation>
							This element is used to define the mapping between an user-defined TimeZone ID
							and its equivalent TimeZone ID from the timezones list above.
						</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="key" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="3"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
									<xs:attribute name="value" use="required">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:minLength value="3"/>
											</xs:restriction>
										</xs:simpleType>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ja_substitution" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>
							Transliteration rules for japanese. The
							rules are generated by RTSConfig utility.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>