r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[XML] xml related conversations

Graham
24-Jun-2009
[750x2]
ahh ... well problem solved :)
seems not :(

>> pharmacy: make object! [
[     name: none
[     init: func [ n ][
[          self/name: n
[         ]
[    ]
>> a: load mold/all make pharmacy []
>> probe a
make object! [
    name: none
    init: func [n][
        self/name: n
    ]
]
>> a/init "testing"
** Script Error: self has no value
** Where: init
** Near: self/name: n
Maxim
24-Jun-2009
[752x2]
if you have a function inside, I think you have to do it instead 
of load it.
functions cannot be serialized... so they have to be bound somehow.
Sunanda
24-Jun-2009
[754]
Why not remove the self ? [not a metaphysical question in this context]
    ph: make object! [
        name: none
        init: func [n][
            name: n
        ]
    ]
Maxim
24-Jun-2009
[755]
seems functions can be serialized, but I don't understand why the 
self isn't being bound to the object..that is strange.
Graham
24-Jun-2009
[756]
because it won't work?
Maxim
24-Jun-2009
[757]
ok, to use do, you must forget the /all.


so the above, minus the /all should work with self... (it does in 
my tests)
Sunanda
24-Jun-2009
[758]
It worked for me, when i tried it.
Graham
24-Jun-2009
[759]
so, I have to  now do

a: do load mold make pharmacy [ ]  ?
Maxim
24-Jun-2009
[760]
a: do mold pharmacy [ ]
Graham
24-Jun-2009
[761]
a: do mold pharmacy ;
Maxim
24-Jun-2009
[762]
yes since I removed the make.
Graham
24-Jun-2009
[763]
This solution seems a little tortued :)
Maxim
24-Jun-2009
[764]
not really, the way I see it is that we are taking advantage of rebol's 
features.
Sunanda
24-Jun-2009
[765]
Do has some dangers if you do not trust the code involved. This works 
for me, and keeps the load/all (but not the self).....Even more tortured:
   a: first reduce load/all mold pharmacy
Maxim
24-Jun-2009
[766]
but note that your object's structure has to remain pretty static 
for any type of deep copy like this to be usefull.
Graham
24-Jun-2009
[767]
what do you mean?
Maxim
24-Jun-2009
[768]
talking to who?
Graham
24-Jun-2009
[769x2]
deep copy
what do you nean by structure has to remain pretty static?
Maxim
24-Jun-2009
[771x2]
well if the pharmacy object can have 1 or 5 addresses, some people 
3 different ways to refer to patients, etc... then the copy still 
has to be meddled with.
if the db returns lists of varying length and types... you're better 
off creating a structured approach to a recursive initialisation.
Graham
24-Jun-2009
[773]
I'll be creating an empty object and then populating it once created
Maxim
24-Jun-2009
[774]
ok.
Sunanda
24-Jun-2009
[775]
You may have some other issues to consider as part of building/loading 
the data structures.

For example, Version2 of the application adds some fields  not present 
in V1.

To avoid a one-off bulk conversion exercise, the load process needs 
to check each object and add missing fields with default values.
Graham
24-Jun-2009
[776x3]
I'll just change the object templates
What I need to do is to create the object, create the xml from the 
object, and then submit it via ssl to the gateway server
and then I can discard it ...
Sunanda
24-Jun-2009
[779]
That makes life a bit simpler.....Objects with year-long lifespans 
can be harder to manage :)
Graham
24-Jun-2009
[780x2]
I have configs that are saved in the db as objects ... and those 
i have to check each time :(
And when my app crashes as it does often enough, I save state as 
an object .. and that has to be checked as well when reloaded.
Sunanda
24-Jun-2009
[782]
We have similar issues at REBOL.org where just about everything [scripts, 
Ml posts, internal data structures, etc] is objects, or blocks of 
objects.

Data sanitisation and object upgrading is a major part of the gig.
Graham
24-Jun-2009
[783x3]
Interesting...
and these are stored where? In the filing system?
I'm pretty sure rebol.org doesn't use a db backend.
Sunanda
24-Jun-2009
[786]
[we're off topic for XML -- please continue in Library if you want 
more details]. Stored in text files and binary files (which are generally 
just compressed text files. No database!
BrianH
24-Jun-2009
[787x3]
Functions can be serialized, but the only word contexts that get 
restored are the global and thee function local context. Any intermediate 
contexts, like object contexts, don't get restored.
That's because the "intermediate" contexts don't really indermediate 
- they get applied in order by DO.
indermediate -> intermediate
Geomol
24-Jun-2009
[790]
In case, it's needed, RebXML spec:
http://www.fys.ku.dk/~niclasen/rebxml/rebxml-spec.html
Graham
28-Jun-2009
[791]
has anyone got a working copy of parse-xml.r from the library?
Sunanda
28-Jun-2009
[792]
Don't remember if I tried parse-xml.
I do use xml-object wich works well for me:
http://www.rebol.org/view-script.r?script=xml-object.r
Graham
28-Jun-2009
[793]
that's the complementary script ...
Sunanda
28-Jun-2009
[794]
Both parse XML. The main difference is:
-- xml-object.r uses REBOL's built-in mezzanine, parse-xml
-- parse-xml.r is an improvement for parse-xml

In theory, you could use both together.

In my experience, xml-object.r is all I need to parse XML .....  
the XML I encounter just does not need the extra oomph supplied by 
parse-xml.r
Graham
28-Jun-2009
[795x2]
Got a working example of their use?
I keep getting errors
Sunanda
28-Jun-2009
[797]
This works for me:
    do %xml-object.r
     xml-file: read %my-xml-file.xml
     xml-object: first reduce xml-to-object parse-xml xml-file

Though the resulting object does need some tidying up
Graham
28-Jun-2009
[798x2]
Hmm.  There is no 'xml-object function
oh ...sorry