<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Data Model</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- CSS: implied media="all" -->
  <link rel="stylesheet" href="css/style.css?v=2">
  <link rel="stylesheet" href="css/prettify.css">

  <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
  <script src="js/libs/modernizr-1.7.min.js"></script>

</head>

<body class="home">

  <div class="container">
    <header>
      <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">Data Model</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="rest.html">REST</a></li>
            <li id="nav-data"><a href="model.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
            <li>
              <a href="index.html" class="home">Home</a> &gt;
            </li>
            <li class="current">
              <a href="model.html">Data Model</a>
              <ul>
                <li><a href="model.html">Data Model</a></li>
                <li><a href="rest.html">REST</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
    <h1>Data Model</h1>

    <p>
      All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint
      that consumes and/or produces the data. The data can described by <a href="http://www.w3.org/XML/Schema">XML Schema</a>, which definitively
      describes the XML representation of the data, but is also useful for describing the other formats of the data, such as <a href="http://json.org">JSON</a>.
    </p>

    <p>
      This document will describe the data using terms based on <a href="http://www.w3.org/XML/Schema">XML Schema</a>.
      Data can be grouped by namespace, with a schema document describing the <i>elements</i> and <i>types</i> of the namespace.
      Generally speaking, <i>types</i> define the structure of the data and <i>elements</i> are <i>instances</i> of a type. For example,
      <i>elements</i> are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by
      its <i>type</i>.
    </p>

    <h2>Namespace "ns0"</h2>
    <table>
      <tr>
        <td align="right">Namespace URI:</td>
        <td>(default namespace)</td>
      </tr>
      <tr>
        <td align="right">XSD:</td>
        <td><a href="ns0.xsd">ns0.xsd</a></td>
      </tr>
    </table>

    <h3>Data Elements</h3>

    <ul>
      <li><a href="el_ns0_applicationRuntimeInfo.html">applicationRuntimeInfo</a></li>
      <li><a href="el_ns0_fileMetadata.html">fileMetadata</a></li>
      <li><a href="el_ns0_javascriptLog.html">javascriptLog</a></li>
    </ul>

    <h3>Data Types</h3>
    <ul>
      <li><a href="ns0_applicationRuntimeInfo.html">applicationRuntimeInfo</a></li>
      <li><a href="ns0_cookieInformation.html">cookieInformation</a></li>
      <li><a href="ns0_fileMetadata.html">fileMetadata</a></li>
      <li><a href="ns0_javascriptLog.html">javascriptLog</a></li>
    </ul>

      <div class="clear" />
    </div>
    <footer>
      <div id="footer">
        Generated by <a href="http://enunciate.codehaus.org">Enunciate</a>.
      </div>
    </footer>
  </div> <!--! end of #container -->

  <!-- JavaScript at the bottom for fast page loading -->

  <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
  <script>window.jQuery || document.write("<script src='js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>

  <!--manage the navigation menu-->
  <script src="js/libs/xbreadcrumbs.js"></script>
  <script>
    $(function() {
      $('#breadcrumbs').xBreadcrumbs();
    });
  </script>


  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="js/libs/prettify/prettify.js"></script>
  <script>
    $(function() {
      prettyPrint();
    });
  </script>

  <!--[if lt IE 7 ]>
    <script src="js/libs/dd_belatedpng.js"></script>
    <script>DD_belatedPNG.fix("img, .png_bg"); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script>
  <![endif]-->

</body>
</html>