<html>
              <!-- This panel generated from the developerWorks XML tag set for tutorials, Version 3.0.2.  (C) Copyright 2000, 2002 IBM Corporation.  All rights reserved. -->
            <head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Simple types</title></head><body vlink="663366" alink="330000" text="000000" bgcolor="ffffff"><script language="javascript">
<!-- 
var emailAbstract="This tutorial gives you the building blocks you need to set up and work with the XML Schema Infoset Model. It shows how to create all of the different constructs within the XML Schema Infoset model. This tutorial is the second of a two-part series.";
var justTitle="XML Schema Infoset Model, Part 2";
var tutorialPrereqs="http://www.ibm.com/developerworks/edu/os-dw-os-schema2-i.html";
var menu1blurb="Before you start"; 
var menu2blurb="Overview of XML Schema documents"; 
var menu3blurb="Simple types"; 
var menu4blurb="Complex types"; 
var menu5blurb="Content models"; 
var menu6blurb="Elements and attributes"; 
var menu7blurb="Pulling it all together"; 
var menu8blurb="You try it!"; 
var menu9blurb="Summary and resources"; 

      var browser = "x";
      if (navigator.userAgent.indexOf("Mozilla/4") != -1) browser = "N3";
      else if (navigator.userAgent.indexOf("Mozilla/3") != -1) browser = "N3";
      else browser = "x";
      
      if (browser=="N3")
      {
    var menu1over=new Image(108,68); 
var menu1out=new Image(108,68); 
var menu2over=new Image(108,68); 
var menu2out=new Image(108,68); 
var menu3over=new Image(108,68); 
var menu3out=new Image(108,68); 
var menu4over=new Image(108,68); 
var menu4out=new Image(108,68); 
var menu5over=new Image(108,68); 
var menu5out=new Image(108,68); 
var menu6over=new Image(108,68); 
var menu6out=new Image(108,68); 
var menu7over=new Image(108,68); 
var menu7out=new Image(108,68); 
var menu8over=new Image(108,68); 
var menu8out=new Image(108,68); 
var menu9over=new Image(108,68); 
var menu9out=new Image(108,68); 

        var topmainover=new Image(77,15);
        var topmainout=new Image(77,15);
        var bottommainover=new Image(77,15);
        var bottommainout=new Image(77,15);
        var topsectionover=new Image(98,15);
        var topsectionout=new Image(98,15);
        var bottomsectionover=new Image(98,15);
        var bottomsectionout=new Image(98,15);
        var topfeedbackover=new Image(80,15);
        var topfeedbackout=new Image(80,15);
        var bottomfeedbackover=new Image(80,15);
        var bottomfeedbackout=new Image(80,15);
        var toppreviousover=new Image(77,15);
        var toppreviousout=new Image(77,15);
        var bottompreviousover=new Image(77,15);
        var bottompreviousout=new Image(77,15);
        var topnextover=new Image(60,15);
        var topnextout=new Image(60,15);
        var bottomnextover=new Image(60,15);
        var bottomnextout=new Image(60,15);
        var topnextsectionover=new Image(108,15);
        var topnextsectionout=new Image(108,15);
        var bottomnextsectionover=new Image(108,15);
        var bottomnextsectionout=new Image(108,15);
      
    menu1over.src="imagemaster/himenu1.jpg"; 
menu1out.src="imagemaster/menu1.jpg"; 
menu2over.src="imagemaster/himenu2.jpg"; 
menu2out.src="imagemaster/menu2.jpg"; 
menu3over.src="imagemaster/himenu3.jpg"; 
menu3out.src="imagemaster/menu3.jpg"; 
menu4over.src="imagemaster/himenu4.jpg"; 
menu4out.src="imagemaster/menu4.jpg"; 
menu5over.src="imagemaster/himenu5.jpg"; 
menu5out.src="imagemaster/menu5.jpg"; 
menu6over.src="imagemaster/himenu6.jpg"; 
menu6out.src="imagemaster/menu6.jpg"; 
menu7over.src="imagemaster/himenu7.jpg"; 
menu7out.src="imagemaster/menu7.jpg"; 
menu8over.src="imagemaster/himenu8.jpg"; 
menu8out.src="imagemaster/menu8.jpg"; 
menu9over.src="imagemaster/himenu9.jpg"; 
menu9out.src="imagemaster/menu9.jpg"; 

        var mainblurb="Main menu";
        var sectionblurb="Section menu";
        var feedbackblurb="Give feedback on this tutorial";
        var previousblurb="Go to previous panel";
        var nextblurb="Go to next panel";
        var nextsectionblurb="Go to next section";

      topmainover.src="../default/i/h-main.gif";
      topmainout.src="../default/i/main.gif";
      bottommainover.src="../default/i/h-main.gif";
      bottommainout.src="../default/i/main.gif";
      topsectionover.src="../default/i/h-section.gif";
      topsectionout.src="../default/i/section.gif";      
      bottomsectionover.src="../default/i/h-section.gif";
      bottomsectionout.src="../default/i/section.gif";      
      topfeedbackover.src="../default/i/h-feedback.gif";
      topfeedbackout.src="../default/i/feedback.gif";
      bottomfeedbackover.src="../default/i/h-feedback.gif";
      bottomfeedbackout.src="../default/i/feedback.gif";
      toppreviousover.src="../default/i/h-previous.gif";
      toppreviousout.src="../default/i/previous.gif";
      bottompreviousover.src="../default/i/h-previous.gif";
      bottompreviousout.src="../default/i/previous.gif";
      topnextover.src="../default/i/h-next.gif";
      topnextout.src="../default/i/next.gif";
      bottomnextover.src="../default/i/h-next.gif";
      bottomnextout.src="../default/i/next.gif";
      topnextsectionout.src="../default/i/nextsection.gif";
      topnextsectionover.src="../default/i/h-nextsection.gif";
      bottomnextsectionout.src="../default/i/nextsection.gif";
      bottomnextsectionover.src="../default/i/h-nextsection.gif";
      }
      function iOut(image)
      {
        if (browser=="N3")document[image].src=eval(image + "out.src");
      }
      function iOver(image)
      {
        if (browser=="N3")document[image].src=eval(image + "over.src");
      }
      // -->
    </script><script src="../default/i/emailfriend.js" language="javascript"></script><a href="#navskip"><img border="0" alt="Skip to main content" src="../default/i/c.gif"></a><table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#006699">
      <td width="300">
        <table width="300" border="0" cellspacing="0" cellpadding="0">
          <tr bgcolor="#006699">
            <td width="150"><img src="../default/i/mast_logo.gif" alt="IBM" width="160" height="47"></td>
            <td width="150" background="../default/i/mgradient.gif"><font size="-2" color="#99ccff" face="Verdana, sans-serif"><b>&nbsp;</b></font><br><img src="../default/i/c.gif" width="150" height="1" alt=""></td>
          </tr>
        </table> 
      </td>
      <td align="left" width="300">
        <table width="300" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="100"><a href="http://www.ibm.com/shop1/"><img border="0" src="../default/i/shopibm.gif" width="100" height="25" alt="Shop"></a></td>
            <td width="100"><a href="http://www.ibm.com/support/"><img border="0" src="../default/i/support.gif" width="100" height="25" alt="Support"></a></td>
            <td width="100"><a href="http://www.ibm.com/download/"><img border="0" src="../default/i/downloads.gif" width="100" height="25" alt="Downloads"></a></td>
          </tr>
        </table>
      </td>
    </tr>
  </table><table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#000000">
      <td>
        <table width="600" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td bgcolor="#006699" width="150"><img src="../default/i/mast_lnav_sp.gif" width="150" height="21" alt=""></td>
            <td colspan="4" bgcolor="#000000">
              <table border="0" cellspacing="0" cellpadding="0" height="21">
                <tr>
                  <td height="21" bgcolor="#000000" width="79" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/home/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>IBM Home</b></font></a></td>
                  <td bgcolor="#959595" width="1"><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
                  <td height="21" bgcolor="#000000" width="74" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/products/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>Products</b></font></a></td>
                  <td bgcolor="#959595" width="1"><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
                  <td height="21" bgcolor="#000000" width="81" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/services/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>Consulting</b></font></a></td>
                  <td bgcolor="#959595" width="1"><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
                  <td height="21" bgcolor="#000000" width="81" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/solutions/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>Industries</b></font></a></td>
                  <td bgcolor="#959595" width="1"><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
                  <td height="21" bgcolor="#000000" width="57" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/news/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>News</b></font></a></td>
                  <td bgcolor="#959595" width="1"><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
                  <td height="21" bgcolor="#000000" width="78" align="center"><a class="nav" style="color: #ffffff;" href="http://www.ibm.com/ibm/"><font size="-2" color="#ffffff" face="Verdana, sans-serif"><b>About IBM</b></font></a></td>
                </tr>
              </table>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table><table width="100%" cellspacing="0" cellpadding="0" border="0">
    <tr>
      <td bgcolor="#ffffff" height="1" width="150"><img src="../default/i/c.gif" width="150" height="1" alt=""></td>
    </tr>
    <tr>
      <td bgcolor="#cc6633" height="3" width="150"><img src="../default/i/c.gif" width="150" height="3" alt=""></td>
    </tr>
    <tr>
      <td bgcolor="#333333" height="1" width="150"><img src="../default/i/c.gif" width="150" height="1" alt=""></td>
    </tr>
    <tr>
      <td bgcolor="#000000" height="1" width="150"><img src="../default/i/c.gif" width="150" height="1" alt=""></td>
    </tr>
  </table><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td><font color="#006699" face="Verdana, sans-serif" size="-1"><a href="http://www.ibm.com/developer/">IBM developerWorks</a> : <a href="http://www.ibm.com/developer/xml/">XML</a> : <a href="http://www-106.ibm.com/developerworks/views/xml/tutorials.jsp">Education - Tutorials</a></font><br><img src="imagemaster/masthead.jpg" alt="XML Schema Infoset Model, Part 2"></td><td width="*" valign="bottom" align="right"><a border="0" href="os-schema2.zip"><img alt="ZIP" border="0" src="../default/i/icon-zip.gif"></a><a border="0" href="os-schema2-ltr.pdf"><img alt="PDF (letter)" border="0" src="../default/i/icon-pdf-ltr.gif"></a><a border="0" href="os-schema2-a4.pdf"><img alt="PDF (A4)" border="0" src="../default/i/icon-pdf-a4.gif"></a><a href="javascript:newWindow()" border="0"><img alt="e-mail" border="0" src="../default/i/icon-email.gif"></a></td></tr><tr><td height="2" colspan="2"><img height="2" width="1" src="../default/i/c.gif"></td></tr></table><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td width="150" height="1" bgcolor="#000000" colspan="6"><img alt="" height="1" width="150" src="../default/i/c.gif"></td></tr><tr><td background="../default/i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="Main menu" border="0" src="../default/i/main.gif" name="topmain"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index3.html"><img alt="Section menu" border="0" src="../default/i/section.gif" name="topsection"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="os-schema2-9-3.html"><img alt="Feedback" border="0" src="../default/i/feedback.gif" name="topfeedback"></a></td><td width="100%" background="../default/i/sw-gold.gif"><img src="../default/i/c.gif"></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="os-schema2-3-2.html"><img alt="Previous" border="0" src="../default/i/previous.gif" name="topprevious"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="os-schema2-3-4.html"><img alt="Next" border="0" src="../default/i/next.gif" name="topnext"></a></td></tr></table><table bgcolor="ffffff" cellspacing="0" cellpadding="2" border="0" height="400" width="100%"><tr valign="bottom"><td height="25" colspan="4"><img border="0" height="25" width="562" src="imagemaster/titlebar3.jpg" alt="3. Simple types"></td></tr><tr><td bgcolor="ffffff" width="15">&nbsp;</td><td bgcolor="ffffff" width="12">&nbsp;</td><td valign="top" align="left" bgcolor="ffffff" width="*"><p><br><table cellspacing="0" cellpadding="0" border="0"><tr><td width="90%"><font size="4" face="Verdana, Arial, sans-serif"><b>Schema component constraints</b></font></td><td width="200" align="right"><font size="1" face="Verdana, Arial, sans-serif"><nobr>    page 3 of 10</nobr></font></td></tr></table><br><br></p><font size="2" face="Verdana, Arial, sans-serif"><p>XML Schema provides a mechanism of constraining a given simple element or
