]> gitweb.michael.orlitzky.com - dead/htsn-import.git/commitdiff
Add SportInfo support for MLBKORateXML.dtd.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 17 Jun 2014 14:28:07 +0000 (10:28 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 17 Jun 2014 14:28:07 +0000 (10:28 -0400)
doc/man1/htsn-import.1
schema/MLBKORateXML.dtd [new file with mode: 0644]
schemagen/MLBKORateXML/MLBKORateXML.xml [new file with mode: 0644]
src/TSN/XML/SportInfo.hs
test/xml/sportinfo/MLBKORateXML.dtd [new file with mode: 0644]
test/xml/sportinfo/MLBKORateXML.xml [new file with mode: 0644]

index bbee9d709d3d64431cd943c9c9f08759d4c7ecd4..1e76185538ab736e6813a0676c7960ba47c67428 100644 (file)
@@ -194,6 +194,8 @@ mlbhomerunsxml.dtd
 MLBHRFreqXML.dtd
 .IP \[bu]
 MLBIntWalksXML.dtd
+.IP \[bu]
+MLBKORateXML.dtd
 .RE
 .P
 The GameInfo and SportInfo types do not have their own top-level
diff --git a/schema/MLBKORateXML.dtd b/schema/MLBKORateXML.dtd
new file mode 100644 (file)
index 0000000..a7146dd
--- /dev/null
@@ -0,0 +1,34 @@
+<!ELEMENT message  (XML_File_ID, heading , category , sport , title , Listing+ , time_stamp )>\r
+\r
+<!ELEMENT XML_File_ID  (#PCDATA )>\r
+\r
+<!ELEMENT heading  (#PCDATA )>\r
+\r
+<!ELEMENT category  (#PCDATA )>\r
+\r
+<!ELEMENT sport  (#PCDATA )>\r
+\r
+<!ELEMENT title  (#PCDATA )>\r
+\r
+<!ELEMENT Listing  (Rank , Name , KORate , KOs , AtBats , Walks , HitByPitch , SacFlies , Sacrifices )>\r
+\r
+<!ELEMENT Rank  (#PCDATA )>\r
+\r
+<!ELEMENT Name  (#PCDATA )>\r
+\r
+<!ELEMENT KORate  (#PCDATA )>\r
+\r
+<!ELEMENT KOs  (#PCDATA )>\r
+\r
+<!ELEMENT AtBats  (#PCDATA )>\r
+\r
+<!ELEMENT Walks  (#PCDATA )>\r
+\r
+<!ELEMENT HitByPitch  (#PCDATA )>\r
+\r
+<!ELEMENT SacFlies  (#PCDATA )>\r
+\r
+<!ELEMENT Sacrifices  (#PCDATA )>\r
+\r
+<!ELEMENT time_stamp  (#PCDATA )>\r
+\r
diff --git a/schemagen/MLBKORateXML/MLBKORateXML.xml b/schemagen/MLBKORateXML/MLBKORateXML.xml
new file mode 100644 (file)
index 0000000..7f52fe2
--- /dev/null
@@ -0,0 +1,450 @@
+<?xml version="1.0" standalone="no" ?>\r
+<!DOCTYPE message PUBLIC "-//TSN//DTD Statistics 1.0/EN" "MLBKORateXML.dtd">\r
+<message>\r
+<XML_File_ID>9173817</XML_File_ID>\r
+<heading>AAX%AL-STRIKEOUTRATE-LEADERS</heading>\r
+<category>Statistics</category>\r
+<sport>MLB</sport>\r
+<title>2002 AL StrikeOut Rate Leaders</title>\r
+<Listing>\r
+<Rank>1</Rank>\r
+<Name>Randall Simon, DET</Name>\r
+<KORate>20.2</KORate>\r
+<KOs>13</KOs>\r
+<AtBats>254</AtBats>\r
+<Walks>5</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Matt Lawton, CLE</Name>\r
+<KORate>19.5</KORate>\r
+<KOs>16</KOs>\r
+<AtBats>266</AtBats>\r
+<Walks>41</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>3</Rank>\r
+<Name>David Eckstein, ANA</Name>\r
+<KORate>17.9</KORate>\r
+<KOs>17</KOs>\r
+<AtBats>262</AtBats>\r
+<Walks>25</Walks>\r
+<HitByPitch>9</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>6</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>4</Rank>\r
+<Name>Bobby Higginson, DET</Name>\r
+<KORate>15.7</KORate>\r
+<KOs>15</KOs>\r
+<AtBats>208</AtBats>\r
+<Walks>23</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>5</Rank>\r
+<Name>Ben Molina, ANA</Name>\r
+<KORate>15.0</KORate>\r
+<KOs>17</KOs>\r
+<AtBats>242</AtBats>\r
+<Walks>7</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Shannon Stewart, TOR</Name>\r
+<KORate>14.9</KORate>\r
+<KOs>18</KOs>\r
+<AtBats>244</AtBats>\r
+<Walks>19</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>7</Rank>\r
+<Name>Ichiro Suzuki, SEA</Name>\r
+<KORate>14.1</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>307</AtBats>\r
+<Walks>37</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>8</Rank>\r
+<Name>Johnny Damon, BOS</Name>\r
+<KORate>13.0</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>292</AtBats>\r
+<Walks>27</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Mike Sweeney, KC</Name>\r
+<KORate>12.8</KORate>\r
+<KOs>24</KOs>\r
+<AtBats>272</AtBats>\r
+<Walks>30</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Nomar Garciaparra, BOS</Name>\r
+<KORate>12.6</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>288</AtBats>\r
+<Walks>20</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>11</Rank>\r
+<Name>Omar Vizquel, CLE</Name>\r
+<KORate>12.4</KORate>\r
+<KOs>26</KOs>\r
+<AtBats>275</AtBats>\r
+<Walks>36</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>7</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Darin Erstad, ANA</Name>\r
+<KORate>12.3</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>289</AtBats>\r
+<Walks>14</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>13</Rank>\r
+<Name>Brent Abernathy, TB</Name>\r
+<KORate>10.2</KORate>\r
+<KOs>29</KOs>\r
+<AtBats>277</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Neifi Perez, KC</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>32</KOs>\r
+<AtBats>300</AtBats>\r
+<Walks>8</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Jeff Cirillo, SEA</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>29</KOs>\r
+<AtBats>248</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>7</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>8</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Scott Hatteberg, OAK</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>28</KOs>\r
+<AtBats>236</AtBats>\r
+<Walks>34</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>17</Rank>\r
+<Name>Doug Mientkiewicz, MIN</Name>\r
+<KORate>9.5</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>51</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Miguel Tejada, OAK</Name>\r
+<KORate>9.3</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>316</AtBats>\r
+<Walks>15</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Cristian Guzman, MIN</Name>\r
+<KORate>9.1</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>311</AtBats>\r
+<Walks>6</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Brad Fullmer, ANA</Name>\r
+<KORate>9.0</KORate>\r
+<KOs>27</KOs>\r
+<AtBats>220</AtBats>\r
+<Walks>17</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>John Olerud, SEA</Name>\r
+<KORate>8.8</KORate>\r
+<KOs>37</KOs>\r
+<AtBats>267</AtBats>\r
+<Walks>51</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Paul Konerko, SOX</Name>\r
+<KORate>8.8</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>290</AtBats>\r
+<Walks>21</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>23</Rank>\r
+<Name>Scott Spiezio, ANA</Name>\r
+<KORate>8.4</KORate>\r
+<KOs>30</KOs>\r
+<AtBats>212</AtBats>\r
+<Walks>34</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Joe Randa, KC</Name>\r
+<KORate>8.2</KORate>\r
+<KOs>33</KOs>\r
+<AtBats>234</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>8</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Chris Gomez, TB</Name>\r
+<KORate>8.0</KORate>\r
+<KOs>32</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>13</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Ricky Gutierrez, CLE</Name>\r
+<KORate>7.9</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>226</AtBats>\r
+<Walks>10</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Adam Kennedy, ANA</Name>\r
+<KORate>7.9</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>223</AtBats>\r
+<Walks>10</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Carlos Lee, SOX</Name>\r
+<KORate>7.8</KORate>\r
+<KOs>34</KOs>\r
+<AtBats>237</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>5</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Kenny Lofton, SOX</Name>\r
+<KORate>7.7</KORate>\r
+<KOs>39</KOs>\r
+<AtBats>261</AtBats>\r
+<Walks>37</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Rafael Palmeiro, TEX</Name>\r
+<KORate>7.6</KORate>\r
+<KOs>39</KOs>\r
+<AtBats>251</AtBats>\r
+<Walks>41</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>31</Rank>\r
+<Name>Randy Winn, TB</Name>\r
+<KORate>7.3</KORate>\r
+<KOs>44</KOs>\r
+<AtBats>295</AtBats>\r
+<Walks>19</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Magglio Ordonez, SOX</Name>\r
+<KORate>7.2</KORate>\r
+<KOs>43</KOs>\r
+<AtBats>281</AtBats>\r
+<Walks>27</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Garret Anderson, ANA</Name>\r
+<KORate>7.1</KORate>\r
+<KOs>46</KOs>\r
+<AtBats>310</AtBats>\r
+<Walks>13</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>5</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Robert Fick, DET</Name>\r
+<KORate>7.1</KORate>\r
+<KOs>42</KOs>\r
+<AtBats>269</AtBats>\r
+<Walks>25</Walks>\r
+<HitByPitch>3</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Vernon Wells, TOR</Name>\r
+<KORate>7.0</KORate>\r
+<KOs>40</KOs>\r
+<AtBats>260</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Jay Gibbons, BAL</Name>\r
+<KORate>7.0</KORate>\r
+<KOs>38</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>29</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Tony Batista, BAL</Name>\r
+<KORate>6.9</KORate>\r
+<KOs>45</KOs>\r
+<AtBats>276</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>6</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Mike Bordick, BAL</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>35</KOs>\r
+<AtBats>209</AtBats>\r
+<Walks>23</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>5</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Carlos Febles, KC</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>209</AtBats>\r
+<Walks>28</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Bret Boone, SEA</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>47</KOs>\r
+<AtBats>285</AtBats>\r
+<Walks>28</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<time_stamp> June 27, 2002, at 11:52 AM ET </time_stamp>\r
+</message>\r
index 695b0f3c8be8e398175bb87f8e800c73c474db89..6a3612363e9d9bdae0e4dee8ca30f46570c4fe75 100644 (file)
@@ -114,7 +114,7 @@ dtds =
     "mlbhomerunsxml.dtd",
     "MLBHRFreqXML.dtd",
     "MLBIntWalksXML.dtd",
-    "MLBKORateXML.dtd", -- no dtd
+    "MLBKORateXML.dtd",
     "mlbonbasepctxml.dtd", -- no dtd
     "MLBOPSXML.dtd", -- no dtd
     "MLBPlateAppsXML.dtd", -- no dtd
@@ -358,7 +358,8 @@ sport_info_test_files =
     "mlbhitsleadersxml.xml",
     "mlbhomerunsxml.xml",
     "MLBHRFreqXML.xml",
-    "MLBIntWalksXML.xml"
+    "MLBIntWalksXML.xml",
+    "MLBKORateXML.xml"
   ]
 
 
diff --git a/test/xml/sportinfo/MLBKORateXML.dtd b/test/xml/sportinfo/MLBKORateXML.dtd
new file mode 100644 (file)
index 0000000..a7146dd
--- /dev/null
@@ -0,0 +1,34 @@
+<!ELEMENT message  (XML_File_ID, heading , category , sport , title , Listing+ , time_stamp )>\r
+\r
+<!ELEMENT XML_File_ID  (#PCDATA )>\r
+\r
+<!ELEMENT heading  (#PCDATA )>\r
+\r
+<!ELEMENT category  (#PCDATA )>\r
+\r
+<!ELEMENT sport  (#PCDATA )>\r
+\r
+<!ELEMENT title  (#PCDATA )>\r
+\r
+<!ELEMENT Listing  (Rank , Name , KORate , KOs , AtBats , Walks , HitByPitch , SacFlies , Sacrifices )>\r
+\r
+<!ELEMENT Rank  (#PCDATA )>\r
+\r
+<!ELEMENT Name  (#PCDATA )>\r
+\r
+<!ELEMENT KORate  (#PCDATA )>\r
+\r
+<!ELEMENT KOs  (#PCDATA )>\r
+\r
+<!ELEMENT AtBats  (#PCDATA )>\r
+\r
+<!ELEMENT Walks  (#PCDATA )>\r
+\r
+<!ELEMENT HitByPitch  (#PCDATA )>\r
+\r
+<!ELEMENT SacFlies  (#PCDATA )>\r
+\r
+<!ELEMENT Sacrifices  (#PCDATA )>\r
+\r
+<!ELEMENT time_stamp  (#PCDATA )>\r
+\r
diff --git a/test/xml/sportinfo/MLBKORateXML.xml b/test/xml/sportinfo/MLBKORateXML.xml
new file mode 100644 (file)
index 0000000..7f52fe2
--- /dev/null
@@ -0,0 +1,450 @@
+<?xml version="1.0" standalone="no" ?>\r
+<!DOCTYPE message PUBLIC "-//TSN//DTD Statistics 1.0/EN" "MLBKORateXML.dtd">\r
+<message>\r
+<XML_File_ID>9173817</XML_File_ID>\r
+<heading>AAX%AL-STRIKEOUTRATE-LEADERS</heading>\r
+<category>Statistics</category>\r
+<sport>MLB</sport>\r
+<title>2002 AL StrikeOut Rate Leaders</title>\r
+<Listing>\r
+<Rank>1</Rank>\r
+<Name>Randall Simon, DET</Name>\r
+<KORate>20.2</KORate>\r
+<KOs>13</KOs>\r
+<AtBats>254</AtBats>\r
+<Walks>5</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Matt Lawton, CLE</Name>\r
+<KORate>19.5</KORate>\r
+<KOs>16</KOs>\r
+<AtBats>266</AtBats>\r
+<Walks>41</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>3</Rank>\r
+<Name>David Eckstein, ANA</Name>\r
+<KORate>17.9</KORate>\r
+<KOs>17</KOs>\r
+<AtBats>262</AtBats>\r
+<Walks>25</Walks>\r
+<HitByPitch>9</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>6</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>4</Rank>\r
+<Name>Bobby Higginson, DET</Name>\r
+<KORate>15.7</KORate>\r
+<KOs>15</KOs>\r
+<AtBats>208</AtBats>\r
+<Walks>23</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>5</Rank>\r
+<Name>Ben Molina, ANA</Name>\r
+<KORate>15.0</KORate>\r
+<KOs>17</KOs>\r
+<AtBats>242</AtBats>\r
+<Walks>7</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Shannon Stewart, TOR</Name>\r
+<KORate>14.9</KORate>\r
+<KOs>18</KOs>\r
+<AtBats>244</AtBats>\r
+<Walks>19</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>7</Rank>\r
+<Name>Ichiro Suzuki, SEA</Name>\r
+<KORate>14.1</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>307</AtBats>\r
+<Walks>37</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>8</Rank>\r
+<Name>Johnny Damon, BOS</Name>\r
+<KORate>13.0</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>292</AtBats>\r
+<Walks>27</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Mike Sweeney, KC</Name>\r
+<KORate>12.8</KORate>\r
+<KOs>24</KOs>\r
+<AtBats>272</AtBats>\r
+<Walks>30</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Nomar Garciaparra, BOS</Name>\r
+<KORate>12.6</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>288</AtBats>\r
+<Walks>20</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>11</Rank>\r
+<Name>Omar Vizquel, CLE</Name>\r
+<KORate>12.4</KORate>\r
+<KOs>26</KOs>\r
+<AtBats>275</AtBats>\r
+<Walks>36</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>7</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Darin Erstad, ANA</Name>\r
+<KORate>12.3</KORate>\r
+<KOs>25</KOs>\r
+<AtBats>289</AtBats>\r
+<Walks>14</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>13</Rank>\r
+<Name>Brent Abernathy, TB</Name>\r
+<KORate>10.2</KORate>\r
+<KOs>29</KOs>\r
+<AtBats>277</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Neifi Perez, KC</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>32</KOs>\r
+<AtBats>300</AtBats>\r
+<Walks>8</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Jeff Cirillo, SEA</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>29</KOs>\r
+<AtBats>248</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>7</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>8</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Scott Hatteberg, OAK</Name>\r
+<KORate>9.8</KORate>\r
+<KOs>28</KOs>\r
+<AtBats>236</AtBats>\r
+<Walks>34</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>17</Rank>\r
+<Name>Doug Mientkiewicz, MIN</Name>\r
+<KORate>9.5</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>51</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Miguel Tejada, OAK</Name>\r
+<KORate>9.3</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>316</AtBats>\r
+<Walks>15</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Cristian Guzman, MIN</Name>\r
+<KORate>9.1</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>311</AtBats>\r
+<Walks>6</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Brad Fullmer, ANA</Name>\r
+<KORate>9.0</KORate>\r
+<KOs>27</KOs>\r
+<AtBats>220</AtBats>\r
+<Walks>17</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>John Olerud, SEA</Name>\r
+<KORate>8.8</KORate>\r
+<KOs>37</KOs>\r
+<AtBats>267</AtBats>\r
+<Walks>51</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>6</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Paul Konerko, SOX</Name>\r
+<KORate>8.8</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>290</AtBats>\r
+<Walks>21</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>23</Rank>\r
+<Name>Scott Spiezio, ANA</Name>\r
+<KORate>8.4</KORate>\r
+<KOs>30</KOs>\r
+<AtBats>212</AtBats>\r
+<Walks>34</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Joe Randa, KC</Name>\r
+<KORate>8.2</KORate>\r
+<KOs>33</KOs>\r
+<AtBats>234</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>8</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Chris Gomez, TB</Name>\r
+<KORate>8.0</KORate>\r
+<KOs>32</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>13</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Ricky Gutierrez, CLE</Name>\r
+<KORate>7.9</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>226</AtBats>\r
+<Walks>10</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Adam Kennedy, ANA</Name>\r
+<KORate>7.9</KORate>\r
+<KOs>31</KOs>\r
+<AtBats>223</AtBats>\r
+<Walks>10</Walks>\r
+<HitByPitch>5</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Carlos Lee, SOX</Name>\r
+<KORate>7.8</KORate>\r
+<KOs>34</KOs>\r
+<AtBats>237</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>5</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Kenny Lofton, SOX</Name>\r
+<KORate>7.7</KORate>\r
+<KOs>39</KOs>\r
+<AtBats>261</AtBats>\r
+<Walks>37</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>3</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Rafael Palmeiro, TEX</Name>\r
+<KORate>7.6</KORate>\r
+<KOs>39</KOs>\r
+<AtBats>251</AtBats>\r
+<Walks>41</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank>31</Rank>\r
+<Name>Randy Winn, TB</Name>\r
+<KORate>7.3</KORate>\r
+<KOs>44</KOs>\r
+<AtBats>295</AtBats>\r
+<Walks>19</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Magglio Ordonez, SOX</Name>\r
+<KORate>7.2</KORate>\r
+<KOs>43</KOs>\r
+<AtBats>281</AtBats>\r
+<Walks>27</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Garret Anderson, ANA</Name>\r
+<KORate>7.1</KORate>\r
+<KOs>46</KOs>\r
+<AtBats>310</AtBats>\r
+<Walks>13</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>5</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Robert Fick, DET</Name>\r
+<KORate>7.1</KORate>\r
+<KOs>42</KOs>\r
+<AtBats>269</AtBats>\r
+<Walks>25</Walks>\r
+<HitByPitch>3</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Vernon Wells, TOR</Name>\r
+<KORate>7.0</KORate>\r
+<KOs>40</KOs>\r
+<AtBats>260</AtBats>\r
+<Walks>16</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>2</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Jay Gibbons, BAL</Name>\r
+<KORate>7.0</KORate>\r
+<KOs>38</KOs>\r
+<AtBats>235</AtBats>\r
+<Walks>29</Walks>\r
+<HitByPitch>0</HitByPitch>\r
+<SacFlies>2</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Tony Batista, BAL</Name>\r
+<KORate>6.9</KORate>\r
+<KOs>45</KOs>\r
+<AtBats>276</AtBats>\r
+<Walks>24</Walks>\r
+<HitByPitch>6</HitByPitch>\r
+<SacFlies>4</SacFlies>\r
+<Sacrifices>0</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Mike Bordick, BAL</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>35</KOs>\r
+<AtBats>209</AtBats>\r
+<Walks>23</Walks>\r
+<HitByPitch>1</HitByPitch>\r
+<SacFlies>1</SacFlies>\r
+<Sacrifices>5</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Carlos Febles, KC</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>36</KOs>\r
+<AtBats>209</AtBats>\r
+<Walks>28</Walks>\r
+<HitByPitch>4</HitByPitch>\r
+<SacFlies>0</SacFlies>\r
+<Sacrifices>4</Sacrifices>\r
+</Listing>\r
+<Listing>\r
+<Rank></Rank>\r
+<Name>Bret Boone, SEA</Name>\r
+<KORate>6.8</KORate>\r
+<KOs>47</KOs>\r
+<AtBats>285</AtBats>\r
+<Walks>28</Walks>\r
+<HitByPitch>2</HitByPitch>\r
+<SacFlies>3</SacFlies>\r
+<Sacrifices>1</Sacrifices>\r
+</Listing>\r
+<time_stamp> June 27, 2002, at 11:52 AM ET </time_stamp>\r
+</message>\r