Author: ryman
Date: Sun Jan 13 19:12:20 2008
New Revision: 611700

URL: http://svn.apache.org/viewvc?rev=611700&view=rev
Log:
[WODEN-188] Committed patch WODEN-188-02.patch from Tomi.

Modified:
    webservices/woden/trunk/java/wsdl-viewer/build/build.xml
    webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-global.xsl
    webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-modules.xsl
    webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-service.xsl
    webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-src.xsl
    webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-util.xsl
    webservices/woden/trunk/java/wsdl-viewer/wsdl-viewer.xsl

Modified: webservices/woden/trunk/java/wsdl-viewer/build/build.xml
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/build/build.xml?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/build/build.xml (original)
+++ webservices/woden/trunk/java/wsdl-viewer/build/build.xml Sun Jan 13 
19:12:20 2008
@@ -68,6 +68,10 @@
                <gzip zipfile="${dist.tar.gz}" src="${dist.tar}"/>
 
                <delete file="${dist.tar}" failonerror="false"/>
+
+               <copy todir="${basedir}" >
+                       <fileset file="${dist.image.viewer}"/>
+               </copy>
        </target>
 
        <target name="test" depends="createPackage">

Modified: webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-global.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-global.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-global.xsl 
(original)
+++ webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-global.xsl Sun Jan 
13 19:12:20 2008
@@ -81,14 +81,11 @@
 ==================================================================
 -->
 
-<xsl:variable name="global.wsdl-name" select="concat(/*/*[local-name() = 
'import' and @location][1]/@location, /*/*[local-name() = 'include' and 
@location][1]/@location)"/>
-<xsl:variable name="consolidated-wsdl" 
select="/*|document($global.wsdl-name)/*"/>
+<xsl:variable name="global.wsdl-name" select="/*/*[(local-name() = 'import' or 
local-name() = 'include') and @location][1]/@location"/>
+<xsl:variable name="consolidated-wsdl" select="/* | 
document($global.wsdl-name)/*"/>
 
-<xsl:variable name="global.types" select="$consolidated-wsdl/*[local-name() = 
'types']"/>
-<xsl:variable name="global.xsd" select="$global.types//xsd:[EMAIL PROTECTED] | 
$global.types//xsd:[EMAIL PROTECTED]"/>
-<xsl:variable name="global.xsd-name" select="$global.xsd[1]/@schemaLocation"/>
-<xsl:variable name="consolidated-xsd.data" 
select="document($global.xsd-name)/xsd:schema/xsd:*|/*/*[local-name() = 
'types']/xsd:schema/xsd:*"/>
-<xsl:variable name="consolidated-xsd" 
select="$consolidated-xsd.data[local-name() = 'complexType' or local-name() = 
'element' or local-name() = 'simpleType']"/>
+<xsl:variable name="global.xsd-name" 
select="($consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL PROTECTED] | 
$consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL 
PROTECTED])[1]/@schemaLocation"/>
+<xsl:variable name="consolidated-xsd" 
select="(document($global.xsd-name)/xsd:schema/xsd:*|/*/*[local-name() = 
'types']/xsd:schema/xsd:*)[local-name() = 'complexType' or local-name() = 
'element' or local-name() = 'simpleType']"/>
 <xsl:variable name="global.service-name" 
select="concat($consolidated-wsdl/ws:service/@name, 
$consolidated-wsdl/ws2:service/@name)" />
 <xsl:variable name="global.binding-name" 
select="concat($consolidated-wsdl/ws:binding/@name, 
$consolidated-wsdl/ws2:binding/@name)" />
 

Modified: webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-modules.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-modules.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-modules.xsl 
(original)
+++ webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-modules.xsl Sun 
Jan 13 19:12:20 2008
@@ -136,6 +136,9 @@
 *      2007-08-01 - 3.0.08 - Fix: xsl:template name="render-type"
 *                                                Fix: typo - "Impotred WSDL" 
should be "Impotred WSDL"
 *      2007-08-16 - 3.0.09 - Fix: xsl:template name="render-type" - anti 
recursion
+*      2007-12-05 - 3.1.00 - Modularized
+*      2007-12-23 - 3.1.01 - Terminating message by WS without interface or 
service definition was removed
+*                                                (seems to be a correct state)
 * ====================================================================
 -->
 
@@ -269,7 +272,7 @@
        </xsl:if>
        <xsl:if test="$ENABLE-ABOUT-PARAGRAPH">
                <xsl:call-template name="about.render">
-                       <xsl:with-param name="version">3.1.00</xsl:with-param>
+                       <xsl:with-param name="version" 
select="$wsdl-viewer.version" />
                </xsl:call-template>
        </xsl:if>
 </div>
@@ -360,7 +363,7 @@
        </div>
 
        <xsl:apply-templates select="/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import"/>
-       <xsl:apply-templates select="$global.types//xsd:[EMAIL 
PROTECTED]/@schemaLocation | $global.types//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
+       <xsl:apply-templates select="$consolidated-wsdl/*[local-name() = 
'types']//xsd:[EMAIL PROTECTED]/@schemaLocation | 
$consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
 </div>
 </xsl:template>
 