simple
                                attribute, which are known as facets or value constraints. Here is a list of the facets provided by XML Schema:<br>
                                                <br>
                                                <b>&lt;enumeration&gt;</b>
                                                <br>
                                Defines a list of acceptable values.<br>
                                Enumeration facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#dc-enumeration">
                                http://www.w3.org/TR/xmlschema-2/#dc-enumeration.</a>
                                                <br>
                                
                                The XML Schema model java interface for a &lt;enumeration&gt; is
org.eclipse.xsd.XSDEnumerationFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDEnumerationFacet().<br>
                                                <br>
                                                <b>&lt;fractionDigits&gt;</b>
                                                <br>
                                Specifies the maximum number of decimal places allowed. Must be
equal to or greater than zero.<br>
                                FractionDigit facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#dt-fractionDigits">
                                http://www.w3.org/TR/xmlschema-2/#dt-fractionDigits.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;enumeration&gt; is
org.eclipse.xsd.XSDFractionDigitsFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDFractionDigitsFacet().<br>
                                                <br>
                                                <b>&lt;length&gt;</b>
                                                <br>
                                Specifies the exact number of characters or list items allowed.
Must be equal to or greater than zero.<br>
                                Length facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#dt-length">
                                http://www.w3.org/TR/xmlschema-2/#dt-length.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;length&gt; is
