• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp212
r3wp1716
total:1928

results window for this page: [start: 301 end: 400]

world-name: r3wp

Group: RAMBO ... The REBOL bug and enhancement database [web-public]
Oldes:
9-Feb-2005
#3626 - path-thru - I'm using "_query_" instead of #"?" char in the 
path and "_atport_" to recognize different port of the url
Romano:
9-Feb-2005
#3623 the proposed split-path fails in some situations
Romano:
9-Feb-2005
rebol[
	Author: "Romano Paolo Tenca"
	Date: 10/02/2005
]
split-path-3: func [

 "Splits a file or URL pos. Returns a block containing path and target."
    target [file! url!]
	/local dir pos
][
	parse/all target [
		[#"/" | 1 2 #"." opt #"/"] end (dir: dirize target) |
		pos: any [thru #"/" [end | pos:]] (

   all [empty? dir: copy/part target at target index? pos dir: %./]
			all [find [%. %..] pos: to file! pos insert tail pos #"/"]
		)
	]
	reduce [dir pos]
]
Romano:
9-Feb-2005
it also fix this split-path bug:
>> split-path %""
** Script Error: Out of range or past end
** Where: split-path
** Near: last target
>> split-path-3 %""
== [%./ %""]
Anton:
10-Feb-2005
Or perhaps you think it could cause problems of automatic decoding 
when ( if it ever happens ), the public cache path is converted back 
to a URL! ?
Anton:
10-Feb-2005
eg: path-thru http://www.dom.com/cgi.r?hello
;== view-root/public/www.dom.com/cgi.r/hello
Anton:
10-Feb-2005
I guess you can't, unless you know more. I just leapt at that idea 
because I thought it would reduce the amount of repetition in path 
and filenames.
Anton:
10-Feb-2005
eg: path-thru http://www.dom.com/cgi.r?hello
;== view-root/public/www.dom.com/cgi.r_query/hello
Anton:
15-Feb-2005
Who thinks that maybe load parser should be mroe relaxed with paths 
? eg:
>> view-root/public/
** Syntax Error: Invalid path -- public/
** Near: (line 1) view-root/public/
Anton:
15-Feb-2005
The parser doesn't know that VIEW-ROOT is a valid directory name, 
so why should it assume that it's a bad path ?
Carl:
18-Feb-2005
Yes... that is the main issue: since a path can be represented as 
a block, how does the trailing slash get indicated in a block?
Carl:
18-Feb-2005
Since a slash itself is not allowed to be a symbol within a path 
(in other words you can write foo/divide but not foo//) perhaps we 
can simply use a / at the tail of the block to indicate that it has 
a trailing /.  Something to consider.
Anton:
19-Feb-2005
Not sure about the block thing (examples?), but It think it should 
cause an error only when such a path is evaluated.
Anton:
20-Feb-2005
About #3626  Quick PATH-THRU patch to handle CGI query strings

I am not sure anymore. :-/ I think the current implementation is 
the most "perfect" one, and it should be left up to developers to 
patch for particular cases.
Anton:
20-Feb-2005
INMOLD: func [

 format [block!] "internal formatting to apply eg. [newline all skip 
 3]"
	value [block!] "block you would like formatted"
	/local path code
][
	; wrap NEW-LINE
	code: reduce [path: to-path 'new-line 'value true]
	parse format [
		any [
			'remove (poke tail code -1 false)
			| 'newline () ; redundant
			| 'all  (append path 'all)
			| ['skip set n integer!] (append path 'skip append code n)
		]
	]
	do code
]
Anton:
22-Feb-2005
Romano, SPLIT-PATH-3:
Probably not really a big problem, but:
split-path-3 http://  ;== [http:/ %/]
split-path-3 http:/   ;== [%./ %http:/]

Probably more of a problem (inconsistant ?):

split-path-3 %""   ;== [%./ %""]    ; <-- better if second item of 
result is none ?
split-path-3 %"/"  ;== [%/ none]
split-path-3 %"."  ;== [%./ none]
split-path-3 %"a" ;== [%./ %a]
Romano:
22-Feb-2005
Anton, that are the results of standard split-path that i replicated.The 
only difference is in %"" which gives an error on split-path and 
that result on split-path-3. I have some problems on how path are 
splitted by split-path in some cases, but to change them is a problematic 
thing, because all handlers knows how split-path works and get their 
decisions on it. I am not sure that the better result is [%./ none] 
in the %"" example, because the starting path (%"") is a file of 
name "" like in the %"a" example, where the starting path is a file 
of name "a". In the other 2 examples (%/ %.) the starting path is 
a DIR not a file (and the file is "exactly" none).
Romano:
22-Feb-2005
Anon it is hard to say what the result should be in these cases:
	split-path http:// 
	split-path http:/ 

but usually (i think) split-path is not called directly on url, before 
they are splitted with parse-url or with decode-url.
Anton:
27-Feb-2005
Hard to fix though, because I think a LOAD is done on each path element.
Romano:
27-Feb-2005
Anton: good point, i think that the path loader could be more relaxed 
on 2nd to last slot.
Group: Core ... Discuss core issues [web-public]
Volker:
27-Jan-2005
Thats something Carl blogged about: Idioms http://www.rebol.net/article/0101.html
would be:
push -> insert stack value
pop -> remove stack ; does not return the value. 

top -> stack/1 ; with path, the if empty? stack[return none] is implicit
Anton:
8-Feb-2005
That is putting a GET-WORD! in the path. (eg.  :record-num   )
Louis:
22-Feb-2005
Is there a command to give the path to the presently used user.r 
file?
Anton:
22-Feb-2005
One of these will probably help you:
>> system/options/path
== %/D/Anton/Dev/Rebol/View/
>> system/options/home
== %/D/Anton/Dev/Rebol/View/
>> system/options/boot
== %/D/Anton/Dev/Rebol/View/rebview1257031e.exe
Louis:
22-Feb-2005
Thanks, Anton.  Rebol seems to be looking for user.r in system/options/home 
or system/options/path.  It would seem to be more practical for it 
to look in system/options/boot.
Anton:
22-Feb-2005
Louis, I think: 

system/options/path  is the current directory of the shell environment 
where rebol was started from.

system/options/home  is the rebol starting directory, where it looks 
for user.r etc. In WinXP this value is taken from the registry at 
HKCU\Software\Rebol\View\HOME, but only for full release versions 
(like Rebol/View 1.2.1.3.1). I imagine there is a HOME environment 
var set in *nix.
Robert:
25-Feb-2005
>> split-path %/c/test/bla.txt
== [%/c/test/ %bla.txt]
>> split-path %/c/test/bla/
== [%/c/test/ %bla/]

Isn't this inconsitent? I think the last should give:
== [%/c/test/bla/ none]
Romano:
25-Feb-2005
and yes Robert,  i do not like split-path behaviour in many cases 
(see RAMBO discussions about this), but i do not think that your 
request is good, from my pov 
	%a/b/
should give
	%a/   %b/              = the dir b inside the dir a
or
	%a/b/   %./	     = the current dir inside the dir %a/b/

this is inconsistent with:

	>> split-path %./ ; == [%./ none]

but i think the last behavior should change in this

	%./    %./
Romano:
25-Feb-2005
none should never appear in a splith-path result
Anton:
26-Feb-2005
Well, maybe split-path is not so useful sometimes, but at least it 
says what it is doing :) I think what we want most of the time is 
the dir-part and the file-part of a path (actually these are functions 
I use). I think they are more useful in general. The problem is in 
coming up with a good name to describe this behaviour..... maybe: 
   to-dir-file-parts %my/path  ;== [%my/ %path]    ?
