[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XSLT transforming from soap xml to E2B-R2 xml form

Subject: Re: XSLT transforming from soap xml to E2B-R2 xml format
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 7 Jun 2023 16:35:09 -0000
Re:  XSLT transforming from soap xml to E2B-R2 xml form
When you do

<ichicsr lang="en" >

in your stylesheet, the resulting element in the output will have copies of
all namespaces declared in outer elements in the stylesheet, unless disabled
using the exclude-result-prefixes attribute.

Michael Kay
Saxonica

> On 7 Jun 2023, at 17:27, LEGAULT, PHILLIP plegault@xxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> I have 2 XSLT Stylesheets, one to split and one to transform.
> The Split one looks like:
>
> <?xml version="1.0"?>
> <xsl:stylesheet version="2.0"
> xpath-default-namespace="urn:enterprise.soap.sforce.com
<http://enterprise.soap.sforce.com/>"
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
<http://schemas.xmlsoap.org/soap/envelope/>"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform
<http://www.w3.org/1999/XSL/Transform>"
>     xmlns:sf="urn:sobject.enterprise.soap.sforce.com
<http://sobject.enterprise.soap.sforce.com/>"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance>">
> <xsl:output method="xml" indent="yes"/>
> <xsl:variable name="dateparam"
select="format-dateTime(current-dateTime(),'[Y0001][M01][D01][H01][m01][s01]'
)"></xsl:variable>
> <xsl:template match="/">
>   <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="records[@xsi:type = 'sf:Case']">
>    <xsl:result-document
href="./tmp/{sf:Product_GCC__r/sf:Locale_GCC__r/sf:Region_GCC__c}-{$dateparam
}-case-{sf:Id}-{sf:CaseNumber}.xml">
>      <xsl:copy-of select="."/>
>   </xsl:result-document>
> </xsl:template>
> </xsl:stylesheet>
>
>
> The transform is quite large.
>
> Starts like:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0"
>         xpath-default-namespace="urn:enterprise.soap.sforce.com
<http://enterprise.soap.sforce.com/>"
>         xmlns:xsl="http://www.w3.org/1999/XSL/Transform
<http://www.w3.org/1999/XSL/Transform>"
>         xmlns="urn:enterprise.soap.sforce.com
<http://enterprise.soap.sforce.com/>"
>         xmlns:sf="urn:sobject.enterprise.soap.sforce.com
<http://sobject.enterprise.soap.sforce.com/>"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance>">
> <xsl:variable name="codes">
>
> </xsl:variable>
> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
> <xsl:strip-space elements="*"/>
> <xsl:template match="/">
>     <ichicsr lang="en" >
>         <ichicsrmessageheader>
>             <messagetype>ichicsr</messagetype>
>             <messageformatversion>2.1</messageformatversion>
>             <messageformatrelease>2.0</messageformatrelease>
>             <messageid><xsl:value-of select="/records/sf:Id"/></messageid>
>             <xsl:for-each
select="/records/sf:Case_CaseNotes_GCC__r/records"><xsl:choose>
>                 <xsl:when test="sf:Type_GCC__c = 'Safety Feedback'">
>                 <commentid><xsl:value-of select="sf:Id"/></commentid>
>                 </xsl:when>
>                 <xsl:otherwise>
>                     <xsl:text></xsl:text>
>                 </xsl:otherwise>
>             </xsl:choose>
>             </xsl:for-each>
>
>
>
>
>
>
> From: Michael Kay mike@xxxxxxxxxxxx <mailto:mike@xxxxxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>>
> Sent: Wednesday, June 7, 2023 11:44 AM
> To: xsl-list <xsl-list@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list@xxxxxxxxxxxxxxxxxxxxxx>>
> Subject: [EXTERNAL] Re:  XSLT transforming from soap xml to E2B-R2 xml
format
>
> We can't tell why you're getting the unwanted namespaces without seeing your
code. The main reasons for unwanted namespaces are either
>
> (a) you copied them from the source document using xsl:copy or xsl:copy-of.
In XSLT 2.0+ you can use the copy-namespaces="no" attribute to prevent this
>
> (b) you copied them from the stylesheet by using a literal result element
without specifying exclude-result-prefixes.
>
> The desired output also looks odd because it has an XML declaration inside
the outermost element.
>
> You can get the DOCTYPE declaration in the output by using `xsl:output` with
the doctype-system option
>
>
> On 7 Jun 2023, at 16:28, LEGAULT, PHILLIP plegault@xxxxxxxxxx
<mailto:plegault@xxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>
> Ibm splitting a large soap xml file into multiple files then running a
transformation on each file.
> Ibm left with:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ichicsr xmlns="urn:enterprise.soap.sforce.com
<http://enterprise.soap.sforce.com/>"
>          xmlns:sf="urn:sobject.enterprise.soap.sforce.com
<http://sobject.enterprise.soap.sforce.com/>"
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance>"
>          lang="en">
> b&b&..
> b&b&b&
> </ichicsr>
>
> What I want to end up with is like:
> <xmlFile>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE ichicsr SYSTEM
"http://eudravigilance.ema.europa.eu/dtd/icsr21xml.dtd
<http://eudravigilance.ema.europa.eu/dtd/icsr21xml.dtd>">
>
> b&b&b&b&b&..
> b&b&b&b&..
>
>     </ichicsr>
> </xmlFile>
>
>
>
> Then
>
> Phil Legault
> RDx Platform Lead
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email)
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/3514465> (by
email <applewebdata://09EC872E-0947-4D0C-9CC7-B712EDE4C547>)
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.