org.eclipse.xsd.XSDLengthFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDLengthFacet().<br>
                                                <br>
                                                <b>&lt;maxExclusive&gt;</b>
                                                <br>
                                Specifies the upper bounds for numeric values (the value must be
less than this value).<br>
                                MaxExclusive facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxExclusive">
                                http://www.w3.org/TR/xmlschema-2/#rf-maxExclusive.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;maxExclusive&gt; is
org.eclipse.xsd.XSDMaxExclusiveFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDMaxExclusiveFacet().<br>
                                                <br>
                                                <b>&lt;maxInclusive&gt;</b>
                                                <br>
                                Specifies the upper bounds for numeric values (the value must be
less than or equal to this value).<br>
                                MaxInclusive facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxInclusive">
                                http://www.w3.org/TR/xmlschema-2/#rf-maxInclusive.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;maxInclusive&gt; is
org.eclipse.xsd.XSDMaxInclusiveFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDMaxInclusiveFacet().<br>
                                                <br>
                                                <b>&lt;maxLength&gt;</b>
                                                <br>
                                Specifies the maximum number of characters or list items allowed.
Must be equal to or greater than zero.<br>
                                MaxLength facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxLength">
                                http://www.w3.org/TR/xmlschema-2/#rf-maxLength.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;maxLength&gt; is
org.eclipse.xsd.XSDMaxLengthFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDLengthFacet().<br>
                                                <br>
                                                <b>&lt;minExclusive&gt;</b>
                                                <br>
                                Specifies the lower bounds for numeric values (the value must be
greater than this value).<br>
                                MinExclusive facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-minExclusive">
                                http://www.w3.org/TR/xmlschema-2/#rf-minExclusive.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;minExclusive&gt; is
org.eclipse.xsd.XSDMinExclusiveFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDMinExclusiveFacet().<br>
                                                <br>
                                                <b>&lt;minInclusive&gt;</b>
                                                <br>
                                Specifies the lower bounds for numeric values (the value must be
greater than or equal to this value).<br>
                                MinInclusive facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-minInclusive">
                                http://www.w3.org/TR/xmlschema-2/#rf-minInclusive.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;minInclusive&gt; is
org.eclipse.xsd.XSDMinInclusiveFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDMinInclusiveFacet().<br>
                                                <br>
                                                <b>&lt;minLength&gt;</b>
                                                <br>
                                Specifies the minimum number of characters or list items allowed.
Must be equal to or greater than zero.<br>
                                MinLength facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-minLength">
                                http://www.w3.org/TR/xmlschema-2/#rf-minLength.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;minLength&gt; is
org.eclipse.xsd.XSDMinLengthFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDMinLengthFacet().<br>
                                                <br>
                                                <b>&lt;pattern&gt;</b>
                                                <br>
                                Defines the exact sequence of characters that are acceptable.<br>
                                Pattern facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-pattern">
                                http://www.w3.org/TR/xmlschema-2/#rf-pattern.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;pattern&gt; is
