<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>
    <title>Dali-Mapping a Class with an XML Mapping File</title>
    <meta name="Keywords" content="qarbon, viewlet, viewletbuilder, demo software, animation software, on line training, flash tutorial, flash demo, multimedia presentation, interactive software, training, software, online presentation, it help desk software, presentation software, learning software, online documentation, simulation software, viewlets"/>
    <meta name="Description" content="" />
<!-- $VIEWLET_CENTRAL_API -->
<script language="JavaScript">
<!--
function beginContent (user, partialResults) {
}
function endContent (time, completed, timedOut) {
}
function beginQuestion (questionid) {
}
function endQuestion (questionid, correct, points, attempts, time, timedOut) {
}
function addAnswer (questionid, choiceid, answerid, correct) {
}
-->
</script>














   </head>

  <center>

    <body bgcolor="#ffffff">

<!-- $VIEWLET_CENTRAL_IFRAME -->
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="1024" height="784">
                <param name="movie" value="5-MapSimpleClass-XML.swf">
                <param name="quality" value="high">
                <param name="bgcolor" value="#ffffff">
                <embed src="5-MapSimpleClass-XML.swf" quality="high" bgcolor="#ffffff" width="1024" height="784" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
          </object>
    </body>
    
    </center>

</html>
