[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: xml-sax issue
I'll take the subst out completely and retest.
> Could the problem be something like the following scenario. If not my
> apologizes for not understanding the question.
> xml = %trim(%subst(GetResponse: 3: 5000));
> When you have a varying field, the field contains 2 extra invisible
> positions, contain the length of the data.
> D Data1 s 20a
> D Data2 s 20a
> D Data3 s 20a
> D ds
> D GetResponse 20a varying inz('<MMMProcess>')
> D InvisLen 2a overlay(GetResponse: 1)
> D Value 20a overlay(GetResponse: 3)
> Data1 = Value;
> Data2 = %subst(GetResponse: 1)
> Data3 = %subst(GetResponse: 3)
> Data1 contains "<MMMProcess>"
> Data2 contains "<MMMProcess>"
> Data3 contains "MMProcess>"
> With %subst your start with position 1, if you are using a data
> structure
> you start with position 3.
> ----> I'm getting a weird character Þ<MMMProcess>
> Yes, GetResponse would have a weird first two position if you are
> retrieving
> the first two invisible fields.
> -----Original Message-----
> From: Paul Roy [mailto:paul.roy@xxxxxxx]
> Sent: Tuesday, September 08, 2015 3:02 PM
> To: HTTPAPI and FTPAPI Projects
> Subject: Re: xml-sax issue
> that's looks like a problem of a variable length string not correctly
> defined...
> mismatch in a definition of a program/procedure ?
> Paul
> From: "RPG List" <rpglist@xxxxxxxxxxx>
> To: "HTTPAPI and FTPAPI Projects" <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
> Date: 08/09/2015 19:42
> Subject: Re: xml-sax issue
> Sent by: [1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
> John,
> I don't recall off the top of my head. He tried sending it as UTF-16
> but
> its defaulting to 8 so I'm not sure if that's the problem or not.
> I recompiled the srvpgm and stubs and created the sample program, in
> debug
> when I check the xml value immediately following the web service call
> I'm
> getting a weird character Þ<MMMProcess>
> and it is starting in position 2. I don't recall seeing this before.
> Ideas?
> > XML-INTO is usually a lot less work than XML-SAX unless you only want
> > a small portion of the data. From what you posted earlier it didn?t
> > look that complex - what problems did you encounter with XML-INTO?
> >
> >
> > On Sep 8, 2015, at 2:21 PM, RPG List <rpglist@xxxxxxxxxxx> wrote:
> >
> >> Scott the 3:5000 is a typo, that should be a 1.
> >>
> >> I am using XML-SAX because I wasn't able to get XML-INTO to work.
> >> However, I found out this morning that the XML is coming in as
> UTF-8.
> >> I asked him to change that to 16 for a test, since I recall reading
> >> that RPG does not like 8.
> >>
> >> I'm open to suggestions to make this learning curve easier
> >>
> >>
> >>> Dutch,
> >>>
> >>> You are doing this:
> >>>
> >>> xml = %trim(%subSt(GetResponse:3:5000));
> >>>
> >>> Can you explain why you are doing that %subst? Wouldn't that cause
> the
> >>> '<M' at the start of the XML document to be chopped off, making
> this
> an
> >>> invalid document?
> >>>
> >>> The %trim() is not necessary, but shouldn't hurt anything.
> >>>
> >>> Can you explain why you want to use XML-SAX here instead of
> XML-INTO
> or
> >>> the XML parser included with HTTPAPI? (Which is a wrapper around
> >>> Expat)
> >>>
> >>>
> >>> On 9/4/2015 4:34 PM, RPG List wrote:
> >>>> Scott,
> >>>> I'm not sure we don't have another problem. Here's why when I step
> >>>> through the xmlhandler, I get the start_document on the first
> read,
> >>>> and then I get end_document on the second read. That's it. Its
> >>>> almost
> as
> >>>> though its never seeing the data further. I ran a test using the
> >>>> following:
> >>>>
> >>>> XML = '<xmlTest>+
> >>>> <name type="author">AS400 Sample Code/name>+
> >>>> </xmlTest>';
> >>>>
> >>>> that worked.
> >>>>
> >>>> Here is what the xml document looks like coming in:
> >>>>
> >>>> '<MMMProcess><Results><Claim>8104550</Claim><Amount>1995.83</'
> >>>> 'Amount><Code>7320</Code><Xrg>53</Xrg><MEANLOS2>2</MEAN'
> >>>> 'LOS2><Error_Code>0</Error_Code></Results></MMMProcess>'
> >>>>
> >>>>
> >>>> I just can't find what's wrong with the xml..
> >>>>
> >>>>
> >>>>> Dutch,
> >>>>>
> >>>>> The XML processing instructions ("header" as you call it) are
> >>>>> optional.
> >>>>> They are not required.
> >>>>>
> >>>>> The problem is what I said in my first reply to you. Please read
> the
> >>>>> article I linked to so you can learn how XML-SAX works.
> >>>>>
> >>>>> -SK
> >>>>>
> >>>>>
> >>>>> On 9/4/2015 3:18 PM, RPG List wrote:
> >>>>>> one additional issue I saw this morning Scott and maybe this is
> >>>>>> the problem, the incoming XML does not have what I would call a
> standard
> >>>>>> header:
> >>>>>>
> >>>>>> IE: it does not have a version or description that I see in most
> xml
> >>>>>> documents, maybe that's needed or maybe not?
> >>>>>>
> >>>>>>
> >>>>>>> Dutch,
> >>>>>>>
> >>>>>>> This looks an awful lot like a program that I wrote a long time
> ago
> >>>>>>> to
> >>>>>>> print the XML events. I would not recommend using this to
> actually
> >>>>>>> parse a document -- to parse with XML-SAX you're going to need
> >>>>>>> to create a stack of XML elements (implemented in RPG as an
> >>>>>>> array, most
> >>>>>>> likely)
> >>>>>>> and keep track of the current XML element you're working on,
> etc.
> >>>>>>> There
> >>>>>>> was another program included in that same article called
> "CustXml"
> >>>>>>> that
> >>>>>>> demonstrates this -- that program would be a better starting
> point.
> >>>>>>>
> [2]http://iprodeveloper.com/print/rpg-programming/rpgs-xml-sax-opco
> >>>>>>> de
> >>>>>>>
> >>>>>>> (use the "print" option to format the code better, Penton media
> has
> >>>>>>> screwed up the code figures in their article archive)
> >>>>>>>
> >>>>>>> Based on what you've shown us, the only thing you'd get in your
> >>>>>>> string is the name of the XML tag you're parsing. (Since that's
> >>>>>>> what's pointed to by "string" during the XML_START_ELEMENT
> >>>>>>> event.)
> >>>>>>>
> >>>>>>> You say you're getting nothing at all...? Since you're getting
> >>>>>>> it from the 'value' field, you'd need to show us the definition
> >>>>>>> and/or
> code
> >>>>>>> that
> >>>>>>> populates 'value' for us to see how that works. Funny that you
> >>>>>>> omitted that part of the code considering that your question is
> >>>>>>> about it?
> >>>>>>>
> >>>>>>> Also, is this part of a program that uses HTTPAPI or FTPAPI? If
> >>>>>>> so, I
> >>>>>>> guess we can discuss it here... if not, however, this really
> >>>>>>> doesn't
> >>>>>>> belong on this mailing list.
> >>>>>>>
> >>>>>>> -SK
> >>>>>>>
> >>>>>>>
> >>>>>>> On 9/3/2015 9:17 PM, RPG List wrote:
> >>>>>>>> I am attempting to parse out the data I'm getting from a web
> >>>>>>>> service and I'm having a little trouble.
> >>>>>>>>
> >>>>>>>> I'm using the following as my to the handler:
> >>>>>>>>
> >>>>>>>> xml = %trim(%subSt(GetResponse:3:5000));
> >>>>>>>> xml-sax %handler(xmlHandler: ignoreMe)
> >>>>>>>> %XML(xml: 'doc=string');
> >>>>>>>>
> >>>>>>>> GetResponse has the full xml string I'm expecting.
> >>>>>>>>
> >>>>>>>> my xmlhandler is defined as follows:
> >>>>>>>>
> >>>>>>>> P xmlHandler b
> >>>>>>>> D pi 10i 0
> >>>>>>>> D ignore 1a
> >>>>>>>> D event 10i 0 value
> >>>>>>>> D string * value
> >>>>>>>> D stringLen 20i 0 value
> >>>>>>>> D exceptionId 10i 0 value
> >>>>>>>>
> >>>>>>>> I then have the following code in the procedure:
> >>>>>>>>
> >>>>>>>> OutputXML.name = XML_Event_Name(event); OutputXML.data =
> >>>>>>>> *blanks;
> >>>>>>>>
> >>>>>>>> select;
> >>>>>>>> when string=*null or stringlen<1;
> >>>>>>>> // no string given...
> >>>>>>>> when stringlen>%size(value);
> >>>>>>>> OutputXML.data = '** string length invalid'; other;
> >>>>>>>> OutputXML.data = %subst(value:1:stringlen); endsl;
> >>>>>>>>
> >>>>>>>> // Change Current XML group if applicable Select;
> >>>>>>>> When OutputXML.name = 'XML_START_ELEMENT';
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> The problem is outputXML.data never has a value that I can
> see.
> >>>>>>>> Am
> >>>>>>>> I
> >>>>>>>> doing something wrong or am I missing a step?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>
> >>>
> >>>
> -----------------------------------------------------------------------
> >>> This is the FTPAPI mailing list. To unsubscribe, please go to:
> >>> [3]http://www.scottklement.com/mailman/listinfo/ftpapi
> >>>
> -----------------------------------------------------------------------
> >>>
> >>
> >>
> >>
> -----------------------------------------------------------------------
> >> This is the FTPAPI mailing list. To unsubscribe, please go to:
> >> [4]http://www.scottklement.com/mailman/listinfo/ftpapi
> >>
> -----------------------------------------------------------------------
> >
> > Jon Paris
> >
> > [5]www.partner400.com
> > [6]www.SystemiDeveloper.com
> >
> >
> -----------------------------------------------------------------------
> > This is the FTPAPI mailing list. To unsubscribe, please go to:
> > [7]http://www.scottklement.com/mailman/listinfo/ftpapi
> >
> -----------------------------------------------------------------------
> >
> >
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list. To unsubscribe, please go to:
> [8]http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
>
> Disclaimer
>
> The information contained in this communication from the sender is
> confidential. It is intended solely for use by the recipient and others
> authorized to receive it. If you are not the recipient, you are hereby
> notified that any disclosure, copying, distribution or taking action in
> relation of the contents of this information is strictly prohibited and
> may be unlawful.
> This email has been scanned for viruses and malware, and may have been
> automatically archived by Mimecast Ltd, an innovator in Software as a
> Service (SaaS) for business. Providing a safer and more useful place
> for your human generated data. Specializing in; Security, archiving and
> compliance. To find out more [9]Click Here.
>
> References
>
> 1. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
> 2. http://iprodeveloper.com/print/rpg-programming/rpgs-xml-sax-opco
> 3. http://www.scottklement.com/mailman/listinfo/ftpapi
> 4. http://www.scottklement.com/mailman/listinfo/ftpapi
> 5. http://www.partner400.com/
> 6. http://www.SystemiDeveloper.com/
> 7. http://www.scottklement.com/mailman/listinfo/ftpapi
> 8. http://www.scottklement.com/mailman/listinfo/ftpapi
> 9. http://www.mimecast.com/products/
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list. To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
>
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------