<?xml version="1.0" encoding="UTF-8"?>
<!--
Autor: Damian Nowak, http://www.nowaker.net/, e-mail damian@moja_domena
Użycie WYŁĄCZNIE w celach edukacyjnych.
Publikowanie bez wiedzy i zgody autora ZABRONIONE.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:simpleType name="typ_mime">
		<xs:restriction base="xs:string">
			<xs:minLength value="8"/>
			<xs:maxLength value="20"/>
			<xs:enumeration value="image/jpeg"/>
			<xs:enumeration value="image/png"/>
			<xs:enumeration value="image/svg+xml"/>
			<xs:enumeration value="text/html"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="wiedza">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dyscyplina"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="dyscyplina">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dzial"/>
			</xs:sequence>
			<xs:attribute name="nazwa" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="chemia"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="dzial">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="zagadnienie" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="nazwa" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="podstawy"/>
						<xs:enumeration value="zaawansowane"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="zagadnienie">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="nazwa"/>
				<xs:element ref="definicja"/>
				<xs:element ref="opis"/>
				<xs:element ref="przyklad"/>
				<xs:element ref="bibliografia" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="typ" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="pojęcie"/>
						<xs:enumeration value="wzór chemiczny"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="nazwa" type="xs:string"/>
	<xs:element name="definicja" type="xs:string"/>
	<xs:element name="opis" type="xs:string"/>
	<xs:element name="przyklad">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="plik"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="plik">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:anyURI">
					<xs:attribute name="rozmiar" type="xs:integer" use="optional"/>
					<xs:attribute name="format" type="typ_mime" use="required"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="bibliografia">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="nazwa"/>
				<xs:choice>
					<xs:element ref="plik"/>
					<xs:sequence>
						<xs:element ref="autor" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="rok"/>
						<xs:element ref="wydawnictwo"/>
						<xs:element ref="isbn"/>
					</xs:sequence>
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="autor" type="xs:string"/>
	<xs:element name="rok">
		<xs:simpleType>
			<xs:restriction base="xs:short">
				<xs:minInclusive value="1600"/>
				<xs:maxInclusive value="2010"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="wydawnictwo" type="xs:string"/>
	<xs:element name="isbn">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:pattern value="\d{2}-\d{2}-\d{5}-\d{1}"/>
				<xs:pattern value="\d{3}-\d{2}-\d{3}-\d{4}-\d{1}"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
</xs:schema>

