× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



XML-INTO already has sensible options for dealing with foreign language character variants Mark. The fact that you have to unload into variables that you consider have "terrible names" doesn't force you to use those names in your logic. Simply re-map the structure via a pointer and you're done.

I just don't see that adding a level of complexity to the whole XML-INTO (and DATA-INTO as well) paradigm to meet a relatively small number of use cases is a good use of IBM's resources. Plus you can always use SQL which wouldn't impose the same restrictions.

Sorry - not often I disagree with your perspective - but I do on this one.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Mar 25, 2018, at 3:25 PM, mlazarus <mlazarus@xxxxxxxxxxxx> wrote:

Jon,

Sometimes we get data from external sources andwe have no control over the tag names. They might be named terribly. Or maybe in a foreign language that would make our programs more difficult to understand. Having an option to map it sequentially would be helpful, IMHO.

For Eval-Corr I think it would be extremely helpful. There are cases when I might be using an existing external DS that doesn't have the same field names as the target DS or even a /COPY that might be used throughout the system.

-mark

On 3/25/2018 11:31 AM, Jon Paris wrote:
I cannot see how that would be terribly useful Mark - optional elements and attributes would pose an interesting problem - and how would you ever know if you'd got it right?

I wish someone could explain to me why the current method of name/structure mapping is apparently so problematic? It seems to me the most intuitive and easy to understand - why make it harder?


Jon Paris

www.partner400.com
www.SystemiDeveloper.com


On Mar 25, 2018, at 12:13 AM, mlazarus<mlazarus@xxxxxxxxxxxx> wrote:

Jon,

How about by relative position? I would like this as an option for the Eval-Corr keyword, too.

-mark

On 3/24/2018 12:46 PM, Jon Paris wrote:

Not wishing to be rude to anyone - but I have never understood why people have so many problems understanding this. If there wasn't a requirement for the names/structure to match how on earth could it possibly work without some additional parameter providing a "this element goes in this field" mapping?


Jon Paris

www.partner400.com
www.SystemiDeveloper.com



On Mar 24, 2018, at 8:26 AM, Vernon Hamberg<vhamberg@xxxxxxxxxxxxxxx> wrote:

I admit that sometimes IBM's documentation has to be read a few times to get what it means - saying that, here is something pretty far down the opening page for XML-INTO:



* The XML data for an RPG data structure is expected to have an XML
element with the same name as the data structure and child
elements and/or attributes with the same names as the RPG subfields.



The key phrase, "same name", is the thing - and at first it doesn't seem to have the strength of the requirement we have here - but it does.

Anyhow, I have been a "victim" of this at the beginning of using this op-code, so you are not alone.

Regards
Vern

On 3/23/2018 10:51 AM, SCOURTNEY@xxxxxxxxxxx wrote:


Thanks a million Craig and Barbara ...

I read a load of documentation but nothing stated that I needed to use the original element tags ..

Just tried it out and eureka ...

Thanks ...



-----Ursprüngliche Nachricht-----
Von: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im Auftrag von Craig Richards
Gesendet: Friday, 23 March 2018 16:48
An: RPG programming on the IBM i (AS/400 and iSeries)
Betreff: Re: RPGLE XML-INTO

Well ok, since I did most of it already - here is how you could do it in one xml-into:

Dcl-S XMLDoc VarChar( 512 );

Dcl-DS docID Qualified Template;
ProprietaryDocumentIdentifier Char( 26 );
End-Ds;

Dcl-DS genDate Qualified Template;
datetimestamp Char( 26 );
End-Ds;

Dcl-DS ASN Qualified;
thisDocumentGenerationDateTime LikeDS( genDate );
thisDocumentIdentifier LikeDS( docID );
End-Ds;

XMLDoc = '<ASN>'
+ '<thisDocumentGenerationDateTime>'
+ '<DateTimeStamp>19.03.2018 08:50:55</DateTimeStamp>'
+ '</thisDocumentGenerationDateTime>'
+ '<thisDocumentIdentifier>'
+ '<ProprietaryDocumentIdentifier>87323619.03.2018
08:50:55</ProprietaryDocumentIdentifier>'
+ '</thisDocumentIdentifier>'
+ '</ASN>';

Xml-Into ASN
%Xml( XMLDoc : 'path=ASN case=any allowmissing=yes' );

regards,

Craig

On 23 March 2018 at 15:32, Craig Richards<craig@xxxxxxxxxxxxxxxx> wrote:



Sean,

You need to make sure at the level you path to that your xml elements
match the data structure subfield names.

here is an example using 2 separate xml-into with your data.

You could do it with one xml-into if you build a more nest
datastructure but you'd need to match more subfield names to the xml elements:

I'm not staying this is the best way to parse that document, I'm a bit
pressed for time but this example will show you something that works


Dcl-S XMLDoc VarChar( 512 );

Dcl-DS thisDocId_T;
ProprietaryDocumentIdentifier Char( 26 );
End-Ds;

Dcl-DS docGenDate_T;
datetimestamp Char( 26 );
End-Ds;

Dcl-DS ASN Qualified;
docGenDate LikeDS( docGenDate_T );
thisDocid LikeDS( thisDocId_T );
End-Ds;

XMLDoc = '<ASN>'
+ '<thisDocumentGenerationDateTime>'
+ '<DateTimeStamp>19.03.2018 08:50:55</DateTimeStamp>'
+ '</thisDocumentGenerationDateTime>'
+ '<thisDocumentIdentifier>'
+ '<ProprietaryDocumentIdentifier>87323619.03.2018
08:50:55</
ProprietaryDocumentIdentifier>'
+ '</thisDocumentIdentifier>'
+ '</ASN>';

Xml-Into ASN.docGenDate
%Xml( XMLDoc : 'path=ASN/thisDocumentGenerationDateTime
case=any allowmissing=yes' );

Xml-Into ASN.thisDocid
%Xml( XMLDoc : 'path=ASN/thisDocumentIdentifier case=any
allowmissing=yes' );

regards,
Craig


On 23 March 2018 at 14:36,<SCOURTNEY@xxxxxxxxxxx> wrote:



Hello all,



I am playing around with XML-INTO and for some reason cannot get this
example to work :

I keep getting : RNX0353 The XML document does not match the RPG
variable;



Example XML



<ASN>

<thisDocumentGenerationDateTime>

<DateTimeStamp>19.03.2018
08:50:55</DateTimeStamp>

</thisDocumentGenerationDateTime>

<thisDocumentIdentifier>

<ProprietaryDocumentIdentifier>87323619.03.2018
08:50:55</ProprietaryDocumentIdentifier>

</thisDocumentIdentifier>

</ASN>



RPG CODE





d ASN ds qualified

d docGenDate LikeDS(docGenDate_T)

d thisDocid LikeDS(thisDocId_T )



*-----------------------------------------

* thisdocumentgenerationdatetime

*-----------------------------------------

d docGenDate_T ds

d datetimestamp 26

*-----------------------------------------

* thisdocumentidentifier

*-----------------------------------------

d thisDocId_T ds

* proprietarydocumentidentifier

d docId 26



XML-INTO ASN %XML(XML_Source: 'doc=file +

case=any +

allowmissing=yes');



Any help would be greatly appreciated.





Mit freundlichen Grüßen / Kind regards / Bien à vous,



Sean


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.