XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + DBF converter with the Cyrilli... (3)
-> + Stylus Studio caching document... (3)
-> + Stylus Studio Online help inst... (9)
-> + specific colors (2)
-> + Formatting problems when creat... (2)
-> - Headers and Footers (1)
-> + XML output's a URL in Browser ... (2)
-> + Generating Java Code for XML (3)
-> + format dates in publisher (2)
-> + grouping in Stylus Studio Publ... (5)
-> + Can schema documentation title... (3)
-> + Stylus can not find the right ... (2)
-> + Problem to create Schema from ... (5)
-> - Design a DTD to represent the ... (1)
-> + Surround SCM integration (3)
-> + Converting a csv file to xml u... (5)
-> + Legacy Format Handling (3)
-> + Size limit for XML documents (2)
-> + Can Stylus Studio easily expor... (3)
-> + Problem convert excel to xml (5)
-> + convert X12 EDI into XML in a... (2)
-> + Capturing the return data for ... (3)
-> + stamps.com wsdl issues (3)
-> + Preview issues (2)
-> + Stylus Studio X14 - XML to EDI... (3)
-> + Stylus Studio X14 - Overrides ... (4)
-> + Anyway to specify namespace pr... (6)
-> + StylusStudio 2010 crashes when... (6)
-> + Version Upgrade (2)
-> + How to write a if -else statem... (4)
-> + URGENT URGENT URGENT ! (EDIF... (3)
-> + X14 Saxon document uri problem (5)
-> + namespace problem on XML gener... (7)
-> + Stylus Studio Tool Bars (2)
-> + X14 Enterprise - Web Services ... (3)
-> + Saxon edition in X14 Enterpris... (2)
-> + How to create PDF documents wi... (2)
-> + WSCall doesn't work from xquer... (4)
-> + Issues with converter (8)
-> + xsd null strings - option to i... (2)
-> + wrapping table rows and mismat... (3)
-> + Report Designer: Is it possibl... (4)
-> + Message Baplie 1.5 with 1.911 ... (2)
-> + saved merged view in diff engi... (2)
-> + Cannot see needed element to m... (2)
-> + Matching problem in function (3)
-> - Funny warning message (1)
-> - Missing rows and text when con... (1)
-> + Another JSON problem (2)
-> + JSON problem (8)
-> + WebDav Custom properties (2)
-> + jvm not registering in the too... (2)
-> + How to turn off error about mi... (6)
-> + XML Attribute Element output f... (2)
-> + ddtek:wscall not returning all... (7)
-> - Trial Only Lasted 7 of the 14 ... (1)
-> + tree view without leaves (fiel... (3)
-> + XML to Text File (2)
-> + Stylus Studio Processor Debugg... (3)
-> + Java XMLPipeline result to str... (6)
-> + Attribute - XSD, DataDirect, X... (7)
-> + .NET XslCompliedTransform pro... (3)
-> + How to increase JVM Heap Size? (10)
-> + How in XSD do I reference the ... (2)
-> + Conversion of negative numbers (2)
-> + XSLT mapper (2)
-> - Converting csv file with embed... (1)
-> + WSDL completion inquiry (2)
-> - Move License (1)
-> + XML to Excel conversion and vi... (8)
-> + “spell checker” and “well-form... (2)
-> + Relational DB Icon Not appeari... (2)
-> + How come AUP doesn't respond (4)
-> - Software activation does not w... (1)
-> + Stylus studio continually cras... (2)
-> + Error running on Windows 7 (3)
-> + Creating xml start and end tag... (4)
-> + Keeping track of position afte... (3)
-> + splitting a row into multiple ... (3)
-> + Where is Convert to XML? (2)
-> + Built-In XSLT Processor Missin... (4)
-> - Converting XSL to XSL-FO (1)
-> - Can we compare two XML Schema ... (1)
-> - Stylus Studio EDI Conversion /... (1)
-> + Installation Issue Windows XP ... (2)
-> + Converting CSV with component ... (2)
-> - how to edit a xsl file, so tha... (1)
-> - Cannot save file to Webdav (1)
-> + How to copy Column Names on Gr... (3)
-> - XML when to use (1)
-> - Attribute vs data elements (1)
-> - Attribute Group (1)
-> - EDI conversion from command li... (1)
-> - WSDL schema - import of xsd (1)
-> + Get Date (2)
-> + help calling https web service (5)
-> - Newbie looking out for BizTalk... (1)
-> + Publishing XML pipeline as Web... (2)
-> - annotation within sequence ele... (1)
-> - backmapping using Saxonica 9.1... (1)
-- Previous [301-320] [321-340] [341-360] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Simon TemplarSubject: Conditional processing in XSLT for varying format XML files.
Author: Simon Templar
Date: 14 Sep 2005 12:00 PM
Hi,
I want to create a single XSLT that processes 3 different types of XML files having different tags/elements depending on the value of <ValidationStatus> element.
For example, if I have the <ValidationStatus>OK</ValidationStatus> then I want only certain elements to be processed in the XSLT and the XML file and so forth. The attached files would make my question clear. How can I achieve it?
I am attaching the sample XML files and the schema. As always any help is appreciated.

Regards.


DocumentValidationSuccessful.xml
Validation Successful file

DocumentPartialFailure.xml
Partial Failure file

DocumentXMLFailure.xml
XML Failure file

DocumentFSATRSValidationReport-v1-0.xsd
ValidationReport schema

Postnext
(Deleted User) Subject: Conditional processing in XSLT for varying format XML files.
Author: (Deleted User)
Date: 15 Sep 2005 05:51 AM
Hi Simon,
a very simple stylesheet could be the following:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.fsa.gov.uk/XMLSchema/FSATRSValidationReport-v1-0">
<xsl:output method="html"/>

<xsl:template match="/">
<xsl:choose>
<xsl:when test="vr:TRSValidationReport/vr:ValidationResult/vr:ValidationStatus[. = 'OK']">
<xsl:call-template name="ProcessValidResult"/>
</xsl:when>
<xsl:when test="vr:TRSValidationReport/vr:ValidationResult/vr:ValidationStatus[. = 'Partial Failure']">
<xsl:call-template name="ProcessInvalidResult"/>
</xsl:when>
<xsl:when test="vr:TRSValidationReport/vr:ValidationResult/vr:ValidationStatus[. = 'XML Fail']">
<xsl:call-template name="ProcessInvalidXML"/>
</xsl:when>
</xsl:choose>
</xsl:template>

<xsl:template name="ProcessValidResult">Report is valid (<xsl:value-of select="/vr:TRSValidationReport/vr:ValidationResult/vr:SuccessfulTransactions"/>/<xsl:value-of select="/vr:TRSValidationReport/vr:ValidationResult/vr:TotalTransactions"/>)</xsl:template>

<xsl:template name="ProcessInvalidResult">Report is not valid (<xsl:value-of select="/vr:TRSValidationReport/vr:ValidationResult/vr:SuccessfulTransactions"/>/<xsl:value-of select="/vr:TRSValidationReport/vr:ValidationResult/vr:TotalTransactions"/>)<br/>

<xsl:for-each select="/vr:TRSValidationReport/vr:TransactionErrorDetails">--------------------<br/>
<xsl:value-of select="vr:TxnFailureDetails/vr:FailureType"/>
<br/>
<xsl:value-of select="vr:TxnFailureDetails/vr:FailureReason"/>
<br/>
</xsl:for-each>
</xsl:template>

<xsl:template name="ProcessInvalidXML">Report is not valid XML: <xsl:value-of select="/vr:TRSValidationReport/vr:ValidationResult/vr:ErrorDescription"/></xsl:template>
</xsl:stylesheet>


Hope this helps,
Alberto

Postnext
Simon TemplarSubject: Conditional processing in XSLT for varying format XML files.
Author: Simon Templar
Date: 15 Sep 2005 08:01 AM
Thanks Alberto. I tried the above XSLT but I get an empty output using command-line transformation.
I understood the clever & simple solution that you've proposed but I have little understanding of the syntax where you mention "Report is..." and why you've used "<br>" tags. I tried to creat an XSLT myself using XSLT Mapper and then added the checks following your solution but even that is not working. I am attaching the batch script that I use and the XSLTs that I've used.

Many thanks for your help.

Regards.


DocumentCISRI_Validate_Rpt.cmd
Batch Script

DocumentValidationReportv1.xsl
XSLT v1

DocumentValidationReportv2.xsl
XSLT v2

Postnext
(Deleted User) Subject: Conditional processing in XSLT for varying format XML files.
Author: (Deleted User)
Date: 15 Sep 2005 09:28 AM
Hi Simon,
I tried both XSL stylesheet againt the original XML files, and they work for me from within Stylus Studio; however, I could not download the .cmd file ("file missing").
Can you upload it again?

Thanks,
Alberto

Postnext
Tony LavinioSubject: Conditional processing in XSLT for varying format XML files.
Author: Tony Lavinio
Date: 15 Sep 2005 09:53 AM
I will get the file to Alberto; it seems some firewall software
is blocking it because it is a .cmd file. No need to re-upload.

Postnext
Simon TemplarSubject: Conditional processing in XSLT for varying format XML files.
Author: Simon Templar
Date: 15 Sep 2005 09:58 AM
>Hi Simon,
>I tried both XSL stylesheet
>againt the original XML files,
>and they work for me from
>within Stylus Studio; however,
>I could not download the .cmd
>file ("file missing").
>Can you upload it again?
>
>Thanks,
>Alberto

Thanks for a prompt reply. I'd like to explain again what I am trying to achieve. I want to take the three input files as attached in my original post but they wont be having the following:
<TRSValidationReport xmlns="http://www.fsa.gov.uk/XMLSchema/FSATRSValidationReport-v1-0">

and instead all three have the following:
<TRSValidationReport>

I'd like to have a single XSLT that has ALL the common elements for three input files viz.
<SubmttedReportDetails>
<FileName>bloggs.xml</FileName>
<ReportType>HSFPP</ReportType>
<FeedTargetSchemaVersion>1.2</FeedTargetSchemaVersion>
<SubmittingFirm>123456</SubmittingFirm>
<SubmittingDept>ABC123</SubmittingDept>
<ReportCreationDate>2004-04-01</ReportCreationDate>
<ReportIdentifier>ABC/123/22</ReportIdentifier>
</SubmttedReportDetails>

and other elements according to each file. The output files should look like the original files attached in my original post.

Also, here's the batch file (in case there's a problem uploading it; my guess is that the firewall might not be allowing it to upload from my side):

@echo off
@echo Deleting previous logs...
REM DEL *.log
@echo Applying the stylesheet...
@"C:\Program Files\Stylus Studio 6 XML Enterprise Edition\bin\stylusXslt" -in CISRI_Test_valid_v2_rpt.xml -XSLT SSDNSolution.xsl -out CISRI_Test_valid_v2_rpt_fmtd.xml 2> Stylesheet_OK.log
@if errorlevel 1 goto errorStylesheet
@echo Validating XML now...
@"C:\Program Files\Stylus Studio 6 XML Enterprise Edition\bin\StylusValidator" -schema "http://www.fsa.gov.uk/XMLSchema/FSATRSValidationReport-v1-0.xsd" CISRI_Test_valid_v2_rpt_fmtd.xml > Validation_OK.log
@if errorlevel 1 goto errorValidation
DEL Stylesheet_OK.log
@echo File validated successfully...
@goto ok
:errorStylesheet
REN Stylesheet_OK.log Stylesheet_Error.log
@echo Process failed during Stylesheet step...check Stylesheet log
@goto end
:errorValidation
@echo Process failed during Validation step...check Validation log
DEL Stylesheet_OK.log
REN Validation_OK.log Validation_Error.log
@goto end
:ok
@echo Processing complete
:end

PS: I am renaming the cmd extension to txt to bypass firewall rules. So if you want to run it then simply rename txt to cmd.

Regards.


DocumentCISRI_Validate_Rpt.txt
Batch script

Postnext
(Deleted User) Subject: Conditional processing in XSLT for varying format XML files.
Author: (Deleted User)
Date: 15 Sep 2005 03:04 PM
Hi Simon,
thanks for the renamed script (download works now).
In your last message you say that the incoming files will not have the xmlns="...." attribute on the root node; this is an important change, as all the XPath expressions in the XSLT stylesheet look for elements in that namespace but, missing that declaration, all the elements in the XML sources are in the empty namespace.

You need to fix the XSLT stylesheet to remove all the prefixes from the XPath queries (in my original file they were "vr:", in your copies they were "a:")

Hope this helps,
Alberto

Posttop
Simon TemplarSubject: Conditional processing in XSLT for varying format XML files.
Author: Simon Templar
Date: 16 Sep 2005 04:50 AM
>Hi Simon,
>thanks for the renamed script
>(download works now).
>In your last message you say
>that the incoming files will
>not have the xmlns="...."
>attribute on the root node;
>this is an important change,
>as all the XPath expressions
>in the XSLT stylesheet look
>for elements in that namespace
>but, missing that declaration,
>all the elements in the XML
>sources are in the empty
>namespace.

Thanks again Alberto. I understand the point about having xmlns in the files. I found out that the third-party had a problem and that's why the reports that they were generating initially did not have the xmlns attribute. I have tested again with new files and downloaded new reports and the problem seems to be fixed now.

>You need to fix the XSLT
>stylesheet to remove all the
>prefixes from the XPath
>queries (in my original file
>they were "vr:", in your
>copies they were "a:")
>
>Hope this helps,
>Alberto

I'll follow your instructions regarding replacing 'vr:' with 'a:' and try again.

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.