vgritsenko    2003/12/12 07:00:31

  Modified:    src/blocks/xmldb/samples populate.xml samples.xml
                        sitemap.xmap
  Added:       src/blocks/xmldb/samples xmldb2samples.xsl
  Log:
  Extend XMLDB samples: add simple db browser with query capabilities
  
  Revision  Changes    Path
  1.2       +22 -0     cocoon-2.1/src/blocks/xmldb/samples/populate.xml
  
  Index: populate.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/xmldb/samples/populate.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- populate.xml      10 Dec 2003 14:33:16 -0000      1.1
  +++ populate.xml      12 Dec 2003 15:00:31 -0000      1.2
  @@ -1,5 +1,10 @@
   <?xml version="1.0"?>
   
  +<!--+
  +    | Populates XMLDB with some samples data
  +    | CVS $Id$
  +    +-->
  +
   <html>
     <h2>Populating DB with samples data</h2>
     <h3>Create Collection</h3>
  @@ -28,6 +33,23 @@
             </note>
             <sample name="From File System" href="welcome">
               This samples page, but served from the file system.
  +          </sample>
  +          <sample name="Browser" href="browse/">
  +            Simple database browser
  +          </sample>
  +        </group>
  +        <group name="XMLDB Source">
  +          <sample name="Get Collection" href="db/cocoon/">
  +            Get /db/cocoon collection.
  +          </sample>
  +          <sample name="Get Resource" href="db/cocoon/welcome">
  +            Get /db/cocoon/welcome resource.
  +          </sample>
  +          <sample name="Query Collection" 
href="db/cocoon/?xpath=/samples/group">
  +            Query /db/cocoon collection.
  +          </sample>
  +          <sample name="Query Collection" 
