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>