
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Documentation for citationstyle - citationstyle.xsd - Element months</title>
      <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1"/>
      <style type="text/css">
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* More-configurable styles */

/******** General ********/
         
/* Document body */
body {
   color: Black;
   background-color: White;
   font-family: Arial, sans-serif;
   font-size: 10pt;
}
                  
/* Horizontal rules */
hr {
   color: black;
}
/* Document title */
h1 {
   font-size: 18pt;
   letter-spacing: 2px;
   border-bottom: 1px #ccc solid;
   padding-top: 5px;
   padding-bottom: 5px;
}
/* Main section headers */
h2 {
   font-size: 14pt;
   letter-spacing: 1px;
}
/* Sub-section headers */
h3, h3 a, h3 span {
   font-size: 12pt;
   font-weight: bold;
   color: black;
}
/* Table displaying the properties of the schema components or the
   schema document itself */
table.properties th, table.properties th a {
   color: black;
   background-color: #F99; /* Pink */
}
table.properties td {
   background-color: #eee; /* Gray */
}

img{
 border: 0;
}         

/********* Documentation style *************/
p.documentation {
   color:black;
   font-style:italic;
         background-color: #EEEEFF;
         border: 1px solid #DDDDFF;
         padding-top: 1px;
         margin-right: 30px;
         margin-top: 1px;
}

         
/******** Table of Contents Section ********/

/* Controls for switching between printing and viewing modes */
div#printerControls {
   color: #963; /* Orange-brown */
}
/* Controls that can collapse or expand all XML Instance
   Representation and Schema Component Representation boxes */
div#globalControls {
   border: 2px solid #999;
}


/******** Schema Document Properties Section ********/

/* Table displaying the namespaces declared in the schema */
table.namespaces th {
   background-color: #ccc;
}
table.namespaces td {
   background-color: #eee;
}
/* Target namespace of the schema */
span.targetNS {
   color: #06C;
   font-weight: bold;
}


/******** Schema Components' Sections ********/

/* Name of schema component */
.name {
   color: #F93; /* Orange */
}

/* Hierarchy table */
table.hierarchy {
   border: 2px solid #999; /* Gray */
}

/* XML Instance Representation table */
div.sample div.contents {
   border: 1px dashed black;
}


/* Schema Component Representation table */
div.schemaComponent div.contents {
   border: 2px black solid;
}


/******** Glossary Section ********/

/* Glossary Terms */
.glossaryTerm {
   color: #036; /* Blue */
}


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* Printer-version styles */

@media print {

/* Ensures that controls are hidden when printing */
div#printerControls {
   visibility: hidden;
}
div#globalControls {
   visibility: hidden;
}
#legend {
   display: none;
}
#legendTOC {
   display: none;
}
#glossary {
   display: none;
}
#glossaryTOC {
   display: none;
}

}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* Base styles */

/******** General ********/

/* Unordered lists */
ul {
   margin-left: 1.5em;
   margin-bottom: 0em;
}
/* Tables */
table {
   margin-top: 10px;
   margin-bottom: 10px;
   margin-left: 2px;
   margin-right: 2px;
}
table th, table td {
   font-size: 10pt;
   vertical-align: top;
   padding-top: 3px;
   padding-bottom: 3px;
   padding-left: 10px;
   padding-right: 10px;
}
table th {
   font-weight: bold;
   text-align: left;
}
/* Table displaying the properties of the schema components or the
   schema document itself */
table.properties {
   width: 90%;
}
table.properties th {
   width: 30%;
}
/* Boxes that can make its content appear and disappear*/
div.box {
   margin: 1em;
}
   /* Box caption */
div.box span.caption {
   font-weight: bold;
}
   /* Button to open and close the box */
div.box input.control {
   width: 1.4em;
   height: 1.4em;
   text-align: center;
   vertical-align: middle;
   font-size: 11pt;
}
   /* Box contents */
div.box div.contents {
   margin-top: 3px;
}


/******** Table of Contents Section ********/

/* Controls for switching between printing and viewing modes */
div#printerControls {
   white-space: nowrap;
   font-weight: bold;
   padding: 5px;
   margin: 5px;
}
/* Controls that can collapse or expand all XML Instance
   Representation and Schema Component Representation boxes */
div#globalControls {
   padding: 10px;
   margin: 5px;
}


/******** Schema Document Properties Section ********/

/* Table displaying the namespaces declared in the schema */
table.namespaces th {
}
table.namespaces td {
}
/* Target namespace of the schema */
span.targetNS {
}


/******** Schema Components' Sections ********/

/* Name of schema component */
.name {
}