Modified: webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-service.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-service.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-service.xsl 
(original)
+++ webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-service.xsl Sun 
Jan 13 19:12:20 2008
@@ -98,16 +98,28 @@
 </xsl:if>
 </h3>
 
+       <xsl:variable name="base-iface-name">
+               <xsl:apply-templates select="@extends" mode="qname.normalized"/>
+       </xsl:variable>
+
+       <xsl:if test="$base-iface-name">
+               <div class="label">Extends: </div>
+               <div class="value"><xsl:value-of 
select="$base-iface-name"/></div>
+       </xsl:if>
+
+       <xsl:variable name="base-iface" select="$consolidated-wsdl/ws2:[EMAIL 
PROTECTED] = $base-iface-name]"/>
+
        <div class="label">Operations:</div>
        <div class="value"><xsl:text>
 </xsl:text>
                <ol style="line-height: 180%;">
-                       <xsl:apply-templates select="ws2:operation" 
mode="service">
+                       <xsl:apply-templates select="$base-iface/ws2:operation 
| ws2:operation" mode="service">
                                <xsl:sort select="@name"/>
                        </xsl:apply-templates>
                </ol>
        </div>
 </xsl:template>
+
 
 <!--
 ==================================================================

Modified: webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-src.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-src.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-src.xsl (original)
+++ webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-src.xsl Sun Jan 13 
19:12:20 2008
@@ -44,23 +44,39 @@
 ==================================================================
 -->
 <xsl:template match="@*" mode="src.import">
-       <h2><a name="{concat($SRC-FILE-PREFIX, generate-id(..))}">
-       <xsl:choose>
-               <xsl:when test="parent::xsd:include">Included </xsl:when>
-               <xsl:otherwise>Imported </xsl:otherwise>
-       </xsl:choose>
+       <xsl:param name="src.import.stack"/>
+       <xsl:variable name="recursion.label" select="concat('[', string(.), 
']')"/>
+       <xsl:variable name="recursion.check" select="concat($src.import.stack, 
$recursion.label)"/>
 
        <xsl:choose>
-               <xsl:when test="name() = 'location'">WSDL </xsl:when>
-               <xsl:otherwise>Schema </xsl:otherwise>
-       </xsl:choose>
-       <i><xsl:value-of select="."/></i></a></h2>
+               <xsl:when test="contains($src.import.stack, $recursion.label)">
+                       <h2 style="red"><xsl:value-of select="concat('Cyclic 
include / import: ', $recursion.check)"/></h2>
+               </xsl:when>
+               <xsl:otherwise>
+                       <h2><a name="{concat($SRC-FILE-PREFIX, 
generate-id(..))}">
+                       <xsl:choose>
+                               <xsl:when test="parent::xsd:include">Included 
</xsl:when>
+                               <xsl:otherwise>Imported </xsl:otherwise>
+                       </xsl:choose>
 
-       <div class="box">
-               <xsl:apply-templates select="document(.)" mode="src"/>
-       </div>
-       <xsl:apply-templates select="/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import"/>
-       <xsl:apply-templates select="document(.)//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
+                       <xsl:choose>
+                               <xsl:when test="name() = 'location'">WSDL 
</xsl:when>
+                               <xsl:otherwise>Schema </xsl:otherwise>
+                       </xsl:choose>
+                       <i><xsl:value-of select="."/></i></a></h2>
+
+                       <div class="box">
+                               <xsl:apply-templates 
select="document(string(.))" mode="src"/>
+                       </div>
+
+                       <xsl:apply-templates 
select="document(string(.))/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import">
+                               <xsl:with-param name="src.import.stack" 
select="$recursion.check"/>
+                       </xsl:apply-templates>
+                       <xsl:apply-templates 
select="document(string(.))//xsd:[EMAIL PROTECTED]/@schemaLocation" 
mode="src.import">
+                               <xsl:with-param name="src.import.stack" 
select="$recursion.check"/>
+                       </xsl:apply-templates>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 
 <!--

Modified: webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-util.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-util.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-util.xsl (original)
+++ webservices/woden/trunk/java/wsdl-viewer/src/wsdl-viewer-util.xsl Sun Jan 
13 19:12:20 2008
@@ -57,9 +57,11 @@
        <xsl:choose>
                <xsl:when test="$global.service-name"><xsl:value-of 
select="concat('Web Service: ', $global.service-name)"/></xsl:when>
                <xsl:when test="$global.binding-name"><xsl:value-of 
select="concat('WS Binding: ', $global.binding-name)"/></xsl:when>
-               <xsl:when 
test="$consolidated-wsdl/ws2:interface/@name"><xsl:value-of select="concat('WS 
Interface: ', $consolidated-wsdl/ws2:interface/@name)"/></xsl:when>
-               <xsl:otherwise><xsl:message terminate="yes">Syntax error in 
element <xsl:call-template name="src.syntax-error.path"/></xsl:message>
+               <xsl:when test="ws2:interface/@name"><xsl:value-of 
select="concat('WS Interface: ', ws2:interface/@name)"/></xsl:when>
+               <xsl:otherwise>Web Service Fragment</xsl:otherwise>
+<!--           <xsl:otherwise><xsl:message terminate="yes">Syntax error in 
element <xsl:call-template name="src.syntax-error.path"/></xsl:message>
                </xsl:otherwise>
