summaryrefslogtreecommitdiff
path: root/testxml
diff options
context:
space:
mode:
Diffstat (limited to 'testxml')
-rwxr-xr-xtestxml/xsd/checkfile.sh2
-rw-r--r--testxml/xsd/tmw.xsd185
-rwxr-xr-xtestxml/xsdcheck.sh3
3 files changed, 186 insertions, 4 deletions
diff --git a/testxml/xsd/checkfile.sh b/testxml/xsd/checkfile.sh
index e03c4da..90df1f1 100755
--- a/testxml/xsd/checkfile.sh
+++ b/testxml/xsd/checkfile.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
xmllint --format --schema tmw.xsd "${1}" 2>&1 >/dev/null | \
grep -v ": Skipping import of schema located at " | \
diff --git a/testxml/xsd/tmw.xsd b/testxml/xsd/tmw.xsd
index 8f7dd44..12149cb 100644
--- a/testxml/xsd/tmw.xsd
+++ b/testxml/xsd/tmw.xsd
@@ -430,6 +430,13 @@
skillsPatchFile: skills_patch.xml
skillsPatchDir: skills.d/*.xml
-->
+ <xs:simpleType name="skillType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="list"/>
+ <xs:enumeration value="vertical"/>
+ <xs:enumeration value="rectangle"/>
+ </xs:restriction>
+ </xs:simpleType>
<xs:element name="skills" type="root_skills"/>
<xs:complexType name="root_skills">
<xs:sequence>
@@ -456,13 +463,21 @@
<xs:attribute name="castingSkyAction" type="xs:string" use="optional"/>
<xs:attribute name="castingWaterAction" type="xs:string" use="optional"/>
<xs:attribute name="castingAnimation" type="xs:string" use="optional"/>
- <xs:attribute name="castingParticle" type="xs:string" use="optional"/>
+ <xs:attribute name="castingMissile-particle" type="xs:string" use="optional"/>
+ <xs:attribute name="castingMissile-z" type="xs:float" use="optional"/>
+ <xs:attribute name="castingMissile-lifetime" type="xs:int" use="optional"/>
+ <xs:attribute name="castingMissile-speed" type="xs:float" use="optional"/>
+ <xs:attribute name="castingMissile-diedistance" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-particle" type="xs:string" use="optional"/>
+ <xs:attribute name="missile-z" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-lifetime" type="xs:int" use="optional"/>
+ <xs:attribute name="missile-speed" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-diedistance" type="xs:float" use="optional"/>
<xs:attribute name="useTextParameter" type="bool" default="false"/>
<xs:attribute name="icon" type="xs:string" use="optional"/>
<xs:attribute name="level" type="xs:int" default="0"/>
<xs:attribute name="shortName" type="xs:string" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
- <xs:attribute name="particle" type="xs:string" use="optional"/>
<xs:attribute name="soundHit" type="xs:string" use="optional"/>
<xs:attribute name="soundHitDelay" type="xs:int" use="optional"/>
<xs:attribute name="soundMiss" type="xs:string" use="optional"/>
@@ -474,10 +489,14 @@
<xs:attribute name="missEffectId" type="xs:int" use="optional"/>
<xs:attribute name="srcEffectId" type="xs:string" use="optional"/>
<xs:attribute name="dstEffectId" type="xs:string" use="optional"/>
+ <xs:attribute name="x" type="xs:int" use="optional"/>
+ <xs:attribute name="y" type="xs:int" use="optional"/>
+ <xs:attribute name="autoTab" type="bool" use="optional"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="type" type="skillType" default="vertical"/>
</xs:complexType>
</xs:element>
</xs:choice>
@@ -656,6 +675,34 @@
<xs:attribute name="separator" type="xs:string" default=" "/>
</xs:complexType>
</xs:element>
+ <xs:element name="currency">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="unit">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="level">
+ <xs:complexType>
+ <xs:attribute name="symbol" type="xs:string" use="required"/>
+ <xs:attribute name="count" type="xs:int" use="required"/>
+ <xs:attribute name="round" type="xs:int" use="optional"/>
+ <xs:attribute name="separator" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="conversion" type="xs:int" default="1"/>
+ <xs:attribute name="mix" type="yesno" default="no"/>
+ <xs:attribute name="base" type="xs:string" default="ยค"/>
+ <xs:attribute name="round" type="xs:int" default="2"/>
+ <xs:attribute name="separator" type="xs:string" default=" "/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -787,6 +834,7 @@
<xs:attribute name="deadSortOffsetY" type="xs:int" default="31"/>
<xs:attribute name="avatar" type="xs:unsignedShort" default="0"/>
<xs:attribute name="allowDelete" type="bool" default="true"/>
+ <xs:attribute name="currency" type="xs:string" default=""/>
</xs:complexType>
</xs:element>
</xs:choice>
@@ -839,6 +887,9 @@
<xs:element name="replace" type="items_item_replace"/>
<xs:element name="drawAfter" type="items_item_draworder"/>
<xs:element name="drawBefore" type="items_item_draworder"/>
+ <xs:element name="inventory" type="items_item_menu"/>
+ <xs:element name="storage" type="items_item_menu"/>
+ <xs:element name="cart" type="items_item_menu"/>
</xs:choice>
<xs:attribute name="id" type="xs:int" use="required"/>
<xs:attribute name="type" type="items_item_type" default="other"/>
@@ -867,6 +918,10 @@
<xs:attribute name="drawPriority" type="xs:int" default="0"/>
<xs:attribute name="attack-range" type="xs:int" default="0"/>
<xs:attribute name="missile-particle" type="xs:string" use="optional"/>
+ <xs:attribute name="missile-z" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-lifetime" type="xs:int" use="optional"/>
+ <xs:attribute name="missile-speed" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-diedistance" type="xs:float" use="optional"/>
<xs:attribute name="hit-effect-id" type="xs:string" use="optional"/>
<xs:attribute name="critical-hit-effect-id" type="xs:string" use="optional"/>
<xs:attribute name="miss-effect-id" type="xs:string" use="optional"/>
@@ -1047,6 +1102,18 @@
<xs:enumeration value="all"/>
</xs:restriction>
</xs:simpleType>
+ <xs:complexType name="items_item_menu">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="menu">
+ <xs:complexType>
+ <xs:attribute name="name1" type="xs:string" use="optional"/>
+ <xs:attribute name="name2" type="xs:string" use="optional"/>
+ <xs:attribute name="command1" type="xs:string" use="optional"/>
+ <xs:attribute name="command2" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
<!--
SoundDB::loadXmlFile
soundsFile: sounds.xml
@@ -1067,6 +1134,69 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
+
+ <xs:element name="languages" type="root_languages"/>
+ <xs:complexType name="root_languages">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="language">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="icon" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="texts" type="root_texts"/>
+ <xs:complexType name="root_texts">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="text">
+ <xs:complexType>
+ <xs:attribute name="show" type="bool" default="false"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="itemoptions" type="root_itemoptions"/>
+ <xs:complexType name="root_itemoptions">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="option">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="field" type="xs:string" use="optional"/>
+ <xs:attribute name="field0" type="xs:string" use="optional"/>
+ <xs:attribute name="field1" type="xs:string" use="optional"/>
+ <xs:attribute name="field2" type="xs:string" use="optional"/>
+ <xs:attribute name="field3" type="xs:string" use="optional"/>
+ <xs:attribute name="field4" type="xs:string" use="optional"/>
+ <xs:attribute name="field5" type="xs:string" use="optional"/>
+ <xs:attribute name="field6" type="xs:string" use="optional"/>
+ <xs:attribute name="field7" type="xs:string" use="optional"/>
+ <xs:attribute name="field8" type="xs:string" use="optional"/>
+ <xs:attribute name="field9" type="xs:string" use="optional"/>
+ <xs:attribute name="field10" type="xs:string" use="optional"/>
+ <xs:attribute name="field11" type="xs:string" use="optional"/>
+ <xs:attribute name="field12" type="xs:string" use="optional"/>
+ <xs:attribute name="field13" type="xs:string" use="optional"/>
+ <xs:attribute name="field14" type="xs:string" use="optional"/>
+ <xs:attribute name="field15" type="xs:string" use="optional"/>
+ <xs:attribute name="field16" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
<!--
ColorDB::loadHair
hairColorFile: hair.xml
@@ -1257,6 +1387,10 @@
<xs:attribute name="wateraction" type="xs:string" default="waterattack"/>
<xs:attribute name="rideaction" type="xs:string" default="waterattack"/>
<xs:attribute name="missile-particle" type="xs:string" use="optional"/>
+ <xs:attribute name="missile-z" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-lifetime" type="xs:int" use="optional"/>
+ <xs:attribute name="missile-speed" type="xs:float" use="optional"/>
+ <xs:attribute name="missile-diedistance" type="xs:float" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="particlefx" type="xs:string"/>
@@ -1599,6 +1733,53 @@
</xs:sequence>
</xs:complexType>
+ <xs:element name="groups" type="root_groups"/>
+ <xs:complexType name="root_groups">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="group">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="commands" type="groups_commands" />
+ <xs:element name="permissions" type="groups_permissions" />
+ </xs:choice>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" default=""/>
+ <xs:attribute name="longName" type="xs:string" default=""/>
+ <xs:attribute name="showBadge" type="bool" default="false"/>
+ <xs:attribute name="badge" type="xs:string" use="optional"/>
+ <xs:attribute name="inherit" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="groups_commands">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="command">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="use" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="groups_permissions">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="permission">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="enable" type="bool" default="true"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
<!-- probably not all tags correct here -->
<xs:element name="homunculuses" type="root_homunculuses"/>
<xs:complexType name="root_homunculuses">
diff --git a/testxml/xsdcheck.sh b/testxml/xsdcheck.sh
index 519fb59..6fea514 100755
--- a/testxml/xsdcheck.sh
+++ b/testxml/xsdcheck.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
cd xsd
DIR="$(pwd)/../../../client-data"
@@ -26,6 +26,7 @@ check equipmentslots.xml
check equipmentwindow.xml
check evol.manaplus
check features.xml
+check groups.xml
check homunculuses.xml
check horses.xml
check itemcolors.xml