/* Hierarchy table */
table.hierarchy {
   width: 90%;
}
table.hierarchy th {
   font-weight: normal;
   font-style: italic;
   width: 20%;
}
table.hierarchy th, table.hierarchy td {
   padding: 5px;
}

/* XML Instance Representation table */
div.sample {
   width: 90%;
}
div.sample div.contents {
   padding: 5px;
   font-family: Courier New, sans-serif;
   font-size: 10pt;
}
   /* Normal elements and attributes */
div.sample div.contents, div.sample div.contents a {
   color: black;
}
   /* Group Headers */
div.sample div.contents .group, div.sample div.contents .group a {
   color: #999; /* Light gray */
}
   /* Type Information */
div.sample div.contents .type, div.sample div.contents .type a {
   color: #999; /* Light gray */
}
   /* Occurrence Information */
div.sample div.contents .occurs, div.sample div.contents .occurs a {
   color: #999; /* Light gray */
}
   /* Fixed values */
div.sample div.contents .fixed {
   color: #063; /* Green */
   font-weight: bold;
}
   /* Simple type constraints */
div.sample div.contents .constraint, div.sample div.contents .constraint a {
   color: #999; /* Light gray */
}
   /* Elements and attributes inherited from base type */
div.sample div.contents .inherited, div.sample div.contents .inherited a {
   color: #666; /* Dark gray */
}
   /* Elements and attributes added to or changed from base type */
div.sample div.contents .newFields {
   font-weight: bold;
}
   /* Other type of information */
div.sample div.contents .other, div.sample div.contents .other a {
   color: #369; /* Blue */
   font-style: italic;
}
   /* Link to open up window displaying documentation */
div.sample div.contents a.documentation {
   text-decoration: none;
   padding-left: 3px;
   padding-right: 3px;
   padding-top: 0px;
   padding-bottom: 0px;
   font-weight: bold;
   font-size: 11pt;
   background-color: #FFD;
   color: #069;
}
   /* Invert colors when hovering over link to open up window 
      displaying documentation */
div.sample div.contents a.documentation:hover {
   color: #FFD;
   background-color: #069;
}

/* Schema Component Representation table */
div.schemaComponent {
   width: 90%;
}
div.schemaComponent div.contents {
   font-family: Courier New, sans-serif;
   font-size: 10pt;
   padding: 5px;
}
   /* Syntax characters */
div.schemaComponent div.contents {
   color: #00f; /* blue */
}
   /* Element and attribute tags */
div.schemaComponent div.contents .scTag {
   color: #933; /* maroon */
}
   /* Element and attribute content */
div.schemaComponent div.contents .scContent, div.schemaComponent div.contents .scContent a {
   color: black;
   font-weight: bold;
}
   /* Comments */
div.schemaComponent div.contents .comment {
   color: #999; /* Light gray */
}

/******** Legend Section ********/

div#legend table, div#legend div {
   margin-bottom: 3px;
}
div#legend div.hint {
   color: #999; /* Light gray */
   width: 90%;
   margin-left: 1em;
   margin-bottom: 2em;
}


/******** Glossary Section ********/

/* Glossary Terms */
.glossaryTerm {
   font-weight: bold;
}

/********* Details *************/
.detailsToc {
  color: #666; /* Light gray */
}

.details {
  color: #666; /* Light gray */
  text-decoration:none;
}

/******** Footer ********/

.footer {
   font-size: 8pt;
}
</style>
      <script type="text/javascript">
<!--
          
         
/**
 * Counter of documentation windows
 * Used to give each window a unique name
 */
var windowCount = 0;
         
/**
 * Opens up a window displaying the documentation
 * of a schema component in the XML Instance
 * Representation table.
 * 
 * @param compDesc      Description of schema component 
 * @param compName      Name of schema component 
 * @param docTextArray Array containing the paragraphs 
 *                           of the new document
 */
function viewDocumentation(compDesc, compName, docTextArray) {
  var width = 400;
  var height = 200;
  var locX = 100;
  var locY = 200;

  /* Generate content */
  var actualText = "<html>";
  actualText += "<head><title>";
  actualText += compDesc;
  if (compName != '') {
     actualText += ": " + compName;
  }
  actualText += "</title></head>";
  actualText += "<body bgcolor=\"#FFFFEE\">";
  // Title
  actualText += "<p style=\"font-family: Arial, sans-serif; font-size: 12pt; font-weight: bold; letter-spacing:1px;\">";
  actualText += compDesc;
  if (compName != '') {
     actualText += ": <span style=\"color:#006699\">" + compName + "</span>";
  }
  actualText += "</p>";
  // Documentation
  var idx;
  for (idx = 0; idx < docTextArray.length; idx++) {
     actualText += "<p style=\"font-family: Arial, sans-serif; font-size: 10pt;\">" + docTextArray[idx] + "</p>";
  }
  // Link to close window
  actualText += "<a href=\"javascript:void(0)\" onclick=\"window.close();\" style=\"font-family: Arial, sans-serif; font-size: 8pt;\">Close</a>";
  actualText += "</body></html>";

  /* Display window */
  windowCount++;
  var docWindow = window.open("", "documentation"+windowCount, "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no,width="+width+",height="+height+",screenX="+locX+",left="+locX+",screenY="+locY+",top="+locY);
  docWindow.document.write(actualText);
}         
      
