Advertisement
Motenten

baseSpellcastRules.xsd

Sep 22nd, 2012
1,355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 55.79 KB | None | 0 0
  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3.    xmlns:xi="http://www.w3.org/2001/XInclude"
  4.    targetNamespace="http://www.windower.net/spellcast/"
  5.    xmlns="http://www.windower.net/spellcast/"
  6.    elementFormDefault="qualified">
  7.  
  8.   <xs:import namespace="http://www.w3.org/2001/XInclude"
  9.             schemaLocation="xinclude.xsd"/>
  10.  
  11.   <xs:include schemaLocation="baseSpellcastCommon.xsd" />
  12.  
  13.   <!-- This .xsd can handle includes with rules, but not vars, groups and sets. -->
  14.  
  15.   <!-- Rules element design -->
  16.   <xs:complexType name="rulesType">
  17.     <xs:sequence minOccurs="0" maxOccurs="unbounded">
  18.       <xs:group ref="rule" />
  19.     </xs:sequence>
  20.   </xs:complexType>
  21.  
  22.   <xs:group name="rule">
  23.     <xs:choice>
  24.       <xs:group ref="actions" />
  25.       <xs:group ref="queuedActions" />
  26.       <xs:group ref="ifGroup" />
  27.       <xs:element ref="xi:include" />
  28.     </xs:choice>
  29.   </xs:group>
  30.  
  31.   <!-- Breakdown of rule types: basic actions -->
  32.   <xs:group name="actions">
  33.     <xs:choice>
  34.       <xs:choice>
  35.         <xs:element name="cancelspell" type="simpleCommand" />
  36.         <xs:element name="CancelSpell" type="simpleCommand" />
  37.       </xs:choice>
  38.       <xs:choice>
  39.         <xs:element name="showspellinfo" type="simpleCommand" />
  40.         <xs:element name="ShowSpellInfo" type="simpleCommand" />
  41.       </xs:choice>
  42.       <xs:choice>
  43.         <xs:element name="precastdelay" type="delayCommand" />
  44.         <xs:element name="PrecastDelay" type="delayCommand" />
  45.       </xs:choice>
  46.       <xs:choice>
  47.         <xs:element name="castdelay" type="delayCommand" />
  48.         <xs:element name="CastDelay" type="delayCommand" />
  49.       </xs:choice>
  50.       <xs:choice>
  51.         <xs:element name="midcastdelay" type="delayCommand" />
  52.         <xs:element name="MidcastDelay" type="delayCommand" />
  53.       </xs:choice>
  54.       <xs:choice>
  55.         <xs:element name="aftercastdelay" type="delayCommand" />
  56.         <xs:element name="AftercastDelay" type="delayCommand" />
  57.       </xs:choice>
  58.       <xs:choice>
  59.         <xs:element name="changespell" type="spellCommand" />
  60.         <xs:element name="ChangeSpell" type="spellCommand" />
  61.       </xs:choice>
  62.       <xs:choice>
  63.         <xs:element name="changetarget" type="targetCommand" />
  64.         <xs:element name="ChangeTarget" type="targetCommand" />
  65.       </xs:choice>
  66.       <xs:choice>
  67.         <xs:element name="defaulttarget" type="targetCommand" />
  68.         <xs:element name="DefaultTarget" type="targetCommand" />
  69.       </xs:choice>
  70.       <xs:choice>
  71.         <xs:element name="enable" type="slotCommand" />
  72.         <xs:element name="Enable" type="slotCommand" />
  73.       </xs:choice>
  74.       <xs:choice>
  75.         <xs:element name="disable" type="slotCommand" />
  76.         <xs:element name="Disable" type="slotCommand" />
  77.       </xs:choice>
  78.       <xs:element name="return" type="simpleCommand" />
  79.       <xs:element name="var" type="varCommand" />
  80.     </xs:choice>
  81.   </xs:group>
  82.  
  83.   <xs:complexType name="simpleCommand">
  84.   </xs:complexType>
  85.  
  86.   <xs:complexType name="delayCommand">
  87.     <xs:attribute name="delay" type="xs:decimal"/>
  88.     <xs:attribute name="Delay" type="xs:decimal"/>
  89.   </xs:complexType>
  90.  
  91.   <xs:complexType name="spellCommand">
  92.     <xs:attribute name="spell" type="xs:string"/>
  93.     <xs:attribute name="Spell" type="xs:string"/>
  94.   </xs:complexType>
  95.  
  96.   <xs:complexType name="targetCommand">
  97.     <xs:attribute name="target" type="xs:string"/>
  98.     <xs:attribute name="Target" type="xs:string"/>
  99.   </xs:complexType>
  100.  
  101.   <xs:complexType name="slotCommand">
  102.     <xs:attribute name="slot" type="slotValues"/>
  103.     <xs:attribute name="Slot" type="slotValues"/>
  104.   </xs:complexType>
  105.  
  106.   <xs:simpleType name="slotValues">
  107.     <xs:restriction base="xs:string">
  108.       <xs:pattern value="([mM]ain|[sS]ub|[rR]ange|[aA]mmo|[hH]ead|[nN]eck|[lL]ear|[rR]ear|[bB]ody|[hH]ands|[lL]ring|[rR]ring|[bB]ack|[wW]aist|[lL]egs|[fF]eet|[aA]ll|MAIN|SUB|RANGE|AMMO|HEAD|NECK|LEAR|REAR|BODY|HANDS|LRING|RRING|BACK|WAIST|LEGS|FEET|ALL)(\|([mM]ain|[sS]ub|[rR]ange|[aA]mmo|[hH]ead|[nN]eck|[lL]ear|[rR]ear|[bB]ody|[hH]ands|[lL]ring|[rR]ring|[bB]ack|[wW]aist|[lL]egs|[fF]eet|MAIN|SUB|RANGE|AMMO|HEAD|NECK|LEAR|REAR|BODY|HANDS|LRING|RRING|BACK|WAIST|LEGS|FEET))*" />
  109.     </xs:restriction>
  110.   </xs:simpleType>
  111.  
  112.   <xs:complexType name="varCommand">
  113.     <xs:attribute name="cmd">
  114.       <xs:simpleType>
  115.         <xs:restriction base="xs:string">
  116.           <xs:pattern value="((set|setcalc)\s+\S+\s+\S.*)|((inc|dec)\s+\S+\s*)" />
  117.         </xs:restriction>
  118.       </xs:simpleType>
  119.     </xs:attribute>
  120.   </xs:complexType>
  121.  
  122.   <!-- Breakdown of rule types: queued actions -->
  123.   <xs:group name="queuedActions">
  124.     <xs:choice>
  125.       <xs:choice>
  126.         <xs:element name="equip" type="equipCommand" />
  127.         <xs:element name="Equip" type="equipCommand" />
  128.       </xs:choice>
  129.       <xs:choice>
  130.         <xs:element name="changelock" type="lockCommand" />
  131.         <xs:element name="ChangeLock" type="lockCommand" />
  132.       </xs:choice>
  133.       <xs:choice>
  134.         <xs:element name="addtochat" type="chatCommand" />
  135.         <xs:element name="AddToChat" type="chatCommand" />
  136.       </xs:choice>
  137.       <xs:choice>
  138.         <xs:element name="command" type="commandCommand" />
  139.         <xs:element name="Command" type="commandCommand" />
  140.       </xs:choice>
  141.     </xs:choice>
  142.   </xs:group>
  143.  
  144.   <xs:complexType name="equipCommand">
  145.     <xs:group ref="slotList" />
  146.     <xs:attribute name="when" type="whenValues" default="precast" />
  147.     <xs:attribute name="delay">
  148.       <xs:simpleType>
  149.         <xs:restriction base="xs:decimal">
  150.           <xs:minInclusive value="0" />
  151.         </xs:restriction>
  152.       </xs:simpleType>
  153.     </xs:attribute>
  154.     <xs:attribute name="set" type="xs:string" />
  155.     <xs:attribute name="setgroup" type="xs:string" />
  156.   </xs:complexType>
  157.  
  158.   <xs:complexType name="lockCommand">
  159.     <xs:attribute name="when" type="whenValues" default="precast"/>
  160.     <xs:attribute name="slot" type="slotValues"/>
  161.     <xs:attribute name="lock" type="xs:boolean" default="false"/>
  162.   </xs:complexType>
  163.  
  164.   <xs:complexType name="chatCommand">
  165.     <xs:simpleContent>
  166.       <xs:extension base="xs:string">
  167.         <xs:attribute name="when" type="whenValues" default="precast"/>
  168.         <xs:attribute name="color" default="32">
  169.           <xs:simpleType>
  170.             <xs:restriction base="xs:integer">
  171.               <xs:minInclusive value="0"/>
  172.               <xs:maxInclusive value="255"/>
  173.             </xs:restriction>
  174.           </xs:simpleType>
  175.         </xs:attribute>
  176.       </xs:extension>
  177.     </xs:simpleContent>
  178.   </xs:complexType>
  179.  
  180.   <xs:complexType name="commandCommand">
  181.     <xs:simpleContent>
  182.       <xs:extension base="xs:string">
  183.         <xs:attribute name="when" type="whenValues" default="precast"/>
  184.       </xs:extension>
  185.     </xs:simpleContent>
  186.   </xs:complexType>
  187.  
  188.   <!-- Breakdown of rule types: <if> conditions -->
  189.   <xs:group name="ifGroup">
  190.     <xs:sequence>
  191.       <xs:element name="if" type="conditionType" minOccurs="1" maxOccurs="1"/>
  192.       <xs:element name="elseif" type="conditionType" minOccurs="0" maxOccurs="unbounded"/>
  193.       <xs:element name="else" type="rulesType" minOccurs="0" maxOccurs="1"/>
  194.     </xs:sequence>
  195.   </xs:group>
  196.  
  197.   <xs:complexType name="conditionType">
  198.     <xs:choice minOccurs="0" maxOccurs="unbounded">
  199.       <xs:group ref="rule" />
  200.     </xs:choice>
  201.     <xs:attributeGroup ref="conditions" />
  202.   </xs:complexType>
  203.  
  204.   <!-- Breakdown of conditions to test for. -->
  205.   <xs:attributeGroup name="conditions">
  206.     <xs:attributeGroup ref="stringConditions" />
  207.     <xs:attributeGroup ref="numericConditions" />
  208.     <xs:attributeGroup ref="patternConditions" />
  209.   </xs:attributeGroup>
  210.  
  211.   <xs:attributeGroup name="stringConditions">
  212.     <xs:attribute name="advanced" type="xs:string"/>
  213.     <xs:attribute name="buffactive" type="xs:string"/>
  214.     <xs:attribute name="BuffActive" type="xs:string"/>
  215.     <xs:attribute name="group" type="xs:string"/>
  216.     <xs:attribute name="spell" type="xs:string"/>
  217.     <xs:attribute name="Spell" type="xs:string"/>
  218.     <xs:attribute name="area" type="xs:string"/>
  219.     <xs:attribute name="mainjob" type="xs:string"/>
  220.     <xs:attribute name="Mainjob" type="xs:string"/>
  221.     <xs:attribute name="MainJob" type="xs:string"/>
  222.     <xs:attribute name="subjob" type="xs:string"/>
  223.     <xs:attribute name="Subjob" type="xs:string"/>
  224.     <xs:attribute name="target" type="xs:string"/>
  225.     <xs:attribute name="Target" type="xs:string"/>
  226.     <xs:attribute name="spelltarget" type="xs:string"/>
  227.     <xs:attribute name="SpellTarget" type="xs:string"/>
  228.     <xs:attribute name="spelltargetraw" type="xs:string"/>
  229.     <xs:attribute name="SpellTargetRaw" type="xs:string"/>
  230.     <xs:attribute name="equipmain" type="xs:string"/>
  231.     <xs:attribute name="equipsub" type="xs:string"/>
  232.     <xs:attribute name="equiprange" type="xs:string"/>
  233.     <xs:attribute name="equipammo" type="xs:string"/>
  234.     <xs:attribute name="equiphead" type="xs:string"/>
  235.     <xs:attribute name="equipneck" type="xs:string"/>
  236.     <xs:attribute name="equiplear" type="xs:string"/>
  237.     <xs:attribute name="equiprear" type="xs:string"/>
  238.     <xs:attribute name="equipbody" type="xs:string"/>
  239.     <xs:attribute name="equiphands" type="xs:string"/>
  240.     <xs:attribute name="equiplring" type="xs:string"/>
  241.     <xs:attribute name="equiprring" type="xs:string"/>
  242.     <xs:attribute name="equipback" type="xs:string"/>
  243.     <xs:attribute name="equipwaist" type="xs:string"/>
  244.     <xs:attribute name="equiplegs" type="xs:string"/>
  245.     <xs:attribute name="equipfeet" type="xs:string"/>
  246.     <xs:attribute name="EquipMain" type="xs:string"/>
  247.     <xs:attribute name="EquipSub" type="xs:string"/>
  248.     <xs:attribute name="EquipRange" type="xs:string"/>
  249.     <xs:attribute name="EquipAmmo" type="xs:string"/>
  250.     <xs:attribute name="EquipHead" type="xs:string"/>
  251.     <xs:attribute name="EquipBeck" type="xs:string"/>
  252.     <xs:attribute name="EquipLEar" type="xs:string"/>
  253.     <xs:attribute name="EquipREar" type="xs:string"/>
  254.     <xs:attribute name="EquipBody" type="xs:string"/>
  255.     <xs:attribute name="EquipHands" type="xs:string"/>
  256.     <xs:attribute name="EquipLRing" type="xs:string"/>
  257.     <xs:attribute name="EquipRRing" type="xs:string"/>
  258.     <xs:attribute name="EquipBack" type="xs:string"/>
  259.     <xs:attribute name="EquipWaist" type="xs:string"/>
  260.     <xs:attribute name="EquipLegs" type="xs:string"/>
  261.     <xs:attribute name="EquipFeet" type="xs:string"/>
  262.     <xs:attribute name="petname" type="xs:string"/>
  263.     <xs:attribute name="PetName" type="xs:string"/>
  264.     <xs:attribute name="fellowname" type="xs:string"/>
  265.     <xs:attribute name="FellowName" type="xs:string"/>
  266.     <xs:attribute name="notadvanced" type="xs:string"/>
  267.     <xs:attribute name="NotAdvanced" type="xs:string"/>
  268.     <xs:attribute name="notbuffactive" type="xs:string"/>
  269.     <xs:attribute name="NotBuffActive" type="xs:string"/>
  270.     <xs:attribute name="notgroup" type="xs:string"/>
  271.     <xs:attribute name="NotGroup" type="xs:string"/>
  272.     <xs:attribute name="notspell" type="xs:string"/>
  273.     <xs:attribute name="NotSpell" type="xs:string"/>
  274.     <xs:attribute name="notarea" type="xs:string"/>
  275.     <xs:attribute name="NotArea" type="xs:string"/>
  276.     <xs:attribute name="notmainjob" type="xs:string"/>
  277.     <xs:attribute name="NotMainJob" type="xs:string"/>
  278.     <xs:attribute name="notsubjob" type="xs:string"/>
  279.     <xs:attribute name="NotSubJob" type="xs:string"/>
  280.     <xs:attribute name="nottarget" type="xs:string"/>
  281.     <xs:attribute name="Nottarget" type="xs:string"/>
  282.     <xs:attribute name="notspelltarget" type="xs:string"/>
  283.     <xs:attribute name="Notspelltarget" type="xs:string"/>
  284.     <xs:attribute name="notspelltargetraw" type="xs:string"/>
  285.     <xs:attribute name="NotSpellTargetRaw" type="xs:string"/>
  286.     <xs:attribute name="notequipmain" type="xs:string"/>
  287.     <xs:attribute name="notequipsub" type="xs:string"/>
  288.     <xs:attribute name="notequiprange" type="xs:string"/>
  289.     <xs:attribute name="notequipammo" type="xs:string"/>
  290.     <xs:attribute name="notequiphead" type="xs:string"/>
  291.     <xs:attribute name="notequipneck" type="xs:string"/>
  292.     <xs:attribute name="notequiplear" type="xs:string"/>
  293.     <xs:attribute name="notequiprear" type="xs:string"/>
  294.     <xs:attribute name="notequipbody" type="xs:string"/>
  295.     <xs:attribute name="notequiphands" type="xs:string"/>
  296.     <xs:attribute name="notequiplring" type="xs:string"/>
  297.     <xs:attribute name="notequiprring" type="xs:string"/>
  298.     <xs:attribute name="notequipback" type="xs:string"/>
  299.     <xs:attribute name="notequipwaist" type="xs:string"/>
  300.     <xs:attribute name="notequiplegs" type="xs:string"/>
  301.     <xs:attribute name="notequipfeet" type="xs:string"/>
  302.     <xs:attribute name="NotEquipMain" type="xs:string"/>
  303.     <xs:attribute name="NotEquipSub" type="xs:string"/>
  304.     <xs:attribute name="NotEquipRange" type="xs:string"/>
  305.     <xs:attribute name="NotEquipAmmo" type="xs:string"/>
  306.     <xs:attribute name="NotEquipHead" type="xs:string"/>
  307.     <xs:attribute name="NotEquipNeck" type="xs:string"/>
  308.     <xs:attribute name="NotEquipLEar" type="xs:string"/>
  309.     <xs:attribute name="NotEquipREar" type="xs:string"/>
  310.     <xs:attribute name="NotEquipBody" type="xs:string"/>
  311.     <xs:attribute name="NotEquipHands" type="xs:string"/>
  312.     <xs:attribute name="NotEquipLRing" type="xs:string"/>
  313.     <xs:attribute name="NotEquipRRing" type="xs:string"/>
  314.     <xs:attribute name="NotEquipBack" type="xs:string"/>
  315.     <xs:attribute name="NotEquipWaist" type="xs:string"/>
  316.     <xs:attribute name="NotEquipLegs" type="xs:string"/>
  317.     <xs:attribute name="NotEquipFeet" type="xs:string"/>
  318.     <xs:attribute name="notpetname" type="xs:string"/>
  319.     <xs:attribute name="NotPetName" type="xs:string"/>
  320.     <xs:attribute name="notfellowname" type="xs:string"/>
  321.     <xs:attribute name="NotFellowName" type="xs:string"/>
  322.   </xs:attributeGroup>
  323.  
  324.  
  325.   <!-- Numeric attributes for if checks -->
  326.   <xs:attributeGroup name="numericConditions">
  327.     <xs:attributeGroup ref="numericTestsPlayerHPMP"/>
  328.     <xs:attributeGroup ref="numericTestsPlayer"/>
  329.     <xs:attributeGroup ref="numericTestsDistance"/>
  330.     <xs:attributeGroup ref="numericTestsCasting"/>
  331.     <xs:attributeGroup ref="numericTestsWorld"/>
  332.     <xs:attributeGroup ref="numericTestsPet"/>
  333.     <xs:attributeGroup ref="numericTestsTarget"/>
  334.     <xs:attributeGroup ref="numericTestsParty"/>
  335.   </xs:attributeGroup>
  336.  
  337.  
  338.   <!-- Subgroups of numeric attributes -->
  339.   <xs:attributeGroup name="numericTestsPlayerHPMP">
  340.     <xs:attribute name="hp">
  341.       <xs:simpleType>
  342.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  343.       </xs:simpleType>
  344.     </xs:attribute>
  345.     <xs:attribute name="hpgt">
  346.       <xs:simpleType>
  347.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  348.       </xs:simpleType>
  349.     </xs:attribute>
  350.     <xs:attribute name="hplt">
  351.       <xs:simpleType>
  352.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  353.       </xs:simpleType>
  354.     </xs:attribute>
  355.     <xs:attribute name="nothp">
  356.       <xs:simpleType>
  357.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  358.       </xs:simpleType>
  359.     </xs:attribute>
  360.     <xs:attribute name="nothpgt">
  361.       <xs:simpleType>
  362.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  363.       </xs:simpleType>
  364.     </xs:attribute>
  365.     <xs:attribute name="nothplt">
  366.       <xs:simpleType>
  367.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  368.       </xs:simpleType>
  369.     </xs:attribute>
  370.     <xs:attribute name="mp">
  371.       <xs:simpleType>
  372.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  373.       </xs:simpleType>
  374.     </xs:attribute>
  375.     <xs:attribute name="mpgt">
  376.       <xs:simpleType>
  377.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  378.       </xs:simpleType>
  379.     </xs:attribute>
  380.     <xs:attribute name="mplt">
  381.       <xs:simpleType>
  382.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  383.       </xs:simpleType>
  384.     </xs:attribute>
  385.     <xs:attribute name="notmp">
  386.       <xs:simpleType>
  387.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  388.       </xs:simpleType>
  389.     </xs:attribute>
  390.     <xs:attribute name="notmpgt">
  391.       <xs:simpleType>
  392.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  393.       </xs:simpleType>
  394.     </xs:attribute>
  395.     <xs:attribute name="notmplt">
  396.       <xs:simpleType>
  397.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  398.       </xs:simpleType>
  399.     </xs:attribute>
  400.     <xs:attribute name="hpp">
  401.       <xs:simpleType>
  402.         <xs:union memberTypes="percentageLimit numericVar" />
  403.       </xs:simpleType>
  404.     </xs:attribute>
  405.     <xs:attribute name="hppgt">
  406.       <xs:simpleType>
  407.         <xs:union memberTypes="percentageLimit numericVar" />
  408.       </xs:simpleType>
  409.     </xs:attribute>
  410.     <xs:attribute name="hpplt">
  411.       <xs:simpleType>
  412.         <xs:union memberTypes="percentageLimit numericVar" />
  413.       </xs:simpleType>
  414.     </xs:attribute>
  415.     <xs:attribute name="nothpp">
  416.       <xs:simpleType>
  417.         <xs:union memberTypes="percentageLimit numericVar" />
  418.       </xs:simpleType>
  419.     </xs:attribute>
  420.     <xs:attribute name="nothppgt">
  421.       <xs:simpleType>
  422.         <xs:union memberTypes="percentageLimit numericVar" />
  423.       </xs:simpleType>
  424.     </xs:attribute>
  425.     <xs:attribute name="nothpplt">
  426.       <xs:simpleType>
  427.         <xs:union memberTypes="percentageLimit numericVar" />
  428.       </xs:simpleType>
  429.     </xs:attribute>
  430.     <xs:attribute name="mpp">
  431.       <xs:simpleType>
  432.         <xs:union memberTypes="percentageLimit numericVar" />
  433.       </xs:simpleType>
  434.     </xs:attribute>
  435.     <xs:attribute name="mppgt">
  436.       <xs:simpleType>
  437.         <xs:union memberTypes="percentageLimit numericVar" />
  438.       </xs:simpleType>
  439.     </xs:attribute>
  440.     <xs:attribute name="mpplt">
  441.       <xs:simpleType>
  442.         <xs:union memberTypes="percentageLimit numericVar" />
  443.       </xs:simpleType>
  444.     </xs:attribute>
  445.     <xs:attribute name="notmpp">
  446.       <xs:simpleType>
  447.         <xs:union memberTypes="percentageLimit numericVar" />
  448.       </xs:simpleType>
  449.     </xs:attribute>
  450.     <xs:attribute name="notmppgt">
  451.       <xs:simpleType>
  452.         <xs:union memberTypes="percentageLimit numericVar" />
  453.       </xs:simpleType>
  454.     </xs:attribute>
  455.     <xs:attribute name="notmpplt">
  456.       <xs:simpleType>
  457.         <xs:union memberTypes="percentageLimit numericVar" />
  458.       </xs:simpleType>
  459.     </xs:attribute>
  460.     <xs:attribute name="hpmax">
  461.       <xs:simpleType>
  462.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  463.       </xs:simpleType>
  464.     </xs:attribute>
  465.     <xs:attribute name="hpmaxgt">
  466.       <xs:simpleType>
  467.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  468.       </xs:simpleType>
  469.     </xs:attribute>
  470.     <xs:attribute name="hpmaxlt">
  471.       <xs:simpleType>
  472.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  473.       </xs:simpleType>
  474.     </xs:attribute>
  475.     <xs:attribute name="nothpmax">
  476.       <xs:simpleType>
  477.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  478.       </xs:simpleType>
  479.     </xs:attribute>
  480.     <xs:attribute name="nothpmaxgt">
  481.       <xs:simpleType>
  482.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  483.       </xs:simpleType>
  484.     </xs:attribute>
  485.     <xs:attribute name="nothpmaxlt">
  486.       <xs:simpleType>
  487.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  488.       </xs:simpleType>
  489.     </xs:attribute>
  490.     <xs:attribute name="mpmax">
  491.       <xs:simpleType>
  492.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  493.       </xs:simpleType>
  494.     </xs:attribute>
  495.     <xs:attribute name="mpmaxgt">
  496.       <xs:simpleType>
  497.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  498.       </xs:simpleType>
  499.     </xs:attribute>
  500.     <xs:attribute name="mpmaxlt">
  501.       <xs:simpleType>
  502.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  503.       </xs:simpleType>
  504.     </xs:attribute>
  505.     <xs:attribute name="notmpmax">
  506.       <xs:simpleType>
  507.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  508.       </xs:simpleType>
  509.     </xs:attribute>
  510.     <xs:attribute name="notmpmaxgt">
  511.       <xs:simpleType>
  512.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  513.       </xs:simpleType>
  514.     </xs:attribute>
  515.     <xs:attribute name="notmpmaxlt">
  516.       <xs:simpleType>
  517.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  518.       </xs:simpleType>
  519.     </xs:attribute>
  520.   </xs:attributeGroup>
  521.  
  522.   <xs:attributeGroup name="numericTestsPlayer">
  523.     <xs:attribute name="tp">
  524.       <xs:simpleType>
  525.         <xs:union memberTypes="tpLimit numericVar" />
  526.       </xs:simpleType>
  527.     </xs:attribute>
  528.     <xs:attribute name="tpgt">
  529.       <xs:simpleType>
  530.         <xs:union memberTypes="tpLimit numericVar" />
  531.       </xs:simpleType>
  532.     </xs:attribute>
  533.     <xs:attribute name="tplt">
  534.       <xs:simpleType>
  535.         <xs:union memberTypes="tpLimit numericVar" />
  536.       </xs:simpleType>
  537.     </xs:attribute>
  538.     <xs:attribute name="nottp">
  539.       <xs:simpleType>
  540.         <xs:union memberTypes="tpLimit numericVar" />
  541.       </xs:simpleType>
  542.     </xs:attribute>
  543.     <xs:attribute name="nottpgt">
  544.       <xs:simpleType>
  545.         <xs:union memberTypes="tpLimit numericVar" />
  546.       </xs:simpleType>
  547.     </xs:attribute>
  548.     <xs:attribute name="nottplt">
  549.       <xs:simpleType>
  550.         <xs:union memberTypes="tpLimit numericVar" />
  551.       </xs:simpleType>
  552.     </xs:attribute>
  553.     <!-- Alias: mlvl -->
  554.     <xs:attribute name="mainjoblvl">
  555.       <xs:simpleType>
  556.         <xs:union memberTypes="levelLimit numericVar" />
  557.       </xs:simpleType>
  558.     </xs:attribute>
  559.     <xs:attribute name="mainjoblvlgt">
  560.       <xs:simpleType>
  561.         <xs:union memberTypes="levelLimit numericVar" />
  562.       </xs:simpleType>
  563.     </xs:attribute>
  564.     <xs:attribute name="mainjoblvllt">
  565.       <xs:simpleType>
  566.         <xs:union memberTypes="levelLimit numericVar" />
  567.       </xs:simpleType>
  568.     </xs:attribute>
  569.     <xs:attribute name="notmainjoblvl">
  570.       <xs:simpleType>
  571.         <xs:union memberTypes="levelLimit numericVar" />
  572.       </xs:simpleType>
  573.     </xs:attribute>
  574.     <xs:attribute name="notmainjoblvlgt">
  575.       <xs:simpleType>
  576.         <xs:union memberTypes="levelLimit numericVar" />
  577.       </xs:simpleType>
  578.     </xs:attribute>
  579.     <xs:attribute name="notmainjoblvllt">
  580.       <xs:simpleType>
  581.         <xs:union memberTypes="levelLimit numericVar" />
  582.       </xs:simpleType>
  583.     </xs:attribute>
  584.     <!-- Alias: slvl -->
  585.     <xs:attribute name="subjoblvl">
  586.       <xs:simpleType>
  587.         <xs:union memberTypes="levelLimit numericVar" />
  588.       </xs:simpleType>
  589.     </xs:attribute>
  590.     <xs:attribute name="subjoblvlgt">
  591.       <xs:simpleType>
  592.         <xs:union memberTypes="levelLimit numericVar" />
  593.       </xs:simpleType>
  594.     </xs:attribute>
  595.     <xs:attribute name="subjoblvllt">
  596.       <xs:simpleType>
  597.         <xs:union memberTypes="levelLimit numericVar" />
  598.       </xs:simpleType>
  599.     </xs:attribute>
  600.     <xs:attribute name="notsubjoblvl">
  601.       <xs:simpleType>
  602.         <xs:union memberTypes="levelLimit numericVar" />
  603.       </xs:simpleType>
  604.     </xs:attribute>
  605.     <xs:attribute name="notsubjoblvlgt">
  606.       <xs:simpleType>
  607.         <xs:union memberTypes="levelLimit numericVar" />
  608.       </xs:simpleType>
  609.     </xs:attribute>
  610.     <xs:attribute name="notsubjoblvllt">
  611.       <xs:simpleType>
  612.         <xs:union memberTypes="levelLimit numericVar" />
  613.       </xs:simpleType>
  614.     </xs:attribute>
  615.   </xs:attributeGroup>
  616.  
  617.   <xs:attributeGroup name="numericTestsDistance">
  618.     <xs:attribute name="targetdistance">
  619.       <xs:simpleType>
  620.         <xs:union memberTypes="positiveDecimal numericVar" />
  621.       </xs:simpleType>
  622.     </xs:attribute>
  623.     <xs:attribute name="targetdistancegt">
  624.       <xs:simpleType>
  625.         <xs:union memberTypes="positiveDecimal numericVar" />
  626.       </xs:simpleType>
  627.     </xs:attribute>
  628.     <xs:attribute name="targetdistancelt">
  629.       <xs:simpleType>
  630.         <xs:union memberTypes="positiveDecimal numericVar" />
  631.       </xs:simpleType>
  632.     </xs:attribute>
  633.     <xs:attribute name="nottargetdistance">
  634.       <xs:simpleType>
  635.         <xs:union memberTypes="positiveDecimal numericVar" />
  636.       </xs:simpleType>
  637.     </xs:attribute>
  638.     <xs:attribute name="nottargetdistancegt">
  639.       <xs:simpleType>
  640.         <xs:union memberTypes="positiveDecimal numericVar" />
  641.       </xs:simpleType>
  642.     </xs:attribute>
  643.     <xs:attribute name="nottargetdistancelt">
  644.       <xs:simpleType>
  645.         <xs:union memberTypes="positiveDecimal numericVar" />
  646.       </xs:simpleType>
  647.     </xs:attribute>
  648.     <xs:attribute name="spelltargetdistance">
  649.       <xs:simpleType>
  650.         <xs:union memberTypes="positiveDecimal numericVar" />
  651.       </xs:simpleType>
  652.     </xs:attribute>
  653.     <xs:attribute name="spelltargetdistancegt">
  654.       <xs:simpleType>
  655.         <xs:union memberTypes="positiveDecimal numericVar" />
  656.       </xs:simpleType>
  657.     </xs:attribute>
  658.     <xs:attribute name="spelltargetdistancelt">
  659.       <xs:simpleType>
  660.         <xs:union memberTypes="positiveDecimal numericVar" />
  661.       </xs:simpleType>
  662.     </xs:attribute>
  663.     <xs:attribute name="notspelltargetdistance">
  664.       <xs:simpleType>
  665.         <xs:union memberTypes="positiveDecimal numericVar" />
  666.       </xs:simpleType>
  667.     </xs:attribute>
  668.     <xs:attribute name="notspelltargetdistancegt">
  669.       <xs:simpleType>
  670.         <xs:union memberTypes="positiveDecimal numericVar" />
  671.       </xs:simpleType>
  672.     </xs:attribute>
  673.     <xs:attribute name="notspelltargetdistancelt">
  674.       <xs:simpleType>
  675.         <xs:union memberTypes="positiveDecimal numericVar" />
  676.       </xs:simpleType>
  677.     </xs:attribute>
  678.   </xs:attributeGroup>
  679.  
  680.   <xs:attributeGroup name="numericTestsCasting">
  681.     <xs:attribute name="tpcost">
  682.       <xs:simpleType>
  683.         <xs:union memberTypes="tpLimit numericVar" />
  684.       </xs:simpleType>
  685.     </xs:attribute>
  686.     <xs:attribute name="tpcostgt">
  687.       <xs:simpleType>
  688.         <xs:union memberTypes="tpLimit numericVar" />
  689.       </xs:simpleType>
  690.     </xs:attribute>
  691.     <xs:attribute name="tpcostlt">
  692.       <xs:simpleType>
  693.         <xs:union memberTypes="tpLimit numericVar" />
  694.       </xs:simpleType>
  695.     </xs:attribute>
  696.     <xs:attribute name="nottpcost">
  697.       <xs:simpleType>
  698.         <xs:union memberTypes="tpLimit numericVar" />
  699.       </xs:simpleType>
  700.     </xs:attribute>
  701.     <xs:attribute name="nottpcostgt">
  702.       <xs:simpleType>
  703.         <xs:union memberTypes="tpLimit numericVar" />
  704.       </xs:simpleType>
  705.     </xs:attribute>
  706.     <xs:attribute name="nottpcostlt">
  707.       <xs:simpleType>
  708.         <xs:union memberTypes="tpLimit numericVar" />
  709.       </xs:simpleType>
  710.     </xs:attribute>
  711.     <xs:attribute name="mpcost">
  712.       <xs:simpleType>
  713.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  714.       </xs:simpleType>
  715.     </xs:attribute>
  716.     <xs:attribute name="mpcostgt">
  717.       <xs:simpleType>
  718.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  719.       </xs:simpleType>
  720.     </xs:attribute>
  721.     <xs:attribute name="mpcostlt">
  722.       <xs:simpleType>
  723.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  724.       </xs:simpleType>
  725.     </xs:attribute>
  726.     <xs:attribute name="notmpcost">
  727.       <xs:simpleType>
  728.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  729.       </xs:simpleType>
  730.     </xs:attribute>
  731.     <xs:attribute name="notmpcostgt">
  732.       <xs:simpleType>
  733.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  734.       </xs:simpleType>
  735.     </xs:attribute>
  736.     <xs:attribute name="notmpcostlt">
  737.       <xs:simpleType>
  738.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  739.       </xs:simpleType>
  740.     </xs:attribute>
  741.     <xs:attribute name="tpaftercast">
  742.       <xs:simpleType>
  743.         <xs:union memberTypes="tpLimit numericVar" />
  744.       </xs:simpleType>
  745.     </xs:attribute>
  746.     <xs:attribute name="tpaftercastgt">
  747.       <xs:simpleType>
  748.         <xs:union memberTypes="tpLimit numericVar" />
  749.       </xs:simpleType>
  750.     </xs:attribute>
  751.     <xs:attribute name="tpaftercastlt">
  752.       <xs:simpleType>
  753.         <xs:union memberTypes="tpLimit numericVar" />
  754.       </xs:simpleType>
  755.     </xs:attribute>
  756.     <xs:attribute name="nottpaftercast">
  757.       <xs:simpleType>
  758.         <xs:union memberTypes="tpLimit numericVar" />
  759.       </xs:simpleType>
  760.     </xs:attribute>
  761.     <xs:attribute name="nottpaftercastgt">
  762.       <xs:simpleType>
  763.         <xs:union memberTypes="tpLimit numericVar" />
  764.       </xs:simpleType>
  765.     </xs:attribute>
  766.     <xs:attribute name="nottpaftercastlt">
  767.       <xs:simpleType>
  768.         <xs:union memberTypes="tpLimit numericVar" />
  769.       </xs:simpleType>
  770.     </xs:attribute>
  771.     <xs:attribute name="mpaftercast">
  772.       <xs:simpleType>
  773.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  774.       </xs:simpleType>
  775.     </xs:attribute>
  776.     <xs:attribute name="mpaftercastgt">
  777.       <xs:simpleType>
  778.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  779.       </xs:simpleType>
  780.     </xs:attribute>
  781.     <xs:attribute name="mpaftercastlt">
  782.       <xs:simpleType>
  783.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  784.       </xs:simpleType>
  785.     </xs:attribute>
  786.     <xs:attribute name="notmpaftercast">
  787.       <xs:simpleType>
  788.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  789.       </xs:simpleType>
  790.     </xs:attribute>
  791.     <xs:attribute name="notmpaftercastgt">
  792.       <xs:simpleType>
  793.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  794.       </xs:simpleType>
  795.     </xs:attribute>
  796.     <xs:attribute name="notmpaftercastlt">
  797.       <xs:simpleType>
  798.         <xs:union memberTypes="xs:nonNegativeInteger numericVar" />
  799.       </xs:simpleType>
  800.     </xs:attribute>
  801.     <xs:attribute name="casttime">
  802.       <xs:simpleType>
  803.         <xs:union memberTypes="positiveDecimal numericVar" />
  804.       </xs:simpleType>
  805.     </xs:attribute>
  806.     <xs:attribute name="casttimegt">
  807.       <xs:simpleType>
  808.         <xs:union memberTypes="positiveDecimal numericVar" />
  809.       </xs:simpleType>
  810.     </xs:attribute>
  811.     <xs:attribute name="casttimelt">
  812.       <xs:simpleType>
  813.         <xs:union memberTypes="positiveDecimal numericVar" />
  814.       </xs:simpleType>
  815.     </xs:attribute>
  816.     <xs:attribute name="notcasttime">
  817.       <xs:simpleType>
  818.         <xs:union memberTypes="positiveDecimal numericVar" />
  819.       </xs:simpleType>
  820.     </xs:attribute>
  821.     <xs:attribute name="notcasttimegt">
  822.       <xs:simpleType>
  823.         <xs:union memberTypes="positiveDecimal numericVar" />
  824.       </xs:simpleType>
  825.     </xs:attribute>
  826.     <xs:attribute name="notcasttimelt">
  827.       <xs:simpleType>
  828.         <xs:union memberTypes="positiveDecimal numericVar" />
  829.       </xs:simpleType>
  830.     </xs:attribute>
  831.     <xs:attribute name="recast">
  832.       <xs:simpleType>
  833.         <xs:union memberTypes="positiveDecimal numericVar" />
  834.       </xs:simpleType>
  835.     </xs:attribute>
  836.     <xs:attribute name="recastgt">
  837.       <xs:simpleType>
  838.         <xs:union memberTypes="positiveDecimal numericVar" />
  839.       </xs:simpleType>
  840.     </xs:attribute>
  841.     <xs:attribute name="recastlt">
  842.       <xs:simpleType>
  843.         <xs:union memberTypes="positiveDecimal numericVar" />
  844.       </xs:simpleType>
  845.     </xs:attribute>
  846.     <xs:attribute name="notrecast">
  847.       <xs:simpleType>
  848.         <xs:union memberTypes="positiveDecimal numericVar" />
  849.       </xs:simpleType>
  850.     </xs:attribute>
  851.     <xs:attribute name="notrecastgt">
  852.       <xs:simpleType>
  853.         <xs:union memberTypes="positiveDecimal numericVar" />
  854.       </xs:simpleType>
  855.     </xs:attribute>
  856.     <xs:attribute name="notrecastlt">
  857.       <xs:simpleType>
  858.         <xs:union memberTypes="positiveDecimal numericVar" />
  859.       </xs:simpleType>
  860.     </xs:attribute>
  861.   </xs:attributeGroup>
  862.  
  863.   <xs:attributeGroup name="numericTestsWorld">
  864.     <xs:attribute name="time">
  865.       <xs:simpleType>
  866.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  867.       </xs:simpleType>
  868.     </xs:attribute>
  869.     <xs:attribute name="timegt">
  870.       <xs:simpleType>
  871.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  872.       </xs:simpleType>
  873.     </xs:attribute>
  874.     <xs:attribute name="timelt">
  875.       <xs:simpleType>
  876.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  877.       </xs:simpleType>
  878.     </xs:attribute>
  879.     <xs:attribute name="nottime">
  880.       <xs:simpleType>
  881.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  882.       </xs:simpleType>
  883.     </xs:attribute>
  884.     <xs:attribute name="nottimegt">
  885.       <xs:simpleType>
  886.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  887.       </xs:simpleType>
  888.     </xs:attribute>
  889.     <xs:attribute name="nottimelt">
  890.       <xs:simpleType>
  891.         <xs:union memberTypes="timeOfDayLimit numericVar" />
  892.       </xs:simpleType>
  893.     </xs:attribute>
  894.     <xs:attribute name="moonpct">
  895.       <xs:simpleType>
  896.         <xs:union memberTypes="percentageLimit numericVar" />
  897.       </xs:simpleType>
  898.     </xs:attribute>
  899.     <xs:attribute name="moonpctgt">
  900.       <xs:simpleType>
  901.         <xs:union memberTypes="percentageLimit numericVar" />
  902.       </xs:simpleType>
  903.     </xs:attribute>
  904.     <xs:attribute name="moonpctlt">
  905.       <xs:simpleType>
  906.         <xs:union memberTypes="percentageLimit numericVar" />
  907.       </xs:simpleType>
  908.     </xs:attribute>
  909.     <xs:attribute name="notmoonpct">
  910.       <xs:simpleType>
  911.         <xs:union memberTypes="percentageLimit numericVar" />
  912.       </xs:simpleType>
  913.     </xs:attribute>
  914.     <xs:attribute name="notmoonpctgt">
  915.       <xs:simpleType>
  916.         <xs:union memberTypes="percentageLimit numericVar" />
  917.       </xs:simpleType>
  918.     </xs:attribute>
  919.     <xs:attribute name="notmoonpctlt">
  920.       <xs:simpleType>
  921.         <xs:union memberTypes="percentageLimit numericVar" />
  922.       </xs:simpleType>
  923.     </xs:attribute>  
  924.   </xs:attributeGroup>
  925.  
  926.   <xs:attributeGroup name="numericTestsPet">
  927.     <xs:attribute name="pethpp">
  928.       <xs:simpleType>
  929.         <xs:union memberTypes="percentageLimit numericVar" />
  930.       </xs:simpleType>
  931.     </xs:attribute>
  932.     <xs:attribute name="pethppgt">
  933.       <xs:simpleType>
  934.         <xs:union memberTypes="percentageLimit numericVar" />
  935.       </xs:simpleType>
  936.     </xs:attribute>
  937.     <xs:attribute name="pethpplt">
  938.       <xs:simpleType>
  939.         <xs:union memberTypes="percentageLimit numericVar" />
  940.       </xs:simpleType>
  941.     </xs:attribute>
  942.     <xs:attribute name="notpethpp">
  943.       <xs:simpleType>
  944.         <xs:union memberTypes="percentageLimit numericVar" />
  945.       </xs:simpleType>
  946.     </xs:attribute>
  947.     <xs:attribute name="notpethppgt">
  948.       <xs:simpleType>
  949.         <xs:union memberTypes="percentageLimit numericVar" />
  950.       </xs:simpleType>
  951.     </xs:attribute>
  952.     <xs:attribute name="notpethpplt">
  953.       <xs:simpleType>
  954.         <xs:union memberTypes="percentageLimit numericVar" />
  955.       </xs:simpleType>
  956.     </xs:attribute>
  957.     <xs:attribute name="fellowhpp">
  958.       <xs:simpleType>
  959.         <xs:union memberTypes="percentageLimit numericVar" />
  960.       </xs:simpleType>
  961.     </xs:attribute>
  962.     <xs:attribute name="fellowhppgt">
  963.       <xs:simpleType>
  964.         <xs:union memberTypes="percentageLimit numericVar" />
  965.       </xs:simpleType>
  966.     </xs:attribute>
  967.     <xs:attribute name="fellowhpplt">
  968.       <xs:simpleType>
  969.         <xs:union memberTypes="percentageLimit numericVar" />
  970.       </xs:simpleType>
  971.     </xs:attribute>
  972.     <xs:attribute name="notfellowhpp">
  973.       <xs:simpleType>
  974.         <xs:union memberTypes="percentageLimit numericVar" />
  975.       </xs:simpleType>
  976.     </xs:attribute>
  977.     <xs:attribute name="notfellowhppgt">
  978.       <xs:simpleType>
  979.         <xs:union memberTypes="percentageLimit numericVar" />
  980.       </xs:simpleType>
  981.     </xs:attribute>
  982.     <xs:attribute name="notfellowhpplt">
  983.       <xs:simpleType>
  984.         <xs:union memberTypes="percentageLimit numericVar" />
  985.       </xs:simpleType>
  986.     </xs:attribute>
  987.     <xs:attribute name="pettp">
  988.       <xs:simpleType>
  989.         <xs:union memberTypes="tpLimit numericVar" />
  990.       </xs:simpleType>
  991.     </xs:attribute>
  992.     <xs:attribute name="pettpgt">
  993.       <xs:simpleType>
  994.         <xs:union memberTypes="tpLimit numericVar" />
  995.       </xs:simpleType>
  996.     </xs:attribute>
  997.     <xs:attribute name="pettplt">
  998.       <xs:simpleType>
  999.         <xs:union memberTypes="tpLimit numericVar" />
  1000.       </xs:simpleType>
  1001.     </xs:attribute>
  1002.     <xs:attribute name="notpettp">
  1003.       <xs:simpleType>
  1004.         <xs:union memberTypes="tpLimit numericVar" />
  1005.       </xs:simpleType>
  1006.     </xs:attribute>
  1007.     <xs:attribute name="notpettpgt">
  1008.       <xs:simpleType>
  1009.         <xs:union memberTypes="tpLimit numericVar" />
  1010.       </xs:simpleType>
  1011.     </xs:attribute>
  1012.     <xs:attribute name="notpettplt">
  1013.       <xs:simpleType>
  1014.         <xs:union memberTypes="tpLimit numericVar" />
  1015.       </xs:simpleType>
  1016.     </xs:attribute>
  1017.     <xs:attribute name="pettpreal">
  1018.       <xs:simpleType>
  1019.         <xs:union memberTypes="tpLimitReal numericVar" />
  1020.       </xs:simpleType>
  1021.     </xs:attribute>
  1022.     <xs:attribute name="pettprealgt">
  1023.       <xs:simpleType>
  1024.         <xs:union memberTypes="tpLimitReal numericVar" />
  1025.       </xs:simpleType>
  1026.     </xs:attribute>
  1027.     <xs:attribute name="pettpreallt">
  1028.       <xs:simpleType>
  1029.         <xs:union memberTypes="tpLimitReal numericVar" />
  1030.       </xs:simpleType>
  1031.     </xs:attribute>
  1032.     <xs:attribute name="notpettpreal">
  1033.       <xs:simpleType>
  1034.         <xs:union memberTypes="tpLimitReal numericVar" />
  1035.       </xs:simpleType>
  1036.     </xs:attribute>
  1037.     <xs:attribute name="notpettprealgt">
  1038.       <xs:simpleType>
  1039.         <xs:union memberTypes="tpLimitReal numericVar" />
  1040.       </xs:simpleType>
  1041.     </xs:attribute>
  1042.     <xs:attribute name="notpettpreallt">
  1043.       <xs:simpleType>
  1044.         <xs:union memberTypes="tpLimitReal numericVar" />
  1045.       </xs:simpleType>
  1046.     </xs:attribute>
  1047.   </xs:attributeGroup>
  1048.  
  1049.   <xs:attributeGroup name="numericTestsTarget">
  1050.     <xs:attribute name="targethpp">
  1051.       <xs:simpleType>
  1052.         <xs:union memberTypes="percentageLimit numericVar" />
  1053.       </xs:simpleType>
  1054.     </xs:attribute>
  1055.     <xs:attribute name="targethppgt">
  1056.       <xs:simpleType>
  1057.         <xs:union memberTypes="percentageLimit numericVar" />
  1058.       </xs:simpleType>
  1059.     </xs:attribute>
  1060.     <xs:attribute name="targethpplt">
  1061.       <xs:simpleType>
  1062.         <xs:union memberTypes="percentageLimit numericVar" />
  1063.       </xs:simpleType>
  1064.     </xs:attribute>
  1065.     <xs:attribute name="nottargethpp">
  1066.       <xs:simpleType>
  1067.         <xs:union memberTypes="percentageLimit numericVar" />
  1068.       </xs:simpleType>
  1069.     </xs:attribute>
  1070.     <xs:attribute name="nottargethppgt">
  1071.       <xs:simpleType>
  1072.         <xs:union memberTypes="percentageLimit numericVar" />
  1073.       </xs:simpleType>
  1074.     </xs:attribute>
  1075.     <xs:attribute name="nottargethpplt">
  1076.       <xs:simpleType>
  1077.         <xs:union memberTypes="percentageLimit numericVar" />
  1078.       </xs:simpleType>
  1079.     </xs:attribute>
  1080.     <xs:attribute name="spelltargethpp">
  1081.       <xs:simpleType>
  1082.         <xs:union memberTypes="percentageLimit numericVar" />
  1083.       </xs:simpleType>
  1084.     </xs:attribute>
  1085.     <xs:attribute name="spelltargethppgt">
  1086.       <xs:simpleType>
  1087.         <xs:union memberTypes="percentageLimit numericVar" />
  1088.       </xs:simpleType>
  1089.     </xs:attribute>
  1090.     <xs:attribute name="spelltargethpplt">
  1091.       <xs:simpleType>
  1092.         <xs:union memberTypes="percentageLimit numericVar" />
  1093.       </xs:simpleType>
  1094.     </xs:attribute>
  1095.     <xs:attribute name="notspelltargethpp">
  1096.       <xs:simpleType>
  1097.         <xs:union memberTypes="percentageLimit numericVar" />
  1098.       </xs:simpleType>
  1099.     </xs:attribute>
  1100.     <xs:attribute name="notspelltargethppgt">
  1101.       <xs:simpleType>
  1102.         <xs:union memberTypes="percentageLimit numericVar" />
  1103.       </xs:simpleType>
  1104.     </xs:attribute>
  1105.     <xs:attribute name="notspelltargethpplt">
  1106.       <xs:simpleType>
  1107.         <xs:union memberTypes="percentageLimit numericVar" />
  1108.       </xs:simpleType>
  1109.     </xs:attribute>
  1110.   </xs:attributeGroup>
  1111.  
  1112.   <xs:attributeGroup name="numericTestsParty">
  1113.     <xs:attribute name="partycount">
  1114.       <xs:simpleType>
  1115.         <xs:union memberTypes="partyLimit numericVar" />
  1116.       </xs:simpleType>
  1117.     </xs:attribute>
  1118.     <xs:attribute name="partycountgt">
  1119.       <xs:simpleType>
  1120.         <xs:union memberTypes="partyLimit numericVar" />
  1121.       </xs:simpleType>
  1122.     </xs:attribute>
  1123.     <xs:attribute name="partycountlt">
  1124.       <xs:simpleType>
  1125.         <xs:union memberTypes="partyLimit numericVar" />
  1126.       </xs:simpleType>
  1127.     </xs:attribute>
  1128.     <xs:attribute name="notpartycount">
  1129.       <xs:simpleType>
  1130.         <xs:union memberTypes="partyLimit numericVar" />
  1131.       </xs:simpleType>
  1132.     </xs:attribute>
  1133.     <xs:attribute name="notpartycountgt">
  1134.       <xs:simpleType>
  1135.         <xs:union memberTypes="partyLimit numericVar" />
  1136.       </xs:simpleType>
  1137.     </xs:attribute>
  1138.     <xs:attribute name="notpartycountlt">
  1139.       <xs:simpleType>
  1140.         <xs:union memberTypes="partyLimit numericVar" />
  1141.       </xs:simpleType>
  1142.     </xs:attribute>
  1143.   </xs:attributeGroup>
  1144.  
  1145.  
  1146.   <!-- Numeric type definitions -->
  1147.   <xs:simpleType name="numericVar">
  1148.     <xs:restriction base="xs:string">
  1149.       <xs:pattern value="(\$|%).*"/>
  1150.     </xs:restriction>
  1151.   </xs:simpleType>
  1152.  
  1153.   <xs:simpleType name="percentageLimit">
  1154.     <xs:restriction base="xs:decimal">
  1155.       <xs:minInclusive value="0"/>
  1156.       <xs:maxInclusive value="100"/>
  1157.     </xs:restriction>
  1158.   </xs:simpleType>
  1159.  
  1160.   <xs:simpleType name="tpLimit">
  1161.     <xs:restriction base="xs:integer">
  1162.       <xs:minInclusive value="0"/>
  1163.       <xs:maxInclusive value="300"/>
  1164.     </xs:restriction>
  1165.   </xs:simpleType>
  1166.  
  1167.   <xs:simpleType name="tpLimitReal">
  1168.     <xs:restriction base="xs:decimal">
  1169.       <xs:minInclusive value="0"/>
  1170.       <xs:maxInclusive value="300"/>
  1171.       <xs:fractionDigits value="1"/>
  1172.     </xs:restriction>
  1173.   </xs:simpleType>
  1174.  
  1175.   <xs:simpleType name="levelLimit">
  1176.     <xs:restriction base="xs:integer">
  1177.       <xs:minInclusive value="0"/>
  1178.       <xs:maxInclusive value="99"/>
  1179.     </xs:restriction>
  1180.   </xs:simpleType>
  1181.  
  1182.   <xs:simpleType name="partyLimit">
  1183.     <xs:restriction base="xs:integer">
  1184.       <xs:minInclusive value="1"/>
  1185.       <xs:maxInclusive value="18"/>
  1186.     </xs:restriction>
  1187.   </xs:simpleType>
  1188.  
  1189.   <xs:simpleType name="positiveDecimal">
  1190.     <xs:restriction base="xs:decimal">
  1191.       <xs:minInclusive value="0"/>
  1192.     </xs:restriction>
  1193.   </xs:simpleType>
  1194.  
  1195.   <xs:simpleType name="timeOfDayLimit">
  1196.     <xs:restriction base="xs:decimal">
  1197.       <xs:minInclusive value="0"/>
  1198.       <xs:maxInclusive value="23.59"/>
  1199.       <xs:fractionDigits value="2"/>
  1200.       <xs:pattern value=".*(\.[0-5][0-9])?"/>
  1201.     </xs:restriction>
  1202.   </xs:simpleType>
  1203.  
  1204.  
  1205.  
  1206.   <xs:attributeGroup name="patternConditions">
  1207.     <xs:attribute name="mode" type="modeValues" default="And"/>
  1208.     <xs:attribute name="playername" type="Names"/>
  1209.     <xs:attribute name="PlayerName" type="Names"/>
  1210.     <xs:attribute name="commandprefix" type="prefixValues"/>
  1211.     <xs:attribute name="validtarget" type="targetValues" />
  1212.     <xs:attribute name="ValidTarget" type="targetValues" />
  1213.     <xs:attribute name="element" type="elementValues"/>
  1214.     <xs:attribute name="Element" type="elementValues"/>
  1215.     <xs:attribute name="type" type="typeValues"/>
  1216.     <xs:attribute name="Type" type="typeValues"/>
  1217.     <xs:attribute name="skill" type="skillValues"/>
  1218.     <xs:attribute name="Skill" type="skillValues"/>
  1219.     <xs:attribute name="status" type="statusValues"/>
  1220.     <xs:attribute name="Status" type="statusValues"/>
  1221.     <xs:attribute name="day" type="dayValues"/>
  1222.     <xs:attribute name="Day" type="dayValues"/>
  1223.     <xs:attribute name="dayelement" type="elementValues"/>
  1224.     <xs:attribute name="DayElement" type="elementValues"/>
  1225.     <xs:attribute name="weather" type="weatherValues"/>
  1226.     <xs:attribute name="Weather" type="weatherValues"/>
  1227.     <xs:attribute name="weatherelement" type="weatherElementValues"/>
  1228.     <xs:attribute name="WeatherElement" type="weatherElementValues"/>
  1229.     <xs:attribute name="moon" type="moonValues"/>
  1230.     <xs:attribute name="Moon" type="moonValues"/>
  1231.     <xs:attribute name="targettype" type="targetTypeValues"/>
  1232.     <xs:attribute name="TargetType" type="targetTypeValues"/>
  1233.     <xs:attribute name="spelltargettype" type="targetTypeValues"/>
  1234.     <xs:attribute name="SpellTargetType" type="targetTypeValues"/>
  1235.     <xs:attribute name="targetisallymember" type="ZeroOrOne"/>
  1236.     <xs:attribute name="TargetIsAllyMember" type="ZeroOrOne"/>
  1237.     <xs:attribute name="spelltargetisallymember" type="ZeroOrOne"/>
  1238.     <xs:attribute name="SpellTargetIsAllyMember" type="ZeroOrOne"/>
  1239.     <xs:attribute name="petisvalid" type="xs:boolean"/>
  1240.     <xs:attribute name="PetIsValid" type="xs:boolean"/>
  1241.     <xs:attribute name="petelement" type="elementValues"/>
  1242.     <xs:attribute name="PetElement" type="elementValues"/>
  1243.     <xs:attribute name="fellowisvalid" type="xs:boolean"/>
  1244.     <xs:attribute name="FellowIsValid" type="xs:boolean"/>
  1245.     <xs:attribute name="notplayername" type="Names"/>
  1246.     <xs:attribute name="NotPlayerName" type="Names"/>
  1247.     <xs:attribute name="notcommandprefix" type="prefixValues"/>
  1248.     <xs:attribute name="notvalidtarget" type="targetValues" />
  1249.     <xs:attribute name="notelement" type="elementValues"/>
  1250.     <xs:attribute name="NotElement" type="elementValues"/>
  1251.     <xs:attribute name="nottype" type="typeValues"/>
  1252.     <xs:attribute name="NotType" type="typeValues"/>
  1253.     <xs:attribute name="notskill" type="skillValues"/>
  1254.     <xs:attribute name="NotSkill" type="skillValues"/>
  1255.     <xs:attribute name="notstatus" type="statusValues"/>
  1256.     <xs:attribute name="NotStatus" type="statusValues"/>
  1257.     <xs:attribute name="notday" type="dayValues"/>
  1258.     <xs:attribute name="NotDay" type="dayValues"/>
  1259.     <xs:attribute name="notdayelement" type="elementValues"/>
  1260.     <xs:attribute name="NotDayElement" type="elementValues"/>
  1261.     <xs:attribute name="notweather" type="weatherValues"/>
  1262.     <xs:attribute name="NotWeather" type="weatherValues"/>
  1263.     <xs:attribute name="notweatherelement" type="weatherElementValues"/>
  1264.     <xs:attribute name="NotWeatherElement" type="weatherElementValues"/>
  1265.     <xs:attribute name="notmoon" type="moonValues"/>
  1266.     <xs:attribute name="NotMoon" type="moonValues"/>
  1267.     <xs:attribute name="nottargettype" type="targetTypeValues"/>
  1268.     <xs:attribute name="NotTargetType" type="targetTypeValues"/>
  1269.     <xs:attribute name="notspelltargettype" type="targetTypeValues"/>
  1270.     <xs:attribute name="NotSpellTargetType" type="targetTypeValues"/>
  1271.     <xs:attribute name="nottargetisallymember" type="ZeroOrOne"/>
  1272.     <xs:attribute name="NotSpellTargetIsAllyMember" type="ZeroOrOne"/>
  1273.     <xs:attribute name="notpetisvalid" type="xs:boolean"/>
  1274.     <xs:attribute name="NotPetIsValid" type="xs:boolean"/>
  1275.     <xs:attribute name="notpetelement" type="elementValues"/>
  1276.     <xs:attribute name="NotPetElement" type="elementValues"/>
  1277.     <xs:attribute name="notfellowisvalid" type="xs:boolean"/>
  1278.     <xs:attribute name="NotFellowIsValid" type="xs:boolean"/>
  1279.   </xs:attributeGroup>
  1280.  
  1281.   <!-- Enumerations/patterns for various value types. -->
  1282.   <xs:simpleType name="wildcardsAndVars">
  1283.     <xs:restriction base="xs:string">
  1284.       <xs:pattern value="(.*\*.*)|(.*\$.+)|(.*%.+)" />
  1285.     </xs:restriction>
  1286.   </xs:simpleType>
  1287.  
  1288.   <xs:simpleType name="modeValues">
  1289.     <xs:restriction base="xs:string">
  1290.       <xs:pattern value="[aA]nd|AND|[oO]r|OR" />
  1291.     </xs:restriction>
  1292.   </xs:simpleType>
  1293.  
  1294.   <xs:simpleType name="ZeroOrOne">
  1295.     <xs:restriction base="xs:string">
  1296.       <xs:pattern value="0|1" />
  1297.     </xs:restriction>
  1298.   </xs:simpleType>
  1299.  
  1300.   <xs:simpleType name="YesOrNoBool">
  1301.     <xs:restriction base="xs:string">
  1302.       <xs:pattern value="(yes|true|1)|(no|false|0)" />
  1303.     </xs:restriction>
  1304.   </xs:simpleType>
  1305.  
  1306.   <xs:simpleType name="Names">
  1307.     <xs:union memberTypes="wildcardsAndVars">
  1308.       <xs:simpleType>
  1309.         <xs:restriction base="xs:string">
  1310.           <xs:pattern value="([a-zA-Z]{3,16})(\|([a-zA-Z]{3,16}))*" />
  1311.         </xs:restriction>
  1312.       </xs:simpleType>
  1313.     </xs:union>
  1314.   </xs:simpleType>
  1315.  
  1316.   <xs:simpleType name="whenValues">
  1317.     <xs:union memberTypes="wildcardsAndVars">
  1318.       <xs:simpleType>
  1319.         <xs:restriction base="xs:string">
  1320.           <xs:pattern value="([pP]recast|[mM]idcast|[aA]ftercast|[aA]utoset|[iI]dle|[eE]ngaged|[rR]esting|[aA]ll|PRECAST|MIDCAST|AFTERCAST|AUTOSET|IDLE|ENGAGED|RESTING|ALL)(\|([pP]recast|[mM]idcast|[aA]ftercast|[aA]utoset|[iI]dle|[eE]ngaged|[rR]esting|PRECAST|MIDCAST|AFTERCAST|AUTOSET|IDLE|ENGAGED|RESTING))*" />
  1321.         </xs:restriction>
  1322.       </xs:simpleType>
  1323.     </xs:union>
  1324.   </xs:simpleType>
  1325.  
  1326.   <xs:simpleType name="prefixValues">
  1327.     <xs:union memberTypes="wildcardsAndVars">
  1328.       <xs:simpleType>
  1329.         <xs:restriction base="xs:string">
  1330.           <xs:pattern value="(/jobability|/magic|/ninjutsu|/pet|/range|/song|/weaponskill|/trigger)(\|(/jobability|/magic|/ninjutsu|/pet|/range|/song|/weaponskill|/trigger))*" />
  1331.         </xs:restriction>
  1332.       </xs:simpleType>
  1333.     </xs:union>
  1334.   </xs:simpleType>
  1335.  
  1336.   <xs:simpleType name="statusValues">
  1337.     <xs:union memberTypes="wildcardsAndVars">
  1338.       <xs:simpleType>
  1339.         <xs:restriction base="xs:string">
  1340.           <xs:pattern value="([eE]ngaged|[iI]dle|[rR]esting|[dD]ead|ENGAGED|IDLE|RESTING|DEAD)(\|([eE]ngaged|[iI]dle|[rR]esting|[dD]ead|ENGAGED|IDLE|RESTING|DEAD))*" />
  1341.         </xs:restriction>
  1342.       </xs:simpleType>
  1343.     </xs:union>
  1344.   </xs:simpleType>
  1345.  
  1346.   <xs:simpleType name="targetValues">
  1347.     <xs:union memberTypes="wildcardsAndVars">
  1348.       <xs:simpleType>
  1349.         <xs:restriction base="xs:string">
  1350.           <xs:pattern value="([aA]lly|[cC]orpse|[eE]nemy|npc|[pP]arty|[sS]elf|ALLY|CORPSE|ENEMY|NPC|PARTY|SELF)(\|([aA]lly|[cC]orpse|[eE]nemy|npc|[pP]arty|[sS]elf|ALLY|CORPSE|ENEMY|NPC|PARTY|SELF))*" />
  1351.         </xs:restriction>
  1352.       </xs:simpleType>
  1353.     </xs:union>
  1354.   </xs:simpleType>
  1355.  
  1356.   <xs:simpleType name="targetTypeValues">
  1357.     <xs:union memberTypes="wildcardsAndVars">
  1358.       <xs:simpleType>
  1359.         <xs:restriction base="xs:string">
  1360.           <xs:pattern value="([nN]one|[mM]onster|[nN]pc|[pP]layer|[sS]elf|NONE|MONSTER|NPC|PLAYER|SELF)(\|([nN]one|[mM]onster|[nN]pc|[pP]layer|[sS]elf|NONE|MONSTER|NPC|PLAYER|SELF))*" />
  1361.         </xs:restriction>
  1362.       </xs:simpleType>
  1363.     </xs:union>
  1364.   </xs:simpleType>
  1365.  
  1366.   <xs:simpleType name="typeValues">
  1367.     <xs:union memberTypes="wildcardsAndVars">
  1368.       <xs:simpleType>
  1369.         <xs:restriction base="xs:string">
  1370.           <xs:pattern value="([bB]ard[sS]ong|[bB]lack[mM]agic|[bB]lue[mM]agic|[bB]lood[pP]act[rR]age|[bB]lood[pP]act[wW]ard|[cC]orsair[rR]oll|[cC]orsair[sS]hot|[jJ]ob[aA]bility|[nN]injutsu|[pP]et[cC]ommand|[sS]ummoner[pP]act|[wW]eapon[sS]kill|[wW]hite[mM]agic|[sS]tep|[wW]altz|[sS]amba|[jJ]ig|[fF]lourish[123]|[sS]cholar|[mM]onster|[mM]isc|[tT]rigger|BARDSONG|BLACKMAGIC|BLUEMAGIC|BLOODPACTRAGE|BLOODPACTWARD|CORSAIRROLL|CORSAIRSHOT|JOBABILITY|NINJUTSU|PETCOMMAND|SUMMONERPACT|WEAPONSKILL|WHITEMAGIC|STEP|WALTZ|SAMBA|JIG|FLOURISH[123]|SCHOLAR|MONSTER|MISC|TRIGGER)(\|([bB]ard[sS]ong|[bB]lack[mM]agic|[bB]lue[mM]agic|[bB]lood[pP]act[rR]age|[bB]lood[pP]act[wW]ard|[cC]orsair[rR]oll|[cC]orsair[sS]hot|[jJ]ob[aA]bility|[nN]injutsu|[pP]et[cC]ommand|[sS]ummoner[pP]act|[wW]eapon[sS]kill|[wW]hite[mM]agic|[sS]tep|[wW]altz|[sS]amba|[jJ]ig|[fF]lourish[123]|[sS]cholar|[mM]onster|[mM]isc|[tT]rigger|BARDSONG|BLACKMAGIC|BLUEMAGIC|BLOODPACTRAGE|BLOODPACTWARD|CORSAIRROLL|CORSAIRSHOT|JOBABILITY|NINJUTSU|PETCOMMAND|SUMMONERPACT|WEAPONSKILL|WHITEMAGIC|STEP|WALTZ|SAMBA|JIG|FLOURISH[123]|SCHOLAR|MONSTER|MISC|TRIGGER))*" />
  1371.         </xs:restriction>
  1372.       </xs:simpleType>
  1373.     </xs:union>
  1374.   </xs:simpleType>
  1375.  
  1376.   <xs:simpleType name="skillValues">
  1377.     <xs:union memberTypes="wildcardsAndVars">
  1378.       <xs:simpleType>
  1379.         <xs:restriction base="xs:string">
  1380.           <xs:pattern value="([bB]lue[mM]agic|[dD]ark[mM]agic|[dD]ivine[mM]agic|[eE]lemental[mM]agic|[eE]nfeebling[mM]agic|[eE]nhancing[mM]agic|[hH]ealing[mM]agic|[nN]injutsu|[sS]inging|[sS]ummoning[mM]agic|[tT]rigger|[gG]eneric[tT]rigger|[cC]ontrol[tT]rigger|[cC]ombat[tT]rigger|[eE]lemental[tT]rigger|BLUEMAGIC|DARKMAGIC|DIVINEMAGIC|ELEMENTALMAGIC|ENFEEBLINGMAGIC|ENHANCINGMAGIC|HEALINGMAGIC|NINJUTSU|SINGING|SUMMONINGMAGIC|TRIGGER|GENERICTRIGGER|CONTROLTRIGGER|COMBATTRIGGER|ELEMENTALTRIGGER)(\|([bB]lue[mM]agic|[dD]ark[mM]agic|[dD]ivine[mM]agic|[eE]lemental[mM]agic|[eE]nfeebling[mM]agic|[eE]nhancing[mM]agic|[hH]ealing[mM]agic|[nN]injutsu|[sS]inging|[sS]ummoning[mM]agic|[tT]rigger|[gG]eneric[tT]rigger|[cC]ontrol[tT]rigger|[cC]ombat[tT]rigger|[eE]lemental[tT]rigger|BLUEMAGIC|DARKMAGIC|DIVINEMAGIC|ELEMENTALMAGIC|ENFEEBLINGMAGIC|ENHANCINGMAGIC|HEALINGMAGIC|NINJUTSU|SINGING|SUMMONINGMAGIC|TRIGGER|GENERICTRIGGER|CONTROLTRIGGER|COMBATTRIGGER|ELEMENTALTRIGGER))*" />
  1381.         </xs:restriction>
  1382.       </xs:simpleType>
  1383.     </xs:union>
  1384.   </xs:simpleType>
  1385.  
  1386.   <xs:simpleType name="elementValues">
  1387.     <xs:union memberTypes="wildcardsAndVars">
  1388.       <xs:simpleType>
  1389.         <xs:restriction base="xs:string">
  1390.           <xs:pattern value="([fF]ire|[iI]ce|[wW]ind|[eE]arth|[tT]hunder|[wW]ater|[lL]ight|[dD]ark|FIRE|ICE|WIND|EARTH|THUNDER|WATER|LIGHT|DARK)(\|([fF]ire|[iI]ce|[wW]ind|[eE]arth|[tT]hunder|[wW]ater|[lL]ight|[dD]ark|FIRE|ICE|WIND|EARTH|THUNDER|WATER|LIGHT|DARK))*" />
  1391.         </xs:restriction>
  1392.       </xs:simpleType>
  1393.     </xs:union>
  1394.   </xs:simpleType>
  1395.  
  1396.   <xs:simpleType name="dayValues">
  1397.     <xs:union memberTypes="wildcardsAndVars">
  1398.       <xs:simpleType>
  1399.         <xs:restriction base="xs:string">
  1400.           <xs:pattern value="([fF]iresday|[iI]ceday|[wW]indsday|[eE]arthsday|[[lL]ightningday|[wW]atersday|[lL]ightsday|[dD]arksday|FIRESDAY|ICEDAY|WINDSDAY|EARTHSDAY|LIGHTNINGDAY|WATERSDAY|LIGHTSDAY|DARKSDAY)(\|([fF]iresday|[iI]ceday|[wW]indsday|[eE]arthsday|[[lL]ightningday|[wW]atersday|[lL]ightsday|[dD]arksday|FIRESDAY|ICEDAY|WINDSDAY|EARTHSDAY|LIGHTNINGDAY|WATERSDAY|LIGHTSDAY|DARKSDAY))*" />
  1401.         </xs:restriction>
  1402.       </xs:simpleType>
  1403.     </xs:union>
  1404.   </xs:simpleType>
  1405.  
  1406.   <xs:simpleType name="weatherValues">
  1407.     <xs:union memberTypes="wildcardsAndVars">
  1408.       <xs:simpleType>
  1409.         <xs:restriction base="xs:string">
  1410.           <xs:pattern value="([cC]lear|[sS]unshine|[cC]louds|[fF]og|[fF]ire|[fF]ire x2|[wW]ater|[wW]ater x2|[eE]arth|[eE]arth x2|[wW]ind|[wW]ind x2|[iI]ce|[iI]ce x2|[tT]hunder|[tT]hunder x2|[lL]ight|[lL]ight x2|[dD]ark|[dD]ark x2|CLEAR|SUNSHINE|CLOUDS|FOG|FIRE|FIRE X2|WATER|WATER X2|EARTH|EARTH X2|WIND|WIND X2|ICE|ICE X2|THUNDER|THUNDER X2|LIGHT|LIGHT X2|DARK|DARK X2)(\|([cC]lear|[sS]unshine|[cC]louds|[fF]og|[fF]ire|[fF]ire x2|[wW]ater|[wW]ater x2|[eE]arth|[eE]arth x2|[wW]ind|[wW]ind x2|[iI]ce|[iI]ce x2|[tT]hunder|[tT]hunder x2|[lL]ight|[lL]ight x2|[dD]ark|[dD]ark x2|CLEAR|SUNSHINE|CLOUDS|FOG|FIRE|FIRE X2|WATER|WATER X2|EARTH|EARTH X2|WIND|WIND X2|ICE|ICE X2|THUNDER|THUNDER X2|LIGHT|LIGHT X2|DARK|DARK X2))*" />
  1411.         </xs:restriction>
  1412.       </xs:simpleType>
  1413.     </xs:union>
  1414.   </xs:simpleType>
  1415.  
  1416.   <xs:simpleType name="weatherElementValues">
  1417.     <xs:union memberTypes="wildcardsAndVars">
  1418.       <xs:simpleType>
  1419.         <xs:restriction base="xs:string">
  1420.           <xs:pattern value="([nN]one|[fF]ire|[iI]ce|[wW]ind|[eE]arth|[tT]hunder|[wW]ater|[lL]ight|[dD]ark|NONE|FIRE|ICE|WIND|EARTH|THUNDER|WATER|LIGHT|DARK)(\|([nN]one|[fF]ire|[iI]ce|[wW]ind|[eE]arth|[tT]hunder|[wW]ater|[lL]ight|[dD]ark|NONE|FIRE|ICE|WIND|EARTH|THUNDER|WATER|LIGHT|DARK))*" />
  1421.         </xs:restriction>
  1422.       </xs:simpleType>
  1423.     </xs:union>
  1424.   </xs:simpleType>
  1425.  
  1426.   <xs:simpleType name="moonValues">
  1427.     <xs:union memberTypes="wildcardsAndVars">
  1428.       <xs:simpleType>
  1429.         <xs:restriction base="xs:string">
  1430.           <xs:pattern value="([nN]ew [mM]oon|[wW]axing [cC]rescent|[fF]irst [qQ]uarter [mM]oon|[wW]axing [gG]ibbous|[fF]ull [mM]oon|[wW]aning [gG]ibbous|[lL]ast [qQ]uarter [mM]oon|[wW]aning [cC]rescent|NEW MOON|WAXING CRESCENT|FIRST QUARTER MOON|WAXING GIBBOUS|FULL MOON|WANING GIBBOUS|LAST QUARTER MOON|WANING CRESCENT)(\|([nN]ew [mM]oon|[wW]axing [cC]rescent|[fF]irst [qQ]uarter [mM]oon|[wW]axing [gG]ibbous|[fF]ull [mM]oon|[wW]aning [gG]ibbous|[lL]ast [qQ]uarter [mM]oon|[wW]aning [cC]rescent|NEW MOON|WAXING CRESCENT|FIRST QUARTER MOON|WAXING GIBBOUS|FULL MOON|WANING GIBBOUS|LAST QUARTER MOON|WANING CRESCENT))*" />
  1431.         </xs:restriction>
  1432.       </xs:simpleType>
  1433.     </xs:union>
  1434.   </xs:simpleType>
  1435.  
  1436. </xs:schema>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement