<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>Elements and attributes</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="index6.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"><img border="0" src="../default/i/xprevious.gif"></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-6-2.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/titlebar6.jpg" alt="6. Elements and attributes"></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>Element declarations</b></font></td><td width="200" align="right"><font size="1" face="Verdana, Arial, sans-serif"><nobr>    page 1 of 6</nobr></font></td></tr></table><br><br></p><font size="2" face="Verdana, Arial, sans-serif"><p>The &lt;element&gt; element is the tag name that will be used within
the XML instance document.
                                        <br>
                                        Element declarations can be global, local, or references, and are used
for:
                                        <ul><li>Local validation of element information item values
using a type definition</li><li>Specifying default or fixed values for element
information items</li><li>Establishing uniqueness and reference constraint
relationships among the values of related elements and attributes</li><li>Controlling the substitutability of elements
through the mechanism of element substitution groups</li></ul>                                   
                                        
                                        The &lt;element&gt; element contains attributes, which are described by
                                        <a href="http://www.w3.org/TR/xmlschema-1/#cElement_Declarations">
                                        XML Schema Part 1: Structures</a> of the standard.<br>
                                                <br>
                                        
                                        The XML Schema model java interface for a &lt;element&gt; is
org.eclipse.xsd.XSDElementDeclaration and
                                        can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDElementDeclaration().     
                                        <br>
                                                <br>
                                                <b>Particles</b>
                                                <br>
                                        Local element declarations and element references can repeat by
changing
                                        the particles minOccurs and maxOccurs attributes.<br>
                                        If an element is local or a reference, it can contain minOccurs and/or
maxOccurs attributes, which
                                        are described by <a href="http://www.w3.org/TR/xmlschema-1/#cParticles">
                                        http://www.w3.org/TR/xmlschema-1/#cParticles</a>.<br>
                                                <br>
                                                <b>Referencing a global element declaration</b>
                                                <br>
                                        If you declare a global element declaration, you can reference this
element in the remainder of the schema
                                        using the ref attribute.  This is done by calling the following method
on
                                        the XML Schema model:
org.eclipse.xsd.XSDElementDeclaration.setResolvedElementDeclaration(XSDElementDeclaration).
                                        <br>
                                                <br>
                                                <b>Any element</b>
                                                <br>
                                        The &lt;any&gt; element enables us to extend the XML instance document
with
                                        elements not specified by the schema.<br>                                      
                                        
                                        The &lt;any&gt; element contain attributes, which are described by
                                        <a href="http://www.w3.org/TR/xmlschema-1/#Wildcards">
                                        http://www.w3.org/TR/xmlschema-1/#Wildcards</a>.<br>
                                                <br>   
                                        
                                        The XML Schema model java interface for a &lt;any&gt; is
org.eclipse.xsd.XSDWildCard and
                                        can be created by calling
org.eclipse.xsd.XSDFactory.eINSTANCE.createXSDWildCard().                                                                       
                                        </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="index6.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"><img border="0" src="../default/i/xprevious.gif"></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-6-2.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>