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
Peter RobertSubject: Change format of XML output for custom flat file conversion?
Author: Peter Robert
Date: 06 Jul 2009 07:23 AM
Hi everyone,
This is my first post here, so please don't hit me if I chose the wrong thread..

I'm currently working on a complex flat file conversion to XML (combined with a following xQuery), but I first have one questions regarding the output format of the conversion.

How can I avoid the output structure of
<region>
<row_NAME1>
<field>N1</field>
<field_NAME1>Peter</field_NAME1>
</row_NAME1>
</region>

for fixed width-structure, but instead have the values

<region>
<NAME1>Peter</NAME1> and omitting the complex structure of row, field, etc.

To explain in examples:

LHDAB 1011609010 D

is ok to output
<LETTERHEAD>
<field>LH</field>
<DOCTYPE>DAB</DOCTYPE>
<CUSTNO>101160901</CUSTNO>
<SUFFIX>0</SUFFIX>
<COUNTRY>D</COUNTRY>
</LETTERHEAD>

although I don't need the <field>LH</field>.

But then, the file continues with

N1Herr
N2Werner Lückner
A1Wiesestr. 68
A232052 Herford
A3
A4
LD#SALSTSehr geehrter Herr Lückner
LD#TITSTHerr
LD#PSTST
LD#PFXST
LD#FNMSTWerner
LD#NM1STLückner

which ideally should result in something like

<ADDRESSDETAILS>
<N1>Herr</N1>
<N2>Werner Lückert</N2>
<A1>...</A1>
...
</ADDRESSDETAILS>

and followed by
<LETTERDETAILS>
<#SALST>Sehr geehrter Herr Lückner</#SALST>
<#TITST>Herr</#TITST>
<#PSTST/>
<#PFXST/>
<#FNMST>Werner</#FNMST>
<#NM1ST>Lückner</#NM1ST>
....
</LETTERDETAILS

The current output of the Conversion is too poor to really work with it, IMHO.

Can someone please give me a hint how to achieve this in a conversion, and if this is not possible, how to do it with a xquery.

With best regards,
Peter


Unknownconversion_plus_source_sample.zip
CONV file plus source data ZIP

Postnext
Peter RobertSubject: Change format of XML output for custom flat file conversion?
Author: Peter Robert
Date: 06 Jul 2009 09:06 AM
I forgot to show the xquery code I currently use:

declare function local:getOthers($item) {
let $nextItem := $item/following-sibling::*[local-name()="Letterhead"][1]
for $related in $item/following-sibling::*[local-name()!="Letterhead"]
where if($nextItem) then $related << $nextItem else true()
return $related
};
declare option ddtek:serialize "omit-xml-declaration=no";


<LETTERS>
{
for $Letterheads in /root/Letterhead
return
<LETTER>
{
$Letterheads
}
{
for $Others in local:getOthers($Letterheads)
return
$Others
}
</LETTER>
}
</LETTERS>

This helps me to separate the elements letter by letter, as the end of a letter is only marked by the beginning of a new Letterhead.
But apart from this, the result is odd.

Thanks
Peter

Posttop
(Deleted User) Subject: Change format of XML output for custom flat file conversion?
Author: (Deleted User)
Date: 08 Jul 2009 06:15 AM
Hi Peter,
a way to shape the XML in the requested format is this:

<LETTERS>
{
for $Letterheads in /root/Letterhead
return
<LETTER>
<LETTERHEAD>{$Letterheads/Typ,$Letterheads/Kundennummer,$Letterheads/Suffix,$Letterheads/Country}</LETTERHEAD>
{
let $Others := local:getOthers($Letterheads)
return
(
<ADDRESSDETAILS>{$Others/Anrede,$Others/Name,$Others/Strasse,$Others/Ort}</ADDRESSDETAILS>,
<LETTERDETAILS>{$Others/SALUTATION_FORMULA,$Others/TITLE,$Others/PSTST,$Others/FIRSTNAME,$Others/NAME1}</LETTERDETAILS>
)
}
</LETTER>
}
</LETTERS>

Hope this helps,
Alberto

 
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.