From 3b20fab61e92ceaea339f766bf220bedda71db77 Mon Sep 17 00:00:00 2001
From: MELERIX <MELERIX@users.noreply.github.com>
Date: Fri, 14 Sep 2012 07:18:27 +0000
Subject: [PATCH] BETA: Minor Cleanup for [9183] (Passive Skills don't need
 skillType), also Fixed/Updated XSD for [9178].

---
 .../game/data/stats/skills/22000-22099.xml    |   3 -
 .../game/data/stats/skills/26000-26099.xml    |   3 -
 .../dist/game/data/xsd/transformations.xsd    | 793 ++++++++++--------
 3 files changed, 462 insertions(+), 337 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml
index 5d2cabb4e8..8f6c6f8841 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml
@@ -633,7 +633,6 @@
 		<table name="#bonusExp"> 30 50 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<add order="0x40" stat="bonusExp" val="#bonusExp" />
@@ -644,7 +643,6 @@
 		<table name="#bonusSp"> 30 50 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<add order="0x40" stat="bonusSp" val="#bonusSp" />
@@ -655,7 +653,6 @@
 		<table name="#bonus"> 3 5 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<effect name="CrystalGradeModify" abnormalTime="-1" val="#bonus" />
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml
index 29d5a7c6a7..930f389a8d 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml
@@ -570,7 +570,6 @@
 		<table name="#bonusExp"> 10 20 30 40 50 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<add order="0x40" stat="bonusExp" val="#bonusExp" />
@@ -581,7 +580,6 @@
 		<table name="#bonusSp"> 10 20 30 40 50 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<add order="0x40" stat="bonusSp" val="#bonusSp" />
@@ -592,7 +590,6 @@
 		<table name="#bonus"> 1 2 3 4 5 </table>
 		<set name="magicLvl" val="1" />
 		<set name="operateType" val="P" />
-		<set name="skillType" val="BUFF" />
 		<set name="target" val="TARGET_SELF" />
 		<for>
 			<effect name="CrystalGradeModify" abnormalTime="-1" val="#bonus" />
