| Subject: Re: [xsl] Detecting XML elements not transformed From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx> Date: Tue, 22 Apr 2008 15:25:32 +0200 | 
Thanks Michael for responding my question so quickly.
The unsupported.xml could have following XML structure:
<unsupported> <!--... ALL UNSUPPORTED NODES LISTED HERE ...--> <node name="name_of_unsupported_node" xpath="xpath_to_unsupported_node"/> </unsupported>
The main idea here is, that when the application reads the upgraded 4.x configuration and it shows an information dialog were it displays those unsupported 3.x XML elements.
<xsl:result-document href="unsupported.xml">
  <unsupported>
    <xsl:for-each select="//all_unsupported_nodes">
      ...
    </xsl:for-each>
  </unsupported>
</xsl:result-document>Michael Kay's answer tells me it is not that easy and you may need a two-step process:
1) mark all unsupported nodes and process all supported nodes as desired using Michael example:
<xsl:template match="*">
  <xxx:untransformed-element>
    <xsl:copy-of select="."/>
    (or perhaps <xsl:apply-templates/>)
  </xxx:untransformed-element>
</xsl:template>
2) take this intermediate XML and filter all marked nodes to unsupported.xml
<xsl:template match="/">
  <!-- create a file with the unsupported nodes -->
  <xsl:result-document href="unsupported.xml">
    <unsupported>
      <xsl:for-each select="//xxx:untransformed-element">
        <xsl:copy-of select="."/>
      </xsl:for-each>
    </unsupported>
  </xsl:result-document>
  <!-- pass through all but the above elements -->
  <xsl:apply-templates select="node()[name()!='xxx:untransformed-
element']" />
</xsl:template><!-- identity transform does the rest -->
<xsl:template match="element()">
  <xsl:copy>
    <xsl:apply-templates select="@*,node()"/>
   </xsl:copy>
</xsl:template><xsl:template match="attribute()|text()|comment()|processing- instruction()"> <xsl:copy/> </xsl:template>
By the way, what do you mean with "identity transform template"?
See <http://ajwelch.blogspot.com/2008/01/indentity-transform-for- xslt-20.html> and the XSLT FAQ by Dave Pawson.
-- _______________________________________________________________ Michael M|ller-Hillebrand: Dokumentations-Technologie Adobe Certified Expert, FrameMaker Lvsungen und Training, FrameScript, XML/XSL, Unicode <http://cap-studio.de/> -- Tel. +49 (9131) 28747
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] Detecting XML elements no, Harry Liljeström | Thread | [xsl] retain/rebuild unparsed entit, Graswinckel_Ewout | 
| RE: [xsl] retain/rebuild unparsed e, Michael Kay | Date | [xsl] XSL-T should naturally loop? , Dan Acuff | 
| Month |