+-->
        </xsl:choose>
 </xsl:template>
 

Modified: webservices/woden/trunk/java/wsdl-viewer/wsdl-viewer.xsl
URL: 
http://svn.apache.org/viewvc/webservices/woden/trunk/java/wsdl-viewer/wsdl-viewer.xsl?rev=611700&r1=611699&r2=611700&view=diff
==============================================================================
--- webservices/woden/trunk/java/wsdl-viewer/wsdl-viewer.xsl (original)
+++ webservices/woden/trunk/java/wsdl-viewer/wsdl-viewer.xsl Sun Jan 13 
19:12:20 2008
@@ -1,147 +1,150 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
--->
-
-
-<!--
-* ====================================================================
-* wsdl-viewer.xsl
-* Version: 3.1.01
-*
-* URL: http://tomi.vanek.sk/xml/wsdl-viewer.xsl
-*
-* Author: tomi vanek
-* Inspiration: Uche Ogbui - WSDL processing with XSLT
-*              
http://www-106.ibm.com/developerworks/library/ws-trans/index.html
-* ====================================================================
--->
-
-
-<!--
-* ====================================================================
-* Description:
-*              wsdl-viewer.xsl is a lightweight XSLT 1.0 transformation with 
minimal
-*              usage of any hacks that extend the possibilities of the 
transformation
-*              over the XSLT 1.0 constraints but eventually would harm the 
engine independance.
-*
-*              The transformation has to run even in the browser offered XSLT 
engines
-*              (tested in IE 6 and Firefox) and in ANT "batch" processing.
-* ====================================================================
-* How to add the HTML look to a WSDL:
-*              <?xml version="1.0" encoding="utf-8"?>
-*              <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
-*              <wsdl:definitions ...>
-*                  ... Here is the service declaration
-*              </wsdl:definitions>
-*
-*              The web-browsers (in Windows) are not able by default 
automatically recognize
-*              the ".wsdl" file type (suffix). For the type recognition the 
WSDL file has
-*              to be renamed by adding the suffix ".xml" - i.e. 
"myservice.wsdl.xml".
-* ====================================================================
-* Constraints:
-*      1. Processing of imported files
-*              1.1 Only 1 imported WSDL and 1 imported XSD is processed
-*                      (well, maybe with a smarter recursive strategy this 
restriction could be overcome)
-*              1.2 No recursive including is supported (i.e. includes in 
included XSD are ignored)
-*      2. Namespace support
-*              2.1 Namespaces are not taken in account by processing 
(references with NS)
-*      3. Source code
-*              3.1 Only the source code allready processed by the XML parser 
is rendered - implications:
-*                      == no access to the XML head line (<?xml version="1.0" 
encoding="utf-8"?>)
-*                      == "expanded" CDATA blocks (parser processes the CDATA,
-*                              XSLT does not have access to the original code)
-*                      == no control over the code page
-*                      == processing of special characters
-*                      == namespace nodes are not rendered (just the namespace 
aliases)
-* ====================================================================
-* Possible improvements:
-*      * Functional requirements
-*              + SOAP 1.2 binding 
(http://schemas.xmlsoap.org/wsdl/soap12/WSDL11SOAP12.pdf)
-*              + WSDL 2.0 
(http://www.w3.org/TR/2006/CR-wsdl20-primer-20060327/)
-*              + Recognition of WSDL patterns (interface, binding, service 
instance, ...)
-*              - Creating an xsd-viewer.xsl for XML-Schema file viewing
-*                      (extracting the functionality from wsdl-viewer into 
separate XSLT)
-*              - Check the full support of the WSDL and XSD going through the 
standards
-*              - Real-world WSDL testing
-*              - XSLT 2.0 
(http://www-128.ibm.com/developerworks/library/x-xslt20pt5.html) ???
-*              ? Adding more derived information
-*                      * to be defined, what non-trivial information can we 
read out from the WSDL
-*      * XSLT
-*              + Modularization
-*                      - Is it meaningful?
-*                      - Maybe more distribution alternatives (modular, fat 
monolithic, thin performance monolithic)?
-*                      - Distribution build automatization
-*              + Dynamic page: JavaSript
-*              + Performance
-*              - Better code comments / documentation
-*              - SOAP client form - for testing the web service (AJAX based)
-*              - New XSD parser - clean-up the algorithm
-*              - Complete (recursive, multiple) include support
-*              ? Namespace-aware version (no string processing hacks ;-)
-*                      * I think, because of the goal to support as many 
engines as possible,
-*                              this requirement is unrealistic. Maybe when 
XSLT 2.0 will be supported
-*                              in a huge majority of platforms, we can rethink 
this point....
-*                              (problems with different functionality of 
namespace-uri XPath function by different engines)
-*      * Development architecture
-*              - Setup of the development infrastructure
-*              - Unit testing
-*              ? Collaboration platform
-*      * Documentation, web
-*              - Better user guide
-*              ? Forum, Wiki
-* ====================================================================
--->
-
-
-<!--
-* ====================================================================
-* History:
-*      2005-04-15 - Initial implementation
-*      2005-09-12 - Removed xsl:key to be able to use the James Clark's XT 
engine on W3C web-site
-*      2006-10-06 - Removed the Oliver Becker's method of conditional selection
-*                              of a value in a single expression (in 
Xalan/XSLTC this hack does not work!)
-*      2005-10-07 - Duplicated operations
-*      2006-12-08 - Import element support
-*      2006-12-14 - Displays all fault elements (not just the first one)
-*      2006-12-28 - W3C replaced silently the James Clark's XT engine with 
Michael Kay's closed-source Saxon!
-*                              wsdl-viewer.xsl will no longer support XT engine
-*      2007-02-28 - Stack-overflow bug (if the XSD element @name and @type are 
identic)
-*      2007-03-08 - 3.0.00 - New parsing, new layout
-*      2007-03-28 - 3.0.01 - Fix: New anti-recursion defense (no error message 
by recursion
-*                                              because of dirty solution of 
namespace processing)
-*                                              - Added: variables at the top 
to turn on/off certain details
-*      2007-03-29 - 3.0.02 - Layout clean-up for IE
-*      2007-03-29 - 3.0.03 - Fix: Anti-recursion algorithm
-*      2007-03-30 - 3.0.04 - Added: source code rendering of imported WSDL and 
XSD
-*      2007-04-15 - 3.0.05 - Fix: Recursive calls in element type rendering
-*                                              - Fix: Rendering of messages 
(did not render the message types of complex types)
-*                                              - Fix: Links in src. by arrays
-*                                              - Fix: $binding-info
-*      2007-04-15 - 3.0.06 - Added: Extended rendering control ENABLE-xxx 
parameters
-*                                              - Changed: Anti-recursion 
algorithm has recursion-depth parameter
-*      2007-07-19 - 3.0.07 - Fix: Rendering of array type in detail
-*      2007-08-01 - 3.0.08 - Fix: xsl:template name="render-type"
-*                                                Fix: typo - "Impotred WSDL" 
should be "Impotred WSDL"
-*      2007-08-16 - 3.0.09 - Fix: xsl:template name="render-type" - anti 
recursion
-* ====================================================================
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+-->
+
+
+<!--
+* ====================================================================
+* wsdl-viewer.xsl
+* Version: 3.1.01
+*
+* URL: http://tomi.vanek.sk/xml/wsdl-viewer.xsl
+*
+* Author: tomi vanek
+* Inspiration: Uche Ogbui - WSDL processing with XSLT
+*              
http://www-106.ibm.com/developerworks/library/ws-trans/index.html
+* ====================================================================
+-->
+
+
+<!--
+* ====================================================================
+* Description:
+*              wsdl-viewer.xsl is a lightweight XSLT 1.0 transformation with 
minimal
+*              usage of any hacks that extend the possibilities of the 
transformation
+*              over the XSLT 1.0 constraints but eventually would harm the 
engine independance.
+*
+*              The transformation has to run even in the browser offered XSLT 
engines
+*              (tested in IE 6 and Firefox) and in ANT "batch" processing.
+* ====================================================================
+* How to add the HTML look to a WSDL:
+*              <?xml version="1.0" encoding="utf-8"?>
+*              <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
+*              <wsdl:definitions ...>
+*                  ... Here is the service declaration
+*              </wsdl:definitions>
+*
+*              The web-browsers (in Windows) are not able by default 
automatically recognize
+*              the ".wsdl" file type (suffix). For the type recognition the 
WSDL file has
+*              to be renamed by adding the suffix ".xml" - i.e. 
"myservice.wsdl.xml".
+* ====================================================================
+* Constraints:
+*      1. Processing of imported files
+*              1.1 Only 1 imported WSDL and 1 imported XSD is processed
+*                      (well, maybe with a smarter recursive strategy this 
restriction could be overcome)
+*              1.2 No recursive including is supported (i.e. includes in 
included XSD are ignored)
+*      2. Namespace support
+*              2.1 Namespaces are not taken in account by processing 
(references with NS)
+*      3. Source code
+*              3.1 Only the source code allready processed by the XML parser 
is rendered - implications:
+*                      == no access to the XML head line (<?xml version="1.0" 
encoding="utf-8"?>)
+*                      == "expanded" CDATA blocks (parser processes the CDATA,
+*                              XSLT does not have access to the original code)
+*                      == no control over the code page
+*                      == processing of special characters
+*                      == namespace nodes are not rendered (just the namespace 
aliases)
+* ====================================================================
+* Possible improvements:
+*      * Functional requirements
+*              + SOAP 1.2 binding 
(http://schemas.xmlsoap.org/wsdl/soap12/WSDL11SOAP12.pdf)
+*              + WSDL 2.0 
(http://www.w3.org/TR/2006/CR-wsdl20-primer-20060327/)
+*              + Recognition of WSDL patterns (interface, binding, service 
instance, ...)
+*              - Creating an xsd-viewer.xsl for XML-Schema file viewing
+*                      (extracting the functionality from wsdl-viewer into 
separate XSLT)
+*              - Check the full support of the WSDL and XSD going through the 
standards
+*              - Real-world WSDL testing
+*              - XSLT 2.0 
(http://www-128.ibm.com/developerworks/library/x-xslt20pt5.html) ???
+*              ? Adding more derived information
+*                      * to be defined, what non-trivial information can we 
read out from the WSDL
+*      * XSLT
+*              + Modularization
+*                      - Is it meaningful?
+*                      - Maybe more distribution alternatives (modular, fat 
monolithic, thin performance monolithic)?
+*                      - Distribution build automatization
+*              + Dynamic page: JavaSript
+*              + Performance
+*              - Better code comments / documentation
+*              - SOAP client form - for testing the web service (AJAX based)
+*              - New XSD parser - clean-up the algorithm
+*              - Complete (recursive, multiple) include support
+*              ? Namespace-aware version (no string processing hacks ;-)
+*                      * I think, because of the goal to support as many 
engines as possible,
+*                              this requirement is unrealistic. Maybe when 
XSLT 2.0 will be supported
+*                              in a huge majority of platforms, we can rethink 
this point....
+*                              (problems with different functionality of 
namespace-uri XPath function by different engines)
+*      * Development architecture
+*              - Setup of the development infrastructure
+*              - Unit testing
+*              ? Collaboration platform
+*      * Documentation, web
+*              - Better user guide
+*              ? Forum, Wiki
+* ====================================================================
+-->
+
+
+<!--
+* ====================================================================
+* History:
+*      2005-04-15 - Initial implementation
+*      2005-09-12 - Removed xsl:key to be able to use the James Clark's XT 
engine on W3C web-site
+*      2006-10-06 - Removed the Oliver Becker's method of conditional selection
+*                              of a value in a single expression (in 
Xalan/XSLTC this hack does not work!)
+*      2005-10-07 - Duplicated operations
+*      2006-12-08 - Import element support
+*      2006-12-14 - Displays all fault elements (not just the first one)
+*      2006-12-28 - W3C replaced silently the James Clark's XT engine with 
Michael Kay's closed-source Saxon!
+*                              wsdl-viewer.xsl will no longer support XT engine
+*      2007-02-28 - Stack-overflow bug (if the XSD element @name and @type are 
identic)
+*      2007-03-08 - 3.0.00 - New parsing, new layout
+*      2007-03-28 - 3.0.01 - Fix: New anti-recursion defense (no error message 
by recursion
+*                                              because of dirty solution of 
namespace processing)
+*                                              - Added: variables at the top 
to turn on/off certain details
+*      2007-03-29 - 3.0.02 - Layout clean-up for IE
+*      2007-03-29 - 3.0.03 - Fix: Anti-recursion algorithm
+*      2007-03-30 - 3.0.04 - Added: source code rendering of imported WSDL and 
XSD
+*      2007-04-15 - 3.0.05 - Fix: Recursive calls in element type rendering
+*                                              - Fix: Rendering of messages 
(did not render the message types of complex types)
+*                                              - Fix: Links in src. by arrays
+*                                              - Fix: $binding-info
+*      2007-04-15 - 3.0.06 - Added: Extended rendering control ENABLE-xxx 
parameters
+*                                              - Changed: Anti-recursion 
algorithm has recursion-depth parameter
+*      2007-07-19 - 3.0.07 - Fix: Rendering of array type in detail
+*      2007-08-01 - 3.0.08 - Fix: xsl:template name="render-type"
+*                                                Fix: typo - "Impotred WSDL" 
should be "Impotred WSDL"
+*      2007-08-16 - 3.0.09 - Fix: xsl:template name="render-type" - anti 
recursion
+*      2007-12-05 - 3.1.00 - Modularized
+*      2007-12-23 - 3.1.01 - Terminating message by WS without interface or 
service definition was removed
+*                                                (seems to be a correct state)
+* ====================================================================
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:ws="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:ws2="http://www.w3.org/ns/wsdl"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:local="http://tomi.vanek.sk/xml/wsdl-viewer"; version="1.0" 
exclude-result-prefixes="ws ws2 xsd soap local">
 
@@ -153,10 +156,10 @@
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-global.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-global.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:param name="ENABLE-SERVICE-PARAGRAPH" select="true()"/>
 <xsl:param name="ENABLE-OPERATIONS-PARAGRAPH" select="true()"/>
@@ -180,31 +183,28 @@
 <xsl:variable name="OPERATIONS-PREFIX">op.</xsl:variable>
 <xsl:variable name="PORT-PREFIX">port.</xsl:variable>
 <xsl:variable name="IFACE-PREFIX">iface.</xsl:variable>
-<xsl:variable name="global.wsdl-name" select="concat(/*/*[local-name() = 
'import' and @location][1]/@location, /*/*[local-name() = 'include' and 
@location][1]/@location)"/>
-<xsl:variable name="consolidated-wsdl" 
select="/*|document($global.wsdl-name)/*"/>
-<xsl:variable name="global.types" select="$consolidated-wsdl/*[local-name() = 
'types']"/>
-<xsl:variable name="global.xsd" select="$global.types//xsd:[EMAIL PROTECTED] | 
$global.types//xsd:[EMAIL PROTECTED]"/>
-<xsl:variable name="global.xsd-name" select="$global.xsd[1]/@schemaLocation"/>
-<xsl:variable name="consolidated-xsd.data" 
select="document($global.xsd-name)/xsd:schema/xsd:*|/*/*[local-name() = 
'types']/xsd:schema/xsd:*"/>
-<xsl:variable name="consolidated-xsd" 
select="$consolidated-xsd.data[local-name() = 'complexType' or local-name() = 
'element' or local-name() = 'simpleType']"/>
+<xsl:variable name="global.wsdl-name" select="/*/*[(local-name() = 'import' or 
local-name() = 'include') and @location][1]/@location"/>
+<xsl:variable name="consolidated-wsdl" select="/* | 
document($global.wsdl-name)/*"/>
+<xsl:variable name="global.xsd-name" 
select="($consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL PROTECTED] | 
$consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL 
PROTECTED])[1]/@schemaLocation"/>
+<xsl:variable name="consolidated-xsd" 
select="(document($global.xsd-name)/xsd:schema/xsd:*|/*/*[local-name() = 
'types']/xsd:schema/xsd:*)[local-name() = 'complexType' or local-name() = 
'element' or local-name() = 'simpleType']"/>
 <xsl:variable name="global.service-name" 
select="concat($consolidated-wsdl/ws:service/@name, 
$consolidated-wsdl/ws2:service/@name)"/>
 <xsl:variable name="global.binding-name" 
