home *** CD-ROM | disk | FTP | other *** search
/ Thomson (Residential) / TGSTPv7203.iso / mac / HIW / xml / mod_setdeviceproperties.xml < prev    next >
Extensible Markup Language  |  2008-02-11  |  3KB  |  66 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE fsm SYSTEM "fsm.dtd">
  3. <!-- 
  4. -->
  5.  
  6. <fsm>
  7.   <property key="device" required="yes"/>
  8.   <property key="filePath" required="yes"/>
  9.   <states>
  10.     <state type="readTextFile" name="openFile"/>
  11.     <state type="parseXml" name="parseXml"/>
  12.     <state type="xmlFindNodes" name="findDeviceNode"/>
  13.     <state type="fsm" name="setPropertiesFsm">
  14.           <property key="device" required="yes"/>
  15.           <property key="nodeList" required="yes"/>
  16.           <states>
  17.             <state type="listIterator" name="iterator"/>
  18.           </states>
  19.           <events>
  20.             <event name="finished"/>
  21.           </events>
  22.           <transitions>
  23.               <transition startstate="iterator">
  24.                   <propertymap target="fsm.nodeList" function="$fsm.nodeList"/>
  25.                   <propertymap target="fsm.iterateCount" function="count($fsm.nodeList)"/>
  26.                   <propertymap target="list" function="propertylist($fsm.nodeList)"/>
  27.                   <propertymap target="currentItem" function=""/>
  28.               </transition>
  29.             <transition fromstate="iterator" tostate="iterator" event="nextItem">
  30.                   <propertymap target="currentItem" function="$currentItem"/>
  31.                   <propertymap target="fsm.tempKey" function="findfirstnode(property($fsm.nodeList, $currentItem), '@key')"/>
  32.                   <propertymap target="fsm.tempValue" function="findfirstnode(property($fsm.nodeList, $currentItem), '@value')"/>
  33.                   <propertymap target="fsm.device" function="setproperty($fsm.device, property($fsm.tempKey, 'nodeValue'), property($fsm.tempValue, 'nodeValue'))"/>
  34.             </transition>
  35.             <transition fromstate="iterator" toexit="finished" event="lastItem"/>
  36.           </transitions>
  37.     </state>
  38.   </states>
  39.   <events>
  40.     <event name="finished"/>
  41.   </events>
  42.   <transitions>
  43.       <transition startstate="openFile">
  44.           <propertymap target="path" function="$fsm.filePath"/>
  45.       </transition>
  46.     <transition fromstate="openFile" tostate="parseXml" event="finished">
  47.         <propertymap target="xmlContent" function="$content"/>
  48.     </transition>
  49.     <transition fromstate="parseXml" tostate="findDeviceNode" event="finished">
  50.         <propertymap target="node" function="$xmlDocument"/>
  51.         <propertymap target="path" function="replace('/devices/device[@board=\'%1\']/property', '%1', property($fsm.device, 'board'))"/>
  52.     </transition>
  53.     <transition fromstate="findDeviceNode" tostate="setPropertiesFsm" event="singleFound|multipleFound">
  54.         <propertymap target="device" function="$fsm.device"/>
  55.         <propertymap target="nodeList" function="remove($nodeList, 'name')"/>
  56.     </transition>
  57.  
  58.     <transition fromstate="openFile" toexit="finished" event="failed|fileNotFound"/>
  59.     <transition fromstate="parseXml" toexit="finished" event="invalid"/>
  60.     <transition fromstate="findDeviceNode" toexit="finished" event="noFound"/>
  61.     <transition fromstate="setPropertiesFsm" toexit="finished" event="finished">
  62.         <propertymap target="fsm.device" function="$device"/>
  63.     </transition>
  64.   </transitions>
  65. </fsm>
  66.