<xs:schema xmlns="http://пф.рф/КВАФ/2019-01-16" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://пф.рф/КВАФ/2019-01-16" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:annotation>
		<xs:documentation>Схема файла классификаторов</xs:documentation>
	</xs:annotation>
	<xs:element name="ЭДПФР">
		<xs:annotation>
			<xs:documentation>Корневой элемент. Электронный документ КВАФ (Классификатор). Содержит сведения самого документа и служебную информацию об электронном документе.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="КВАФ">
					<xs:annotation>
						<xs:documentation>Справочник Ключ-Значение(я)</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="КодИнформационногоОбмена" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Код информационного обмена формата, в котором используется справочник.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="КодыДокументов" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Перечень кодов документов, в которых используется справочник.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="КодДокумента" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>Код документа, в котором используется справочник.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Описание" type="xs:string">
								<xs:annotation>
									<xs:documentation>Описание справочника</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Структура">
								<xs:annotation>
									<xs:documentation>Описание структуры справочника (порядок и наименования столбцов)</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:annotation>
										<xs:documentation>Описание структуры таблицы классификатора</xs:documentation>
									</xs:annotation>
									<xs:sequence>
										<xs:element name="Столбец" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>Перечень столбцов таблицы классификатора</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:annotation>
													<xs:documentation>Столбец таблицы классификатора</xs:documentation>
												</xs:annotation>
												<xs:simpleContent>
													<xs:extension base="xs:string">
														<xs:attribute name="Номер" type="xs:string" use="required">
															<xs:annotation>
																<xs:documentation>Номер столбца таблицы</xs:documentation>
															</xs:annotation>
														</xs:attribute>
														<xs:attribute name="Код" type="xs:string" use="optional">
															<xs:annotation>
																<xs:documentation>Код значения ключа, соответствующего этому столбцу</xs:documentation>
															</xs:annotation>
														</xs:attribute>
														<xs:attribute name="Ширина" type="xs:integer" default="1">
															<xs:annotation>
																<xs:documentation>Ширина столбца</xs:documentation>
															</xs:annotation>
														</xs:attribute>
													</xs:extension>
												</xs:simpleContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Ключ" type="ТипКлюч" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Перечень ключей (допустимы вложенные) справочника</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="Код" type="xs:string" use="required">
							<xs:annotation>
								<xs:documentation>Название (код) справочника</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="Наименование" type="xs:string" use="required">
							<xs:annotation>
								<xs:documentation>Наименование справочника (для отображения)</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>			
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="ТипКлюч">
		<xs:annotation>
			<xs:documentation>Тип, использующийся для описания блока Ключ, который может содержать либо вложенные блоки этого же типа, либо значения</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:annotation>
				<xs:documentation>Указывается последовательность вложенных ключей либо перечень ключей (допустимы вложенные) справочника</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:annotation>
					<xs:documentation>Последовательность вложенных ключей</xs:documentation>
				</xs:annotation>
				<xs:element name="Ключ" type="ТипКлюч" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Перечень ключей (допустимы вложенные) справочника</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:sequence>
				<xs:annotation>
					<xs:documentation>Последовательность значений ключа</xs:documentation>
				</xs:annotation>
				<xs:element name="Значение" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Значение для ключа классификатора</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute name="Код" type="xs:string" use="required">
									<xs:annotation>
										<xs:documentation>Код значения ключа</xs:documentation>
									</xs:annotation>
								</xs:attribute>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:choice>
		<xs:attribute name="Код" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Код ключа</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Название" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Название ключа</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
</xs:schema>