Group: Script Library ... REBOL.org: Script library and Mailing list archive [web-public]
Anton:
22-Jul-2010
Link as above not usable by rebol; because PATH-THRU has simplistic 
algorithm for mapping url -> filepath, isn't it?
Anton:
22-Jul-2010
But yeah, I think it should be a bit less work to change rebol.org's 
urls than improve rebol's path-thru.
Group: Parse ... Discussion of PARSE dialect [web-public]
Graham:
20-Mar-2005
I've got this rule to parse email headers which only works some of 
the time.

				header-rule: [
					thru "^/Date:" copy m-date to newline |
					thru "^/From:" copy m-from to newline |
					thru "^/Subject:" copy m-subject to newline |
					thru "^/To:" copy m-to to newline |
					thru "^/Return-path: "
				]
				m-subject: m-date: m-from: m-to: none

				parse header [some header-rule]
Graham:
20-Mar-2005
Ahh...well, invariablly the first line of the header is "Return-path:" 
so i'ts not a problem.
Graham:
7-Jun-2005
what you could do, is extract Didier's implementation of the TOP 
command, and then get the first line of each header in your mailbox. 
 If it has the return-path set to <>, then note it in a list.  When 
finished, go thru and issue deletes on all of those.
Volker:
13-Aug-2005
questions: 
-long string? then better copy instead of change/part
-more patterns in same path, then not 'to.
Group: MySQL ... [web-public]
Pekr:
23-Aug-2005
btw - other site will use rebol plus mysql script in terms of Cron 
job - how should I launch it? I hope they know how to define Cron 
job, as I don't know ... should it be similar to CGI script? Or? 
Simply "cron script" calls something like \path\to\rebol\rebol \path\to\my-script\myscript.r? 
What arguments eventually? -s?
Group: SDK ... [web-public]
[unknown: 5]:
5-Apr-2005
Oh I think I remember that bug also where there is no path
Sunanda:
15-May-2005
Not see it under REBOL.
But is sounds like you have an older (or newer!) copy of MFC42.

Or you may have both in different folders, and the wrong one is first 
in the path.

Either way, the first step usually is to get the appropriate version 
to execute.
Geomol:
9-Aug-2005
I have a problem, if I in a DOS-prompt under windows try to run a 
REBOL program built with REBOL/SDK into a .exe file, and the program 
is not in current directory, but has to be found along the PATH. 
I get the error
Program error: invalid encapsulated data


I've tried under Windows2000 and WinXP. Can others confirm this error? 
(Just make a simple REBOL-script with e.g. a print and try it.)
Geomol:
9-Aug-2005
The problem (bug) can also be verified with altme.exe. Just setup 
path in the DOS-prompt to where, altme is located, and type: altme
Gabriele:
9-Aug-2005
I think REBOL needs a full path to itself.
Geomol:
10-Aug-2005
It works, if you place yourself in the same directory as the .exe 
file and don't give full path. It also works, if you place yourself 
anywhere and give full or relative path. As I see it, the error is 
only, if you're not in the same directory as the .exe file, and the 
system finds it along the PATH environment variable. Maybe I should 
report it in RAMBO!?
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Vincent:
20-Mar-2005
tested 'request-file - spotted a bug:

when one uses a filename without a path in it, it causes an error.

ie: %my-file.r, split-path gives [%./ %my-file.r], the path isn't 
cleaned, local-request-file don't like "./" -> error
an easy fix is to uses 'clean-path before 'split-path: 
if file [
    set [path file] split-path clean-path path
]