select="concat($consolidated-wsdl/ws:binding/@name, 
$consolidated-wsdl/ws2:binding/@name)"/>
 <xsl:variable name="html-title">
        <xsl:apply-templates select="/*" mode="html-title.render"/>
 </xsl:variable>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-global.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-global.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-css.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-css.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:variable name="css">
 
@@ -722,19 +722,19 @@
 
 </xsl:variable>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-css.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-css.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-util.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-util.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:template match="@*" mode="qname.normalized">
        <xsl:variable name="local" select="substring-after(., ':')"/>
@@ -755,13 +755,13 @@
                <xsl:when test="$global.binding-name">
 <xsl:value-of select="concat('WS Binding: ', $global.binding-name)"/>
 </xsl:when>
-               <xsl:when test="$consolidated-wsdl/ws2:interface/@name">
-<xsl:value-of select="concat('WS Interface: ', 
$consolidated-wsdl/ws2:interface/@name)"/>
+               <xsl:when test="ws2:interface/@name">
+<xsl:value-of select="concat('WS Interface: ', ws2:interface/@name)"/>
 </xsl:when>
-               <xsl:otherwise>
-<xsl:message terminate="yes">Syntax error in element <xsl:call-template 
name="src.syntax-error.path"/>
-</xsl:message>
+               <xsl:otherwise>Web Service Fragment</xsl:otherwise>
+<!--           <xsl:otherwise><xsl:message terminate="yes">Syntax error in 
element <xsl:call-template name="src.syntax-error.path"/></xsl:message>
                </xsl:otherwise>
