From: "Andrew Martin" <[EMAIL PROTECTED]> > Here's my first try at an XML dialect for Rebol. Watch out for line breaks. > It's not very smart, just a translation of Rebol values into the XML > equivalent. There's an example at the end, using the XML dialect to generate > a .svg file and browsing it. You'll need the Adobe SVG viewer > http://www.adobe.com/svg/ to make this run on your browser.
Hi Andrew Thanks that's great :-) Last time I looked Adobe SVG player was 13Mb download. Now it's down to 2.3Mb and running nicely. You code together with make-spec and Oldes growing %make-swf.r offers REBOL scope to soon have very valuable set of refinements: write/swf write/svg write/pdf I guess the SVG could be folded into the DRAW dialect and Easy-DRAW. ./Jason > [ > Rebol [ > Name: 'XML > Title: "XML" > File: %XML.r > Author: "Andrew Martin" > eMail: [EMAIL PROTECTED] > Date: 25/Apr/2002 > ] > > make object! [ > set 'XML function [Dialect [block!] > ] [ > String Values Rule Value TagProperties Tag Block > ] [ > String: make string! 10000 > Values: make block! 10 > parse Dialect Rule: [ > any [ > set Value tag! (append String Value) > | set TagProperties path! ( > TagProperties: at to-block get 'TagProperties 3 > ) some [ > set Value [ > decimal! > | string! > | integer! > | url! > | email! > | issue! > | char! > | date! > | time! > | logic! > | money! > | none! > | pair! > | tuple! > ] ( > insert TagProperties Value > TagProperties: at TagProperties 3 > ) > ] (Value: none) opt [set Value block!] ( > TagProperties: head TagProperties > either block? Value [ > repend String [ > build-tag TagProperties > XML Value > to-tag join "/" first TagProperties > ] > ] [ > append String join build-tag TagProperties " /" > ] > ) > | set Tag word! set Value [string! | block!] ( > repend String [ > to-tag Tag > either string? Value [Value] [XML Value] > to-tag join "/" Tag > ] > ) > | set Tag word! ( > append String to-tag join Tag " /" > ) > ] > end > ] > String > ] > ] > > File: %Test.svg > > write File probe XML [ > <?xml version="1.0" encoding="UTF-8" standalone="no"?> > <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" > "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> > svg/width/height 300 300 [ > desc "Several rectangles" > rect/x/y/width/height/style 80 53 189 52 { > fill:rgb(39,44,231); > stroke:rgb(0,0,128); > stroke-width:1 > } > rect/x/y/width/height/style 0 0 189 152 { > fill:olive; > stroke:pink; > stroke-width:5; > fill-opacity:0.1 > } > g/id/fill "Group1" "red" [ > rect/x/y/width/height 10 10 30 40 > rect/x/y/width/height 30 30 30 40 > ] > ] > ] > > browse File > > halt > ] -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, without the quotes.