href="db/cocoon/welcome?xpath=/samples/group">
  +            Query /db/cocoon/welcome resource (same query).
             </sample>
           </group>
         </samples>
  
  
  
  1.2       +18 -0     cocoon-2.1/src/blocks/xmldb/samples/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/xmldb/samples/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml       10 Dec 2003 14:33:16 -0000      1.1
  +++ samples.xml       12 Dec 2003 15:00:31 -0000      1.2
  @@ -23,5 +23,23 @@
         This samples page, but obtained from the XMLDB database
         (don't forget to Init database first)
       </sample>
  +    <sample name="Browser" href="browse/">
  +      Simple database browser
  +    </sample>
  +  </group>
  +
  +  <group name="XMLDB Source">
  +    <sample name="Get Collection" href="db/cocoon/">
  +      Get /db/cocoon collection.
  +    </sample>
  +    <sample name="Get Resource" href="db/cocoon/welcome">
  +      Get /db/cocoon/welcome resource.
  +    </sample>
  +    <sample name="Query Collection" href="db/cocoon/?xpath=/samples/group">
  +      Query /db/cocoon collection.
  +    </sample>
  +    <sample name="Query Collection" 
href="db/cocoon/welcome?xpath=/samples/group">
  +      Query /db/cocoon/welcome resource (same query).
  +    </sample>
     </group>
   </samples>
  
  
  
  1.5       +23 -1     cocoon-2.1/src/blocks/xmldb/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/xmldb/samples/sitemap.xmap,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- sitemap.xmap      10 Dec 2003 14:33:16 -0000      1.4
  +++ sitemap.xmap      12 Dec 2003 15:00:31 -0000      1.5
  @@ -1,5 +1,10 @@
   <?xml version="1.0" encoding="UTF-8"?>
   
  +<!--+
  +    | XMLDB Samples Sitemap
  +    | CVS $Id$
  +    +-->
  +
   <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0";>
   
   <!-- =========================== Views =================================== 
-->
  @@ -50,12 +55,29 @@
           <map:serialize/>
         </map:match>
   
  +      <map:match pattern="browse/**">
  +        <map:match type="request-parameter" pattern="xpath">
  +          <map:generate src="xmldb:xindice-embed:///db/{../1}#{1}"/>
  +          <map:transform src="xmldb2samples.xsl"/>
  +          <map:transform 
src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
  +            <map:parameter name="contextPath" value="{request:contextPath}"/>
  +          </map:transform>
  +          <map:serialize/>
  +        </map:match>
  +
  +        <map:generate src="xmldb:xindice-embed:///db/{1}"/>
  +        <map:transform src="xmldb2samples.xsl"/>
  +        <map:transform 
src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
  +          <map:parameter name="contextPath" value="{request:contextPath}"/>
  +        </map:transform>
  +        <map:serialize/>
  +      </map:match>
  +
         <map:match pattern="db/**">
           <map:match type="request-parameter" pattern="xpath">
             <map:generate src="xmldb:xindice-embed:///db/{../1}#{1}"/>
             <map:serialize type="xml"/>
           </map:match>
  -
           <map:generate src="xmldb:xindice-embed:///db/{1}"/>
           <map:serialize type="xml"/>
         </map:match>
  
  
  
  1.1                  cocoon-2.1/src/blocks/xmldb/samples/xmldb2samples.xsl
  
  Index: xmldb2samples.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <!--+
      | Simple XMLDB browser
      | CVS $Id: xmldb2samples.xsl,v 1.1 2003/12/12 15:00:31 vgritsenko Exp $
      +-->
  
  <xsl:stylesheet version="1.0"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                  xmlns:x="http://apache.org/cocoon/xmldb/1.0";>
  
    <xsl:import href="context://stylesheets/system/xml2html.xslt"/>
  
    <xsl:template match="/">
      <xsl:choose>
        <xsl:when test="x:collections">
          <xsl:apply-templates/>
        </xsl:when>
        <xsl:when test="x:results">
          <xsl:apply-templates/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="resource"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
  
    <xsl:template match="x:collections">
      <samples name="XMLDB Browser" xmlns:xlink="http://www.w3.org/1999/xlink";>
        <group name="Back">
          <sample name="Back" href="..">to parent collection</sample>
        </group>
        <group name="Collection">
          <note>
            You are browsing collection <strong><xsl:value-of 
select="@base"/></strong>.
            <br/>
            This collection has <strong><xsl:value-of 
select="@collections"/></strong>
            nested collections and it stores <strong><xsl:value-of 
select="@resources"/></strong>
            resources.
          </note>
        </group>
        <group name="Collections">
          <xsl:if test="not(x:collection)">
            <note>Collection does not have nested collections</note>
          </xsl:if>
          <xsl:apply-templates select="x:collection"/>
        </group>
        <group name="Resources">
          <xsl:if test="not(x:resource)">
            <note>Collection does not have resources</note>
          </xsl:if>
          <xsl:apply-templates select="x:resource"/>
        </group>
        <group name="Query">
          <form method="get" action="[EMAIL PROTECTED]">
            <input name="xpath"/>
            <input type="submit"/>
          </form>
        </group>
      </samples>
    </xsl:template>
  
    <xsl:template name="resource">
      <samples name="XMLDB Browser" xmlns:xlink="http://www.w3.org/1999/xlink";>
        <group name="Back">
          <sample name="Back" href=".">to parent collection</sample>
        </group>
        <group name="Resource">
          <note>
            You are viewing resource.
          </note>
        </group>
        <group name="Resource Content">
          <xsl:call-template name="head"/>
          <xsl:apply-templates/>
        </group>
        <group name="Query">
          <form method="get" action="?">
            <input name="xpath"/>
            <input type="submit"/>
          </form>
        </group>
      </samples>
    </xsl:template>
  
    <xsl:template match="x:results">
      <samples name="XMLDB Browser" xmlns:xlink="http://www.w3.org/1999/xlink";>
        <group name="Back">
          <sample name="Back" href="?">to collection/resource</sample>
        </group>
        <group name="Query">
          <note>
            You are viewing query results.
            <br/>
            Query was <strong><xsl:value-of select="@query"/></strong>
            and it produced <strong><xsl:value-of select="@resources"/></strong>
            results.
          </note>
        </group>
        <group name="Results">
          <xsl:call-template name="head"/>
          <xsl:if test="@resources = 0">
            <note>Query produced no results</note>
          </xsl:if>
          <xsl:apply-templates select="x:result"/>
        </group>
        <group name="Query">
          <form method="get" action="[EMAIL PROTECTED]">
            <input name="xpath"/>
            <input type="submit"/>
          </form>
        </group>
      </samples>
    </xsl:template>
  
    <xsl:template match="x:collection">
      <sample name="[EMAIL PROTECTED]" href="[EMAIL PROTECTED]/">Browse 
Collection</sample>
    </xsl:template>
  
    <xsl:template match="x:resource">
      <sample name="[EMAIL PROTECTED]" href="[EMAIL PROTECTED]">View 
Resource</sample>
    </xsl:template>
  
    <xsl:template match="x:result">
      <p>
        Result <strong><xsl:value-of select="position()"/></strong>, from the 
document
        <strong><xsl:value-of select="@docid"/></strong>:
      </p>
      <xsl:apply-templates/>
    </xsl:template>
  </xsl:stylesheet>
  
  
  

Reply via email to