+-->
        </xsl:choose>
 </xsl:template>
 <xsl:template name="src.syntax-error">
@@ -820,18 +820,18 @@
 
 </xsl:template>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-util.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-util.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-service.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-service.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:template match="ws:service|ws2:service" mode="service-start">
        <div class="indent">
@@ -900,12 +900,25 @@
 </xsl:if>
 </h3>
 
+       <xsl:variable name="base-iface-name">
+               <xsl:apply-templates select="@extends" mode="qname.normalized"/>
+       </xsl:variable>
+
+       <xsl:if test="$base-iface-name">
+               <div class="label">Extends: </div>
+               <div class="value">
+<xsl:value-of select="$base-iface-name"/>
+</div>
+       </xsl:if>
+
+       <xsl:variable name="base-iface" select="$consolidated-wsdl/ws2:[EMAIL 
PROTECTED] = $base-iface-name]"/>
+
        <div class="label">Operations:</div>
        <div class="value">
 <xsl:text>
 </xsl:text>
                <ol style="line-height: 180%;">
-                       <xsl:apply-templates select="ws2:operation" 
mode="service">
+                       <xsl:apply-templates select="$base-iface/ws2:operation 
| ws2:operation" mode="service">
                                <xsl:sort select="@name"/>
                        </xsl:apply-templates>
                </ol>
