XSLT template for any node not already handled?

necladatio

New Member
Is it possible to match 'Any node not already matched/handled'? Preferably without making my style sheet into an enormous for-each/Choose statement, as the current ordering is critical.The project is still in development and already being used in the live environment, so the code is, simply put, in a state of rapid flux in response to live data we're getting in. I am generating a PDF document via FO from XML that may have nodes in it that I don't know about yet, and would like to add a "fail over" instruction to my XSL-FO transform that puts all the unaccounted-for nodes at the beginning of the document in bright red, to speed up discovery.I can't just ignore surprise nodes, as the data needs to be handled. The quicker I can find "orphan" data, the quicker I can get it properly handled and out the door.I have tried playing around with \[code\]<xsl:template match="*">...</xsl:template>\[/code\] and various priority="" settings, but of course it applies to every node.For example, I might have this in one section because these XML blocks are not guarenteed to come in the correct output order. (Code block formatting is not working for me - four space indent results in nothing, sorry :(\[code\]<xsl:template match="AccountSummary"> <fo:block margin-left="2" space-before="1" space-after="1" text-align="center"> <xsl:apply-templates select="Label"/> </fo:block> <xsl:apply-templates select="AccountInfo"/> <xsl:apply-templates select="AccountProfile"/> <xsl:apply-templates select="ChangeInValueOfAccounts"/> <!-- ... more goes here --></xsl:template>\[/code\]I would like to do something like\[code\]<xsl:template match="AccountSummary"> <fo:block margin-left="2" space-before="1" space-after="1" text-align="center"> <xsl:apply-templates select="Label"/> </fo:block> <xsl:apply-templates select="AccountInfo"/> <xsl:apply-templates select="AccountProfile"/> <xsl:apply-templates select="ChangeInValueOfAccounts"/> <!-- ... more goes here --> <xsl:for-each select="not otherwise matched"> <!-- call zomgRED template --> </xsl:for-each></xsl:template>\[/code\]Ideally I'd rather the \[code\]zomgRED\[/code\]s to be at the top, but at the bottom will work too. Or flagged with text markers. Anything to spit out the text in the final document instead of silently eating it.
 
Back
Top