--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"\r
+ "http://www.w3.org/TR/REC-html40/loose.dtd">\r
+<html>\r
+<head>\r
+ <title>JigXML, The Jigsaw XML format</title>\r
+ <style type="text/css">.res { color: #0000FF}\r
+.value { font-weight: bold; color: black}\r
+.name { font-size: 12pt; font-style: normal; font-family: helvetica; font-weight: bold}\r
+.name { font-style: normal; font-family: helvetica; font-weight: bold; color: #FF0000}\r
+.type { text-decoration: underline}\r
+.type { color: #0000FF}</style>\r
+ <link href="../style/doc.css" rel="stylesheet" type="text/css">\r
+</head>\r
+\r
+<body text="#000000" bgcolor="#FFFFFF" style="background-color:\r
+ #FFFFFF">\r
+ <div class="icons-w3c">\r
+ <a href="../../../">\r
+ <img src="/Icons/w3c_home" \r
+ border="0" \r
+ alt="W3C logo"\r
+ height="48" \r
+ width="72">\r
+ </a>\r
+ </div>\r
+ <div class="icons-jigsaw">\r
+ <a href="../../">\r
+ <img src="/Icons/jigsaw" \r
+ border="0"\r
+ alt="Jigsaw"\r
+ height="49"\r
+ width="212">\r
+ </a>\r
+ </div>\r
+\r
+ <div class="title">\r
+ <h1 class="title">JigXML<br>\r
+ <span class="subtitle">The Jigsaw XML format</span>\r
+ </h1>\r
+ <hr width="70%" align="left" noshade="noshade">\r
+ <a href="../../">Jigsaw Home</a> / \r
+ <a href="../">Documentation Overview</a>\r
+ </div>\r
+ <div class="body">\r
+<ul>\r
+ <li><a href="#Resources">Resources and Frames in JigXML</a></li>\r
+ <li><a href="#find">How to find the JigXML description of a resource?</a></li>\r
+ <li><a href="#administra">The administration Protocol</a></li>\r
+ <li><a href="#example">XSL example</a></li>\r
+</ul>\r
+\r
+<p><br>\r
+This document describe the format used by Jigsaw to store the resources\r
+metadata. As of 2.1.0, Jigsaw use <a href="../../../XML">XML</a> to store\r
+these data. A JigXML file describes a set of resources metadata, each container\r
+(eg: a directory) save its children's metadata in such a file (via the\r
+ResourceStoreManager). It is assumed that you are familiar with the <a\r
+href="design.html">Jigsaw architecture</a>.</p>\r
+\r
+<h1><a name="Resources">Resources and Frames in JigXML</a></h1>\r
+\r
+<p>Here is the structure of a resource and its frames:</p>\r
+<img src="resframe.gif" alt="A sample resource" vspace="20">\r
+\r
+\r
+<p>And here is the corresponding JigXML structure:</p>\r
+<pre class="sample"><span style="font-weight: normal; font-family:\r
+ helvetica"><span style="font-family: helvetica"><jigxml version="1.0" xmlns="</span><a href="http://jigsaw.w3.org/JigXML/JigXML1.0" style="font-family: helvetica">http://jigsaw.w3.org/JigXML/JigXML1.0</a><span style="font-family: helvetica">">\r
+ <</span></span><span class="res" style="font-weight: normal; font-family: helvetica">resource</span><span style="font-weight: normal; font-family: helvetica"> class='org.w3c.tools.resources.<span class="type">FileResource</span>'>\r
+ <attribute name='<span class="name">identifier</span>' flag='6' class='org.w3c.tools.resources.StringAttribute'><span class="value">Overview.html</span></attribute> \r
+ <resourcearray name='<span class="name">frames</span>' class='org.w3c.tools.resources.FrameArrayAttribute' length='1'>\r
+ <<span class="res">resource</span></span><span style="font-weight: normal; font-family: helvetica"> class='org.w3c.jigsaw.frames.<span class="type">HTTPFrame</span>'>\r
+ <attribute name='<span class="name">identifier</span>' flag='6' class='org.w3c.tools.resources.StringAttribute'><span class="value">http-frame</span></attribute> \r
+ <resourcearray name='<span class="name">frames</span>' class='org.w3c.tools.resources.FrameArrayAttribute' length='0'> \r
+ </resourcearray> \r
+ <attribute name='<span class="name">last-modified</span>' flag='3' class='org.w3c.tools.resources.DateAttribute'><span class="value">932126901168</span></attribute> \r
+ <attribute name='<span class="name">oid</span>' flag='1' class='org.w3c.tools.resources.IntegerAttribute'><span class="value">@@NULL@@</span></attribute>\r
+ <attribute name='<span class="name">quality</span>' flag='2' class='org.w3c.tools.resources.DoubleAttribute'><span class="value">1.0</span></attribute> \r
+ <attribute name='<span class="name">title</span>' flag='2' class='org.w3c.tools.resources.StringAttribute'><span class="value">The release notes</span></attribute>\r
+ <attribute name='<span class="name">content-language</span>' flag='2' class='org.w3c.jigsaw.frames.LanguageAttribute'><span class="value">en</span></attribute>\r
+ <attribute name='<span class="name">content-encoding</span>' flag='2' class='org.w3c.jigsaw.frames.EncodingAttribute'><span class="value">@@NULL@@</span></attribute>\r
+ <attribute name='<span class="name">content-type</span>' flag='2' class='org.w3c.jigsaw.frames.MimeTypeAttribute'><span class="value">text/html</span></attribute> \r
+ <attribute name='<span class="name">content-length</span>' flag='1' class='org.w3c.tools.resources.IntegerAttribute'><span class="value">2345</span></attribute> \r
+ <attribute name='<span class="name">icon</span>' flag='2' class='org.w3c.tools.resources.StringAttribute'><span class="value">text.gif</span></attribute> \r
+ <attribute name='<span class="name">maxage</span>' flag='2' class='org.w3c.tools.resources.LongAttribute'><span class="value">@@NULL@@</span></attribute> \r
+ <attribute name='<span class="name">send-md5</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">false</span></attribute> \r
+ <attribute name='<span class="name">allow-delete</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">false</span></attribute> \r
+ <attribute name='<span class="name">putable</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">false</span></attribute> \r
+ <attribute name='<span class="name">relocate</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">true</span></attribute> \r
+ <attribute name='<span class="name">index</span>' flag='2' class='org.w3c.tools.resources.StringAttribute'><span class="value">@@NULL@@</span></attribute> \r
+ <attribute name='<span class="name">icondir</span>' flag='2' class='org.w3c.tools.resources.StringAttribute'><span class="value">/icons</span></attribute> \r
+ <attribute name='<span class="name">browsable</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">false</span></attribute> \r
+ <attribute name='<span class="name">style-sheet-link</span>' flag='2' class='org.w3c.tools.resources.StringAttribute'><span class="value">/style/directory.css</span></attribute> \r
+ <</span><span class="res" style="font-weight: normal; font-family: helvetica">/resource</span><span style="font-weight: normal; font-family: helvetica">> \r
+ </resourcearray> \r
+ <attribute name='<span class="name">last-modified</span>' flag='3' class='org.w3c.tools.resources.DateAttribute'><span class="value">932126925406</span></attribute> \r
+ <attribute name='<span class="name">oid</span>' flag='1' class='org.w3c.tools.resources.IntegerAttribute'><span class="value">2097344102</span></attribute> \r
+ <attribute name='<span class="name">filename</span>' flag='2' class='org.w3c.tools.resources.FilenameAttribute'><span class="value">Overview.html</span></attribute>\r
+ <attribute name='<span class="name">file-stamp</span>' flag='1' class='org.w3c.tools.resources.DateAttribute'><span class="value">922721334000</span></attribute> \r
+ <attribute name='<span class="name">file-length</span>' flag='1' class='org.w3c.tools.resources.IntegerAttribute'><span class="value">2345</span></attribute> \r
+ <attribute name='<span class="name">backup</span>' flag='2' class='org.w3c.tools.resources.BooleanAttribute'><span class="value">false</span></attribute>\r
+ <</span><span class="res" style="font-weight: normal;\r
+ font-family: helvetica">/resource</span><span style="font-weight: normal; font-family: helvetica">>\r
+</jigxml></span></pre>\r
+\r
+<p style="font-family: helvetica">This sample describe the metadata of only\r
+one resource: "<code>Overview.html</code>". A resource is a set of attributes,\r
+each attribute is described by an <code><attribute></code> tag. The frames\r
+of a resource are described in a <code><resourcearray></code> tag, in this\r
+example the resource has only one frame (an HTTPFrame), and this frame is\r
+called "<code>http-frame</code>". A frame is a resource, so it's also a set of\r
+attributes.</p>\r
+\r
+<h1 style="font-family: helvetica"><a name="find">How to find the JigXML\r
+description of a resource?</a></h1>\r
+\r
+<p style="font-family: helvetica">The usual resources are stored in a\r
+repository (a file) located in the <code><span style="text-decoration:\r
+underline"><INSTDIR>/Jigsaw/Jigsaw/config/stores</span></code> directory. A\r
+repository is used to store the children's configurations of one (and only\r
+one) container (eg: DirectoryResource). For example, the children's\r
+configurations of the root resource are stored in the file <code><span\r
+style="text-decoration:\r
+underline"><INSTDIR>/Jigsaw/Jigsaw/config/stores/root.xml</span></code>.</p>\r
+\r
+<p style="font-family: helvetica">The associations between containers and\r
+repositories are stored in the file <code><span style="text-decoration:\r
+underline">stores/<server-name>-index.xml</span></code> (eg:\r
+<code>http-server-index.xml</code>). Each container has a key, the index file\r
+stores the association between this key and the repository containing the\r
+children's configurations.</p>\r
+\r
+<p style="font-family: helvetica">Let me show you an example, in the\r
+description of the DirectoryResource (eg: <span style="text-decoration:\r
+underline">images</span>) you can read the following container key:</p>\r
+<pre class="sample"><span style="font-family: helvetica"><<span class="res">resource</span> class='org.w3c.jigsaw.resources.<span class="type">DirectoryResource</span>'>\r
+ <attribute name='<span class="name">identifier</span>' flag='6' class='org.w3c.tools.resources.StringAttribute'><span class="value">images</span></attribute>\r
+ <resourcearray name='frames' class='org.w3c.tools.resources.FrameArrayAttribute' length='1'>\r
+ <<span class="res">resource</span> class='org.w3c.jigsaw.frames.<span class="type">HTTPFrame</span>'>\r
+ <attribute name='identifier' flag='6' class='org.w3c.tools.resources.StringAttribute'>frame-0</attribute>\r
+ <resourcearray name='frames' class='org.w3c.tools.resources.FrameArrayAttribute' length='0'>\r
+ </resourcearray>\r
+ <attribute name='last-modified' flag='3' class='org.w3c.tools.resources.DateAttribute'>932127175430</attribute>\r
+ <attribute name='oid' flag='1' class='org.w3c.tools.resources.IntegerAttribute'>@@NULL@@</attribute>\r
+ <attribute name='quality' flag='2' class='org.w3c.tools.resources.DoubleAttribute'>1.0</attribute>\r
+ <attribute name='title' flag='2' class='org.w3c.tools.resources.StringAttribute'>@@NULL@@</attribute>\r
+ <attribute name='content-language' flag='2' class='org.w3c.jigsaw.frames.LanguageAttribute'>@@NULL@@</attribute>\r
+ <attribute name='content-encoding' flag='2' class='org.w3c.jigsaw.frames.EncodingAttribute'>@@NULL@@</attribute>\r
+ <attribute name='content-type' flag='2' class='org.w3c.jigsaw.frames.MimeTypeAttribute'>text/html</attribute>\r
+ <attribute name='content-length' flag='1' class='org.w3c.tools.resources.IntegerAttribute'>@@NULL@@</attribute>\r
+ <attribute name='icon' flag='2' class='org.w3c.tools.resources.StringAttribute'>dir.gif</attribute>\r
+ <attribute name='maxage' flag='2' class='org.w3c.tools.resources.LongAttribute'>@@NULL@@</attribute>\r
+ <attribute name='send-md5' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>false</attribute>\r
+ <attribute name='allow-delete' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>false</attribute>\r
+ <attribute name='putable' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>false</attribute>\r
+ <attribute name='relocate' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>true</attribute>\r
+ <attribute name='index' flag='2' class='org.w3c.tools.resources.StringAttribute'>Overview.html</attribute>\r
+ <attribute name='icondir' flag='2' class='org.w3c.tools.resources.StringAttribute'>@@NULL@@</attribute>\r
+ <attribute name='browsable' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>false</attribute>\r
+ <attribute name='style-sheet-link' flag='2' class='org.w3c.tools.resources.StringAttribute'>/style/directory.css</attribute>\r
+ </<span class="res">resource</span>>\r
+ </resourcearray>\r
+ <attribute name='last-modified' flag='3' class='org.w3c.tools.resources.DateAttribute'>932127175430</attribute>\r
+ <attribute name='oid' flag='1' class='org.w3c.tools.resources.IntegerAttribute'>@@NULL@@</attribute>\r
+ <span style="background-color: #FFE500"><attribute name='</span></span><span class="name" style="font-family: helvetica; background-color: #FFE500">key</span><span style="font-family: helvetica; background-color: #FFE500">' flag='1' class='org.w3c.tools.resources.IntegerAttribute'></span><span class="value" style="font-family: helvetica; background-color: #FFE500">83855963</span><span style="font-family: helvetica"><span style="background-color: #FFE500; font-family: helvetica"></attribute></span><span style="font-family: helvetica">\r
+ <attribute name='dirstamp' flag='1' class='org.w3c.tools.resources.DateAttribute'>932031181000</attribute>\r
+ <attribute name='indexer' flag='2' class='org.w3c.tools.resources.StringAttribute'>default</attribute>\r
+ <attribute name='extensible' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>true</attribute>\r
+ <attribute name='negotiable' flag='2' class='org.w3c.tools.resources.BooleanAttribute'>false</attribute>\r
+</</span><span class="res" style="font-family: helvetica">resource</span><span style="font-family: helvetica">></span></span></pre>\r
+\r
+<p>and you will find the corresponding repository in the file <code><span\r
+style="text-decoration: underline">http-server-index.xml</span></code>:</p>\r
+<pre class="sample"><span style="font-family: helvetica"><</span><span class="res" style="font-family: helvetica">resource</span><span style="font-family: helvetica"> class='org.w3c.tools.resources.store.</span><span class="type" style="font-family: helvetica">NewStoreEntry</span><span style="font-family: helvetica">'>\r
+ <attribute name='</span><span class="name" style="font-family: helvetica">repository</span><span style="font-family: helvetica">' flag='4' class='org.w3c.tools.resources.StringAttribute'></span><span class="value" style="font-family: helvetica">6/st-6</span><span style="font-family: helvetica"></attribute>\r
+ <span style="background-color: #FFE500"><attribute name='</span></span><span class="name" style="font-family: helvetica; background-color: #FFE500">key</span><span style="font-family: helvetica; background-color: #FFE500">' flag='4' class='org.w3c.tools.resources.IntegerAttribute'></span><span class="value" style="font-family: helvetica; background-color: #FFE500">83855963</span><span style="font-family: helvetica"><span style="background-color: #FFE500"></attribute></span>\r
+</</span><span class="res" style="font-family: helvetica">resource</span><span style="font-family: helvetica">></span><span style="font-family: helvetica"></span></pre>\r
+\r
+<p>So the children's configurations of the DirectoryResource <code><span\r
+style="text-decoration: underline">images</span></code> are stored in the\r
+repository <code><span style="text-decoration:\r
+underline">stores/6/st-6</span></code>.</p>\r
+\r
+<p>Specific resources like <span style="font-weight: bold">indexers</span> and\r
+<span style="font-weight: bold">realms</span> are stored in two other\r
+directories, <code><span style="text-decoration:\r
+underline"><INSTDIR>/Jigsaw/Jigsaw/config/indexers</span></code> and\r
+<code><span style="text-decoration:\r
+underline"><INSTDIR>/Jigsaw/Jigsaw/auth</span></code>.</p>\r
+\r
+<p></p>\r
+\r
+<p><span style="font-weight: bold">Note</span>: You can find the dtd (document\r
+type definition) of the <span style="font-weight: bold">JigXML</span> format at\r
+<a\r
+href="http://jigsaw.w3.org/JigXML/JigXML.dtd">http://jigsaw.w3.org/JigXML/JigXML.dtd</a>.</p>\r
+\r
+<h1><a name="administra">The administration protocol</a></h1>\r
+\r
+<p>The new administration protocol use the XML serialiation.</p>\r
+\r
+<p>Here is a sample request (add a <span class="type">DirectoryResource</span>\r
+called "<span class="value">new</span>" under <span style="text-decoration:\r
+underline">docs_space</span>, docs_space is an alias for the root\r
+resource).</p>\r
+<pre class="sample"><span style="font-weight: bold; font-family: helvetica">REGISTER-RESOURCE</span><span style="font-family: helvetica"> </span><span style="font-weight: normal; font-family: helvetica">/http-server/<span style="text-decoration: underline">docs_space</span>/ HTTP/1.1\r
+Date: Tue, 10 Aug 1999 15:17:53 GMT\r
+Content-Length: 212\r
+Content-Type: application/xml;type=jigsaw-config\r
+Accept: */*\r
+Host: ender.inria.fr:8009\r
+User-Agent: Jigsaw/2.1.0\r
+\r
+<?xml version='1.0' encoding='UTF-8'?>\r
+<jigxml version="1.0" xmlns="http://jigsaw.w3.org/JigXML/JigXML1.0">\r
+ <</span><span class="res" style="font-weight: normal; font-family: helvetica">description</span><span style="font-weight: normal; font-family: helvetica"> </span><span class="name" style="font-family: helvetica">class</span><span style="font-weight: normal; font-family: helvetica">='</span><span class="" style="font-weight: normal; font-family: helvetica">org.w3c.tools.resources.<span class="type">DirectoryResource</span></span><span style="font-weight: normal; font-family: helvetica">' </span><span class="name" style="font-family: helvetica">name</span><span style="font-weight: normal; font-family: helvetica">='</span><span class="value" style="font-family: helvetica">new</span><span style="font-weight: normal; font-family: helvetica">'>\r
+ </</span><span class="res" style="font-weight: normal; font-family: helvetica">description</span><span style="font-weight: normal; font-family: helvetica">>\r
+</jigxml></span></pre>\r
+\r
+<p>Another one (set the "<span class="name">putable</span>" flag to <span\r
+class="value">true</span> on the HTTPFrame of <span style="text-decoration:\r
+underline">style</span>):</p>\r
+<pre class="sample"><span style="font-weight: bold; font-family: helvetica">SET-VALUES</span><span style="font-family: helvetica"> <span style="font-weight: normal">/http-server/docs_space/<span style="text-decoration: underline">style</span>?frame-0 HTTP/1.1\r
+Date: Tue, 10 Aug 1999 15:15:06 GMT\r
+Content-Length: 994\r
+Content-Type: application/xml;type=jigsaw-config\r
+Accept: */*\r
+Host: ender.inria.fr:8009\r
+\r
+<?xml version='1.0' encoding='UTF-8'?>\r
+<jigxml version="1.0" xmlns="http://jigsaw.w3.org/JigXML/JigXML1.0">\r
+ <</span></span><span class="res" style="font-family: helvetica; font-weight: normal">resource</span><span style="font-family: helvetica; font-weight: normal"> class='org.w3c.jigsaw.frames.</span><span class="type" style="font-family: helvetica; font-weight: normal">HTTPFrame</span><span style="font-family: helvetica; font-weight: normal">'>\r
+ <inherit class='org.w3c.tools.resources.ProtocolFrame'>\r
+ <inherit class='org.w3c.tools.resources.ResourceFrame'>\r
+ <inherit class='org.w3c.tools.resources.FramedResource'>\r
+ <inherit class='org.w3c.tools.resources.Resource'>\r
+ <inherit class='org.w3c.tools.resources.AttributeHolder'>\r
+ <inherit class='java.lang.Object'>\r
+ </inherit>\r
+ </inherit>\r
+ </inherit>\r
+ </inherit>\r
+ </inherit>\r
+ </inherit>\r
+ <implements class='org.w3c.tools.resources.event.AttributeChangedListener'/>\r
+ <implements class='org.w3c.tools.resources.event.FrameEventListener'/>\r
+ <implements class='java.lang.Cloneable'/>\r
+ <attribute name='</span><span class="name" style="font-family: helvetica">putable</span><span style="font-family: helvetica; font-weight: normal">' flag='2' class='org.w3c.tools.resources.BooleanAttribute'></span><span class="value" style="font-family: helvetica">true</span><span style="font-family: helvetica; font-weight: normal"></attribute>\r
+ </</span><span class="res" style="font-family: helvetica; font-weight: normal">resource</span><span style="font-family: helvetica; font-weight: normal">>\r
+</jigxml></span></pre>\r
+\r
+<p></p>\r
+\r
+<h1><a name="example">XSL example</a></h1>\r
+\r
+<p>Just a little example of what can be done with JigXML and <a\r
+href="http://www.w3.org/Style/XSL/">XSL</a>. In this example, the <a\r
+href="http://jigsaw.w3.org/JigXML/xsl/root.xml">JigXML file</a> is transformed to\r
+an <a href="http://jigsaw.w3.org/JigXML/xsl/root.html">HTML file</a> using the\r
+following <a href="http://jigsaw.w3.org/JigXML/xsl/JigXML.xsl">XSL rules</a>.\r
+ </div> <!-- body -->\r
+ <div class="footer">\r
+<p></p>\r
+<hr noshade="noshade" width="100%">\r
+\r
+\r
+<p><a href="mailto:jigsaw@w3.org">Jigsaw Team</a> <br>\r
+<span class="mini">$Id: JigXML.html,v 1.18 1999/07/29 16:05:19 bmahe Exp\r
+$</span></p>\r
+\r
+<p class="policyfooter"><font size="-1"><a\r
+href="/Consortium/Legal/ipr-notice.html#Copyright"><span\r
+class="policyfooter">Copyright</span></a><span class="policyfooter">\r
+ © 1997 </span><a href="http://www.w3.org/"\r
+class="policyfooter">W3C</a><span class="policyfooter"> (</span><a\r
+href="http://www.lcs.mit.edu/" class="policyfooter">MIT</a><span\r
+class="policyfooter">, </span><a href="http://www.inria.fr/"\r
+class="policyfooter">INRIA</a><span class="policyfooter">, </span><a\r
+href="http://www.keio.ac.jp/" class="policyfooter">Keio</a><span\r
+class="policyfooter"> ), All Rights Reserved. W3C </span><a\r
+href="/Consortium/Legal/ipr-notice.html#Legal Disclaimer"\r
+class="policyfooter"> liability,</a><span class="policyfooter"> </span><a\r
+href="/Consortium/Legal/ipr-notice.html#W3C Trademarks" class="policyfooter">\r
+trademark</a><span class="policyfooter">, </span><a\r
+href="/Consortium/Legal/copyright-documents.html"\r
+class="policyfooter">document use </a><span class="policyfooter">and </span><a\r
+href="/Consortium/Legal/copyright-software.html" class="policyfooter">software\r
+licensing </a><span class="policyfooter">rules apply. Your interactions with\r
+this site are in accordance with our </span><a\r
+href="/Consortium/Legal/privacy-statement.html#Public" class="policyfooter">\r
+public</a><span class="policyfooter"> and </span><a\r
+href="/Consortium/Legal/privacy-statement.html#Members" class="policyfooter">\r
+Member</a><span class="policyfooter"> privacy statements.</span></font></p>\r
+ </div>\r
+</body>\r
+</html>\r