1. <LevelDefinition>
  2.     <!-- 생성한 level의 크기와 사용한 tileset -->
        <TileAllocation width="10" height="10" tilesetpath="tileset.xml" >
            <![CDATA[ 4a 34a 134x 134w 134c 134c 14z 3z 134v 14d ]]>   <!-- 배치한 tile을 행 단위로 나열 -->
                                                    ...
            <![CDATA[ 23z 1234m 123v 123e 123x 123x 123v 13d 1234o 124w ]]>
        </TileAllocation>
        <LockKeyAllocation>      
  3.         <!-- lock은 인접한 tile사이의 edge에 배치된다. -->
  4.         <!-- 따라사 "(x=1,y=1)의 East에 배치", "(x=2,y=1)의 West에 배치" 는 같은 Lock이다.
  5.         <!-- 하나의 lock은 여러 cell에 걸쳐서 배치되기 때문에 -->
  6.         <!-- (x1,y1) - (x2,y2) 에 배치되는 것으로 표현하였다. -->
  7.         <!-- 실제로는 x1==x2 or y1==y2 이기 때문에 배치된 Lock은 선분의 형태가 됨 -->
            <Lock Direction="West" x1="30" x2="30" y1="46" y2="47" >
                <Key x="16" y="44" />   <!-- Lock에 해당하는 Key의 좌표 -->
                <Key x="29" y="33" />
            </Lock>
            <Lock Direction="East" x1="34" x2="34" y1="41" y2="43" >
                <Key x="40" y="41" />
            </Lock>
        </LockKeyAllocation>
        <Sokoban>
            <Block x="5" y="5" />    <!-- block 을 cell 단위로 표시 -->
            <Block x="10" y="10" />
        </Sokoban>

        <!-- 아래 부터 cell 단위의 solution path -->

        <!-- (startx, starty) 에서 시작하여 (goalx, goaly)를 향해 움직이면서 -->

        <!- 'Key획득', 'Lock열기', 'sokoban 풀기', 'Monster 죽이기' 등의 Action을 한다. -->
        <SolutionPath startx="1" starty="1" goalx="1" goaly="10">
            <Action x="1" y="1" type="Move" exp="0" />      <!-- exp는 지금까지의 누적 경험치 임 -->
            <Action x="1" y="2" type="Move" exp="0" />
            <Action x="1" y="3" type="Move" exp="0" />
            <Action x="1" y="3" type="GetKey" exp="100" />  <!-- Key획득 -->
            <Action x="1" y="4" type="Move" exp="100" />
            <Action x="1" y="5" type="Move" exp="100" />
            <Action x="1" y="5" type="UnLock" exp="600">    <!-- Lock열기 -->
                <Lock x="0" y="5" Direction="South" />      <!-- 지워야 할 lock 을 cell 단위로 표시 -->
                <Lock x="1" y="5" Direction="South" />
                <Lock x="2" y="5" Direction="South" />
            </Action>
            <Action x="1" y="6" type="Move" exp="600">
            <Action x="1" y="6" type="SolveSokoban" exp="1000"> <!-- Sokoban puzzle 풀기 -->
                <Block x="5" y="5" />                       <!-- 지워야 할 block 을 cell 단위로 표시 -->
                <Block x="10" y="10" />
            </Action>
            <Action x="1" y="7" type="Move" exp="1000" />
            <Action x="1" y="8" type="Move" exp="1000" />
            <Action x="1" y="8" type="KillMonster" exp="1400" /> <!-- Monster 죽이기 -->
            <Action x="1" y="9" type="Move" exp="1400" />
            <Action x="1" y="10" type="Move" exp="1400" />
        </SolutionPath>
    </LevelDefinition>