× 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.



Charles,

We routinely use XML-INTO to parse 1M XML variables into DS 100's of 1,000's of times per day. Our XML communicates data from a web-implementation and can have hundreds of repeating elements within.

I've written code to generate d-specs for an XML target DS that is driven by a spreadsheet representation of the XML. It would be cool to have a DS generator driven by the XML, but I haven't needed to create one.

Steve Needles

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Charles Wilt
Sent: Wednesday, May 18, 2016 8:16 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <rpg400-l@xxxxxxxxxxxx>
Subject: Re: Varying fields in a data structure

Jon,

Guess I'm guilty of repeating rumors. I've always heard XML-INTO isn't
the right choice for large complex documents.

I'll admit that I haven't really played with it much. Everything I've seen has been pretty basic. Thinking of trying to build a matching DS for a more complex doc makes me shudder.

But I'll take your word for it if your experience is that it's a valid choice.

What what large docs? Any personal experience with docs that are to large for XML-INTO?

Interesting comment about the new XML SQL stuff. Admittedly, I have't tried it yet. Looking into it a little deeper, I can see where "annotating" an existing schema could take some effort. Let alone building one from scratch. It'd be nice if RDi's XML perspective offered some built in support for this.

A "wizzard" of some sort would be great. Including your d-spec generator.

It just seems like it should be easier than it is. :)

Charles



On Tue, May 17, 2016 at 5:39 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

I keep seeing this type of ant-XML-INTO post from you Charles and I’d
love to know why you feel this way.

Admittedly there are situations where the DS for XML-INTO gets very
complex - but once done the rest is trivial. XML-SAX on the other hand
needs a whole bunch of (tedious) programming to achieve anything. I’ve
also seen some horrible examples where an attempt to “simplify” the
processing could end up producing erroneous results. As you say it is
useful when you just want to grab a few elements out of the doc but
otherwise it can get nasty very quickly.

As to the SQL “solution” - even many of IBM’s DB2 folks like to
pretend that piece of nastiness doesn’t really exist. Maybe it is
partly because I find SQL syntax so awkward to begin with, but the SQL
stuff is just plain ugly. Take Daniel’s example that you referenced.
That’s about 5 times the code needed to do the same task with XML-INTO
and only gets worse the more complex the document (nested repeating elements for example).

One thing I’ve had on the back burner for a while is a D-spec
generator for XML-INTO, one of these days I’ll get that finished.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On May 17, 2016, at 4:57 PM, Charles Wilt <charles.wilt@xxxxxxxxx>
wrote:

You've got your answer...

But wanted to add that I'd reconsider building a DS to store the
data
from
the XML.

If you're planning to use XML-INTO, don't. For simple docs, it's great.
Not so much for complex ones. Instead, use the SAX Parser;
especially if you're only really interested in part of the document.

If you really need all the data, consider looking into the various
XML
SQL
functions built into the DB now-a-ways.

In particular, if the XML doc contains RDB data, take a look at
XDBDECOMPXML()

http://daniel-vesely.blogspot.com/2012/02/xml-decomposition-on-ibm-i71
.html

Also the XMLTABLE() function...

Charles





On Tue, May 17, 2016 at 4:14 PM, John R. Smith, Jr. <
smith5646midrange@xxxxxxxxx> wrote:

I am building a very complicated (some might say convoluted) data
structure
in an RPG program to handle an XML document (the XSD is a couple
thousand
lines). It will have multiple levels of nested data structures and
multiple dimensions on some of the levels.



My question is if I create a data structure like shown below, since
Field1
and Field2 are varying, is my data structure always consuming 514
bytes
as
it shows in the compile listing or if I store "Hello" in Field1 and
"World"
in Field2, is it only using 14 bytes? I'm trying to figure out if
I can use a default length of maybe 255 or if I should spend the
time trying to figure out what the max size of each field should
be.



Program

d Data ds

d Field1 255 varying

d Field2 255 varying



Compile listing

DATA DS(514)

FIELD1 A(255)

VARYING(2)

FIELD2 A(255)

VARYING(2)

--
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: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
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: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
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: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
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: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.
________________________________
This communication, including attachments, is confidential, may be subject to legal privileges, and is intended for the sole use of the addressee. Any use, duplication, disclosure or dissemination of this communication, other than by the addressee, is prohibited. If you have received this communication in error, please notify the sender immediately and delete or destroy this communication and all copies.

TRVDiscDefault::1201

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.