// -->
</script>
   </head>
   <body>
      <h1>
         <a name="top">Documentation for citationstyle</a>
      </h1>
      <h3>Element: <a name="h-1268287338" class="name">months</a>
      </h3>
      <h4>
         <a href="citationstyle.xsd.html" class="details">[Table of contents]</a>
      </h4>
      <table class="properties">
         <tr>
            <th>Name</th>
            <td>months</td>
         </tr>
         <tr>
            <th>Used by (from the same schema document)</th>
            <td>Complex Type <b>
                  <a href="citationstyle.xsd.html_h-213658952.html">Months</a>
               </b>
            </td>
         </tr>
         <tr>
            <th>Type</th>
            <td>Locally-defined complex type</td>
         </tr>
         <tr>
            <th>
               <a title="Look up 'Nillable' in glossary"
                  href="citationstyle.xsd.html#term_Nillable">Nillable</a>
            </th>
            <td>no</td>
         </tr>
         <tr>
            <th>
               <a title="Look up 'Abstract' in glossary"
                  href="citationstyle.xsd.html#term_Abstract">Abstract</a>
            </th>
            <td>no</td>
         </tr>
      </table>
      <div class="sample box">
         <div>
            <input type="button" id="h-1268287338_logicalDiagram_button" class="control"
                   onclick="switchState('h-1268287338_logicalDiagram'); return false;"
                   style="display: none"/> 
            <span class="caption">Logical Diagram</span>
         </div>
         <div id="h-1268287338_logicalDiagram" class="contents">
            <img usemap="#h-1978819878" src="schemaDiagrams/h-1978819878.png"/>
            <!--
            Map ref: file:/test/rng//schemaDiagrams/h-1978819878.map--><map name="h-1978819878">
</map>
         </div>
         <script type="text/javascript">
<!--
          setState('h-1268287338_logicalDiagram', false);
// -->
</script>
      </div>
      <div class="sample box">
         <div>
            <input type="button" id="h-1268287338_xibox_button" class="control"
                   onclick="switchState('h-1268287338_xibox'); return false;"
                   style="display: none"/> 
            <span class="caption">XML Instance Representation</span>
         </div>
         <div id="h-1268287338_xibox" class="contents">
            <div style="margin-left: 0em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:months&gt; <br/>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'01'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'02'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'03'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'04'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'05'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'06'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'07'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'08'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'09'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'10'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'11'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>
               <div style="margin-left: 1.5em">&lt;<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:month<br/>
                  <span style="margin-left: 0.5em"> number="<span class="constraint">
                        <span class="type">
                           <a href="citationstyle.xsd.html#ns_xs" title="Find out namespace of 'xs' prefix">xs</a>:integer</span> (<em>value</em> comes from list: {'12'})</span> 
                     <span class="occurs">[1]</span>"</span>/&gt;  <span class="occurs">[1]</span>
               </div>&lt;/<a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:months&gt;</div>
         </div>
         <script type="text/javascript">
<!--
          setState('h-1268287338_xibox', true);
