diff options
Diffstat (limited to 'testxml')
-rwxr-xr-x | testxml/xsd/checkfile.sh | 2 | ||||
-rw-r--r-- | testxml/xsd/tmw.xsd | 185 | ||||
-rwxr-xr-x | testxml/xsdcheck.sh | 3 |
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 |