[REBOL] Re: object2XML
From: bry:itnisk at: 9-Mar-2004 21:52
Well I'm reasonably knowledgable in matters
of xml usage, etc. although my rebol
knowledge is shit, given that I just use it
for small scripting hacks here and there
if I use gavin's xml-object and a function
to clean-up the output a bit:
doc-tree: func[unpickedDom][pick third
unpickedDom 1]
I get
>> xmldom: parse-xml read %t.xml
XML Version: 1.0
== [document none [["tag"
["r" "here" "xmlns:stuff" "http://www.x.com"]
["^/stuff here ^/" ["stuff:p" ["hi" "test"]
[["blah" n
one [...
>> t: doc-tree xmldom
== ["tag"
["r" "here" "xmlns:stuff" "http://www.x.com"]
["^/stuff here ^/" ["stuff:p" ["hi" "test"]
[["blah" none ["more"]]]]
^/
...
t is actually
["tag"
["r" "here" "xmlns:stuff" "http://www.x.com"]
["^/stuff here ^/" ["stuff:p" ["hi" "test"]
[["blah" none ["more"]]]] "^/
[
blah" none none] "^/"]]
now in this case I don't think the
namespaces are a problem, I don't understand
xml-object well enough to know if it fails
on namespace problems, but a namespace
function could be built easily enough to go
through the block getting all referenced
namespaces and checking against those
references whenever a usage is encountered.
Of course it should be noted that the
namespaces are placed in a block with the
attributes but I don't think that is a major
problem although there should of course be
functions for returning just attributes
without namespaces.
What I find more irritating is the textnodes:
I have 4 textnodes:
^/stuff here ^/
["more"]
^/
and again
^/
now none is used in an empty tag, but "^/"
is used for any empty textnode, and "^/
string^/" seems to be used for any textnode
that has a sibling node, whereas textnodes
that are only children are represented as a
block with one string value. it would
probably be better to just do that as
another ["^/string value^/"]
One of the things that should probably be
considered for any functions for working
with xml in rebol is optimizations for
working with various types of xml, for
example a document like structure such as we
see above (for which I would say the rule is
that a document structure has multiple
textnodes, that an element which has as a
direct child a textnode and an element is a
document structure) as opposed to the more
programmer friendly data type structure:
<customers>
<customer>
<name><fname>John</fname>
<lname>Simpson</lname>
</name>
.....
</customer>
</customers>
> Hi Robert,
>
> IMHO for one thing, it is like
the "regular expression" (RE) topic which
crops up now and
then.
> People need an easy migration path.
Anyone who has been convinced that xml is
the end of
the world in ascii data sharing, will be
more easily lured if that is more completely
supported.
> for myself, I have found xml is nice to
support at least on import because many open
source and on-line tools use XML as an
export format. Things like namespaces, I
have
read, will obfuscate rebol's xml engine...
maybe we are simply lacking in the more
advanced features which are getting more
common than they used to be...
> I really am not an xml genius, I just
noticed that it is a trendy and competent
ascii
format, maybe if the rest of the world is
using it... we should at least support it
conveniently so that the phrase:
> "REBOL is the glue that binds things
together"
> would hold more meaning with regards to
other tools which already expect their data
to be
bound to other tools...
> maybe the fact that no one has done a
complete xml port is that no guru has spent
the
better part of a month or two to do it.
> My guess is that many would benefit, but
not that many are abilitated to actually do
it...
so they eventually turn to another solution..
> in the near future, I will have to parse
several MBs of textual xml data and I will
see at
that point how rebol handles it. until
then, I'm just an interested reader...
>
> cheers! :-)
>
> -MAx
> ---
> "You can either be part of the problem or
part of the solution, but in the end, being
part
of the problem is much more fun."