// -->
</script>
      </div>
      <div class="sample box">
         <div>
            <input type="button" id="h-1268287338_diagram_button" class="control"
                   onclick="switchState('h-1268287338_diagram'); return false;"
                   style="display: none"/> 
            <span class="caption">Diagram</span>
         </div>
         <div id="h-1268287338_diagram" class="contents">
            <img usemap="#h-1607015580" src="schemaDiagrams/h-1607015580.png"/>
            <!--
            Map ref: file:/test/rng//schemaDiagrams/h-1607015580.map--><map name="h-1607015580">
               <area shape="rect" alt="h-110778742" coords="256,0,395,26"
                     href="citationstyle.xsd.html_h-110778742.html#h-110778742"/>

               <area shape="rect" alt="h1388825986" coords="256,36,403,62"
                     href="citationstyle.xsd.html_h1388825986.html#h1388825986"/>

               <area shape="rect" alt="h1066344547" coords="256,72,387,98"
                     href="citationstyle.xsd.html_h1066344547.html#h1066344547"/>

               <area shape="rect" alt="h1055709350" coords="256,108,379,134"
                     href="citationstyle.xsd.html_h1055709350.html#h1055709350"/>

               <area shape="rect" alt="h-1482687611" coords="256,144,375,170"
                     href="citationstyle.xsd.html_h-1482687611.html#h-1482687611"/>

               <area shape="rect" alt="h1281253922" coords="256,180,377,206"
                     href="citationstyle.xsd.html_h1281253922.html#h1281253922"/>

               <area shape="rect" alt="h1281253880" coords="256,216,372,242"
                     href="citationstyle.xsd.html_h1281253880.html#h1281253880"/>

               <area shape="rect" alt="h-1628446749" coords="256,252,391,278"
                     href="citationstyle.xsd.html_h-1628446749.html#h-1628446749"/>

               <area shape="rect" alt="h1959801585" coords="256,288,415,314"
                     href="citationstyle.xsd.html_h1959801585.html#h1959801585"/>

               <area shape="rect" alt="h94393600" coords="256,324,398,350"
                     href="citationstyle.xsd.html_h94393600.html#h94393600"/>

               <area shape="rect" alt="h-1003118830" coords="256,360,412,386"
                     href="citationstyle.xsd.html_h-1003118830.html#h-1003118830"/>

               <area shape="rect" alt="h-2080409083" coords="256,396,412,422"
                     href="citationstyle.xsd.html_h-2080409083.html#h-2080409083"/>

            </map>
         </div>
         <script type="text/javascript">
<!--
          setState('h-1268287338_diagram', true);
// -->
</script>
      </div>
      <div class="schemaComponent box">
         <div>
            <input type="button" id="h-1268287338_scbox_button" class="control"
                   onclick="switchState('h-1268287338_scbox'); return false;"
                   style="display: none"/> 
            <span class="caption">Schema Component Representation</span>
         </div>
         <div id="h-1268287338_scbox" class="contents">
            <div style="margin-left: 0em">&lt;<span class="scTag">xs:element</span> 
               <span class="scTag">name</span>="<span class="scContent">months</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xs:complexType</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xs:sequence</span>&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;January&#34; group definition."
                              href="citationstyle.xsd.html_h-110778742.html">January</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;February&#34; group definition."
                              href="citationstyle.xsd.html_h1388825986.html">February</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;March&#34; group definition."
                              href="citationstyle.xsd.html_h1066344547.html">March</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;April&#34; group definition."
                              href="citationstyle.xsd.html_h1055709350.html">April</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;May&#34; group definition."
                              href="citationstyle.xsd.html_h-1482687611.html">May</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;June&#34; group definition."
                              href="citationstyle.xsd.html_h1281253922.html">June</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;July&#34; group definition."
                              href="citationstyle.xsd.html_h1281253880.html">July</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;August&#34; group definition."
                              href="citationstyle.xsd.html_h-1628446749.html">August</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;September&#34; group definition."
                              href="citationstyle.xsd.html_h1959801585.html">September</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;October&#34; group definition."
                              href="citationstyle.xsd.html_h94393600.html">October</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;November&#34; group definition."
                              href="citationstyle.xsd.html_h-1003118830.html">November</a>
                        </span>"/&gt;</div>
                     <div style="margin-left: 1.5em">&lt;<span class="scTag">xs:group</span> 
                        <span class="scTag">ref</span>="<span class="scContent">
                           <a href="citationstyle.xsd.html#ns_cs" title="Find out namespace of 'cs' prefix">cs</a>:<a title="Jump to &#34;December&#34; group definition."
                              href="citationstyle.xsd.html_h-2080409083.html">December</a>
                        </span>"/&gt;</div>&lt;/<span class="scTag">xs:sequence</span>&gt;</div>&lt;/<span class="scTag">xs:complexType</span>&gt;</div>&lt;/<span class="scTag">xs:element</span>&gt;</div>
         </div>
         <script type="text/javascript">
<!--
          setState('h-1268287338_scbox', false);
// -->
</script>
      </div>
      <hr/>
      <p class="footer">Generated by <a href="http://www.oxygenxml.com">&lt;oXygen/&gt; XML Editor</a> using a modified version of <a href="http://titanium.dstc.edu.au/xml/xs3p">xs3p</a> that adds schema diagrams and chunking support. Last modified: <script type="text/javascript">
<!--
          document.write(document.lastModified);
// -->
</script>
      </p>
   </body>
</html>