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 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Jon GallegosSubject: Holding information in memory
Author: Jon Gallegos
Date: 22 Jul 2008 04:39 PM
I have a file that has data in the middle of the file that i need at the beginning of the file I am creating. I actually need it in several places. Is there a way to load this information into memory.

Here is an example of what I am looking for;

The input file example
record1
record2
record3
record4
record5
record6
record7
record8
record9


and the output file would look like this
record9
record2
record3
record4
record5
record1
record9
record6
record7
record8
record2


I do not know how to get record9 to appear first

Postnext
Tony LavinioSubject: Holding information in memory
Author: Tony Lavinio
Date: 22 Jul 2008 07:36 PM
Exactly how does this relate to XML, XSLT or XQuery?
It's not clear what you are trying to do.
Which version of Stylus Studio do you have available?

Postnext
Jon GallegosSubject: Holding information in memory
Author: Jon Gallegos
Date: 23 Jul 2008 08:05 AM
It's an example. It is an XML to XML translation where both DTDs are huge. PLus, as a consultant, i do not have the permissions to send them to you.

Basically i want to be able to load the input file into memory and then output it whichever order I want.

Postnext
Tony LavinioSubject: Holding information in memory
Author: Tony Lavinio
Date: 23 Jul 2008 08:51 AM
Either XSLT or XQuery will do that for you.

You'll probably have a better chance with XQuery if the files are
very large; it might be able to stream some of the components so as
not to require the entire document to be in memory at once.

Have you tried using the XQuery mapper? You can load each DTD in,
and draw lines connecting corresponding elements and to define
repeating sections.

Postnext
Jon GallegosSubject: Holding information in memory
Author: Jon Gallegos
Date: 23 Jul 2008 09:13 AM
I am currently doing an xslt map. and I can not get a record that is at the end of the input file to be at the begining of my output file.

let me give another example

<?xml version='1.0' encoding='utf-8'?>
<document xmlns='http://www.lotus.com/dxl' version='6.5'>
<item name='item1'>
<text>item 1 text</text>
<item name='item2'>
<text>item 2 text</text>
<item name='item3'>
<text>item 3 text</text>
<item name='item4'>
<text>item 4 text</text>
<item name='item5'>
<text>item 5 text</text>
</document>

I need to map into
<?xml version="1.0" encoding="UTF-8" ?>
<PLMXML xmlns:ns1="http://www.xxgms.ecrf" schemaVersion="5.1">
<UserValue title="item1" value="item 1 text" />
<UserValue title="item5" value="item 5 text" />
<UserValue title="item1" value="item 1 text" />
<UserValue title="item4" value="item 4 text" />
<UserValue title="item3" value="item 3 text" />
<UserValue title="item4" value="item 4 text" />
<UserValue title="item2" value="item 2 text" />
</PLMXML>

This is only an example. but as you can see I need to have item2 in memory until I read item5 write it and and all the other records until the end.

Postnext
Jon GallegosSubject: Holding information in memory
Author: Jon Gallegos
Date: 23 Jul 2008 09:25 AM
I have tried using xsl:variable but have not been successfull. Here is an emexample of the code I am using

<xsl:for-each select="a:document">
<xsl:if test="@item = 'item1'">
<xsl:variable name="WSitem1" select="a:text"/>
</xsl:if>
<xsl:if test="@name = 'item2'">
<xsl:variable name="WSitem2" select="a:text"/>
</xsl:if>
<xsl:if test="@name = 'item3'">
<xsl:variable name="WSitem3" select="a:text"/>
</xsl:if>
<xsl:if test="@name = 'item4'">
<xsl:variable name="WSitem4" select="a:text"/>
</xsl:if>
<xsl:if test="@name = 'item5'">
<xsl:variable name="WSitem5" select="a:text"/>
</xsl:if>
</xsl:for-each>

I just do not know what to do from here. Everything I have tried has not worked.

Postnext
Tony LavinioSubject: Holding information in memory
Author: Tony Lavinio
Date: 23 Jul 2008 04:44 PM
Your input wasn't well-formed, and didn't quite match the data in
your sample output. It makes it easier for us to get it right the
first time if your examples are clear.

That being the case, assuming the input of

<?xml version="1.0" encoding="utf-8"?>
<document xmlns="http://www.lotus.com/dxl" version="6.5">
<item name="item1"/>
<text>item 1 text</text>
<item name="item2"/>
<text>item 2 text</text>
<item name="item3"/>
<text>item 3 text</text>
<item name="item4"/>
<text>item 4 text</text>
<item name="item5"/>
<text>item 5 text</text>
</document>

then it appears that this will do what you want.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.lotus.com/dxl">
<xsl:template match="/">
<PLMXML xmlns:ns1="http://www.xxgms.ecrf" schemaVersion="5.1">
<xsl:apply-templates select="a:document/a:text"/>
</PLMXML>
</xsl:template>
<xsl:template match="a:text">
<UserValue title="{preceding-sibling::a:item[1]/@name}" value="{.}"/>
</xsl:template>
</xsl:stylesheet>

Stop trying to think in conventional terms like 'in memory' and
'looping'. XSLT requires that you think backwards, almost as if
you were pushing the data through the program instead of the
program pulling the data from the file.

Postnext
Jon GallegosSubject: Holding information in memory
Author: Jon Gallegos
Date: 24 Jul 2008 08:33 AM
I understand how frustrating it could be trying to help someone who can't give you enough information to help. But it is a security thing here and I am a consultant.

Having said all that, I figured that was the way xslt worked so I came up with my own solution while I waited for a reply. I am now almost complete with the map so i want to finish it and then, if i can get permission send it to you. Hopefully, and if you have the time, you can tell me where I went wrong and if the solution you sent me is the best way to go.

Is all this ok?

Posttop
Tony LavinioSubject: Holding information in memory
Author: Tony Lavinio
Date: 24 Jul 2008 11:56 AM
Honestly, the best place to go for XSLT advice isn't here, but
on the XSLT community mailing list run by Mulberry Technologies.

Here we have the resources of the Stylus Studio team, but there
not only do we contribute, but the major part of the XSLT community
including others who designed the XSLT standard and who implement
other XSLT engines.

These support lists are primarily for dealing with problems specific
to Stylus Studio or the specific implementations of the standards
that we supply.

I believe you'll get more comprehensive answers asking there.

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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.