summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpelder2006-02-24 14:35:06 (EST)
committer pelder2006-02-24 14:35:06 (EST)
commitd6b8296475cb33863ec93c5fbc7ebf7c72691f14 (patch)
treeed84dae6630766f055163ff16d5034d05bed226f
parentcf44b010c9f9e75f08f52dca3fe9e34e7ff57205 (diff)
downloadorg.eclipse.jet-d6b8296475cb33863ec93c5fbc7ebf7c72691f14.zip
org.eclipse.jet-d6b8296475cb33863ec93c5fbc7ebf7c72691f14.tar.gz
org.eclipse.jet-d6b8296475cb33863ec93c5fbc7ebf7c72691f14.tar.bz2
Initial commit
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/.classpath7
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/.cvsignore2
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/.project29
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/META-INF/MANIFEST.MF10
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/about.html24
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/build.properties12
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/plugin.xml34
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/sample.xml3
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/control.jet9
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/createBasicProject.jet38
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/createExtendedProject.jet0
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/dump.jet2
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/build.properties.jet10
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/classpath.jet8
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/control.jet.jet22
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/dump.jet.jet2
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/manifest.mf.jet10
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/plugin.xml.jet21
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/project.jet30
-rw-r--r--transforms/org.eclipse.jet.transforms.newproject/templates/project/sample.xml.jet3
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/.classpath7
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/.cvsignore2
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/.project29
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/META-INF/MANIFEST.MF10
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/about.html24
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/build.properties12
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/plugin.xml34
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/sample.xml3
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/templates/allTags/tag.html.jet164
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/templates/control.jet89
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/templates/dump.jet2
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/overview.html.jet52
-rw-r--r--transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/toc.xml.jet11
33 files changed, 715 insertions, 0 deletions
diff --git a/transforms/org.eclipse.jet.transforms.newproject/.classpath b/transforms/org.eclipse.jet.transforms.newproject/.classpath
new file mode 100644
index 0000000..d4a97a3
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="jet2java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/.cvsignore b/transforms/org.eclipse.jet.transforms.newproject/.cvsignore
new file mode 100644
index 0000000..d3fa7b5
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/.cvsignore
@@ -0,0 +1,2 @@
+bin
+jet2java
diff --git a/transforms/org.eclipse.jet.transforms.newproject/.project b/transforms/org.eclipse.jet.transforms.newproject/.project
new file mode 100644
index 0000000..b7ca7d7
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jet.transforms.newproject</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jet.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.jet.jet2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/META-INF/MANIFEST.MF b/transforms/org.eclipse.jet.transforms.newproject/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..90c1a69
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: New JET Project Transform
+Bundle-SymbolicName: org.eclipse.jet.transforms.newproject;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Bundle-Vendor:
+JET2-TransformClass: org.eclipse.jet.compiled._jet_transformation
+Require-Bundle: org.eclipse.jet
+Bundle-ClassPath: .,bin/
diff --git a/transforms/org.eclipse.jet.transforms.newproject/about.html b/transforms/org.eclipse.jet.transforms.newproject/about.html
new file mode 100644
index 0000000..1c0db85
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>February 22, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+</body>
+</html>
+
diff --git a/transforms/org.eclipse.jet.transforms.newproject/build.properties b/transforms/org.eclipse.jet.transforms.newproject/build.properties
new file mode 100644
index 0000000..2b0eb30
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/build.properties
@@ -0,0 +1,12 @@
+source.. = jet2java/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ sample.xml,\
+ templates/,\
+ plugin.xml,\
+ about.html
+src.includes = .project,\
+ build.properties,\
+ .classpath,\
+ about.html
diff --git a/transforms/org.eclipse.jet.transforms.newproject/plugin.xml b/transforms/org.eclipse.jet.transforms.newproject/plugin.xml
new file mode 100644
index 0000000..bf1cc1b
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/plugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.jet.transform">
+ <transform
+ startTemplate="templates/control.jet"
+ templateLoaderClass="org.eclipse.jet.compiled._jet_transformation">
+ <description>
+ Generate a new JET2 project from a simple XML description.
+ </description>
+ <tagLibraries>
+ <importLibrary
+ autoImport="true"
+ id="org.eclipse.jet.controlTags"
+ usePrefix="c"/>
+ <importLibrary
+ autoImport="false"
+ id="org.eclipse.jet.workspaceTags"
+ usePrefix="ws"/>
+ <importLibrary
+ autoImport="true"
+ id="org.eclipse.jet.formatTags"
+ usePrefix="f"/>
+ </tagLibraries>
+ <enablement>
+ <test
+ property="extension"
+ value="xml"/>
+ </enablement>
+ </transform>
+ </extension>
+
+</plugin>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/sample.xml b/transforms/org.eclipse.jet.transforms.newproject/sample.xml
new file mode 100644
index 0000000..62663fd
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/sample.xml
@@ -0,0 +1,3 @@
+<newProjectModel>
+ <project name="foo.bar"/>
+</newProjectModel> \ No newline at end of file
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/control.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/control.jet
new file mode 100644
index 0000000..3f8ca12
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/control.jet
@@ -0,0 +1,9 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags" %>
+*** Control template for newproject.txm
+
+
+ --- Define additional attributes for the current root element
+ <c:include template="templates/createBasicProject.jet"/>
+
+ <c:include template="templates/createExtendedProject.jet"/>
+ \ No newline at end of file
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/createBasicProject.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/createBasicProject.jet
new file mode 100644
index 0000000..44e1b05
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/createBasicProject.jet
@@ -0,0 +1,38 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags" %>
+<%@taglib prefix="ws" id="org.eclipse.jet.workspaceTags" %>
+*** Control template for newproject.txm
+
+
+ --- Define additional attributes for the current root element
+ <c:setVariable select="/newProjectModel/project" var="project"/>
+
+ --- Iterate over each nested project element
+ --- Define additional attributes for the current project element
+ <c:if test="not($project/@binDir)"><c:set select="$project" name="binDir">bin</c:set></c:if>
+ <c:if test="not($project/@jet2javaDir)"><c:set select="$project" name="jet2javaDir">jet2java</c:set></c:if>
+ <c:if test="not($project/@templatesDir)"><c:set select="$project" name="templatesDir">templates</c:set></c:if>
+ <c:if test="not($project/@templateLoader)"><c:set select="$project" name="templateLoader">org.eclipse.jet.compiled._jet_transformation</c:set></c:if>
+ <c:if test="not($project/@startTemplate)"><c:set select="$project" name="startTemplate">control.jet</c:set></c:if>
+
+*** Traverse the model and generate artifacts
+ --- Generate artifacts for the current root element
+
+ --- Iterate over each nested project element
+ --- Generate artifacts for the current project element
+ <ws:project name="{$project/@name}">
+ <ws:folder path="META-INF">
+ <ws:file template="templates/project/manifest.mf.jet" path="MANIFEST.MF"/>
+ </ws:folder>
+ <ws:file template="templates/project/classpath.jet" path=".classpath" />
+ <ws:file template="templates/project/project.jet" path=".project" />
+ <ws:file template="templates/project/build.properties.jet" path="build.properties" />
+ <ws:file template="templates/project/plugin.xml.jet" path="plugin.xml" />
+
+ <ws:folder path="{$project/@binDir}"/>
+ <ws:folder path="{$project/@jet2javaDir}"/>
+ <ws:folder path="{$project/@templatesDir}">
+ <ws:file template="templates/project/control.jet.jet" path="{$project/@startTemplate}" />
+ <ws:file template="templates/project/dump.jet.jet" path="dump.jet" />
+ </ws:folder>
+ <ws:file template="templates/project/sample.xml.jet" path="sample.xml" />
+ </ws:project>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/createExtendedProject.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/createExtendedProject.jet
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/createExtendedProject.jet
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/dump.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/dump.jet
new file mode 100644
index 0000000..a8b699e
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/dump.jet
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<dump node="/*" format="true" entities="true"/>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/build.properties.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/build.properties.jet
new file mode 100644
index 0000000..060f51c
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/build.properties.jet
@@ -0,0 +1,10 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags" %>
+source.. = <c:get select="$project/@jet2javaDir" />/
+output.. = <c:get select="$project/@binDir" />/
+bin.includes = .,\
+ plugin.xml,\
+ META-INF/,\
+ <c:get select="$project/@templatesDir" />/
+src.includes = .project,\
+ build.properties,\
+ .classpath
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/classpath.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/classpath.jet
new file mode 100644
index 0000000..a973d74
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/classpath.jet
@@ -0,0 +1,8 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="<c:get select="$project/@jet2javaDir" default="jet2java" />"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="<c:get select="$project/@binDir" />"/>
+</classpath>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/control.jet.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/control.jet.jet
new file mode 100644
index 0000000..7bb4e18
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/control.jet.jet
@@ -0,0 +1,22 @@
+<%@taglib prefix="cc" id="org.eclipse.jet.controlTags" %>
+<\%@taglib prefix="c" id="org.eclipse.jet.controlTags" %>
+<\%@taglib prefix="ws" id="org.eclipse.jet.workspaceTags" %>
+*** Control template for bean.transform
+
+
+
+ --- Define additional attributes for the current root element
+
+ --- Iterate over each nested project element
+
+*** Traverse the model and generate artifacts
+ --- Generate artifacts for the current root element
+
+ --- Iterate over each nested project element
+
+*** Dump the transformed model for testing and debug purposes
+
+ <ws:file template="templates/dump.jet" path="dump.xml"/>
+
+
+
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/dump.jet.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/dump.jet.jet
new file mode 100644
index 0000000..a8b699e
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/dump.jet.jet
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<dump node="/*" format="true" entities="true"/>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/manifest.mf.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/manifest.mf.jet
new file mode 100644
index 0000000..ddbed31
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/manifest.mf.jet
@@ -0,0 +1,10 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: <c:get select="$project/@name" />
+Bundle-SymbolicName: <c:get select="$project/@name" />;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Bundle-Vendor:
+JET2-TransformClass: <c:get select="$project/@templateLoader" />
+Require-Bundle: org.eclipse.jet
+Bundle-ClassPath: .,<c:get select="$project/@binDir"/>/
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/plugin.xml.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/plugin.xml.jet
new file mode 100644
index 0000000..dbbc4e4
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/plugin.xml.jet
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<%@taglib id="org.eclipse.jet.controlTags" prefix="c"%>
+<plugin>
+ <extension
+ id=""
+ name=""
+ point="org.eclipse.jet.transform">
+ <transform
+ startTemplate="<c:get select="$project/@templatesDir" />/<c:get select="$project/@startTemplate" />"
+ templateLoaderClass="<c:get select="$project/@templateLoader" />" >
+ <description>[Description of transform goes here.]</description>
+ <tagLibraries>
+ <importLibrary id="org.eclipse.jet.controlTags" usePrefix="c" autoImport="true"/>
+ <importLibrary id="org.eclipse.jet.javaTags" usePrefix="java" autoImport="true"/>
+ <importLibrary id="org.eclipse.jet.formatTags" usePrefix="f" autoImport="true"/>
+ <importLibrary id="org.eclipse.jet.workspaceTags" usePrefix="ws" autoImport="false"/>
+ </tagLibraries>
+ </transform>
+ </extension>
+</plugin> \ No newline at end of file
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/project.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/project.jet
new file mode 100644
index 0000000..13f31e6
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/project.jet
@@ -0,0 +1,30 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name><c:get select="$project/@name" /></name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jet.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.jet.jet2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/transforms/org.eclipse.jet.transforms.newproject/templates/project/sample.xml.jet b/transforms/org.eclipse.jet.transforms.newproject/templates/project/sample.xml.jet
new file mode 100644
index 0000000..84ff56b
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.newproject/templates/project/sample.xml.jet
@@ -0,0 +1,3 @@
+<root>
+
+</root> \ No newline at end of file
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/.classpath b/transforms/org.eclipse.jet.transforms.taglibdoc/.classpath
new file mode 100644
index 0000000..d4a97a3
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="jet2java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/.cvsignore b/transforms/org.eclipse.jet.transforms.taglibdoc/.cvsignore
new file mode 100644
index 0000000..d3fa7b5
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/.cvsignore
@@ -0,0 +1,2 @@
+bin
+jet2java
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/.project b/transforms/org.eclipse.jet.transforms.taglibdoc/.project
new file mode 100644
index 0000000..5fe0077
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jet.transforms.taglibdoc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jet.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.jet.jet2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/META-INF/MANIFEST.MF b/transforms/org.eclipse.jet.transforms.taglibdoc/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3108d6d
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Generate JET Taglib Documentation
+Bundle-SymbolicName: org.eclipse.jet.transforms.taglibdoc;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Bundle-Vendor:
+JET2-TransformClass: org.eclipse.jet.compiled._jet_transformation
+Require-Bundle: org.eclipse.jet
+Bundle-ClassPath: .,bin/
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/about.html b/transforms/org.eclipse.jet.transforms.taglibdoc/about.html
new file mode 100644
index 0000000..1c0db85
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>February 22, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+</body>
+</html>
+
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/build.properties b/transforms/org.eclipse.jet.transforms.taglibdoc/build.properties
new file mode 100644
index 0000000..2b0eb30
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/build.properties
@@ -0,0 +1,12 @@
+source.. = jet2java/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ sample.xml,\
+ templates/,\
+ plugin.xml,\
+ about.html
+src.includes = .project,\
+ build.properties,\
+ .classpath,\
+ about.html
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/plugin.xml b/transforms/org.eclipse.jet.transforms.taglibdoc/plugin.xml
new file mode 100644
index 0000000..42f51ed
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/plugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.jet.transform">
+ <transform
+ startTemplate="templates/control.jet"
+ templateLoaderClass="org.eclipse.jet.compiled._jet_transformation">
+ <description>
+ Generate HTML Documentation from a plugin.xml containing a org.eclipse.jet.tagLibraries extension point.
+ </description>
+ <tagLibraries>
+ <importLibrary
+ autoImport="true"
+ id="org.eclipse.jet.controlTags"
+ usePrefix="c"/>
+ <importLibrary
+ autoImport="false"
+ id="org.eclipse.jet.workspaceTags"
+ usePrefix="ws"/>
+ <importLibrary
+ autoImport="true"
+ id="org.eclipse.jet.formatTags"
+ usePrefix="f"/>
+ </tagLibraries>
+ <enablement>
+ <test
+ property="matchesName"
+ value="plugin.xml"/>
+ </enablement>
+ </transform>
+ </extension>
+
+</plugin>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/sample.xml b/transforms/org.eclipse.jet.transforms.taglibdoc/sample.xml
new file mode 100644
index 0000000..84ff56b
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/sample.xml
@@ -0,0 +1,3 @@
+<root>
+
+</root> \ No newline at end of file
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/templates/allTags/tag.html.jet b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/allTags/tag.html.jet
new file mode 100644
index 0000000..b5606d3
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/allTags/tag.html.jet
@@ -0,0 +1,164 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<META name="GENERATOR" content="IBM Software Development Platform">
+<TITLE>&lt;<c:get select="$tag/@tagQName" />&gt; - <c:get select="$tagLibrary/@name" /></TITLE>
+</HEAD>
+<BODY>
+<TABLE border="0" cellpadding="0" cellspacing="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH align="left">
+ <P>&lt;<c:get select="$tag/@tagQName" />&gt;</P></TH>
+ <TH align="right"><A href="overview.html"><c:get select="$tagLibrary/@name" /></A></TH>
+ </TR>
+ </TBODY>
+</TABLE>
+<HR>
+<P><B><c:get select="$tag/@name" /></B></P>
+<P><c:get select="$tag/@description"/></P>
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Tag Summary</TH></TR>
+ <TR>
+ <TD width="10%">required</TD>
+ <TD><SPAN style="font-family: monospace">
+<c:choose>
+<c:when test="local-name($tag) = 'iteratingTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be repeated for each iteration</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'emptyTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>/&gt;<br>
+</c:when>
+<c:when test="local-name($tag) = 'conditionalTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to process if tag condition is
+ satisfied</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'containerTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be written</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'functionTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content consumed by tag evaluation</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+</c:choose>
+ </SPAN></TD>
+ </TR>
+ <TR>
+ <TD width="10%">full tag</TD>
+ <TD><SPAN style="font-family: monospace">
+<c:choose>
+<c:when test="local-name($tag) = 'iteratingTag'">
+ &lt;<c:get select="$tag/@allTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be repeated for each iteration</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'emptyTag'">
+ &lt;<c:get select="$tag/@allTagInnards"/>/&gt;<br>
+</c:when>
+<c:when test="local-name($tag) = 'conditionalTag'">
+ &lt;<c:get select="$tag/@allTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to process if tag condition is
+ satisfied</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'containerTag'">
+ &lt;<c:get select="$tag/@allTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be written</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'functionTag'">
+ &lt;<c:get select="$tag/@allTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content consumed by tag evaluation</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+</c:choose>
+ </SPAN></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<exists node="tag/attribute use='required'">
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Required Attributes</TH></TR>
+<c:iterate select="$tag/attribute[@use='required']" var="attribute" >
+ <TR>
+ <TD width="10%"><c:get select="$attribute/@name" /></TD>
+ <TD><c:get select="$attribute/@description"/></TD>
+ </TR>
+</c:iterate>
+ </TBODY>
+</TABLE>
+</exists>
+<c:if test="$tag/attribute[@use!='required']">
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Optional Attributes</TH></TR>
+ <TR>
+<c:iterate select="$tag/attribute[@use!='required']" var="attribute" >
+ <TR>
+ <TD width="10%"><c:get select="$attribute/@name" /></TD>
+ <TD><c:get select="$attribute/@description"/></TD>
+ </TR>
+</c:iterate>
+ </TBODY>
+</TABLE>
+</c:if>
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Example</TH></TR>
+ <TR>
+ <TD width="10%"></TD>
+ <TD><SPAN style="font-family: monospace">
+<%--roundtrip--%><!-- Begin <c:get select="$tag/@name" /> example -->
+<%--initialCode--%>
+<c:choose>
+<c:when test="local-name($tag) = 'iteratingTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be repeated for each iteration</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'emptyTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>/&gt;<br>
+</c:when>
+<c:when test="local-name($tag) = 'conditionalTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to process if tag condition is
+ satisfied</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'containerTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content to be written</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+<c:when test="local-name($tag) = 'functionTag'">
+ &lt;<c:get select="$tag/@requiredTagInnards"/>&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;<I>content consumed by tag evaluation</I><BR>
+ &lt;/<c:get select="$tag/@tagQName" />&gt;
+</c:when>
+</c:choose>
+<%--/initialCode--%><!-- End <c:get select="$tag/@name" /> example --><%--/roundtrip--%>
+</SPAN></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<P></P></BODY>
+</HTML>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/templates/control.jet b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/control.jet
new file mode 100644
index 0000000..82bb835
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/control.jet
@@ -0,0 +1,89 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags" %>
+<%@taglib prefix="f" id="org.eclipse.jet.formatTags" %>
+<%@taglib prefix="ws" id="org.eclipse.jet.workspaceTags" %>
+
+*** Control template for Generate JET2 Tag Documentation
+
+<%-- Define variables for standard items --%>
+<c:setVariable var="jetPluginNS" select="'org.eclipse.jet'"/>
+<c:setVariable var="tagLibrariesXP" select="concat($jetPluginNS, '.tagLibraries')"/>
+<%-- XXX Hack. This should be picked up from the plug-in itself. To do this we need
+ 1) the ability to readn Manifest.MF files with JET
+ 2) the ability to discover the project containing the input (plugin.xml)
+ We're not there yet.
+--%>
+<c:setVariable var="pluginNS" select="'org.eclipse.jet'"/>
+
+ --- Define additional attributes for the current plugin element
+
+ --- Iterate over each nested extension element
+ <c:iterate select="/plugin/extension[@point = $tagLibrariesXP]" var="extension">
+ --- Define additional attributes for the current extension element
+
+ --- Iterate over each nested tagLibrary element
+ <c:iterate select="$extension/tagLibrary" var="tagLibrary">
+ --- Define additional attributes for the current tagLibrary element
+ <c:set select="$tagLibrary" name="htmlDir">html/reference/<c:get select="$tagLibrary/@id"/><%-- TODO format=QC --%></c:set>
+ <c:set select="$tagLibrary" name="tocXmlFile">toc<c:get select="$tagLibrary/@id"/><%-- TODO format="QC" --%>.xml</c:set>
+ <c:set select="$tagLibrary" name="tocXmlDir">.</c:set>
+ <c:set select="$tagLibrary" name="tagPrefix"></c:set>
+ <c:if test="$tagLibrary/@standardPrefix">
+ <c:set select="$tagLibrary" name="tagPrefix"><c:get select="$tagLibrary/@standardPrefix"/>:</c:set>
+ </c:if>
+ <c:set select="$tagLibrary" name="description">TODO Define description of <c:get select="$tagLibrary/@name"/></c:set>
+ <c:if test="$tagLibrary/description">
+ <c:set select="$tagLibrary" name="description"><f:replaceAll value="\r?\n" replacement="<P>" regex="true"><c:get select="$tagLibrary/description"/></f:replaceAll></c:set>
+ </c:if>
+
+ --- Iterate over each nested conditionalTag element
+ <c:iterate select="$tagLibrary/*[local-name() != 'description']" var="tag">
+ --- Define additional attributes for the current conditionalTag element
+ <c:set select="$tag" name="tagHtmlFile"><c:get select="$tag/@name" />Tag.html</c:set>
+ <c:set select="$tag" name="tagQName"><c:get select="$tagLibrary/@tagPrefix"/><c:get select="$tag/@name" /></c:set>
+ <c:set select="$tag" name="requiredAttrs"><c:iterate select="$tag/attribute[@use='required']" var="attribute"> <c:get select="$attribute/@name" />=&quot;<I>value</I>&quot;</c:iterate></c:set>
+ <c:set select="$tag" name="optionalAttrs"><c:iterate select="$tag/attribute[@use!='required']" var="attribute"> <c:get select="$attribute/@name" />=&quot;<I>value</I>&quot;</c:iterate></c:set>
+ <c:set select="$tag" name="requiredTagInnards"><c:get select="$tag/@tagQName" /><c:get select="$tag/@requiredAttrs"/></c:set>
+ <c:set select="$tag" name="allTagInnards"><c:get select="$tag/@tagQName" /><c:get select="$tag/@requiredAttrs"/><c:get select="$tag/@optionalAttrs"/></c:set>
+ <c:set select="$tag" name="description">TODO Define description of <c:get select="$tag/@name"/></c:set>
+ <c:if test="$tag/description">
+ <c:set select="$tag" name="description"><f:replaceAll value="\r?\n" replacement="<P>" regex="true"><c:get select="$tag/description"/></f:replaceAll></c:set>
+ </c:if>
+ --- Iterate over each nested attribute element
+ <c:iterate select="$tag/attribute" var="attribute">
+ --- Define additional attributes for the current attribute element
+ <c:set select="$attribute" name="description">TODO Define description of <c:get select="$attribute/@name"/></c:set>
+ <c:if test="$attribute/description">
+ <c:set select="$attribute" name="description"><f:replaceAll value="\r?\n" replacement="<BR>" regex="true"><c:get select="$attribute/description"/></f:replaceAll></c:set>
+ </c:if>
+ </c:iterate>
+ </c:iterate>
+
+ </c:iterate>
+ </c:iterate>
+
+*** Traverse the model and generate artifacts
+ --- Generate artifacts for the current plugin element
+
+ --- Iterate over each nested extension element
+ <c:iterate select="/plugin/extension[@point = $tagLibrariesXP]" var="extension">
+ --- Generate artifacts for the current extension element
+
+ --- Iterate over each nested tagLibrary element
+ <c:iterate select="$extension/tagLibrary" var="tagLibrary">
+ --- Generate artifacts for the current tagLibrary element
+ <ws:file template="templates/tagLibrary/overview.html.jet" path="{$tagLibrary/@htmlDir}/overview.html" />
+ <ws:file template="templates/tagLibrary/toc.xml.jet" path="{$tagLibrary/@tocXmlDir}/{$tagLibrary/@tocXmlFile}" />
+
+ --- Iterate over each nested conditionalTag element
+ <c:iterate select="$tagLibrary/*[local-name() != 'description']" var="tag">
+ --- Generate artifacts for the current conditionalTag element
+ <ws:file template="templates/allTags/tag.html.jet" path="{$tagLibrary/@htmlDir}/{$tag/@tagHtmlFile}"/>
+
+ </c:iterate>
+ </c:iterate>
+ </c:iterate>
+
+*** Dump the transformed model for testing and debug purposes
+
+
+
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/templates/dump.jet b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/dump.jet
new file mode 100644
index 0000000..a8b699e
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/dump.jet
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<dump node="/*" format="true" entities="true"/>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/overview.html.jet b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/overview.html.jet
new file mode 100644
index 0000000..d3c2102
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/overview.html.jet
@@ -0,0 +1,52 @@
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<TITLE>overview.html</TITLE>
+</HEAD>
+<BODY>
+<TABLE border="0" cellpadding="0" cellspacing="1" width="100%">
+
+ <TBODY>
+ <TR>
+ <TH align="left">
+ <P>Overview</P>
+ </TH>
+ <TH align="right"><c:get select="$tagLibrary/@name" /></TH>
+ </TR>
+ </TBODY>
+</TABLE>
+<P><c:get select="$tagLibrary/@id" /></P>
+<P><c:get select="$tagLibrary/@description"/></P>
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Tag Summary</TH></TR>
+<c:iterate select="$tagLibrary/*[local-name() != 'description']" var="tag" >
+ <TR>
+ <TD width="10%"><A href="<c:get select="$tag/@tagHtmlFile" />">&lt;<c:get select="$tag/@tagQName" />&gt;</A></TD>
+ <TD><%--<roundtrip>--%><!-- Begin <c:get select="$tag/@name" /> description -->
+ <%--<initialCode>--%><c:choose><c:when test="contains($tag/@description, '.')"><c:get select="substring-before($tag/@description,'.')"/></c:when><c:otherwise><c:get select="$tag/@description"/></c:otherwise></c:choose><%--</initialCode>--%>
+ <!-- End <c:get select="$tag/@name" /> description -->
+ <%--</roundtrip>--%></TD>
+ </TR>
+</c:iterate>
+ </TBODY>
+</TABLE>
+<HR>
+<TABLE border="1" width="100%">
+ <TBODY>
+ <TR>
+ <TH colspan="2" align="left">Example Directive</TH></TR>
+ <TR>
+ <TD width="10%"></TD>
+ <TD><SPAN style="font-family: sans-serif"><SPAN
+ style="font-family: monospace">&lt;%@taglib prefix=&quot;<c:get select="$tagLibrary/@standardPrefix"/>&quot;
+ id=&quot;<c:get select="$pluginNS"/>.<c:get select="$tagLibrary/@id" />&quot;%&gt;</SPAN></SPAN></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/toc.xml.jet b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/toc.xml.jet
new file mode 100644
index 0000000..0767012
--- /dev/null
+++ b/transforms/org.eclipse.jet.transforms.taglibdoc/templates/tagLibrary/toc.xml.jet
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+<%@taglib prefix="c" id="org.eclipse.jet.controlTags"%>
+
+<toc label="<c:get select="$tagLibrary/@name" />" link_to="toc.xml#reference">
+ <topic label="<c:get select="$tagLibrary/@name" />" href="<c:get select="$tagLibrary/@htmlDir" />/overview.html" >
+<c:iterate select="$tagLibrary/*[local-name()!='description']" var="tag">
+ <topic label="<c:get select="$tag/@tagQName" />" href="<c:get select="$tagLibrary/@htmlDir" />/<c:get select="$tag/@tagHtmlFile" />"/>
+</c:iterate>
+ </topic>
+</toc>