that said, 'request-file works well (tested all /options,) and is 
a lot cleaner and smaller that the VID version :-)
shadwolf:
31-Mar-2005
being simple is not only a better CPU usage but it offers too some 
rest and easy path to our totured brains ;)
shadwolf:
11-Apr-2005
this means the complete change of the feel event switch for the header 
to adapt them to the new path face/parent-face/parent-face ;)
shadwolf:
11-Apr-2005
as I inserted 2 countainers to hold header buttons in tab panel I 
had to recode lot of path to be able to locate the convienient widgets 
:=
Ashley:
28-Apr-2005
Latest build available at: http://www.dobeash.com/files/RebGUI-021.zip

Highlights include:

	- Specification dialect is now VID compatible (and 35% slower)
	- request-color and request-date added
	- Span attribute changed from tuple to issue
	- Couple of minor fixes
	- %tour.r has an additional "Requestors" tab


I wanted to get this build out before folks went too far down the 
converting from VID to RebGUI and vice versa path. If a parse expert 
(I'm not one) could suggest performance improvements for the main 
display parse loop that would be great.
Graham:
30-Apr-2005
listview/picked:
["Line 1:1" false logo.gif logo.gif "Line 5:01"]
** Script Error: Cannot use path on none! value
** Where: do-body
** Near: wid/color: gold
last-sel: f-ind
insert
Group: !Uniserve ... Creating Uniserve processes [web-public]
DideC:
9-Mar-2005
Rebol [

 title: "example of starter script that act the same with View after 
 encap"
]

#include %/e/rebol/sdk/source/mezz.r
#include %/e/rebol/sdk/source/prot.r
#include %/e/rebol/sdk/source/view.r

;***** This is the function that make the tricks
#include %uniserve/libs/encap-fs.r 
if not value? 'encap-fs [do %uniserve/libs/encap-fs.r]

set-cache [
	%uniserve/uni-engine.r		[#include %uniserve/uni-engine.r]
	%uniserve/libs/headers.r	[#include %uniserve/libs/headers.r]
	%libs/log.r					[#include %uniserve/libs/log.r]
	%uniserve/protocols/HTTP.r	[#include %uniserve/protocols/HTTP.r]
	
	%your-file.r					[#include %path/to/your-file.r]
	;...
]

;***** Start
do-cache %uniserve/uni-engine.r
do-cache %uniserve/libs/headers.r

UniServe-path: %./uniserve/
logger/level: none


;***** You have to load protocols and services before starting Uniserve
do-cache %uniserve/protocols/HTTP.r

;***** Uniserve Initialise
; Require like this to not loading protocols/services from disk
uniserve/boot/no-loop/with []

;***** Your script initialise
;...
DideC:
9-Mar-2005
encap-fs: context [
	cache: path: none
	root: system/script/path

	get-cache: func [file][
		path: parse file "/"	
		remove-each dir path [dir = ".."]
		file: to-file path	
		either file [
			either file: select cache file [file][load file]			
		][
			make error! join "Cannot access : " file
		]
	]
	
	set 'encap? to-logic select system/components 'decap

	either encap? [
		set 'set-cache func [list [block!] /local bin file][
			cache: list
			;cache: make block! 16
			;parse list [
			;	some [
			;		(bin: no) opt ['binary (bin: yes)]
			;		set file file! (
			;			repend cache [
			;				file
			;				either bin [read/binary file][read file]
			;			]
			;		)
			;	]
			;]
		]
		set 'do-cache func [file [file!]][do get-cache file]
		set 'load-cache func [file [file!]][load first get-cache file]
		set 'read-cache func [file [file!]][]
	][
		set-cache: none
		do-cache: :do
		load-cache: :load
		read-cache: :read
	]
]
Terry:
5-Feb-2006
Althogh.. it struggling with j<avascript src="" .. > files in the 
header?  If I paste the code, it worsk, but if I SRC= .. it doesn't.. 
no matter what path I use.
Group: XML ... xml related conversations [web-public]
Christophe:
8-Nov-2005
Has anybody think about a rigth data structure to use with a SAX-implementation 
? I was thinking of the hash! and its performence for level 1 data 
retrieval. Perhaps an appropriate data structure could be a binary 
array labeling each element with a concatenation of the access path. 
Like this:
<aaa attaaa="aaa1"><bbb>contentbbb</bbb></aaa> 

becomes

make hash! [aaa id2 aaa-attaaa "aaa1" aaa-bbb "contentbbb"]

based on a mapping table

 make hash! [id1 aaa id2 bbb]

or something similar...

just a rough though !
Maxim:
25-Apr-2006
Its news to me, but in my useage, Its easier for me to have rebol 
loaded blocks, cause I can use path notation directly, in order to 
access the data, just as if they where objects.
Maxim:
28-Apr-2006
ok, so you pre-specify how path /aaa/bbb/ccc/ specifies data in another 
tree  /xxx/yyy/zzz ?
Maxim:
5-Jun-2007
I did not do it using parse for lack of knowledge ... and also the 
fact that schema and PARSE do not have the same traversal mechanisms... 
but its still very fast and error report is extremely precise (it 
gives you the full path of the error!)
Maxim:
23-Jun-2009
a modified version of John's rebXML  tools.  changed the output structure 
to allow rebol's path notation to be used to traverse the loaded 
xml.
Maxim:
23-Jun-2009
its just that in my tests, either you can create, read or set some 
of the datatypes via path notation.  so only string based types allow 
full XML qualification.
Graham:
23-Jun-2009
rebelxml gets confused if there is more than one path with the same 
name
Graham:
23-Jun-2009
even if the full path is specified.
CharlesW:
1-Aug-2009
Here is the snipped of XMl:   <?xml version="1.0"?>

<xts:sports-content-set xmlns:xts="http://www.xmlteam.com"query-date-time="20090724T011802-0400" 
query-string="http://fod.xmlteam.com/api-trial/getDocuments?doc-ids=xt.9140271-box"
hostname="fod.xmlteam.com" result-count="1" error-count="0" elapsed-time="64.2ms"><sports-content 
xmlns:str="java.lang.String" xmlns:dt="http://xsltsl.org/date-time"
xmlns:xts="http://www.xmlteam.com"xmlns:exsl="http://exslt.org/common"
path-id="baseball/l.mlb.com/event-summary/xt.9140271-box" xts:systemid="MLB_Boxscore_XML" 
xts:tsnid="9140271">

  <sports-metadata xmlns:fs="java.io.File" date-time="20090323T193000-0400" 
  doc-id="xt.9140271-box" xts:tsnslug="AAX%BOX-LOS-ANA" language="en-US" 
  revision-id="l.mlb.com-2009-e.26882-event-stats-sportsnetwork.com" 
  fixture-key="event-stats" document-class="event-summary" fixture-name="Box 
  Score">

    <sports-title>Boxscore: LA Angels vs. Los Angeles</sports-title>
    <sports-content-codes>

      <sports-content-code code-name="The Sports Network" code-key="sportsnetwork.com" 
      code-type="publisher"/>

      <sports-content-code code-name="XML Team Solutions, Inc." code-key="xmlteam.com" 
      code-type="distributor"/>

      <sports-content-code code-type="sport" code-key="15007000" code-name="Baseball"/>

      <sports-content-code code-type="league" code-key="l.mlb.com" code-name="Major 
      League Baseball"/>

      <sports-content-code code-type="season-type" code-key="pre-season"/>
      <sports-content-code code-type="season" code-key="2009"/>

      <sports-content-code code-type="priority" code-key="normal"/>

      <sports-content-code code-type="conference" code-key="c.national" 
      code-name="National"/>

      <sports-content-code code-type="conference" code-key="c.american" 
      code-name="American"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.11" code-name="Los 
      Angeles Angels"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.28" code-name="Los 
      Angeles Dodgers"/>

      <sports-content-code code-type="action-listing" code-key="complete"/>
    </sports-content-codes>
  </sports-metadata>
  <sports-event xmlns:fs="java.io.File">

    <event-metadata xmlns:xte="www.xmlteam.com/xte" date-coverage-type="event" 
    event-key="l.mlb.com-2009-e.26882" date-coverage-value="l.mlb.com-2009-e.26882" 
    event-status="post-event" duration="2:58" start-date-time="20090323T160500-0400" 
    xts:game-of-day="1">
      <sports-content-codes/>
      <event-metadata-baseball/>
      <site>
        <site-metadata>
          <home-location/>
        </site-metadata>
        <site-stats attendance="8704"/>
      </site>
    </event-metadata>
    <team>
      <team-metadata team-key="l.mlb.com-t.28" alignment="away">
        <name first="Los Angeles" last="Dodgers"/>
      </team-metadata>

      <team-stats score="4" score-opposing="10" event-outcome="loss">
        <sub-score period-value="1" score="1"/>
        <sub-score period-value="2" score="0"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="3"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="0"/>
        <sub-score period-value="7" score="0"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9" score="0"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="4" at-bats="36" hits="9" rbi="4" 
          bases-on-balls="2" strikeouts="4" doubles="0" triples="0" home-runs="0" 
          grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="1" stolen-bases-caught="1" hit-by-pitch="0" left-on-base="7"/>

          <stats-baseball-defensive errors="0" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="10" hits="13" earned-runs="10" 
          bases-on-balls="6" strikeouts="8" era="10.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="0" losses="1"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.11965">

        <player-metadata position-event="8" player-key="l.mlb.com-p.11965" 
        status="starter">
          <name first="Matt" last="Kemp"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="1" hit-by-pitch="0" average=".271"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
CharlesW:
1-Aug-2009
I<?xml version="1.0"?>

<xts:sports-content-set xmlns:xts="http://www.xmlteam.com"query-date-time="20090724T011802-0400" 
query-string="http://fod.xmlteam.com/api-trial/getDocuments?doc-ids=xt.9140271-box"
hostname="fod.xmlteam.com" result-count="1" error-count="0" elapsed-time="64.2ms"><sports-content 
xmlns:str="java.lang.String" xmlns:dt="http://xsltsl.org/date-time"
xmlns:xts="http://www.xmlteam.com"xmlns:exsl="http://exslt.org/common"
path-id="baseball/l.mlb.com/event-summary/xt.9140271-box" xts:systemid="MLB_Boxscore_XML" 
xts:tsnid="9140271">

  <sports-metadata xmlns:fs="java.io.File" date-time="20090323T193000-0400" 
  doc-id="xt.9140271-box" xts:tsnslug="AAX%BOX-LOS-ANA" language="en-US" 
  revision-id="l.mlb.com-2009-e.26882-event-stats-sportsnetwork.com" 
  fixture-key="event-stats" document-class="event-summary" fixture-name="Box 
  Score">

    <sports-title>Boxscore: LA Angels vs. Los Angeles</sports-title>
    <sports-content-codes>

      <sports-content-code code-name="The Sports Network" code-key="sportsnetwork.com" 
      code-type="publisher"/>

      <sports-content-code code-name="XML Team Solutions, Inc." code-key="xmlteam.com" 
      code-type="distributor"/>

      <sports-content-code code-type="sport" code-key="15007000" code-name="Baseball"/>

      <sports-content-code code-type="league" code-key="l.mlb.com" code-name="Major 
      League Baseball"/>

      <sports-content-code code-type="season-type" code-key="pre-season"/>
      <sports-content-code code-type="season" code-key="2009"/>

      <sports-content-code code-type="priority" code-key="normal"/>

      <sports-content-code code-type="conference" code-key="c.national" 
      code-name="National"/>

      <sports-content-code code-type="conference" code-key="c.american" 
      code-name="American"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.11" code-name="Los 
      Angeles Angels"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.28" code-name="Los 
      Angeles Dodgers"/>

      <sports-content-code code-type="action-listing" code-key="complete"/>
    </sports-content-codes>
  </sports-metadata>
  <sports-event xmlns:fs="java.io.File">

    <event-metadata xmlns:xte="www.xmlteam.com/xte" date-coverage-type="event" 
    event-key="l.mlb.com-2009-e.26882" date-coverage-value="l.mlb.com-2009-e.26882" 
    event-status="post-event" duration="2:58" start-date-time="20090323T160500-0400" 
    xts:game-of-day="1">
      <sports-content-codes/>
      <event-metadata-baseball/>
      <site>
        <site-metadata>
          <home-location/>
        </site-metadata>
        <site-stats attendance="8704"/>
      </site>
    </event-metadata>
    <team>
      <team-metadata team-key="l.mlb.com-t.28" alignment="away">
        <name first="Los Angeles" last="Dodgers"/>
      </team-metadata>

      <team-stats score="4" score-opposing="10" event-outcome="loss">
        <sub-score period-value="1" score="1"/>
        <sub-score period-value="2" score="0"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="3"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="0"/>
        <sub-score period-value="7" score="0"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9" score="0"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="4" at-bats="36" hits="9" rbi="4" 
          bases-on-balls="2" strikeouts="4" doubles="0" triples="0" home-runs="0" 
          grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="1" stolen-bases-caught="1" hit-by-pitch="0" left-on-base="7"/>

          <stats-baseball-defensive errors="0" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="10" hits="13" earned-runs="10" 
          bases-on-balls="6" strikeouts="8" era="10.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="0" losses="1"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.11965">

        <player-metadata position-event="8" player-key="l.mlb.com-p.11965" 
        status="starter">
          <name first="Matt" last="Kemp"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="1" hit-by-pitch="0" average=".271"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7103">

        <player-metadata position-event="8" player-key="l.mlb.com-p.7103" 
        status="bench">
          <name first="Jason" last="Repko"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".219"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.9917">

        <player-metadata position-event="9" player-key="l.mlb.com-p.9917" 
        status="starter">
          <name first="Andre" last="Ethier"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".204"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6892">

        <player-metadata position-event="pr,7" player-key="l.mlb.com-p.6892" 
        status="bench">
          <name first="John-Ford" last="Griffin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".000"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.3810">

        <player-metadata position-event="dh" player-key="l.mlb.com-p.3810" 
        status="starter">
          <name first="Manny" last="Ramirez"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".200"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.9776">

        <player-metadata position-event="ph,dh" player-key="l.mlb.com-p.9776" 
        status="bench">
          <name first="A.J." last="Ellis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".320"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6773">

        <player-metadata position-event="3" player-key="l.mlb.com-p.6773" 
        status="starter">
          <name first="James" last="Loney"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".241"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5664">

        <player-metadata position-event="3" player-key="l.mlb.com-p.5664" 
        status="bench">
          <name first="Doug" last="Mientkiewicz"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="0" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".238"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.13237">

        <player-metadata position-event="2" player-key="l.mlb.com-p.13237" 
        status="starter">
          <name first="Russell" last="Martin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="1" stolen-bases-caught="0" hit-by-pitch="0" average=".394"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7897">

        <player-metadata position-event="2" player-key="l.mlb.com-p.7897" 
        status="bench">
          <name first="Danny" last="Ardoin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".375"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.2687">

        <player-metadata position-event="5" player-key="l.mlb.com-p.2687" 
        status="starter">
          <name first="Mark" last="Loretta"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".250"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.14163">

        <player-metadata position-event="5" player-key="l.mlb.com-p.14163" 
        status="bench">
          <name first="Luis" last="Maza"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".100"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.17507">

        <player-metadata position-event="4" player-key="l.mlb.com-p.17507" 
        status="starter">
          <name first="Blake" last="DeWitt"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".288"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.1347">

        <player-metadata position-event="4" player-key="l.mlb.com-p.1347" 
        status="bench">
          <name first="Juan" last="Castro"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".436"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.14313">

        <player-metadata position-event="7,9" player-key="l.mlb.com-p.14313" 
        status="starter">
          <name first="Xavier" last="Paul"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".383"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.18742">

        <player-metadata position-event="6" player-key="l.mlb.com-p.18742" 
        status="starter">
          <name first="Chin-Lung" last="Hu"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="4" hits="1" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".316"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.8512">

        <player-metadata position-event="1" player-key="l.mlb.com-p.8512" 
        status="starter">
          <name first="Chad" last="Billingsley"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="4" innings-pitched="2" hits="4" 
            earned-runs="4" bases-on-balls="3" strikeouts="2" era="6.35" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="1" 
            xts:losses-season="1" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.5381">

        <player-metadata position-event="1" player-key="l.mlb.com-p.5381" 
        status="bench">
          <name first="Jeff" last="Weaver"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="2" hits="3" 
            earned-runs="2" bases-on-balls="0" strikeouts="2" era="7.88" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="1" saves-blown="0" saves="0" event-credit="loss" 
            xts:wins-season="0" xts:losses-season="1" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.18258">

        <player-metadata position-event="1" player-key="l.mlb.com-p.18258" 
        status="bench">
          <name first="Scott" last="Elbert"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="1" 
            earned-runs="0" bases-on-balls="0" strikeouts="1" era="6.14" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="1" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.7482">

        <player-metadata position-event="1" player-key="l.mlb.com-p.7482" 
        status="bench">
          <name first="Erick" last="Threets"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="1" hits="1" 
            earned-runs="2" bases-on-balls="1" strikeouts="2" era="5.40" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.19392">

        <player-metadata position-event="1" player-key="l.mlb.com-p.19392" 
        status="bench">
          <name first="Ramon" last="Troncoso"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="1" hits="3" 
            earned-runs="2" bases-on-balls="1" strikeouts="0" era="7.88" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="1" xts:saves-season="1" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.14165">

        <player-metadata position-event="1" player-key="l.mlb.com-p.14165" 
        status="finished">
          <name first="Brian" last="Mazone"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="1" 
            earned-runs="0" bases-on-balls="1" strikeouts="1" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="1" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
    </team>
    <team>
      <team-metadata team-key="l.mlb.com-t.11" alignment="home">
        <name first="Los Angeles" last="Angels"/>
      </team-metadata>

      <team-stats score="10" score-opposing="4" event-outcome="win">
        <sub-score period-value="1" score="2"/>
        <sub-score period-value="2" score="2"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="2"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="2"/>
        <sub-score period-value="7" score="2"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="10" at-bats="34" hits="13" 
          rbi="10" bases-on-balls="6" strikeouts="8" doubles="2" triples="1" 
          home-runs="3" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="0" stolen-bases-caught="2" hit-by-pitch="0" left-on-base="6"/>

          <stats-baseball-defensive errors="3" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="4" hits="9" earned-runs="3" 
          bases-on-balls="2" strikeouts="4" era="3.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="1" losses="0"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.6445">

        <player-metadata position-event="5" player-key="l.mlb.com-p.6445" 
        status="starter">
          <name first="Chone" last="Figgins"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="1" 
            bases-on-balls="1" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="2" hit-by-pitch="0" average=".325"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.20376">

        <player-metadata position-event="ph,8" player-key="l.mlb.com-p.20376" 
        status="bench">
          <name first="Coby" last="Smith"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".667"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.11967">

        <player-metadata position-event="4" player-key="l.mlb.com-p.11967" 
        status="starter">
          <name first="Howie" last="Kendrick"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".344"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7011">

        <player-metadata position-event="ph,2" player-key="l.mlb.com-p.7011" 
        status="bench">
          <name first="Ryan" last="Budde"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".412"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5533">

        <player-metadata position-event="7" player-key="l.mlb.com-p.5533" 
        status="starter">
          <name first="Bobby" last="Abreu"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".263"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.11570">

        <player-metadata position-event="5" player-key="l.mlb.com-p.11570" 
        status="bench">
          <name first="Brandon" last="Wood"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".354"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.1946">

        <player-metadata position-event="9" player-key="l.mlb.com-p.1946" 
        status="starter">
          <name first="Vladimir" last="Guerrero"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".250"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.19314">

        <player-metadata position-event="9" player-key="l.mlb.com-p.19314" 
        status="bench">
          <name first="Chris" last="Pettit"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".354"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.2062">

        <player-metadata position-event="8" player-key="l.mlb.com-p.2062" 
        status="starter">
          <name first="Torii" last="Hunter"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="1" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".182"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.15871">

        <player-metadata position-event="4" player-key="l.mlb.com-p.15871" 
        status="bench">
          <name first="Sean" last="Rodriguez"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".282"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.18447">

        <player-metadata position-event="3" player-key="l.mlb.com-p.18447" 
        status="starter">
          <name first="Kendry" last="Morales"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".367"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7262">

        <player-metadata position-event="3" player-key="l.mlb.com-p.7262" 
        status="bench">
          <name first="Matthew" last="Brown"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="1" hits="0" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".550"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6012">

        <player-metadata position-event="dh" player-key="l.mlb.com-p.6012" 
        status="starter">
          <name first="Juan" last="Rivera"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="1" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".211"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5647">

        <player-metadata position-event="ph,dh" player-key="l.mlb.com-p.5647" 
        status="bench">
          <name first="Gary" last="Matthews"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".357"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6928">

        <player-metadata position-event="2" player-key="l.mlb.com-p.6928" 
        status="starter">
          <name first="Jeff" last="Mathis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".343"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6814">

        <player-metadata position-event="ph,6" player-key="l.mlb.com-p.6814" 
        status="bench">
          <name first="Maicer" last="Izturis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="1" hits="1" rbi="1" 
            bases-on-balls="1" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".278"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.8016">

        <player-metadata position-event="6" player-key="l.mlb.com-p.8016" 
        status="starter">
          <name first="Erick" last="Aybar"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="2" at-bats="2" hits="2" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="1" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".310"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6589">

        <player-metadata position-event="ph,7" player-key="l.mlb.com-p.6589" 
        status="bench">
          <name first="Robb" last="Quinlan"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".310"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.7092">

        <player-metadata position-event="1" player-key="l.mlb.com-p.7092" 
        status="starter">
          <name first="Dustin" last="Moseley"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="4" innings-pitched="6" hits="8" 
            earned-runs="3" bases-on-balls="1" strikeouts="3" era="3.15" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="1" losses="0" saves-blown="0" saves="0" event-credit="win" 
            xts:wins-season="3" xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.20390">

        <player-metadata position-event="1" player-key="l.mlb.com-p.20390" 
        status="bench">
          <name first="Trevor" last="Reckling"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="2" hits="1" 
            earned-runs="0" bases-on-balls="1" strikeouts="0" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.20370">

        <player-metadata position-event="1" player-key="l.mlb.com-p.20370" 
        status="finished">
          <name first="Mason" last="Tobin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="0" 
            earned-runs="0" bases-on-balls="0" strikeouts="1" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
    </team>
    <officials>
      <official>
        <official-metadata position="Home Plate Umpire">
          <name full="Jim Wolf"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="First Base Umpire">
          <name full="Bob Davidson"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="Second Base Umpire">
          <name full="Mike Winters"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="Third Base Umpire">
          <name full="Mike Everitt"/>
        </official-metadata>
      </official>
    </officials>
    <event-actions>
      <event-actions-baseball/>
    </event-actions>
    <highlight class="double-plays">
      <p>Los Angeles 2; LA Angels 1.</p>
    </highlight>
  </sports-event>
</sports-content></xts:sports-content-set>
Graham:
2-Aug-2009
It should be easy enough to write a recurseive function that descends 
thru the object looking for some text, and then to print out the 
full path for you as in the recursive examples I posted above.
Group: SVG Renderer ... SVG rendering in Draw AGG [web-public]
shadwolf:
23-Jun-2005
My actual source code that render path and <g> bloack transformation 
matrix
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							L	[insert tail shape 'line]
							z	[closed?: true]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
Vincent add some path rendering commands S Q T H A V
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					if all [x not number? token] [

          insert tail shape x * either token = 'V [scale-y][scale-x]
  						    x: none
					]
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
so my version of the script supports in the SVG <g> block with in 
this block header   transform matrix and in block <G> path with or 
without in it tranform matrix. I have a little problem with this 
point. Then I add the support for path d field coded in the format 
of INKSCAPE SVG PLAIN TEXT (the SVG light weight version available 
under inkscape )
shadwolf:
23-Jun-2005
New D field for "path" flag  processing and translation made by Vincent
Ashley:
26-Jun-2005
Yes, to-unit is called from svg-size; and also from "path d", stroke-width, 
fill-width, etc ... probably anywhere in SVG where we "expect" an 
integer or decimal! ;)
shadwolf:
30-Jun-2005
then construc path to get data then translate this data to a draw 
equivalent exploitable datas
shadwolf:
30-Jun-2005
I I want to interrogate the first shape description on the top level 
( out of group blocks) I have to build a path like that xml/svg/path/1/d
shadwolf:
30-Jun-2005
or maybe build the path xml/svg/path then attribute to a temporary 
var the foreach ob  xml/svg/path [ ob processing ]
shadwolf:
30-Jun-2005
so to build the path we start xml/svg "/ " g or path  if g we seek 
3 thing transform field and path field or sub g field
shadwolf:
2-Jul-2005
this script support recursive G block (objects /list) and path (object 
list)
shadwolf:
2-Jul-2005
what is not supported are radial / linear Gradient (content and border), 
transformations (local/global I'm still pending for informations 
on it) and all other shapes than path  (like rect  for example)
shadwolf:
4-Jul-2005
Chanlog:
* Cleaner Code (near 200 lines saved)
* support new draw primitives Ellipse,  Path Arc, rect 
* recursiv G block parsing have been improved

Still not supported
* transformation information (matrix,scale, rotate, skew) 
* gradient information (linear, radiant etc...)
* circle, text, line, polyline, polygones
shadwolf:
2-Jan-2006
for me to be honnest the advantages of  using SVG instead of images 
 are a lot this is a quick list of my thoughts on what can be done 
with  SVG format.
 - easier embeding of graphical content
- resizing auto ith not grphics quality loss
- cheap but sharp skining 

 - graphical content of an  User  Interface  very low because rebol 
 is pretty able to  work with compression of text content ( compress/decompress)

A little sample to enlight this  compressed SVG file with blender 
logo ->  less than 500 octets (any size can be applyed with no graphic 
loss (aliasing, color loose, blur, pixelisation etc..) )  a fixed 
jped for same content will use  around  50ko. This means less datas 
in memory to as graphic pixel tables are very heavy in VM memory

- Dynamic graphical content. some thing like text scrolling or efffect 
like Flash ones but with  a  reduction of  1000  of the data and 
memory use SVG use a labeling system for  each graphical content 
that compose the image we can provided a tiny system to handle easy 
animation and show/hide of graphical content using raw rebol commands 
-> this will make pretty easier the realisation of dynamic animations 
in rebol ViD content and  as any REBOL/View face is DRaw/AGG capable 
the effects that we can create isn the futur with this idea will 
have no limits  -> this means too to have a pretty fast and ell designed 
SVG engine (that's my actual path on research)
Group: rebcode ... Rebcode discussion [web-public]
BrianH:
12-Oct-2005
Actually, when I think about it, the flexible function call syntax 
of REBOL would be a bit of a slowdown to implement directly in rebcode. 
All of the operations now are fixed in arity and known ahead of time. 
One way to get that same predictable behavior in rebcode is to put 
the call in a block and assign the result - coincidentally this is 
the syntax of the do opcode.


Another way to do this would be to add something like an APPLY opcode 
with three parameters: A result param (word!), a function param (word! 
| path!) and an arguments param (word! | block!). This opcode would 
pass the arguments to the function (perhaps with refinements) and 
assign the result to the word provided. This would allow the higher 
order programming that would otherwise be awkward - the do opcode 
could be used for traditional function calls. If necessary, the operation 
could be split into two opcodes: APPLY for function values assigned 
to a word, and APPLYP for a path literal or value assigned to a word 
- whether to do this would depend on which was faster.


Another awkward thing to do in rebcode is getting and setting values 
through indirection, like the get and set natives do. Those seem 
like a really basic operations that should have opcodes assigned 
to them rather than having to resort to do blocks. I'm just thinking 
of the basic get/set word assigned to word scenario, not the more 
advanced object/block stuff.
Group: Syncing ... Syncing technologies [web-public]
JaimeVargas:
4-Jan-2006
BEER+FT is just the framework. Not an Application. For example you 
need to code the gui, path monitoring, filesets management, guid, 
plus others.
Group: !RebDB ... REBOL Pseudo-Relational Database [web-public]
Anton:
14-Nov-2006
A guess is that the path  %test/param.par  is not being resolved 
correctly when encapped. Try adding.
	probe what-dir
and see if the results are different encapped and normally.
btiffin:
17-Mar-2008
RebDB does have a built in client / server mode if that will help. 
  db-client.r  can talk with SQL.r from just about anywhere.  Or 
try  set path  with an ftp url, it may just work, never tried but 
looking at the code and the use of base-dir it seems like a reasonable 
chance of success.
Group: SQLite ... C library embeddable DB [web-public].
Pekr:
13-Feb-2006
hmm, but scheme for sqlite is still kind of cumbersome - non ability 
to open at certain path, no error if you open non existant db - it 
mistakenly automatically creates one, then of course your query fails 
.......
Pekr:
13-Feb-2006
I tried to briefly look into API and not found path anywere mentioned 
... I will try looking better ;-)
Pekr:
14-Feb-2006
oh, I found the solution for the path problem. As I expected, the 
library needs path in filesystem friendly way. Just add to-local-files 
into sqlite-open function, so it should read as: sqlite3/open to-string 
to-local-file name tmp: make struct!
Ashley:
14-Feb-2006
re:solution for the path problem. Was that for Cal's version? Problem 
occurs earlier than that in the 'open function with this line:

	port/locals/dbid: sqlite-open to-file port/target


asport/target contains only the file name regardless of what path 
you specify!
Anton:
14-Feb-2006
probably needs   to-file join port/path port/target
Ashley:
15-Feb-2006
Yep, wish I had read your message earler. ;)


The 'open func sets port/target to a string of the file name and 
port/path to a string of the path (empty if none). So you just need 
to replace the sqlite-open in the 'open func with:
 
	port/locals/dbid: sqlite-open to-file join port/path port/target

as Anton stated above.
Ashley:
15-Feb-2006
Oops, that should be:


 port/locals/dbid: sqlite-open to-file either port/path [join port/path 
 port/target] [port/target]


as port/path contains none! when no path is provided. On that note, 
anyone know why port/path and port/target are set to string! not 
file! ?
Pekr:
15-Feb-2006
and are you guys sure your join port/path will work? As in low-level 
you are calling a library, which will not understand rebol path anyway, 
unless converted using to-local-file ...
Oldes:
28-Feb-2006
It's designed to create the database in a Rebol's root dir? (if the 
path is not fully specified) I would expect to create the database 
in the folder where I'm (and where is the SQLite)
Pekr:
28-Feb-2006
not sure ... it was really strange ... it created dbs at path of 
dll or so, dunno now ...
Pekr:
28-Feb-2006
but I think that it is easy by simply setting db-path: your-dir-here 
... and then connect join db-path %my-db-name.db
Oldes:
9-Mar-2006
>> rss/run %sqlite
!!! ERRROR:
make object! [
    code: 312
    type: 'script
    id: 'cannot-use
    arg1: 'path
    arg2: 'none!
    arg3: none
    near: [any [system/script/parent/header halt]]
    where: 'attempt
]
Group: Postscript ... Emitting Postscript from REBOL [web-public]
Geomol:
7-Apr-2006
New version. The postscript block consists of font definitions and 
pages. A page consists of paths and transformations. Try:
do http://home.tiscali.dk/john.niclasen/postscript/postscript.r

print postscript [font [Times-Roman 20] page [path [at 72x72 rotate 
45 "Hello World!"]]]
Geomol:
7-Apr-2006
The "page" and "path" words are optional, so this'll give same result:

print postscript [font [Times-Roman 20] [[at 72x72 rotate 45 "Hello 
World!"]]]
Group: DevCon2008 (post-chatter) ... DevCon2008 [web-public]
btiffin:
20-Sep-2007
Gabriele;  altme has no facial expressions.  Few get how jokey or 
how serious a posting may be.  The eyes and intonations make for 
at least half of the meaning.  It's my personal opinion that people 
can't drive well with cell phones due to the 3.4 kHz audio range; 
too many brain cycles are being used to fill in the missing intonations. 
  It takes a leap of faith in many posts when technical information 
is being discussed.  If people could see the look of fear and confusion 
that I usually express while typing something, I'd feel better that 
I wasn't leading people down the garden path when offering opinions 
and advice; my brain would know that they would know I was talkin' 
out my ass.  :)  So in short; in person is best by far, video is 
a distant second, audio even further down the chain and text way 
down at the bottom.  So given REBOL's awesome international user 
base, if I can't make DevCon, gimme viddies.
Cyphre:
5-Oct-2007
(it has something to do with the path evaluation in the DRAW parser 
imo)
Group: reblets ... working reblets (50-100 lines or less) [web-public]
Maxim:
19-Mar-2009
rebol [
	title: "explore.r"
	version 1.0
	date: 2009-03-19
	author: "Maxim Olivier-Adlhoch"
	copyright: "2009(c)Maxim Olivier-Adlhoch"
	tested: "win xp"

 notes: "Add any dir to the dirs block.  options are self explanatory"
]

dirs: [
	%/C/ []
	%"/C/program files/" [expand]
	"%tmp%" [label "temp dir"]
	"" [ label "my documents"]
]

blk: []

explore-dir: func [path expand? /local cmd][

 call/shell rejoin [" explorer " either expand? ["/n,/e,"]["/n,"] 
 path ]
]

ctr: 1
foreach [item opts] dirs [
	ctr: ctr + 1
	expand?: found? find opts 'expand
	label: any [select opts 'label to-local-file item]
	append blk compose/deep [ 
		pad 20 
		(to-set-word setw: rejoin ["dir" ctr]) check (expand?) 
		pad 20 

  btn 200 left (label) [ explore-dir to-local-file item get in (to-word 
  setw) 'data ]
	]
	append blk 'return
]


view layout compose [across vtext right "expand?" vtext "folder" 
 return (blk)]
301 / 1928123[4] 56...1617181920