home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Copyright 1999-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "document-v10.dtd">
-
- <document>
- <header>
- <title>XPath Directory Generator</title>
- <version>1.0</version>
- <type>Technical document</type>
- <authors>
- <person name="J├╢rg Heinicke" email="joerg@apache.org"/>
- </authors>
- <abstract>This document describes the XPath Directory Generator of Cocoon.</abstract>
- </header>
- <body>
- <s1 title="XPath Directory Generator">
- <p>Generates an XML directory listing performing XPath queries on XML files.</p>
- <ul>
- <li>Name: xpathdirectory</li>
- <li>Class: org.apache.cocoon.generation.XPathDirectoryGenerator</li>
- <li>Cacheable: yes</li>
- </ul>
- <p>The XPath Directory Generator provides all the functionality of the
- <link href="directory-generator.html">Directory Generator</link>. Additionaly it is possible
- to get XML snippets out of the XML files the Directory Generator finds.</p>
- </s1>
- <s1 title="Additional Configuration">
- <source><![CDATA[
- <map:generate type="xpathdirectory" src="the/requested/directory">
- <map:parameter name="xpath" value="/article/title|/article/abstract"/>
- <map:parameter name="xmlFiles" value="\.x.*$"/>
- </map:generate>
- ]]></source>
- <p>The XPath Directory Generator has two additional parameters, both are optional.</p>
- <ul>
- <li>xpath: Sets the XPath the XPath Directory Generator should use for queries on XML files.
- If you don't set this parameter it will behave like the Directory Generator.</li>
- <li>xmlFiles: The xml files pattern. Specifies the files that should be handled as XML
- files. XPath queries will only be tried on files matching this pattern. The XPath
- Directory Generator does not fail on non-XML files or files that are not
- well-formed or not valid. All Exceptions on parsing the files will be caught and
- ignored. But of course, useless parsing, throwing and catching exceptions is very
- time consuming, so the <code>xmlFiles</code> pattern should not be too generic.<br/>
- If you specify an empty pattern all files will be handled as XML files. The default
- pattern when not specifying this parameter is <code>\.xml$</code>, so that all files
- ending <code>.xml</code> are handled as XML files.<br/>
- The pattern is a regular expression as described in the API docs of the
- <link href="http://jakarta.apache.org/regexp/apidocs/org/apache/regexp/RE.html">
- Apache RegExp project</link>.</li>
- </ul>
- </s1>
- <s1 title="Extended DTD">
- <source><![CDATA[
- <!ELEMENT directory (directory|file)*>
- <!ATTLIST directory
- name CDATA #REQUIRED
- lastModified CDATA #REQUIRED
- date CDATA #REQUIRED
- size CDATA #REQUIRED
- requested CDATA #IMPLIED
- sort CDATA #IMPLIED
- reverse CDATA #IMPLIED>
-
- <!ELEMENT file (xpath?)>
- <!ATTLIST file
- name CDATA #REQUIRED
- lastModified CDATA #REQUIRED
- date CDATA #REQUIRED
- size CDATA #REQUIRED>
-
- <!ELEMENT xpath #ALL>
- <!ATTLIST xpath
- query CDATA #REQUIRED>
- ]]></source>
- </s1>
- <s1 title="Example">
- <p>The current XPath Directory Generator may generate following xml:</p>
- <source><![CDATA[
- <dir:directory xmlns:dir="http://apache.org/cocoon/directory/2.0"
- name="articles" lastModified="1057183738609" date="03.07.03 00:08" size="0"
- requested="true" sort="name" reverse="false">
- <dir:directory name="images" lastModified="1057183738609" date="03.07.03 00:08" size="0"/>
- <dir:file name="article1.xml" lastModified="1057183738609" date="03.07.03 00:08" size="123">
- <dir:xpath query="/article/title">
- <title>My first article!</title>
- </dir:xpath>
- </dir:file>
- <dir:file name="article2.html" lastModified="1057183738609" date="03.07.03 00:08" size="345"/>
- <dir:file name="article2.xml" lastModified="1057183738609" date="03.07.03 00:08" size="234">
- <dir:xpath query="/article/title">
- <title>My second article!</title>
- </dir:xpath>
- </dir:file>
- </dir:directory>
- ]]></source>
- </s1>
- </body>
- </document>
-