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



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.


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.