
<!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</title>
      <meta http-equiv="Content-Type" content="text/xml; charset=UTF-8"/>
      <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>
      <h2>Table of Contents</h2>
      <ul>
         <li>
            <a href="#SchemaProperties">Schema Document Properties</a>
         </li>
         <li>
                           Global Declarations
                        <ul>
               <li>
                  <a href="citationstyle.xsd.html_h431871842.html">Element: <strong>CitationEntry.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1586648655.html">Element: <strong>CitationEntry.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h674228702.html">Element: <strong>all</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1606128594.html">Element: <strong>author</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-106980930.html">Element: <strong>availability</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h2063517359.html">Element: <strong>basedOn</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1113982107.html">Element: <strong>citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1471841855.html">Element: <strong>conference</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h167238398.html">Element: <strong>container</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-870282775.html">Element: <strong>creator</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573667567.html">Element: <strong>date</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-476665193.html">Element: <strong>dateCreated</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-32682758.html">Element: <strong>dateModified</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-603825278.html">Element: <strong>dates</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h674231257.html">Element: <strong>day</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-129865927.html">Element: <strong>description</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h508166011.html">Element: <strong>edition</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-602562407.html">Element: <strong>email</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-601754121.html">Element: <strong>field</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573600545.html">Element: <strong>file</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1449299469.html">Element: <strong>genres</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-600552580.html">Element: <strong>group</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1103525953.html">Element: <strong>heading</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573506543.html">Element: <strong>info</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-598671914.html">Element: <strong>issue</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1560418733.html">Element: <strong>locator</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1128340352.html">Element: <strong>locators</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-595409695.html">Element: <strong>media</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1268287338.html">Element: <strong>months</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1919407091.html">Element: <strong>multiple</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1541809262.html">Element: <strong>multiple-authors</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573369874.html">Element: <strong>name</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h484162804.html">Element: <strong>names-short</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-594172994.html">Element: <strong>notes</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1234164244.html">Element: <strong>number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1208419895.html">Element: <strong>origin</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-592755519.html">Element: <strong>pages</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-501998901.html">Element: <strong>part-details</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1383053455.html">Element: <strong>physicalLocation</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-592433660.html">Element: <strong>place</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-592336243.html">Element: <strong>point</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1179910859.html">Element: <strong>prefix</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h2025599097.html">Element: <strong>publisher</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-590486598.html">Element: <strong>roles</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1102065941.html">Element: <strong>single</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1096305986.html">Element: <strong>source</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h374252917.html">Element: <strong>sources</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1091223052.html">Element: <strong>suffix</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573187121.html">Element: <strong>term</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-588931452.html">Element: <strong>terms</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1022589956.html">Element: <strong>title-short</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1547229547.html">Element: <strong>version</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1010683459.html">Element: <strong>volume</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-573038688.html">Element: <strong>year</strong>
                  </a>
               </li>
            </ul>
         </li>
         <li>
                           Global Definitions
                        <ul>
               <li>
                  <a href="citationstyle.xsd.html_h1005962238.html">Attribute Group: <strong>AuthorShorten</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-942110107.html">Attribute Group: <strong>AuthorSort</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1105326020.html">Attribute Group: <strong>Citation.Delimiter</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1257351575.html">Attribute Group: <strong>CitationEntry.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h423778920.html">Attribute Group: <strong>CitationEntry.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h269456772.html">Attribute Group: <strong>Formatting.Attributes</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1298522931.html">Attribute Group: <strong>Locator.UseWhen</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h304012914.html">Attribute Group: <strong>Multiple-Authors.Content</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1702744331.html">Attribute Group: <strong>SortOrder-Bib.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1610236233.html">Complex Type: <strong>CitationEntry.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1719022713.html">Complex Type: <strong>CitationEntry.note-nobib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-263028264.html">Complex Type: <strong>Entry.Biblio</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1437671087.html">Complex Type: <strong>LayoutStructures</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-213658952.html">Complex Type: <strong>Months</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h656328653.html">Complex Type: <strong>Renderas</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-348439504.html">Complex Type: <strong>Renderas-Multiple</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1055709350.html">Model Group: <strong>April</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1628446749.html">Model Group: <strong>August</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h237603677.html">Model Group: <strong>BibliographyLayout.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-109022010.html">Model Group: <strong>BibliographyLayout.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-360433342.html">Model Group: <strong>BibliographyLayout.note-bib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1894482837.html">Model Group: <strong>BibliographyLayout.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-534802621.html">Model Group: <strong>CitationEntry.note-bib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h772885410.html">Model Group: <strong>CitationLayout.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1930092661.html">Model Group: <strong>CitationLayout.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-979048675.html">Model Group: <strong>CitationLayout.note-bib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-256674500.html">Model Group: <strong>CitationLayout.note-nobib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-290659066.html">Model Group: <strong>CitationLayout.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h475404411.html">Model Group: <strong>CitationStyle.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1758216420.html">Model Group: <strong>CitationStyle.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1689383140.html">Model Group: <strong>CitationStyle.note-bib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h10824003.html">Model Group: <strong>CitationStyle.note-nobib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1557154675.html">Model Group: <strong>CitationStyle.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1725465018.html">Model Group: <strong>Classes</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1835738262.html">Model Group: <strong>Content.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1695011667.html">Model Group: <strong>Content.citekey</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-269964203.html">Model Group: <strong>Content.note-bib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1726296972.html">Model Group: <strong>Content.note-nobib</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1559193538.html">Model Group: <strong>Content.number</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-2080409083.html">Model Group: <strong>December</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1895606116.html">Model Group: <strong>Entry.Citation-note</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1388825986.html">Model Group: <strong>February</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1867254228.html">Model Group: <strong>FirstReference.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-2136393824.html">Model Group: <strong>Formatting.Elements</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1060919203.html">Model Group: <strong>Genre</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1958209527.html">Model Group: <strong>Genre.Term</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1513967320.html">Model Group: <strong>Info.Title</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1829507567.html">Model Group: <strong>Info.Url</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-110778742.html">Model Group: <strong>January</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1281253880.html">Model Group: <strong>July</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1281253922.html">Model Group: <strong>June</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1066344547.html">Model Group: <strong>March</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1482687611.html">Model Group: <strong>May</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1299774123.html">Model Group: <strong>Medium</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-439355003.html">Model Group: <strong>Medium.Term</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1066758304.html">Model Group: <strong>Month</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1067263336.html">Model Group: <strong>Names</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1749394561.html">Model Group: <strong>NamesFormat</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1003118830.html">Model Group: <strong>November</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h94393600.html">Model Group: <strong>October</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1598497578.html">Model Group: <strong>RefClass-Monograph-Optional</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1284375401.html">Model Group: <strong>RefClass-Monograph-Required</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-389611582.html">Model Group: <strong>RefClass-PartInMonograph-Optional</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-703733759.html">Model Group: <strong>RefClass-PartInMonograph-Required</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-528498119.html">Model Group: <strong>RefClass-PartInSerial-Optional</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-842620296.html">Model Group: <strong>RefClass-PartInSerial-Required</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1281486422.html">Model Group: <strong>Role</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-15496924.html">Model Group: <strong>Role.Term</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1959801585.html">Model Group: <strong>September</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1127582633.html">Model Group: <strong>Series</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1444896384.html">Model Group: <strong>SeriesNumber</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-794544114.html">Model Group: <strong>SubsequentReferences.author-year</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1073049720.html">Model Group: <strong>Title</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h-1482680433.html">Model Group: <strong>URL</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1179089372.html">Simple Type: <strong>Types-Optional-Monographs</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h1428076729.html">Simple Type: <strong>Types-Optional-PartsInMonographs</strong>
                  </a>
               </li>
               <li>
                  <a href="citationstyle.xsd.html_h428272494.html">Simple Type: <strong>Types-Optional-PartsInSerials</strong>
                  </a>
               </li>
            </ul>
         </li>
      </ul>
      <ul id="legendTOC" style="margin-top: 0em">
         <li>
            <a href="#Legend">Legend</a>
         </li>
      </ul>
      <ul id="glossaryTOC" style="margin-top: 0em">
         <li>
            <a href="#Glossary">Glossary</a>
         </li>
      </ul>
      <div style="text-align: right; clear: both;">
         <a href="#top">top</a>
      </div>
      <hr/>
      <h2>
         <a name="SchemaProperties">Schema Document Properties</a>
      </h2>
      <table class="properties">
         <tr>
            <th>
               <a title="Look up 'Target Namespace' in glossary"
                  href="citationstyle.xsd.html#term_TargetNS">Target Namespace</a>
            </th>
            <td>
               <span class="targetNS">http://purl.org/NET/xbiblio/csl</span>
            </td>
         </tr>
         <tr>
            <th>Element and Attribute Namespaces</th>
            <td>
               <ul>
                  <li>Global element and attribute declarations belong to this schema's target namespace.</li>
                  <li>By default, local element declarations belong to this schema's target namespace.</li>
                  <li>By default, local attribute declarations have no namespace.</li>
               </ul>
            </td>
         </tr>
         <tr>
            <th>Schema Composition</th>
            <td>
               <ul>
                  <li>This schema imports schema(s) from the following namespace(s):<ul>
                        <li>
                           <em>http://www.w3.org/XML/1998/namespace</em> (at <a title="Jump to schema documentation for 'xml.xsd'." href="xml.xsd.html">xml.xsd</a>)</li>
                     </ul>
                  </li>
               </ul>
            </td>
         </tr>
      </table>
      <h3>Declared Namespaces</h3>
      <table class="namespaces">
         <tr>
            <th>Prefix</th>
            <th>Namespace</th>
         </tr>
         <tr>
            <td>
               <a name="ns_cs">cs</a>
            </td>
            <td>
               <span class="targetNS">http://purl.org/NET/xbiblio/csl</span>
            </td>
         </tr>
         <tr>
            <td>
               <a name="ns_xml">xml</a>
            </td>
            <td>http://www.w3.org/XML/1998/namespace</td>
         </tr>
         <tr>
            <td>
               <a name="ns_xs">xs</a>
            </td>
            <td>http://www.w3.org/2001/XMLSchema</td>
         </tr>
      </table>
      <div class="schemaComponent box">
         <div>
            <input type="button" id="schema_scbox_button" class="control"
                   onclick="switchState('schema_scbox'); return false;"
                   style="display: none"/> 
            <span class="caption">Schema Component Representation</span>
         </div>
         <div id="schema_scbox" class="contents">
            <div style="margin-left: 0em">&lt;<span class="scTag">xs:schema</span> 
               <span class="scTag">elementFormDefault</span>="<span class="scContent">qualified</span>" <span class="scTag">targetNamespace</span>="<span class="scContent">http://purl.org/NET/xbiblio/csl</span>"&gt;<div style="margin-left: 1.5em">&lt;<span class="scTag">xs:import</span> 
                  <span class="scTag">namespace</span>="<span class="scContent">http://www.w3.org/XML/1998/namespace</span>" <span class="scTag">schemaLocation</span>="<span class="scContent">xml.xsd</span>"/&gt;</div>
               <div class="scContent" style="margin-left: 1.5em">...</div>&lt;/<span class="scTag">xs:schema</span>&gt;</div>
         </div>
         <script type="text/javascript">
