]> granicus.if.org Git - docbook-dsssl/commitdiff
Build the list from the RNG file
authorNorman Walsh <ndw@nwalsh.com>
Sun, 24 Apr 2005 16:18:40 +0000 (16:18 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Sun, 24 Apr 2005 16:18:40 +0000 (16:18 +0000)
docbook/relaxng/tools/alphalist.xsl

index 5d0c6147e4b98fc523e7d90e8fc299bfc8aedfa4..956b2933b7d8d789e8ceedf52d851c35db7fa2ed 100644 (file)
@@ -4,56 +4,17 @@
                xmlns:doc="http://nwalsh.com/xmlns/schema-doc/"
                version="2.0">
 
-  <xsl:key name="defs" match="rng:define" use="@name"/>
-  <xsl:key name="elems" match="rng:element" use="@name"/>
-
-  <xsl:output method="text"/>
-
-  <xsl:strip-space elements="*"/>
-
-  <xsl:template match="rng:grammar">
-    <xsl:for-each select=".//rng:define[rng:element]">
-      <xsl:sort data-type="text" select="rng:element/@name"/>
-      <xsl:variable name="name">
-       <xsl:value-of select="rng:element/@name"/>
-       <xsl:if test="count(key('elems', rng:element/@name)) &gt; 1">
-         <xsl:text> (</xsl:text>
-         <xsl:value-of select="@name"/>
-         <xsl:text>)</xsl:text>
-       </xsl:if>
-      </xsl:variable>
-
-      <xsl:variable name="elems">
-       <xsl:for-each select="rng:element/doc:content-model//rng:ref">
-         <doc:elem>
-           <xsl:attribute name="name">
-             <xsl:value-of select="key('defs',@name)/rng:element/@name"/>
-           </xsl:attribute>
-         </doc:elem>
-       </xsl:for-each>
-      </xsl:variable>
-
-      <xsl:if test="rng:element/doc:content-model//rng:text">
-       <xsl:value-of select="$name"/>
-       <xsl:text>: #PCDATA&#10;</xsl:text>
-      </xsl:if>
-
-      <xsl:for-each-group select="$elems/doc:elem" group-by="@name">
-       <xsl:sort data-type="text" select="current-grouping-key()"/>
-       <xsl:value-of select="$name"/>
-       <xsl:text>: </xsl:text>
-       <xsl:value-of select="current-grouping-key()"/>
-       <xsl:text>&#10;</xsl:text>
-      </xsl:for-each-group>
-
-      <xsl:if test="rng:element/doc:content-model/rng:empty">
-       <xsl:value-of select="$name"/>
-       <xsl:text>: EMPTY&#10;</xsl:text>
-      </xsl:if>
-
-      <xsl:text>&#10;</xsl:text>
-
-    </xsl:for-each>
-  </xsl:template>
+<xsl:key name="defs" match="rng:define" use="@name"/>
+<xsl:key name="elems" match="rng:element" use="@name"/>
+
+<xsl:output method="text"/>
+
+<xsl:template match="/">
+  <xsl:for-each-group select="//rng:element[@name]" group-by="@name">
+    <xsl:sort data-type="text" select="current-grouping-key()"/>
+    <xsl:value-of select="current-grouping-key()"/>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:for-each-group>
+</xsl:template>
 
 </xsl:stylesheet>