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
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Neal WaltersSubject: XSLT Mapping How-To
Author: Neal Walters
Date: 16 Feb 2006 06:19 PM

I'd like to map the following as easiliy as possible.
Ideally, I'd like to drag/drop twice:
1) Copy Order and all descenddents to Order
2) Copy ReconciledProfile and all descendents to the Profile inside Order

So I see that I have two questions:
1) I'm used to a "massCopy functoid" in Biztalk, is there a simply GUI equivalent? I think it builds this XSLT:
<xsl:copy-of select="*"/>
<xsl:copy-of select="@*"/>
There could be dozens of elements, I have kept my sample below short for brevity.

2) How to I handle the nesting here, i.e. taking an outer element, and sticking inside the other output element.


<?xml version="1.0"?>
<SampleInput>
<Order>
<OrderInfo>xxx</OrderInfo>
<LineItems>
<LineItem>abc</LineItem>
<LineItem>def</LineItem>
</LineItems>
</Order>
<ReconciledProfile>
<Name>John Doe</Name>
<City>Dallas</City>
</ReconciledProfile>
</SampleInput>

<SampleOutput>
<Order>
<Profile>
<Name>John Doe</Name>
<City>Dallas</City>
</Profile>
<OrderInfo>xxx</OrderInfo>
<LineItems>
<LineItem>abc</LineItem>
<LineItem>def</LineItem>
</LineItems>
</Order>
</SampleOutput>

Thanks,
Neal Walters
http://Biztalk-Training.com

Postnext
Neal WaltersSubject: XSLT Mapping How-To
Author: Neal Walters
Date: 16 Feb 2006 06:40 PM
I went to find a video for mapping xml to xml - and couldn't find one. Looks like all your tutorials are for the WSYWIG.

I built the map below by dragging one element at a time (ignoring my bulk copy part of the question).

I don't understand how the GUI handles the for-each loop, but leaves out the select statement there (i.e. the element tag is generated, but the data is not copied.)


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<SampleOutput>
<Order>
<Profile>
<xsl:value-of select="SampleInput/ReconciledProfile"/>
<Name>
<xsl:value-of select="SampleInput/ReconciledProfile/Name"/>
</Name>
<City>
<xsl:value-of select="SampleInput/ReconciledProfile/City"/>
</City>
</Profile>
<xsl:value-of select="SampleInput/Order"/>
<OrderInfo>
<xsl:value-of select="SampleInput/Order/OrderInfo"/>
</OrderInfo>
<LineItems>
<xsl:value-of select="SampleInput/Order/LineItems"/>
<xsl:for-each select="SampleInput/Order/LineItems/LineItem">
<LineItem/>
</xsl:for-each>
</LineItems>
</Order>
</SampleOutput>
</xsl:template>
</xsl:stylesheet>

Hope this helps. I'm interested in how I can use your GUI to save time and how it compares to Biztalk mapper.

Neal Walters
http://Biztalk-Training.com

Postnext
Neal WaltersSubject: XSLT Mapping How-To
Author: Neal Walters
Date: 16 Feb 2006 06:43 PM
I see if I right click when I drag links, I get more options, such as the "Create Copy Link". I think that is what I wanted. I don't understand why left click and drag defaults as it does.

Neal

Postnext
Neal WaltersSubject: XSLT Mapping How-To
Author: Neal Walters
Date: 17 Feb 2006 10:36 AM
Just a note that I got my map done, the full one took about an hour and a half. I was just hoping there were some nice drag/drop shortcuts or some bulk-move capabilities. I ended-up creating a couple of templates and building very repetitive code like this:

<AccountCode>
<xsl:value-of select="*[local-name()='AccountCode']"/>
</AccountCode>
<OrderStatusCode>
<xsl:value-of select="*[local-name()='OrderStatusCode']"/>
</OrderStatusCode>
<ConstituentActionId>
<xsl:value-of select="*[local-name()'ConstituentActionId']"/>
</ConstituentActionId>

Neal

Postnext
Neal WaltersSubject: XSLT Mapping How-To
Author: Neal Walters
Date: 21 Feb 2006 01:23 PM
Any ideas on how to shorten the coding process?

I hate to hard code all the statements above, because if new elements are added, then map has to change. I would prefer to use some sort of mass-copy.

Neal

Posttop
Minollo I.Subject: XSLT Mapping How-To
Author: Minollo I.
Date: 21 Feb 2006 01:41 PM
Have you tried using the "Copy" link in mapper? If you drag&drop a node from source to target using the right button of the mouse and you choose "Create Copy Link", the whole node subtree will be copied verbatim using <xsl:copy-of/>

Minollo

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
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.