<?xml version="1.0" encoding="utf-8"?>
<schema
	xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:tns="https://github.com/mlocati/cldr-to-gettext-plural-rules"
	targetNamespace="https://github.com/mlocati/cldr-to-gettext-plural-rules"
	elementFormDefault="qualified"
>

	<element name="languages" type="tns:languagesType" />

	<complexType name="languagesType">
		<sequence>
			<element name="language" type="tns:languageType" minOccurs="1" maxOccurs="unbounded" />
		</sequence>
	</complexType>

	<complexType name="languageType">
		<sequence>
			<element name="category" type="tns:categoryType" minOccurs="1" maxOccurs="6" />
		</sequence>
		<attribute name="id" type="tns:languageIdType" use="required" />
		<attribute name="name" type="tns:languageNameType" use="required" />
		<attribute name="supersededBy" type="tns:languageIdType" use="optional" />
		<attribute name="script" type="tns:scriptNameType" use="optional" />
		<attribute name="territory" type="tns:territoryNameType" use="optional" />
		<attribute name="baseLanguage" type="tns:languageNameType" use="optional" />
		<attribute name="formula" type="tns:formulaType" use="required" />
	</complexType>

	<simpleType name="languageIdType">
		<restriction base="string">
			<pattern value="[a-z]{2,3}(_[A-Z]{2})?"/>
		</restriction>
	</simpleType>

	<simpleType name="languageNameType">
		<restriction base="string">
			<minLength value="1" />
		</restriction>
	</simpleType>

	<simpleType name="scriptNameType">
		<restriction base="string">
			<minLength value="1" />
		</restriction>
	</simpleType>

	<simpleType name="territoryNameType">
		<restriction base="string">
			<minLength value="1" />
		</restriction>
	</simpleType>

	<simpleType name="formulaType">
		<restriction base="string">
			<pattern value="[n%0-9 ()?:|=!&gt;&lt;&amp;]{1,}" />
		</restriction>
	</simpleType>

	<complexType name="categoryType">
		<attribute name="id" type="tns:categoryIdType" use="required" />
		<attribute name="examples" type="tns:examplesType" use="required" />
	</complexType>

	<simpleType name="categoryIdType">
		<restriction base="string">
			<enumeration value="zero" />
			<enumeration value="one" />
			<enumeration value="two" />
			<enumeration value="few" />
			<enumeration value="many" />
			<enumeration value="other" />
		</restriction>
	</simpleType>

	<simpleType name="examplesType">
		<restriction base="string">
			<pattern value="[0-9, ~]{1,}…?" />
		</restriction>
	</simpleType>

</schema>