@@ -1017,18 +1030,18 @@
        </xsl:if>
 </xsl:template>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-service.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-service.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-operations.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-operations.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:template match="ws2:interface" mode="operations">
        <xsl:if test="$ENABLE-PORTTYPE-NAME">
@@ -1297,18 +1310,18 @@
        </div>
 </xsl:template>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-operations.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-operations.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-xsd-tree.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-xsd-tree.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:template match="xsd:simpleType" mode="operations.message.part"/>
 <xsl:template name="recursion.should.continue">
@@ -1405,8 +1418,8 @@
                </xsl:choose>
        </xsl:variable>
        <xsl:variable name="base-type" select="[EMAIL PROTECTED] = 
$type-name][1]"/>
-       <!-- xsl:if test="not($type/@abstract)">
-               <xsl:apply-templates select="$type"/>
+       <!-- xsl:if test="not($type/@abstract)">
+               <xsl:apply-templates select="$type"/>
        </xsl:if -->
        <xsl:if test="$base-type != 'Array'">
                <xsl:apply-templates select="$base-type" 
mode="operations.message.part">
@@ -1516,8 +1529,8 @@
 </xsl:template>
 <xsl:template match="xsd:element | xsd:attribute" 
mode="operations.message.part">
        <xsl:param name="anti.recursion"/>
