This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XSLT and Text Processing Languages
- To: xsl-list at mulberrytech dot com
- Subject: Re: XSLT and Text Processing Languages
- From: Dan Vint <dvint at slip dot net>
- Date: Fri, 8 Sep 2000 06:53:06 -0700 (PDT)
- Cc: dvint at slip dot net (Dan Vint)
- Reply-To: xsl-list at mulberrytech dot com
I'll look at this some more if you can send the DTD and a sample of what
the data might look like. What jumps off the page as "strange" OmniMark work
is the multiple elements storing the %c and not doing any processing their
immediatly. What I need to see is how deeply your elements nest, and the size
of the data being stored.
You are right that I have never had to worry about memory use, but I have seen
some simple aditions to a fast efficient program suddenly bring the whole thing
to a grinding halt. The other part of the answer maybe in another reply that
indicated OmniMark might use all avaialbe memory - although I can't prove
that either.
Do you know about the OMUG mailing list? You can submit this type of problem/
question to the general OmniMArk community and a number of users will answer
or provide help. Some of the OmniMark employees also pitch solutions there as
well.
..dan
>
>
> > This sounds like you were using some features of OmniMark=20
> > that don't exist in
> > XSLT - like shelves/arrays and probably referenents for=20
> > foward processing of
> > the document without processing it twice or requiring the=20
> > entire source document
> > in memory.
>
> Shouldn't think so. I'm no Omnimark expert so I have enclosed the =
> source at the end (it isn't long) so you can see for yourself.
>
> > released. To fix the=20
> > underscore issue all you have to do is provide an SGML=20
> > Declaration that allows
> > '_' to be used in names, by default SGML didn't allow this. A=20
> > 2 minute fix=20
> > at best.
>
> As usual, if you know how to do it. I don't.
>
>
> > Yeah and how many times do you want to go back in and try to=20
> > remember what you
> > did in that regular expression? What is nice about OmniMark=20
>
> Comments are allowed in source. This applies for Perl as well as XSLT =
> and Omnimark.
>
> [XSLT]
>
> > data. Yeah you may want or need access to the network and=20
> > ODBC connections for
> > other uses and more complete solutions but when I you have a=20
> > basic XML -> ?
> > issue, XSLT is by far easier than any of the other XML=20
> > solutions in Perl and=20
> > Java and OmniMark is at least in the SGML a complete solution=20
> > for DTD based
> > processing. Soon to have support for DTD less work.
>
> "Soon to have" is too late for us.
>
> All your stated solutions have advantages and disadvantages in one way =
> or another. =20
>
> You just appear to be in an environment where memory usage is not a =
> problem -- unfortunately I'm not.
>
> The source:
>
>
> ; down-translate
>
> global stream XmlDclFile
> global stream DTDFile
> global stream inputFileName
> global stream DataItemFile
> global stream DataLinkFile
> global stream DataItemFileName
> global stream DataLinkFileName
>
> global stream DataitemKey
> global stream DataitemType
> global stream Category
> global stream DescDisplay
> global stream DescIndex
> global stream FromDataitem
> global stream FromDatatype
> global stream ToDataitem
> global stream ToDatatype
> global stream DataLinktype
>
>
> DEFINE FUNCTION OpenFiles=20
> AS
> open DataItemFile as "%g(DataItemFileName)"=09
> open DataLinkFile as "%g(DataLinkFileName)"=09
>
> DEFINE FUNCTION CloseFiles=20
> AS
> close DataItemFile
> close DataLinkFile
>
>
> DEFINE FUNCTION PrintDataitem
> AS
> put DataItemFile =
> "%"%g(DataitemKey)%";%"%g(DataitemType)%";%"%g(DescDisplay)%";%"%g(DescI=
> ndex)%"%n"
>
> DEFINE FUNCTION PrintDatalink
> AS
> put DataLinkFile =
> "%g(FromDataitem)%";%"%g(FromDatatype)%";%"%g(ToDataitem)%";%"%g(ToDatat=
> ype)%";%"%g(DataLinktype)%"%n"
>
>
> process
> ; do xml-parse document scan "test.xml"
> ; do xml-parse document scan file "%g(DTDFile)" || file =
> "%g(inputFileName)"
> do xml-parse document scan file "%g(DTDFile)" || file =
> "%g(inputFileName)"
> ; do xml-parse document scan file "%g(inputFileName)"
> output "%c"
> done
>
> element rowset
> OpenFiles
> OUTPUT "%c"
> CloseFiles
>
> element dataitem
> set DataitemKey to ""
> set DataitemType to ""
> set DescDisplay to ""
> set DescIndex to ""
> OUTPUT "%c"
> PrintDataitem
>
> element datalink
> set FromDataitem to ""
> set FromDatatype to ""
> set ToDataitem to ""
> set ToDatatype to ""
> set DataLinktype to ""
> OUTPUT "%c"
> PrintDatalink
>
>
> element fromdataitem
> set FromDataitem to "%c"
>
> element fromdatatype
> set FromDatatype to "%c"
>
> element todataitem
> set ToDataitem to "%c"
>
> element todatatype
> set ToDatatype to "%c"
>
> element datalinktype
> set DataLinktype to "%c"
>
>
>
> element dataitemkey
> set DataitemKey to "%c"
>
> element dataitemtype
> set DataitemType to "%c"
>
> element category
> set Category to "%c"
>
> element descdspl
> set DescDisplay to "%c"
>
> element descindx
> set DescIndex to "%c"
> --=20
> Thorbj=F8rn Ravn Andersen "...and...Tubular Bells!"
> http://bigfoot.com/~thunderbear
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list