<!--
          setState('schema_scbox', false);
// -->
</script>
      </div>
      <div style="text-align: right; clear: both;">
         <a href="#top">top</a>
      </div>
      <hr/>
      <div id="legend">
         <h2>
            <a name="Legend">Legend</a>
         </h2>
         <div style="float: left; width: 15em;">
            <h3 style="margin-bottom: 0px;">Complex Type:</h3>
            <div class="hint" style="margin-left: 0em;">Schema Component Type</div>
         </div>
         <div style="float: left; width: 15em;">
            <h3 style="margin-bottom: 0px;">
               <span class="name">AusAddress</span>
            </h3>
            <div class="hint" style="margin-left: 0em;">Schema Component Name</div>
         </div>
         <table class="hierarchy" style="clear : both">
            <tr>
               <th>Super-types:</th>
               <td>
                  <span class="type" style="color: #0000FF; text-decoration:underline;">Address</span> &lt; <span class="current">AusAddress</span> (by extension)</td>
            </tr>
            <tr>
               <th>Sub-types:</th>
               <td>
                  <ul>
                     <li>
                        <span class="type" style="color: #0000FF; text-decoration:underline;">QLDAddress</span> (by restriction)</li>
                  </ul>
               </td>
            </tr>
         </table>
         <div class="hint">If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.</div>
         <table class="properties">
            <tr>
               <th>Name</th>
               <td>AusAddress</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="hint">The table above displays the properties of this schema component.</div>
         <div class="sample box">
            <div>
               <span class="caption">XML Instance Representation</span>
            </div>
            <div class="contents">
               <span style="margin-left: 0em">&lt;...</span>
               <span class="newFields">
                  <span> country="<span class="fixed">Australia</span>"</span>
               </span>&gt; <br/>
               <span style="margin-left: 1.5em" class="inherited">&lt;unitNo&gt; <span class="type">string</span> &lt;/unitNo&gt; <span class="occurs">[0..1]</span>
               </span>
               <br/>
               <span style="margin-left: 1.5em" class="inherited">&lt;houseNo&gt; <span class="type">string</span> &lt;/houseNo&gt; <span class="occurs">[1]</span>
               </span>
               <br/>
               <span style="margin-left: 1.5em" class="inherited">&lt;street&gt; <span class="type">string</span> &lt;/street&gt; <span class="occurs">[1]</span>
               </span>
               <br/>
               <span class="group" style="margin-left: 1.5em">Start <a title="Look up 'Choice' in glossary" href="#term_Choice">Choice</a>
                  <span class="occurs">[1]</span>
               </span>
               <br/>
               <span style="margin-left: 3em" class="inherited">&lt;city&gt; <span class="type">string</span> &lt;/city&gt; <span class="occurs">[1]</span>
               </span>
               <br/>
               <span style="margin-left: 3em" class="inherited">&lt;town&gt; <span class="type">string</span> &lt;/town&gt; <span class="occurs">[1]</span>
               </span>
               <br/>
               <span class="group" style="margin-left: 1.5em">End Choice</span>
               <br/>
               <span class="newFields">
                  <span style="margin-left: 1.5em">&lt;state&gt; <span class="type" style="text-decoration:underline;">AusStates</span> &lt;/state&gt; <span class="occurs">[1]</span>
                  </span>
                  <br/>
                  <span style="margin-left: 1.5em">&lt;postcode&gt; <span class="constraint">string &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}&gt;&gt;</span> &lt;/postcode&gt; <span class="occurs">[1]</span>
                     <a href="javascript:void(0)" title="View Documentation" class="documentation"
                        onclick="docArray = new Array('Post code must be a four-digit number.'); viewDocumentation('Element', 'postcode', docArray);">?</a>
                  </span>
                  <br/>
               </span>
               <span style="margin-left: 0em">&lt;/...&gt;</span>
               <br/>
            </div>
         </div>
         <div class="hint">
            <p>The XML Instance Representation table above shows the schema component's content as an XML instance.</p>
            <ul>
               <li>The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].</li>
               <li>Model group information are shown in gray, e.g. Start Choice ... End Choice.</li>
               <li>For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in <span style="font-weight: bold">bold</span>.</li>
               <li>If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".</li>
               <li>Otherwise, the type of the element/attribute is displayed.
               <ul>
                     <li>If the element/attribute's type is in the schema, a link is provided to it.</li>
                     <li>For local simple type definitions, the constraints are displayed in angle brackets, e.g. &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}&gt;&gt;.</li>
                  </ul>
               </li>
               <li>If a local element/attribute has documentation, it will be displayed in a window that pops up when the question mark inside the attribute or next to the element is clicked, e.g. &lt;postcode&gt;.</li>
            </ul>
         </div>
         <div class="schemaComponent box">
            <div>
               <span class="caption">Schema Component Representation</span>
            </div>
            <div class="contents">
               <span style="margin-left: 0em">&lt;<span class="scTag">complexType</span>
                  <span class="scTag">name</span>="<span class="scContent">AusAddress</span>"&gt;</span>
               <br/>
               <span style="margin-left: 1.5em">&lt;<span class="scTag">complexContent</span>&gt;</span>
               <br/>
               <span style="margin-left: 3em">&lt;<span class="scTag">extension</span>
                  <span class="scTag">base</span>="<span class="scContent">
                     <span class="type" style="text-decoration:underline;">Address</span>
                  </span>"&gt;</span>
               <br/>
               <span style="margin-left: 4.5em">&lt;<span class="scTag">sequence</span>&gt;</span>
               <br/>
               <span style="margin-left: 6em">&lt;<span class="scTag">element</span>
                  <span class="scTag">name</span>="<span class="scContent">state</span>" <span class="scTag">type</span>="<span class="scContent">
                     <span class="type" style="text-decoration:underline;">AusStates</span>
                  </span>"/&gt;</span>
               <br/>
               <span style="margin-left: 6em">&lt;<span class="scTag">element</span>
                  <span class="scTag">name</span>="<span class="scContent">postcode</span>"&gt;</span>
               <br/>
               <span style="margin-left: 7.5em">&lt;<span class="scTag">simpleType</span>&gt;</span>
               <br/>
               <span style="margin-left: 9em">&lt;<span class="scTag">restriction</span>
                  <span class="scTag">base</span>="<span class="scContent">
                     <span class="type">string</span>
                  </span>"&gt;</span>
               <br/>
               <span style="margin-left: 10.5em">&lt;<span class="scTag">pattern</span>
                  <span class="scTag">value</span>="<span class="scContent">[1-9][0-9]{3}</span>"/&gt;</span>
               <br/>
               <span style="margin-left: 9em">&lt;/<span class="scTag">restriction</span>&gt;</span>
               <br/>
               <span style="margin-left: 7.5em">&lt;/<span class="scTag">simpleType</span>&gt;</span>
               <br/>
               <span style="margin-left: 6em">&lt;/<span class="scTag">element</span>&gt;</span>
               <br/>
               <span style="margin-left: 4.5em">&lt;/<span class="scTag">sequence</span>&gt;</span>
               <br/>
               <span style="margin-left: 4.5em">&lt;<span class="scTag">attribute</span>
                  <span class="scTag">name</span>="<span class="scContent">country</span>" <span class="scTag">type</span>="<span class="scContent">
                     <span class="type">string</span>
                  </span>" <span class="scTag">fixed</span>="<span class="scContent">Australia</span>"/&gt;</span>
               <br/>
               <span style="margin-left: 3em">&lt;/<span class="scTag">extension</span>&gt;</span>
               <br/>
               <span style="margin-left: 1.5em">&lt;/<span class="scTag">complexContent</span>&gt;</span>
               <br/>
               <span style="margin-left: 0em">&lt;/<span class="scTag">complexType</span>&gt;</span>
               <br/>
            </div>
         </div>
         <div class="hint">The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)</div>
         <div style="text-align: right; clear: both;">
            <a href="#top">top</a>
         </div>
         <hr/>
      </div>
      <div id="glossary">
         <h2>
            <a name="Glossary">Glossary</a>
         </h2>
         <p>
            <span class="glossaryTerm">
               <a name="term_Abstract">Abstract</a> 
            </span>(Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_All">All Model Group</a> 
            </span>Child elements can be provided <em>in any order</em> in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-all"
               href="http://www.w3.org/TR/xmlschema-1/#element-all">http://www.w3.org/TR/xmlschema-1/#element-all</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Choice">Choice Model Group</a> 
            </span>
            <em>Only one</em> from the list of child elements and model groups can be provided in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-choice"
               href="http://www.w3.org/TR/xmlschema-1/#element-choice">http://www.w3.org/TR/xmlschema-1/#element-choice</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_CollapseWS">Collapse Whitespace Policy</a> 
            </span>Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_ElemBlock">Disallowed Substitutions</a> 
            </span>(Applies to element declarations). If <em>substitution</em> is specified, then <a title="Look up 'substitution group' in glossary"
               href="citationstyle.xsd.html#term_SubGroup">substitution group</a> members cannot be used in place of the given element declaration to validate element instances. If <em>derivation methods</em>, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an <code>xsi:type</code> attribute.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Key">Key Constraint</a> 
            </span>Like <a title="Look up 'Uniqueness Constraint' in glossary"
               href="citationstyle.xsd.html#term_Unique">Uniqueness Constraint</a>, but additionally requires that the specified value(s) must be provided. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"
               href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_KeyRef">Key Reference Constraint</a> 
            </span>Ensures that the specified value(s) must match value(s) from a <a title="Look up 'Key Constraint' in glossary"
               href="citationstyle.xsd.html#term_Key">Key Constraint</a> or <a title="Look up 'Uniqueness Constraint' in glossary"
               href="citationstyle.xsd.html#term_Unique">Uniqueness Constraint</a>. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"
               href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_ModelGroup">Model Group</a> 
            </span>Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: <a title="http://www.w3.org/TR/xmlschema-1/#Model_Groups"
               href="http://www.w3.org/TR/xmlschema-1/#Model_Groups">http://www.w3.org/TR/xmlschema-1/#Model_Groups</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Nillable">Nillable</a> 
            </span>(Applies to element declarations). If an element declaration is nillable, instances can use the <code>xsi:nil</code> attribute. The <code>xsi:nil</code> attribute is the boolean attribute, <em>nil</em>, from the <em>http://www.w3.org/2001/XMLSchema-instance</em> namespace. If an element instance has an <code>xsi:nil</code> attribute set to true, it can be left empty, even though its element declaration may have required content.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Notation">Notation</a> 
            </span>A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: <a title="http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations"
               href="http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations">http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_PreserveWS">Preserve Whitespace Policy</a> 
            </span>Preserve whitespaces exactly as they appear in instances.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_TypeFinal">Prohibited Derivations</a> 
            </span>(Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_TypeBlock">Prohibited Substitutions</a> 
            </span>(Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_ReplaceWS">Replace Whitespace Policy</a> 
            </span>Replace tab, line feed, and carriage return characters with space character (Unicode character 32).</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Sequence">Sequence Model Group</a> 
            </span>Child elements and model groups must be provided <em>in the specified order</em> in instances. See: <a title="http://www.w3.org/TR/xmlschema-1/#element-sequence"
               href="http://www.w3.org/TR/xmlschema-1/#element-sequence">http://www.w3.org/TR/xmlschema-1/#element-sequence</a>.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_SubGroup">Substitution Group</a> 
            </span>Elements that are <em>members</em> of a substitution group can be used wherever the <em>head</em> element of the substitution group is referenced.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_ElemFinal">Substitution Group Exclusions</a> 
            </span>(Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_TargetNS">Target Namespace</a> 
            </span>The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.</p>
         <p>
            <span class="glossaryTerm">
               <a name="term_Unique">Uniqueness Constraint</a> 
            </span>Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: <a title="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions"
               href="http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</a>.</p>
         <div style="text-align: right; clear: both;">
            <a href="#top">top</a>
         </div>
         <hr/>
      </div>
      <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>