-<!--
-       <xsl:variable name="recursion.label" select="concat('[', @name, ']')"/>
+<!--
+       <xsl:variable name="recursion.label" select="concat('[', @name, ']')"/>
 -->
        <li>
                <xsl:variable name="local-ref" select="concat(@name, 
substring-after(@ref, ':'))"/>
@@ -1796,42 +1809,60 @@
        <xsl:text disable-output-escaping="yes">'</xsl:text>
 </xsl:template>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-xsd-tree.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-xsd-tree.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    Begin of included transformation: wsdl-viewer-src.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    Begin of included transformation: wsdl-viewer-src.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 <xsl:template match="@*" mode="src.import">
-       <h2>
-<a name="{concat($SRC-FILE-PREFIX, generate-id(..))}">
-       <xsl:choose>
-               <xsl:when test="parent::xsd:include">Included </xsl:when>
-               <xsl:otherwise>Imported </xsl:otherwise>
-       </xsl:choose>
+       <xsl:param name="src.import.stack"/>
+       <xsl:variable name="recursion.label" select="concat('[', string(.), 
']')"/>
+       <xsl:variable name="recursion.check" select="concat($src.import.stack, 
$recursion.label)"/>
 
        <xsl:choose>
-               <xsl:when test="name() = 'location'">WSDL </xsl:when>
-               <xsl:otherwise>Schema </xsl:otherwise>
-       </xsl:choose>
-       <i>
+               <xsl:when test="contains($src.import.stack, $recursion.label)">
+                       <h2 style="red">
+<xsl:value-of select="concat('Cyclic include / import: ', $recursion.check)"/>
+</h2>
+               </xsl:when>
+               <xsl:otherwise>
+                       <h2>
+<a name="{concat($SRC-FILE-PREFIX, generate-id(..))}">
+                       <xsl:choose>
+                               <xsl:when test="parent::xsd:include">Included 
</xsl:when>
+                               <xsl:otherwise>Imported </xsl:otherwise>
+                       </xsl:choose>
+
+                       <xsl:choose>
+                               <xsl:when test="name() = 'location'">WSDL 
</xsl:when>
+                               <xsl:otherwise>Schema </xsl:otherwise>
+                       </xsl:choose>
+                       <i>
 <xsl:value-of select="."/>
 </i>
 </a>
 </h2>
 
-       <div class="box">
-               <xsl:apply-templates select="document(.)" mode="src"/>
-       </div>
-       <xsl:apply-templates select="/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import"/>
-       <xsl:apply-templates select="document(.)//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
+                       <div class="box">
+                               <xsl:apply-templates 
select="document(string(.))" mode="src"/>
+                       </div>
+
+                       <xsl:apply-templates 
select="document(string(.))/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import">
+                               <xsl:with-param name="src.import.stack" 
select="$recursion.check"/>
+                       </xsl:apply-templates>
+                       <xsl:apply-templates 
select="document(string(.))//xsd:[EMAIL PROTECTED]/@schemaLocation" 
mode="src.import">
+                               <xsl:with-param name="src.import.stack" 
select="$recursion.check"/>
+                       </xsl:apply-templates>
+               </xsl:otherwise>
+       </xsl:choose>
 </xsl:template>
 <xsl:template match="*" mode="src">
        <div class="xml-element">
@@ -2034,12 +2065,12 @@
 
        <xsl:choose>
                <xsl:when test="count(/*/namespace::*) &gt; 0">
-                               <!--
-                                       When the namespace axis is present 
(e.g. Internet Explorer), we can simulate
-                                       the namespace declarations by comparing 
the namespaces in scope on this element
-                                       with those in scope on the parent 
element.  Any difference must have been the
-                                       result of a namespace declaration.  
Note that this doesn't reflect the actual
-                                       source - it will strip out redundant 
namespace declarations.
+                               <!--
+                                       When the namespace axis is present 
(e.g. Internet Explorer), we can simulate
+                                       the namespace declarations by comparing 
the namespaces in scope on this element
+                                       with those in scope on the parent 
element.  Any difference must have been the
+                                       result of a namespace declaration.  
Note that this doesn't reflect the actual
+                                       source - it will strip out redundant 
namespace declarations.
                                -->
                        <xsl:for-each select="namespace::*[. != 
'http://www.w3.org/XML/1998/namespace']"> 
                                <xsl:if 
test="not($current/parent::*[namespace::*[. = current()]])">
@@ -2055,15 +2086,15 @@
                        </xsl:for-each>
                </xsl:when>
                <xsl:otherwise>