diff --git a/L2J_DataPack_BETA/dist/game/data/xsd/transformations.xsd b/L2J_DataPack_BETA/dist/game/data/xsd/transformations.xsd
index bc1600726a..49ca91ef3a 100644
--- a/L2J_DataPack_BETA/dist/game/data/xsd/transformations.xsd
+++ b/L2J_DataPack_BETA/dist/game/data/xsd/transformations.xsd
@@ -1,336 +1,467 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-	<xs:element name="list">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="transform">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="Male">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="collision" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:float" name="radius" />
-														<xs:attribute type="xs:float" name="height" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="moving" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:float" name="walk" />
-														<xs:attribute type="xs:float" name="run" />
-														<xs:attribute type="xs:float" name="waterWalk" />
-														<xs:attribute type="xs:float" name="waterRun" />
-														<xs:attribute type="xs:float" name="flyWalk" />
-														<xs:attribute type="xs:float" name="flyRun" />
-														<xs:attribute type="xs:float" name="unknownWalk" />
-														<xs:attribute type="xs:float" name="unknownRun" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="skills" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="skill" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:short" name="id" use="optional" />
-																	<xs:attribute type="xs:byte" name="level" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="additional_skills" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="skill" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:short" name="id" use="optional" />
-																	<xs:attribute type="xs:byte" name="level" use="optional" />
-																	<xs:attribute type="xs:byte" name="minLevel" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element type="xs:string" name="actions" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:string" name="base_attack_type" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:integer" name="base_attack_range" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_random_damage" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:short" name="base_attack_speed" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_critical_prob" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_physical_attack" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_magical_attack" minOccurs="0" maxOccurs="1" />
-										<xs:element name="items" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="item" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:integer" name="id" />
-																	<xs:attribute type="xs:boolean" name="allowed" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="basic_stat" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="str" />
-														<xs:attribute type="xs:byte" name="int" />
-														<xs:attribute type="xs:byte" name="con" />
-														<xs:attribute type="xs:byte" name="dex" />
-														<xs:attribute type="xs:byte" name="wit" />
-														<xs:attribute type="xs:byte" name="men" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="base_defend" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="chest" />
-														<xs:attribute type="xs:byte" name="legs" />
-														<xs:attribute type="xs:byte" name="head" />
-														<xs:attribute type="xs:byte" name="feet" />
-														<xs:attribute type="xs:byte" name="gloves" />
-														<xs:attribute type="xs:byte" name="underwear" />
-														<xs:attribute type="xs:byte" name="cloak" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="base_magic_defend" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="rear" />
-														<xs:attribute type="xs:byte" name="lear" />
-														<xs:attribute type="xs:byte" name="rfinger" />
-														<xs:attribute type="xs:byte" name="lfinger" />
-														<xs:attribute type="xs:byte" name="neck" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="levels" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="level" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:byte" name="val" use="optional" />
-																	<xs:attribute type="xs:float" name="bonus" use="optional" />
-																	<xs:attribute type="xs:float" name="hp_regen" use="optional" />
-																	<xs:attribute type="xs:float" name="mp_regen" use="optional" />
-																	<xs:attribute type="xs:float" name="cp_regen" use="optional" />
-																	<xs:attribute type="xs:short" name="str" use="optional" />
-																	<xs:attribute type="xs:short" name="int" use="optional" />
-																	<xs:attribute type="xs:short" name="con" use="optional" />
-																	<xs:attribute type="xs:byte" name="dex" use="optional" />
-																	<xs:attribute type="xs:short" name="wit" use="optional" />
-																	<xs:attribute type="xs:short" name="men" use="optional" />
-																	<xs:attribute type="xs:float" name="hp" use="optional" />
-																	<xs:attribute type="xs:float" name="mp" use="optional" />
-																	<xs:attribute type="xs:float" name="cp" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-								</xs:complexType>
-							</xs:element>
-							<xs:element name="Female">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="collision" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:float" name="radius" />
-														<xs:attribute type="xs:float" name="height" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="moving" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:float" name="walk" />
-														<xs:attribute type="xs:float" name="run" />
-														<xs:attribute type="xs:float" name="waterWalk" />
-														<xs:attribute type="xs:float" name="waterRun" />
-														<xs:attribute type="xs:float" name="flyWalk" />
-														<xs:attribute type="xs:float" name="flyRun" />
-														<xs:attribute type="xs:float" name="unknownWalk" />
-														<xs:attribute type="xs:float" name="unknownRun" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="skills" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="skill" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:short" name="id" use="optional" />
-																	<xs:attribute type="xs:byte" name="level" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="additional_skills" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="skill" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:short" name="id" use="optional" />
-																	<xs:attribute type="xs:byte" name="level" use="optional" />
-																	<xs:attribute type="xs:byte" name="minLevel" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element type="xs:string" name="actions" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:string" name="base_attack_type" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:integer" name="base_attack_range" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_random_damage" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:short" name="base_attack_speed" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_critical_prob" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_physical_attack" minOccurs="0" maxOccurs="1" />
-										<xs:element type="xs:byte" name="base_magical_attack" minOccurs="0" maxOccurs="1" />
-										<xs:element name="items" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="item" maxOccurs="unbounded">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:integer" name="id" />
-																	<xs:attribute type="xs:boolean" name="allowed" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="basic_stat" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="str" />
-														<xs:attribute type="xs:byte" name="int" />
-														<xs:attribute type="xs:byte" name="con" />
-														<xs:attribute type="xs:byte" name="dex" />
-														<xs:attribute type="xs:byte" name="wit" />
-														<xs:attribute type="xs:byte" name="men" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="base_defend" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="chest" />
-														<xs:attribute type="xs:byte" name="legs" />
-														<xs:attribute type="xs:byte" name="head" />
-														<xs:attribute type="xs:byte" name="feet" />
-														<xs:attribute type="xs:byte" name="gloves" />
-														<xs:attribute type="xs:byte" name="underwear" />
-														<xs:attribute type="xs:byte" name="cloak" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="base_magic_defend" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:simpleContent>
-													<xs:extension base="xs:string">
-														<xs:attribute type="xs:byte" name="rear" />
-														<xs:attribute type="xs:byte" name="lear" />
-														<xs:attribute type="xs:byte" name="rfinger" />
-														<xs:attribute type="xs:byte" name="lfinger" />
-														<xs:attribute type="xs:byte" name="neck" />
-													</xs:extension>
-												</xs:simpleContent>
-											</xs:complexType>
-										</xs:element>
-										<xs:element name="levels" minOccurs="0" maxOccurs="1">
-											<xs:complexType>
-												<xs:sequence>
-													<xs:element name="level" maxOccurs="unbounded" minOccurs="0">
-														<xs:complexType>
-															<xs:simpleContent>
-																<xs:extension base="xs:string">
-																	<xs:attribute type="xs:byte" name="val" use="optional" />
-																	<xs:attribute type="xs:float" name="bonus" use="optional" />
-																	<xs:attribute type="xs:float" name="hp_regen" use="optional" />
-																	<xs:attribute type="xs:float" name="mp_regen" use="optional" />
-																	<xs:attribute type="xs:float" name="cp_regen" use="optional" />
-																	<xs:attribute type="xs:short" name="str" use="optional" />
-																	<xs:attribute type="xs:short" name="int" use="optional" />
-																	<xs:attribute type="xs:short" name="con" use="optional" />
-																	<xs:attribute type="xs:byte" name="dex" use="optional" />
-																	<xs:attribute type="xs:short" name="wit" use="optional" />
-																	<xs:attribute type="xs:short" name="men" use="optional" />
-																	<xs:attribute type="xs:float" name="hp" use="optional" />
-																	<xs:attribute type="xs:float" name="mp" use="optional" />
-																	<xs:attribute type="xs:float" name="cp" use="optional" />
-																</xs:extension>
-															</xs:simpleContent>
-														</xs:complexType>
-													</xs:element>
-												</xs:sequence>
-											</xs:complexType>
-										</xs:element>
-									</xs:sequence>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-						<xs:attribute type="xs:short" name="id" />
-						<xs:attribute type="xs:string" name="type" />
-						<xs:attribute type="xs:byte" name="can_swim" />
-						<xs:attribute type="xs:short" name="spawn_height" use="optional" />
-						<xs:attribute type="xs:byte" name="normal_attackable" />
-					</xs:complexType>
+	<xs:element name="list">
+		<xs:complexType>
+			<xs:sequence maxOccurs="1" minOccurs="1">
+				<xs:element name="transform" maxOccurs="1" minOccurs="1">
+					<xs:complexType>
+						<xs:sequence maxOccurs="1" minOccurs="1">
+							<xs:element name="Male" maxOccurs="1" minOccurs="1">
+								<xs:complexType>
+									<xs:sequence maxOccurs="1" minOccurs="1">
+										<xs:element name="collision" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="height" type="xs:decimal" use="required" />
+												<xs:attribute name="radius" type="xs:decimal" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="moving" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="flyRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="flyWalk" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="run" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="walk" type="xs:decimal" use="required" />
+												<xs:attribute name="waterRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="waterWalk" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="unknownRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="unknownWalk" type="xs:nonNegativeInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="skills" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="skill" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="level" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="additional_skills" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="skill" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="level" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="minLevel">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="actions" maxOccurs="1" minOccurs="1">
+											<xs:simpleType>
+												<xs:restriction base="xs:normalizedString" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_type" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:token">
+													<xs:enumeration value="bow" />
+													<xs:enumeration value="dual" />
+													<xs:enumeration value="sword" />
+												</xs:restriction>
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_range" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_random_damage" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_speed" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_critical_prob" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_physical_attack" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_magical_attack" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="items" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="item" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="allowed" type="xs:boolean" use="required" />
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="basic_stat" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="con" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="dex" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="int" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="men" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="str" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="wit" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="base_defend" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="chest" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="cloak" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="feet" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="gloves" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="head" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="legs" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="underwear" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="base_magic_defend" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="lear" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="lfinger" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="neck" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="rear" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="rfinger" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="levels" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="level" maxOccurs="99" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="bonus" type="xs:decimal" use="required" />
+															<xs:attribute name="con" type="xs:integer" use="required" />
+															<xs:attribute name="cp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="cp" type="xs:decimal" use="required" />
+															<xs:attribute name="dex" type="xs:integer" use="required" />
+															<xs:attribute name="hp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="hp" type="xs:decimal" use="required" />
+															<xs:attribute name="int" type="xs:integer" use="required" />
+															<xs:attribute name="men" type="xs:integer" use="required" />
+															<xs:attribute name="mp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="mp" type="xs:decimal" use="required" />
+															<xs:attribute name="str" type="xs:integer" use="required" />
+															<xs:attribute name="val" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="wit" type="xs:integer" use="required" />
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="Female" maxOccurs="1" minOccurs="1">
+								<xs:complexType>
+									<xs:sequence maxOccurs="1" minOccurs="1">
+										<xs:element name="collision" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="height" type="xs:decimal" use="required" />
+												<xs:attribute name="radius" type="xs:decimal" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="moving" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="flyRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="flyWalk" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="run" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="walk" type="xs:decimal" use="required" />
+												<xs:attribute name="waterRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="waterWalk" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="unknownRun" type="xs:nonNegativeInteger" use="required" />
+												<xs:attribute name="unknownWalk" type="xs:nonNegativeInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="skills" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="skill" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="level" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="additional_skills" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="skill" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="level" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="minLevel">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="actions" maxOccurs="1" minOccurs="1">
+											<xs:simpleType>
+												<xs:restriction base="xs:normalizedString" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_type" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:token">
+													<xs:enumeration value="bow" />
+													<xs:enumeration value="dual" />
+													<xs:enumeration value="sword" />
+												</xs:restriction>
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_range" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_random_damage" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_attack_speed" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_critical_prob" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_physical_attack" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="base_magical_attack" maxOccurs="1" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:positiveInteger" />
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="items" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="item" maxOccurs="unbounded" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="allowed" type="xs:boolean" use="required" />
+															<xs:attribute name="id" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="65535" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="basic_stat" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="con" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="dex" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="int" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="men" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="str" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="wit" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="base_defend" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="chest" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="cloak" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="feet" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="gloves" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="head" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="legs" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="underwear" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="base_magic_defend" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:attribute name="lear" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="lfinger" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="neck" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="rear" type="xs:positiveInteger" use="required" />
+												<xs:attribute name="rfinger" type="xs:positiveInteger" use="required" />
+											</xs:complexType>
+										</xs:element>
+										<xs:element name="levels" maxOccurs="1" minOccurs="0">
+											<xs:complexType>
+												<xs:sequence maxOccurs="1" minOccurs="1">
+													<xs:element name="level" maxOccurs="99" minOccurs="1">
+														<xs:complexType>
+															<xs:attribute name="bonus" type="xs:decimal" use="required" />
+															<xs:attribute name="con" type="xs:integer" use="required" />
+															<xs:attribute name="cp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="cp" type="xs:decimal" use="required" />
+															<xs:attribute name="dex" type="xs:integer" use="required" />
+															<xs:attribute name="hp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="hp" type="xs:decimal" use="required" />
+															<xs:attribute name="int" type="xs:integer" use="required" />
+															<xs:attribute name="men" type="xs:integer" use="required" />
+															<xs:attribute name="mp_regen" type="xs:decimal" use="required" />
+															<xs:attribute name="mp" type="xs:decimal" use="required" />
+															<xs:attribute name="str" type="xs:integer" use="required" />
+															<xs:attribute name="val" use="required">
+																<xs:simpleType>
+																	<xs:restriction base="xs:positiveInteger">
+																		<xs:minInclusive value="1" />
+																		<xs:maxInclusive value="99" />
+																	</xs:restriction>
+																</xs:simpleType>
+															</xs:attribute>
+															<xs:attribute name="wit" type="xs:integer" use="required" />
+														</xs:complexType>
+													</xs:element>
+												</xs:sequence>
+											</xs:complexType>
+										</xs:element>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+						<xs:attribute name="can_swim" use="required">
+							<xs:simpleType>
+								<xs:restriction base="xs:nonNegativeInteger">
+									<xs:minInclusive value="0" />
+									<xs:maxInclusive value="1" />
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:attribute>
+						<xs:attribute name="id" use="required">
+							<xs:simpleType>
+								<xs:restriction base="xs:positiveInteger">
+									<xs:minInclusive value="1" />
+									<xs:maxInclusive value="20003" />
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:attribute>
+						<xs:attribute name="normal_attackable" use="required">
+							<xs:simpleType>
+								<xs:restriction base="xs:nonNegativeInteger">
+									<xs:minInclusive value="0" />
+									<xs:maxInclusive value="1" />
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:attribute>
+						<xs:attribute name="spawn_height" type="xs:positiveInteger" />
+						<xs:attribute name="type" use="required">
+							<xs:simpleType>
+								<xs:restriction base="xs:token">
+									<xs:enumeration value="COMBAT" />
+									<xs:enumeration value="CURSED" />
+									<xs:enumeration value="FLYING" />
+									<xs:enumeration value="MODE_CHANGE" />
+									<xs:enumeration value="NON_COMBAT" />
+									<xs:enumeration value="PURE_STAT" />
+									<xs:enumeration value="RIDING_MODE" />
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:attribute>
+					</xs:complexType>
 				</xs:element>
 			</xs:sequence>
 		</xs:complexType>
-- 
GitLab