[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date
][Minivend by thread
]
Re: MV4.0 and XML
****** message to minivend-users from mikeh@minivend.com ******
Quoting Rob Zimmerman (rob@readysite.net):
>
> I am just curious as to how XML is going to be integrated into MV4.0. I have
> been taking a look at DataChannels methods for converting a tab deliminated
> files to XML files. Is this how XML will be integrated?
>
After doing quite a bit of work on XML/minivend 4, I must sheepishly
backtrack a bit.
My original intent was to use XML::Parser, which is blazingly fast.
But after looking at the syntax requirements and consulting with someone
who really knows about XML and has implemented it in a large system,
I felt that the ordinary user would have trouble with the incredibly
tough syntax requirements of XML. So the next strategy was to "compile"
pages into XML and then run them. Upon investigation, there are some
difficulties with the whole concept that are much too complex to get into
here. Also, in the process of investigating this I managed to speed up
the current parser by 10-60% depending on context.
Suffice it to say I have still not determined what will be done, but
it is a distinct possiblity that XML will not be a part of MiniVend 4.
But the good news on performance and for embedded Perl programmers
will be an easy interface like:
[perl]
$name = $Tag->value('name');
# transpose
$title = $Tag->value('title');
$result = $Tag->value( {
name => 'name',
set => "$title $name"
}
);
# Update userdb
$result = $Tag->data( {
table => 'userdb',
column => 'name',
key => $Tag->session( 'mv_username'),
value => $result,
}
);
return "Name is now $result, and it is updated in the user database.";
[/perl]
There will also be a row-setting interface that will allow looping
over a database or search with easy reading/update of sets of columns.
[perl]
my $accessor = $Tag->accessor(
{ table => 'userdb', column => 'expiration', }
);
my $settor = $Tag->settor(
{ table => 'userdb', column => 'expiration', }
);
for (qw/ joe jane jim june /) {
my $expire = $accessor->($_)
next if $expire;
$settor->($_ => "20010101");
$out .= "Changed $_ expire to 20010101\n";
}
return $out;
[/perl]
--
Mike Heins http://www.minivend.com/ ___
Internet Robotics |_ _|____
131 Willow Lane, Floor 2 | || _ \
It's a little-known fact Oxford, OH 45056 | || |_) |
that the Y1K problem caused <mikeh@minivend.com> |___| _ <
the Dark Ages. -- unknown 513.523.7621 FAX 7501 |_| \_\
-
To unsubscribe from the list, DO NOT REPLY to this message. Instead, send
email with 'UNSUBSCRIBE minivend-users' in the body to Majordomo@minivend.com.
Archive of past messages: http://www.minivend.com/minivend/minivend-list