<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
    	  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  
-->
<canvas debug="false">     

	<!-- DATASETS -->
	<include href="rtldata.xml"/>

	<!-- RESOURCES [FONTS] -->
  <include href="resources.lzx"/> 

	<!-- RTLTEXT CLASS DEFINITION -->
  <include href="rtlText.lzx"/> 

	
	<view x="200" y="20">
    <simplelayout axis="y" />
    <view datapath="personsData:/myXML[1]/person" width="300" bgcolor="#cccccc">
      <simplelayout axis="y" />
    	<rtlText name="txtName" textAlign="center" fontsize="10" font="default" fontstyle="bold" datapath="name/text()"/>
    	<rtlText name="txtTitle" fontsize="10" font="default" datapath="title/text()"/> 
    	<text></text>
    </view>
  </view>

</canvas>
