Re: [Servingxml-help] pos file repeating sections to nested XML
Brought to you by:
danielaparker
From: Daniel P. <dan...@sy...> - 2005-11-26 04:59:49
|
Hello Ken, Thanks for the feedback, the support for repeating groups is quite new, so I'm pleased that it's being exercised. The resources script should look like this: <?xml version="1.0"?> <sx:resources xmlns:sx="http://www.servingxml.com/core"> <sx:service name="students"> <sx:serialize> <sx:transform> <sx:content ref="students-content"/> </sx:transform> </sx:serialize> </sx:service> <sx:recordContent name="students-content"> <sx:flatFileReader> <sx:urlSource url="data/students.txt"/> <sx:flatFile ref="students-file"/> </sx:flatFileReader> <sx:recordMapping ref="students-mapping"/> </sx:recordContent> <sx:flatFile name="students-file"> <sx:flatFileBody> <sx:flatRecordType name="student"> <sx:positionalField name="name" width="4"/> <sx:repeatingGroup> <sx:flatRecordType name="subject-grade"> <sx:positionalField name="subject" width="4"/> <sx:positionalField name="grade" width="1"/> </sx:flatRecordType> </sx:repeatingGroup> </sx:flatRecordType> </sx:flatFileBody> </sx:flatFile> <sx:recordMapping name="students-mapping"> <StudentGrades> <sx:onRecord> <StudentGrade> <sx:fieldElementMap field="name" element="Name"/> <SubjectGrade> <sx:onRecord> <sx:fieldElementMap field="subject" element="Subject"/> <sx:fieldElementMap field="grade" element="Grade"/> </sx:onRecord> </SubjectGrade> </StudentGrade> </sx:onRecord> </StudentGrades> </sx:recordMapping> </sx:resources> However, you've uncovered a bug. The name field appearing before the repeating group is being skipped. There is a workaround - you can get this to work by enclosing the student record type definition in an sx:flatRecordTypeChoice, with one choice, like this: <sx:flatFile name="students-file"> <sx:flatFileBody> <sx:flatRecordTypeChoice> <sx:positionalField name="name" width="4"/> <sx:when test="1=1"> <sx:flatRecordType name="student"> <sx:positionalField name="name" width="4"/> <sx:repeatingGroup> <sx:flatRecordType name="subject-grade"> <sx:positionalField name="subject" width="4"/> <sx:positionalField name="grade" width="1"/> </sx:flatRecordType> </sx:repeatingGroup> </sx:flatRecordType> </sx:when> </sx:flatRecordTypeChoice> </sx:flatFileBody> </sx:flatFile> I've tested this this and it works (it's now like the comptest example, which does work.) I'll have a fix for the straightforward implementation soon, and add your example to the examples in the documentation. -- Daniel ----- Original Message ----- From: "Brewer, Ken" <ken...@pe...> To: <ser...@li...> Sent: Friday, November 25, 2005 10:15 PM Subject: [Servingxml-help] pos file repeating sections to nested XML > I'm new to serving xml, it's quite impressive, thanks! > > I'm trying convert a fixed width(positional) flat file, with repeating > groups, to XML with nested elements. Can serving xml do this? I've made > several attempts based on some of the examples but I still haven't been > able > to get the desired output. > > The flat file looks like this: > > JANEENGLCMATHA > JOHNSCIEBHISTB > > and this is the XML output I'd like: > > <StudentGrades> > <StudentGrade> > <Name>JANE</Name> > <SubjectGrade> > <Subject>ENGL</Subject> > <Grade>C</Grade> > </SubjectGrade> > <SubjectGrade> > <Subject>MATH</Subject> > <Grade>A</Grade> > </SubjectGrade> > </StudentGrade> > <StudentGrade> > <Name>JOHN</Name> > <SubjectGrade> > <Subject>SCIE</Subject> > <Grade>B</Grade> > </SubjectGrade> > <SubjectGrade> > <Subject>HIST</Subject> > <Grade>B</Grade> > </SubjectGrade> > </StudentGrade> > </StudentGrades> > > Thanks, > > -Ken > > **************************************************************************** > This email may contain confidential material. > If you were not an intended recipient, > Please notify the sender and delete all copies. > We may monitor email to and from our network. > **************************************************************************** > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Servingxml-help mailing list > Ser...@li... > https://lists.sourceforge.net/lists/listinfo/servingxml-help > |