org.eclipse.xsd.XSDPatternFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDPatternFacet().<br>
                                                <br>
                                                <b>&lt;totalDigits&gt;</b>
                                                <br>
                                Specifies the exact number of digits allowed. Must be greater than
zero.<br>
                                TotalDigits facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-totalDigits">
                                http://www.w3.org/TR/xmlschema-2/#rf-totalDigits.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;totalDigits&gt; is
org.eclipse.xsd.XSDTotalDigitsFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDTotalDigitsFacet().<br>
                                                <br>
                                                <b>&lt;whiteSpace&gt;</b>
                                                <br>
                                Specifies how white space (line feeds, tabs, spaces, and carriage
returns) are handled.<br>
                                WhiteSpace facets contain some attributes, which are described by
                                <a href="http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace">
                                http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace.</a>
                                                <br>

                                The XML Schema model java interface for a &lt;whiteSpace&gt; is
org.eclipse.xsd.XSDWhiteSpaceFacet and
                                can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDWhiteSpaceFacet().<br>
                                                <br>
                                                <b>Constraints on simple type definition Schema components</b>
                                                <br>
                                The constraining facets which are allowed to be members of facets are dependent
on base type definition
                                as specified in the following table:<br>
                                                <a href="http://www.w3.org/TR/xmlschema-2/#cos-applicable-facets">
                                http://www.w3.org/TR/xmlschema-2/#cos-applicable-facets.</a>
                                        </p><br></font></td></tr></table><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td background="../default/i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="Main menu" border="0" src="../default/i/main.gif" name="bottommain"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index3.html"><img alt="Section menu" border="0" src="../default/i/section.gif" name="bottomsection"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="os-schema2-9-3.html"><img alt="Feedback" border="0" src="../default/i/feedback.gif" name="bottomfeedback"></a></td><td width="100%" background="../default/i/sw-gold.gif"><img src="../default/i/c.gif"></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="os-schema2-3-2.html"><img alt="Previous" border="0" src="../default/i/previous.gif" name="bottomprevious"></a></td><td background="../default/i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="os-schema2-3-4.html"><img alt="Next" border="0" src="../default/i/next.gif" name="bottomnext"></a></td></tr><tr><td width="150" height="1" bgcolor="#000000" colspan="6"><img alt="" height="1" width="150" src="../default/i/c.gif"></td></tr></table><style>
.bbg { background-color : #000000; vertical-align: middle }

a.mainlink:link { text-decoration: none; color: #ffffff; font-family: Verdana, Arial, sans-serif; font-size: 10px; font-weight: bold; }
a.mainlink:visited { text-decoration: none; color: #ffffff; font-family: Verdana, Arial, sans-serif; font-size: 10px; font-weight: bold; }
a.mainlink:hover { text-decoration: underline; color: #ffffff; font-family: Verdana, Arial, sans-serif; font-size: 10px; font-weight: bold; }

.divider { color: #999999; font-family: Verdana, Arial, sans-serif; font-size: 10px; font-weight: normal; }
</style><table width="760" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="../default/i/c.gif" width="1" height="1" alt=""></td>
</tr>
<tr valign="top">
<td height="21" class="bbg"><img src="../default/i/c.gif" width="1" height="1" alt="">  <a href="http://www-106.ibm.com/developerworks/cgi-bin/click.cgi?url=http://www.ibm.com/ibm/?origin=dwfooter" class="mainlink">About IBM</a><span class="divider">  |  </span><a href="http://www-106.ibm.com/developerworks/cgi-bin/click.cgi?url=http://www.ibm.com/privacy/?origin=dwfooter" class="mainlink">Privacy</a><span class="divider">  |  </span><a href="http://www-106.ibm.com/developerworks/cgi-bin/click.cgi?url=http://www.ibm.com/legal/?origin=dwfooter" class="mainlink">Legal</a><span class="divider">  |  </span><a href="http://www-106.ibm.com/developerworks/cgi-bin/click.cgi?url=http://www.ibm.com/contact/?origin=dwfooter" class="mainlink">Contact</a></td>
</tr>
</table><script type="text/javascript" language="JavaScript1.2" src="//www.ibm.com/common/stats/stats.js"></script><noscript><img src="//i.ihost.com/i/c.gif" width="1" height="1" alt="" border="0"></noscript></body></html>