-                       <!-- 
-                               When the namespace axis isn't supported (e.g. 
Mozilla), we can simulate
-                               appropriate declarations from namespace 
elements.
-                               This currently doesn't check for namespaces on 
attributes.
-                               In the general case we can't reliably detect 
the use of QNames in content, but
-                               in the case of schema, we know which content 
could contain a QName and look
-                               there too.  This mechanism is rather unpleasant 
though, since it records
-                               namespaces where they are used rather than 
showing where they are declared 
-                               (on some parent element) in the source.  Yukk!
+                       <!-- 
+                               When the namespace axis isn't supported (e.g. 
Mozilla), we can simulate
+                               appropriate declarations from namespace 
elements.
+                               This currently doesn't check for namespaces on 
attributes.
+                               In the general case we can't reliably detect 
the use of QNames in content, but
+                               in the case of schema, we know which content 
could contain a QName and look
+                               there too.  This mechanism is rather unpleasant 
though, since it records
+                               namespaces where they are used rather than 
showing where they are declared 
+                               (on some parent element) in the source.  Yukk!
                        -->
                        <xsl:if test="namespace-uri(.) != 
namespace-uri(parent::*) or not(parent::*)">
                                <span class="xml-att">
@@ -2103,20 +2134,20 @@
 </div>
 </xsl:template>
 
-<!--
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-    End of included transformation: wsdl-viewer-src.xsl
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+<!--
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+    End of included transformation: wsdl-viewer-src.xsl
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -->
 
 
 
 
 
-<!--
-==================================================================
-       Starting point
-==================================================================
+<!--
+==================================================================
+       Starting point
+==================================================================
 -->
 
 <xsl:template match="/">
@@ -2128,10 +2159,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: HTML head
-==================================================================
+<!--
+==================================================================
+       Rendering: HTML head
+==================================================================
 -->
 
 <xsl:template name="head.render">
@@ -2161,10 +2192,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: HTML body
-==================================================================
+<!--
+==================================================================
+       Rendering: HTML body
+==================================================================
 -->
 
 <xsl:template name="body.render">
@@ -2174,8 +2205,8 @@
        <xsl:call-template name="title.render"/>
 
 
-<!-- TODO: pages with tabs for selecting some aspect of the WSDL
-       <xsl:call-template name="navig.render"/>
+<!-- TODO: pages with tabs for selecting some aspect of the WSDL
+       <xsl:call-template name="navig.render"/>
 -->
 
        <xsl:call-template name="content.render"/>
@@ -2187,10 +2218,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: heading
-==================================================================
+<!--
+==================================================================
+       Rendering: heading
+==================================================================
 -->
 
 <xsl:template name="title.render">
@@ -2203,10 +2234,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: navigation
-==================================================================
+<!--
+==================================================================
+       Rendering: navigation
+==================================================================
 -->
 
 <xsl:template name="navig.render">
@@ -2224,7 +2255,7 @@
 </li>
 
 
-<!--                   <li id="nav-client"><a href="#TODO-1">Client</a></li>
+<!--                   <li id="nav-client"><a href="#TODO-1">Client</a></li>
 -->
 
                        <li id="nav-about">
@@ -2237,10 +2268,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: content
-==================================================================
+<!--
+==================================================================
+       Rendering: content
+==================================================================
 -->
 
 <xsl:template name="content.render">
@@ -2256,7 +2287,7 @@
        </xsl:if>
        <xsl:if test="$ENABLE-ABOUT-PARAGRAPH">
                <xsl:call-template name="about.render">
-                       <xsl:with-param name="version">3.1.00</xsl:with-param>
+                       <xsl:with-param name="version" 
select="$wsdl-viewer.version"/>
                </xsl:call-template>
        </xsl:if>
 </div>
@@ -2264,10 +2295,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: footer
-==================================================================
+<!--
+==================================================================
+       Rendering: footer
+==================================================================
 -->
 
 <xsl:template name="footer.render">
@@ -2278,10 +2309,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: WSDL service information
-==================================================================
+<!--
+==================================================================
+       Rendering: WSDL service information
+==================================================================
 -->
 
 <xsl:template name="service.render">
@@ -2306,10 +2337,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: WSDL operations - detail
-==================================================================
+<!--
+==================================================================
+       Rendering: WSDL operations - detail
+==================================================================
 -->
 
 <xsl:template name="operations.render">
@@ -2351,10 +2382,10 @@
 
 
 
-<!--
-==================================================================
-       Rendering: WSDL and XSD source code files
-==================================================================
+<!--
+==================================================================
+       Rendering: WSDL and XSD source code files
+==================================================================
 -->
 
 <xsl:template name="src.render">
@@ -2370,16 +2401,16 @@
        </div>
 
        <xsl:apply-templates select="/*/*[local-name() = 'import'[EMAIL 
PROTECTED]/@location" mode="src.import"/>
-       <xsl:apply-templates select="$global.types//xsd:[EMAIL 
PROTECTED]/@schemaLocation | $global.types//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
+       <xsl:apply-templates select="$consolidated-wsdl/*[local-name() = 
'types']//xsd:[EMAIL PROTECTED]/@schemaLocation | 
$consolidated-wsdl/*[local-name() = 'types']//xsd:[EMAIL 
PROTECTED]/@schemaLocation" mode="src.import"/>
 </div>
 </xsl:template>
 
 
 
-<!--
-==================================================================
-       Rendering: About
-==================================================================
+<!--
+==================================================================
+       Rendering: About
+==================================================================
 -->
 
 <xsl:template name="about.render">



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to