magic_xml 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. data/README +22 -0
  2. data/Rakefile +52 -0
  3. data/VERSION +1 -0
  4. data/doc/classes/Array.html +148 -0
  5. data/doc/classes/File.html +113 -0
  6. data/doc/classes/Hash.html +117 -0
  7. data/doc/classes/Patterns_all.html +145 -0
  8. data/doc/classes/Patterns_any.html +145 -0
  9. data/doc/classes/String.html +470 -0
  10. data/doc/classes/Symbol.html +145 -0
  11. data/doc/classes/XML.html +1881 -0
  12. data/doc/classes/XML_Comment.html +148 -0
  13. data/doc/classes/XML_PI.html +145 -0
  14. data/doc/classes/XML_Tests.html +1727 -0
  15. data/doc/files/magic_xml_rb.html +186 -0
  16. data/doc/files/simple_examples/xml_hello_f_rb.html +88 -0
  17. data/doc/files/simple_examples/xml_hello_m_rb.html +88 -0
  18. data/doc/files/simple_examples/xml_list_f_rb.html +88 -0
  19. data/doc/files/simple_examples/xml_list_m_rb.html +88 -0
  20. data/doc/files/tests_rb.html +94 -0
  21. data/doc/files/xquery_use_cases/parts/q1_rb.html +117 -0
  22. data/doc/files/xquery_use_cases/rdb/q10_rb.html +88 -0
  23. data/doc/files/xquery_use_cases/rdb/q11_rb.html +88 -0
  24. data/doc/files/xquery_use_cases/rdb/q12_rb.html +88 -0
  25. data/doc/files/xquery_use_cases/rdb/q13_rb.html +88 -0
  26. data/doc/files/xquery_use_cases/rdb/q14_rb.html +88 -0
  27. data/doc/files/xquery_use_cases/rdb/q15_rb.html +88 -0
  28. data/doc/files/xquery_use_cases/rdb/q16_rb.html +88 -0
  29. data/doc/files/xquery_use_cases/rdb/q17_rb.html +88 -0
  30. data/doc/files/xquery_use_cases/rdb/q18_rb.html +88 -0
  31. data/doc/files/xquery_use_cases/rdb/q1_rb.html +88 -0
  32. data/doc/files/xquery_use_cases/rdb/q2_rb.html +88 -0
  33. data/doc/files/xquery_use_cases/rdb/q3_rb.html +88 -0
  34. data/doc/files/xquery_use_cases/rdb/q4_rb.html +88 -0
  35. data/doc/files/xquery_use_cases/rdb/q5_rb.html +88 -0
  36. data/doc/files/xquery_use_cases/rdb/q6_rb.html +88 -0
  37. data/doc/files/xquery_use_cases/rdb/q7_rb.html +88 -0
  38. data/doc/files/xquery_use_cases/rdb/q8_rb.html +88 -0
  39. data/doc/files/xquery_use_cases/rdb/q9_rb.html +88 -0
  40. data/doc/files/xquery_use_cases/seq/q1_rb.html +88 -0
  41. data/doc/files/xquery_use_cases/seq/q2_rb.html +88 -0
  42. data/doc/files/xquery_use_cases/seq/q3_rb.html +88 -0
  43. data/doc/files/xquery_use_cases/seq/q4_rb.html +88 -0
  44. data/doc/files/xquery_use_cases/seq/q5_rb.html +88 -0
  45. data/doc/files/xquery_use_cases/sgml/q10_rb.html +88 -0
  46. data/doc/files/xquery_use_cases/sgml/q1_rb.html +88 -0
  47. data/doc/files/xquery_use_cases/sgml/q2_rb.html +88 -0
  48. data/doc/files/xquery_use_cases/sgml/q3_rb.html +88 -0
  49. data/doc/files/xquery_use_cases/sgml/q4_rb.html +88 -0
  50. data/doc/files/xquery_use_cases/sgml/q5_rb.html +88 -0
  51. data/doc/files/xquery_use_cases/sgml/q6_rb.html +88 -0
  52. data/doc/files/xquery_use_cases/sgml/q7_rb.html +88 -0
  53. data/doc/files/xquery_use_cases/sgml/q8a_rb.html +88 -0
  54. data/doc/files/xquery_use_cases/sgml/q8b_rb.html +88 -0
  55. data/doc/files/xquery_use_cases/sgml/q9_rb.html +88 -0
  56. data/doc/files/xquery_use_cases/solution_sizes_rb.html +88 -0
  57. data/doc/files/xquery_use_cases/string/q1_rb.html +88 -0
  58. data/doc/files/xquery_use_cases/string/q2_rb.html +93 -0
  59. data/doc/files/xquery_use_cases/string/q4_rb.html +88 -0
  60. data/doc/files/xquery_use_cases/string/q5_rb.html +88 -0
  61. data/doc/files/xquery_use_cases/test_driver_rb.html +92 -0
  62. data/doc/files/xquery_use_cases/tree/q1_rb.html +111 -0
  63. data/doc/files/xquery_use_cases/tree/q2_rb.html +88 -0
  64. data/doc/files/xquery_use_cases/tree/q3_rb.html +88 -0
  65. data/doc/files/xquery_use_cases/tree/q4_rb.html +88 -0
  66. data/doc/files/xquery_use_cases/tree/q5_rb.html +88 -0
  67. data/doc/files/xquery_use_cases/tree/q6_rb.html +113 -0
  68. data/doc/files/xquery_use_cases/xmp/q10_rb.html +88 -0
  69. data/doc/files/xquery_use_cases/xmp/q11_rb.html +88 -0
  70. data/doc/files/xquery_use_cases/xmp/q12_rb.html +88 -0
  71. data/doc/files/xquery_use_cases/xmp/q1_rb.html +88 -0
  72. data/doc/files/xquery_use_cases/xmp/q2_rb.html +88 -0
  73. data/doc/files/xquery_use_cases/xmp/q3_rb.html +88 -0
  74. data/doc/files/xquery_use_cases/xmp/q4_rb.html +88 -0
  75. data/doc/files/xquery_use_cases/xmp/q5_rb.html +92 -0
  76. data/doc/files/xquery_use_cases/xmp/q6_rb.html +88 -0
  77. data/doc/files/xquery_use_cases/xmp/q7_rb.html +88 -0
  78. data/doc/files/xquery_use_cases/xmp/q8_rb.html +88 -0
  79. data/doc/files/xquery_use_cases/xmp/q9_rb.html +88 -0
  80. data/doc/fr_class_index.html +56 -0
  81. data/doc/fr_file_index.html +110 -0
  82. data/doc/fr_method_index.html +159 -0
  83. data/doc/index.html +26 -0
  84. data/doc/rdoc-style.css +175 -0
  85. data/lib/magic_xml.rb +1400 -0
  86. data/simple_examples/README +14 -0
  87. data/simple_examples/xml_hello_f.rb +32 -0
  88. data/simple_examples/xml_hello_m.rb +32 -0
  89. data/simple_examples/xml_list_f.rb +36 -0
  90. data/simple_examples/xml_list_m.rb +36 -0
  91. data/test/helper.rb +9 -0
  92. data/test/test_magic_xml.rb +855 -0
  93. data/xquery_use_cases/README +17 -0
  94. data/xquery_use_cases/parts/README +12 -0
  95. data/xquery_use_cases/parts/partlist.xml +13 -0
  96. data/xquery_use_cases/parts/q1.out +16 -0
  97. data/xquery_use_cases/parts/q1.rb +38 -0
  98. data/xquery_use_cases/parts/q1.xquery +18 -0
  99. data/xquery_use_cases/rdb/README +50 -0
  100. data/xquery_use_cases/rdb/bids.xml +81 -0
  101. data/xquery_use_cases/rdb/items.xml +57 -0
  102. data/xquery_use_cases/rdb/q1.out +10 -0
  103. data/xquery_use_cases/rdb/q1.rb +31 -0
  104. data/xquery_use_cases/rdb/q1.xquery +14 -0
  105. data/xquery_use_cases/rdb/q10.out +27 -0
  106. data/xquery_use_cases/rdb/q10.rb +37 -0
  107. data/xquery_use_cases/rdb/q10.xquery +15 -0
  108. data/xquery_use_cases/rdb/q11.out +7 -0
  109. data/xquery_use_cases/rdb/q11.rb +38 -0
  110. data/xquery_use_cases/rdb/q11.xquery +15 -0
  111. data/xquery_use_cases/rdb/q12.out +12 -0
  112. data/xquery_use_cases/rdb/q12.rb +42 -0
  113. data/xquery_use_cases/rdb/q12.xquery +28 -0
  114. data/xquery_use_cases/rdb/q13.out +32 -0
  115. data/xquery_use_cases/rdb/q13.rb +45 -0
  116. data/xquery_use_cases/rdb/q13.xquery +15 -0
  117. data/xquery_use_cases/rdb/q14.out +14 -0
  118. data/xquery_use_cases/rdb/q14.rb +42 -0
  119. data/xquery_use_cases/rdb/q14.xquery +14 -0
  120. data/xquery_use_cases/rdb/q15.out +5 -0
  121. data/xquery_use_cases/rdb/q15.rb +31 -0
  122. data/xquery_use_cases/rdb/q15.xquery +9 -0
  123. data/xquery_use_cases/rdb/q16.out +35 -0
  124. data/xquery_use_cases/rdb/q16.rb +35 -0
  125. data/xquery_use_cases/rdb/q16.xquery +17 -0
  126. data/xquery_use_cases/rdb/q17.out +1 -0
  127. data/xquery_use_cases/rdb/q17.rb +35 -0
  128. data/xquery_use_cases/rdb/q17.xquery +11 -0
  129. data/xquery_use_cases/rdb/q18.out +32 -0
  130. data/xquery_use_cases/rdb/q18.rb +40 -0
  131. data/xquery_use_cases/rdb/q18.xquery +19 -0
  132. data/xquery_use_cases/rdb/q2.out +22 -0
  133. data/xquery_use_cases/rdb/q2.rb +36 -0
  134. data/xquery_use_cases/rdb/q2.xquery +14 -0
  135. data/xquery_use_cases/rdb/q3.out +8 -0
  136. data/xquery_use_cases/rdb/q3.rb +34 -0
  137. data/xquery_use_cases/rdb/q3.xquery +16 -0
  138. data/xquery_use_cases/rdb/q4.out +14 -0
  139. data/xquery_use_cases/rdb/q4.rb +31 -0
  140. data/xquery_use_cases/rdb/q4.xquery +11 -0
  141. data/xquery_use_cases/rdb/q5.out +12 -0
  142. data/xquery_use_cases/rdb/q5.rb +46 -0
  143. data/xquery_use_cases/rdb/q5.xquery +25 -0
  144. data/xquery_use_cases/rdb/q6.out +14 -0
  145. data/xquery_use_cases/rdb/q6.rb +38 -0
  146. data/xquery_use_cases/rdb/q6.xquery +15 -0
  147. data/xquery_use_cases/rdb/q7.out +1 -0
  148. data/xquery_use_cases/rdb/q7.rb +30 -0
  149. data/xquery_use_cases/rdb/q7.xquery +10 -0
  150. data/xquery_use_cases/rdb/q8.out +1 -0
  151. data/xquery_use_cases/rdb/q8.rb +23 -0
  152. data/xquery_use_cases/rdb/q8.xquery +8 -0
  153. data/xquery_use_cases/rdb/q9.out +22 -0
  154. data/xquery_use_cases/rdb/q9.rb +32 -0
  155. data/xquery_use_cases/rdb/q9.xquery +16 -0
  156. data/xquery_use_cases/rdb/users.xml +25 -0
  157. data/xquery_use_cases/seq/README +12 -0
  158. data/xquery_use_cases/seq/q1.out +1 -0
  159. data/xquery_use_cases/seq/q1.rb +25 -0
  160. data/xquery_use_cases/seq/q1.xquery +2 -0
  161. data/xquery_use_cases/seq/q2.out +2 -0
  162. data/xquery_use_cases/seq/q2.rb +25 -0
  163. data/xquery_use_cases/seq/q2.xquery +2 -0
  164. data/xquery_use_cases/seq/q3.out +2 -0
  165. data/xquery_use_cases/seq/q3.rb +26 -0
  166. data/xquery_use_cases/seq/q3.xquery +3 -0
  167. data/xquery_use_cases/seq/q4.out +0 -0
  168. data/xquery_use_cases/seq/q4.rb +27 -0
  169. data/xquery_use_cases/seq/q4.xquery +4 -0
  170. data/xquery_use_cases/seq/q5.out +5 -0
  171. data/xquery_use_cases/seq/q5.rb +29 -0
  172. data/xquery_use_cases/seq/q5.xquery +10 -0
  173. data/xquery_use_cases/seq/report1.xml +40 -0
  174. data/xquery_use_cases/sgml/README +53 -0
  175. data/xquery_use_cases/sgml/q1.out +44 -0
  176. data/xquery_use_cases/sgml/q1.rb +23 -0
  177. data/xquery_use_cases/sgml/q1.xquery +5 -0
  178. data/xquery_use_cases/sgml/q10.out +1 -0
  179. data/xquery_use_cases/sgml/q10.rb +28 -0
  180. data/xquery_use_cases/sgml/q10.xquery +7 -0
  181. data/xquery_use_cases/sgml/q2.out +26 -0
  182. data/xquery_use_cases/sgml/q2.rb +23 -0
  183. data/xquery_use_cases/sgml/q2.xquery +5 -0
  184. data/xquery_use_cases/sgml/q3.out +6 -0
  185. data/xquery_use_cases/sgml/q3.rb +28 -0
  186. data/xquery_use_cases/sgml/q3.xquery +7 -0
  187. data/xquery_use_cases/sgml/q4.out +4 -0
  188. data/xquery_use_cases/sgml/q4.rb +25 -0
  189. data/xquery_use_cases/sgml/q4.xquery +5 -0
  190. data/xquery_use_cases/sgml/q5.out +3 -0
  191. data/xquery_use_cases/sgml/q5.rb +23 -0
  192. data/xquery_use_cases/sgml/q5.xquery +5 -0
  193. data/xquery_use_cases/sgml/q6.out +1 -0
  194. data/xquery_use_cases/sgml/q6.rb +27 -0
  195. data/xquery_use_cases/sgml/q6.xquery +6 -0
  196. data/xquery_use_cases/sgml/q7.out +1 -0
  197. data/xquery_use_cases/sgml/q7.rb +27 -0
  198. data/xquery_use_cases/sgml/q7.xquery +7 -0
  199. data/xquery_use_cases/sgml/q8a.out +34 -0
  200. data/xquery_use_cases/sgml/q8a.rb +27 -0
  201. data/xquery_use_cases/sgml/q8a.xquery +5 -0
  202. data/xquery_use_cases/sgml/q8b.out +26 -0
  203. data/xquery_use_cases/sgml/q8b.rb +32 -0
  204. data/xquery_use_cases/sgml/q8b.xquery +5 -0
  205. data/xquery_use_cases/sgml/q9.out +9 -0
  206. data/xquery_use_cases/sgml/q9.rb +29 -0
  207. data/xquery_use_cases/sgml/q9.xquery +6 -0
  208. data/xquery_use_cases/sgml/sgml.xml +101 -0
  209. data/xquery_use_cases/solution_sizes.rb +48 -0
  210. data/xquery_use_cases/string/README +29 -0
  211. data/xquery_use_cases/string/company-data.xml +20 -0
  212. data/xquery_use_cases/string/q1.out +4 -0
  213. data/xquery_use_cases/string/q1.rb +25 -0
  214. data/xquery_use_cases/string/q1.xquery +1 -0
  215. data/xquery_use_cases/string/q2.out +13 -0
  216. data/xquery_use_cases/string/q2.rb +32 -0
  217. data/xquery_use_cases/string/q2.xquery +23 -0
  218. data/xquery_use_cases/string/q4.out +50 -0
  219. data/xquery_use_cases/string/q4.rb +34 -0
  220. data/xquery_use_cases/string/q4.xquery +14 -0
  221. data/xquery_use_cases/string/q5.out +12 -0
  222. data/xquery_use_cases/string/q5.rb +33 -0
  223. data/xquery_use_cases/string/q5.xquery +8 -0
  224. data/xquery_use_cases/string/string.xml +82 -0
  225. data/xquery_use_cases/test_driver.rb +60 -0
  226. data/xquery_use_cases/tree/README +23 -0
  227. data/xquery_use_cases/tree/book.xml +50 -0
  228. data/xquery_use_cases/tree/q1.out +23 -0
  229. data/xquery_use_cases/tree/q1.rb +31 -0
  230. data/xquery_use_cases/tree/q1.xquery +14 -0
  231. data/xquery_use_cases/tree/q2.out +11 -0
  232. data/xquery_use_cases/tree/q2.rb +27 -0
  233. data/xquery_use_cases/tree/q2.xquery +10 -0
  234. data/xquery_use_cases/tree/q3.out +2 -0
  235. data/xquery_use_cases/tree/q3.rb +26 -0
  236. data/xquery_use_cases/tree/q3.xquery +2 -0
  237. data/xquery_use_cases/tree/q4.out +1 -0
  238. data/xquery_use_cases/tree/q4.rb +23 -0
  239. data/xquery_use_cases/tree/q4.xquery +5 -0
  240. data/xquery_use_cases/tree/q5.out +9 -0
  241. data/xquery_use_cases/tree/q5.rb +30 -0
  242. data/xquery_use_cases/tree/q5.xquery +8 -0
  243. data/xquery_use_cases/tree/q6.out +30 -0
  244. data/xquery_use_cases/tree/q6.rb +35 -0
  245. data/xquery_use_cases/tree/q6.xquery +21 -0
  246. data/xquery_use_cases/xmp/README +41 -0
  247. data/xquery_use_cases/xmp/bib.xml +35 -0
  248. data/xquery_use_cases/xmp/books.xml +15 -0
  249. data/xquery_use_cases/xmp/prices.xml +32 -0
  250. data/xquery_use_cases/xmp/q1.out +8 -0
  251. data/xquery_use_cases/xmp/q1.rb +29 -0
  252. data/xquery_use_cases/xmp/q1.xquery +10 -0
  253. data/xquery_use_cases/xmp/q10.out +11 -0
  254. data/xquery_use_cases/xmp/q10.rb +36 -0
  255. data/xquery_use_cases/xmp/q10.xquery +11 -0
  256. data/xquery_use_cases/xmp/q11.out +35 -0
  257. data/xquery_use_cases/xmp/q11.rb +37 -0
  258. data/xquery_use_cases/xmp/q11.xquery +18 -0
  259. data/xquery_use_cases/xmp/q12.out +6 -0
  260. data/xquery_use_cases/xmp/q12.rb +35 -0
  261. data/xquery_use_cases/xmp/q12.xquery +20 -0
  262. data/xquery_use_cases/xmp/q2.out +37 -0
  263. data/xquery_use_cases/xmp/q2.rb +30 -0
  264. data/xquery_use_cases/xmp/q2.xquery +12 -0
  265. data/xquery_use_cases/xmp/q3.out +34 -0
  266. data/xquery_use_cases/xmp/q3.rb +27 -0
  267. data/xquery_use_cases/xmp/q3.xquery +10 -0
  268. data/xquery_use_cases/xmp/q4.out +31 -0
  269. data/xquery_use_cases/xmp/q4.rb +44 -0
  270. data/xquery_use_cases/xmp/q4.xquery +21 -0
  271. data/xquery_use_cases/xmp/q5.out +17 -0
  272. data/xquery_use_cases/xmp/q5.rb +38 -0
  273. data/xquery_use_cases/xmp/q5.xquery +13 -0
  274. data/xquery_use_cases/xmp/q6.out +28 -0
  275. data/xquery_use_cases/xmp/q6.rb +33 -0
  276. data/xquery_use_cases/xmp/q6.xquery +19 -0
  277. data/xquery_use_cases/xmp/q7.out +8 -0
  278. data/xquery_use_cases/xmp/q7.rb +30 -0
  279. data/xquery_use_cases/xmp/q7.xquery +12 -0
  280. data/xquery_use_cases/xmp/q8.out +7 -0
  281. data/xquery_use_cases/xmp/q8.rb +29 -0
  282. data/xquery_use_cases/xmp/q8.xquery +9 -0
  283. data/xquery_use_cases/xmp/q9.out +4 -0
  284. data/xquery_use_cases/xmp/q9.rb +29 -0
  285. data/xquery_use_cases/xmp/q9.xquery +7 -0
  286. data/xquery_use_cases/xmp/reviews.xml +24 -0
  287. metadata +342 -0
@@ -0,0 +1,470 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Class: String</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "show source"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "hide source"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Class</span><br />String</td>
55
+ <td align="right">
56
+ <table cellspacing=0 cellpadding=2>
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../files/magic_xml_rb.html">magic_xml.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ Object
67
+ </td>
68
+ </tr>
69
+ </table>
70
+ </td>
71
+ </tr>
72
+ </table>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+ <div id="content">
77
+
78
+
79
+
80
+
81
+ <div class="sectiontitle">Methods</div>
82
+ <ul>
83
+ <li><a href="#M000112">xml_attr_escape</a></li>
84
+ <li><a href="#M000111">xml_escape</a></li>
85
+ <li><a href="#M000114">xml_parse</a></li>
86
+ <li><a href="#M000113">xml_unescape</a></li>
87
+ </ul>
88
+
89
+
90
+
91
+
92
+
93
+
94
+ <div class="sectiontitle">Public Instance methods</div>
95
+ <div class="method">
96
+ <div class="title">
97
+ <a name="M000112"></a><b>xml_attr_escape</b>()
98
+ </div>
99
+ <div class="description">
100
+ <p>
101
+ Escape characters for output as <a href="XML.html">XML</a> attribute values
102
+ (&lt; &gt; &amp; &#8217; &quot;)
103
+ </p>
104
+ </div>
105
+ <div class="sourcecode">
106
+ <p class="source-link">[ <a href="javascript:toggleSource('M000112_source')" id="l_M000112_source">show source</a> ]</p>
107
+ <div id="M000112_source" class="dyn-source">
108
+ <pre>
109
+ <span class="ruby-comment cmt"># File magic_xml.rb, line 46</span>
110
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xml_attr_escape</span>
111
+ <span class="ruby-identifier">replacements</span> = {<span class="ruby-value str">&quot;&lt;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;lt;&quot;</span>, <span class="ruby-value str">&quot;&gt;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;gt;&quot;</span>, <span class="ruby-value str">&quot;&amp;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;amp;&quot;</span>, <span class="ruby-value str">&quot;\&quot;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;quot;&quot;</span>, <span class="ruby-value str">&quot;'&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;apos;&quot;</span>}
112
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([&lt;&gt;&amp;\'\&quot;])/</span>) { <span class="ruby-identifier">replacements</span>[<span class="ruby-identifier">$1</span>] }
113
+ <span class="ruby-keyword kw">end</span>
114
+ </pre>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ <div class="method">
119
+ <div class="title">
120
+ <a name="M000111"></a><b>xml_escape</b>()
121
+ </div>
122
+ <div class="description">
123
+ <p>
124
+ Escape string for output as <a href="XML.html">XML</a> text (&lt; &gt;
125
+ &amp;)
126
+ </p>
127
+ </div>
128
+ <div class="sourcecode">
129
+ <p class="source-link">[ <a href="javascript:toggleSource('M000111_source')" id="l_M000111_source">show source</a> ]</p>
130
+ <div id="M000111_source" class="dyn-source">
131
+ <pre>
132
+ <span class="ruby-comment cmt"># File magic_xml.rb, line 41</span>
133
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xml_escape</span>
134
+ <span class="ruby-identifier">replacements</span> = {<span class="ruby-value str">&quot;&lt;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;lt;&quot;</span>, <span class="ruby-value str">&quot;&gt;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;gt;&quot;</span>, <span class="ruby-value str">&quot;&amp;&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&amp;amp;&quot;</span> }
135
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([&lt;&gt;&amp;])/</span>) { <span class="ruby-identifier">replacements</span>[<span class="ruby-identifier">$1</span>] }
136
+ <span class="ruby-keyword kw">end</span>
137
+ </pre>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ <div class="method">
142
+ <div class="title">
143
+ <a name="M000114"></a><b>xml_parse</b>()
144
+ </div>
145
+ <div class="sourcecode">
146
+ <p class="source-link">[ <a href="javascript:toggleSource('M000114_source')" id="l_M000114_source">show source</a> ]</p>
147
+ <div id="M000114_source" class="dyn-source">
148
+ <pre>
149
+ <span class="ruby-comment cmt"># File magic_xml.rb, line 334</span>
150
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xml_parse</span>
151
+ <span class="ruby-constant">XML</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-keyword kw">self</span>)
152
+ <span class="ruby-keyword kw">end</span>
153
+ </pre>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ <div class="method">
158
+ <div class="title">
159
+ <a name="M000113"></a><b>xml_unescape</b>(extra_entities=nil)
160
+ </div>
161
+ <div class="description">
162
+ <p>
163
+ Unescape entities Supports:
164
+ </p>
165
+ <ul>
166
+ <li>Full set of HTML-compatible named entities
167
+
168
+ </li>
169
+ <li>Decimal entities &amp;1234;
170
+
171
+ </li>
172
+ <li>Hex entities &amp;xA0b1;
173
+
174
+ </li>
175
+ </ul>
176
+ </div>
177
+ <div class="sourcecode">
178
+ <p class="source-link">[ <a href="javascript:toggleSource('M000113_source')" id="l_M000113_source">show source</a> ]</p>
179
+ <div id="M000113_source" class="dyn-source">
180
+ <pre>
181
+ <span class="ruby-comment cmt"># File magic_xml.rb, line 55</span>
182
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xml_unescape</span>(<span class="ruby-identifier">extra_entities</span>=<span class="ruby-keyword kw">nil</span>)
183
+ <span class="ruby-ivar">@@xhtml_entity_replacements</span> <span class="ruby-operator">||=</span> {
184
+ <span class="ruby-value str">'nbsp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">160</span>,
185
+ <span class="ruby-value str">'iexcl'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">161</span>,
186
+ <span class="ruby-value str">'cent'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">162</span>,
187
+ <span class="ruby-value str">'pound'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">163</span>,
188
+ <span class="ruby-value str">'curren'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">164</span>,
189
+ <span class="ruby-value str">'yen'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">165</span>,
190
+ <span class="ruby-value str">'brvbar'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">166</span>,
191
+ <span class="ruby-value str">'sect'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">167</span>,
192
+ <span class="ruby-value str">'uml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">168</span>,
193
+ <span class="ruby-value str">'copy'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">169</span>,
194
+ <span class="ruby-value str">'ordf'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">170</span>,
195
+ <span class="ruby-value str">'laquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">171</span>,
196
+ <span class="ruby-value str">'not'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">172</span>,
197
+ <span class="ruby-value str">'shy'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">173</span>,
198
+ <span class="ruby-value str">'reg'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">174</span>,
199
+ <span class="ruby-value str">'macr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">175</span>,
200
+ <span class="ruby-value str">'deg'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">176</span>,
201
+ <span class="ruby-value str">'plusmn'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">177</span>,
202
+ <span class="ruby-value str">'sup2'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">178</span>,
203
+ <span class="ruby-value str">'sup3'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">179</span>,
204
+ <span class="ruby-value str">'acute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">180</span>,
205
+ <span class="ruby-value str">'micro'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">181</span>,
206
+ <span class="ruby-value str">'para'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">182</span>,
207
+ <span class="ruby-value str">'middot'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">183</span>,
208
+ <span class="ruby-value str">'cedil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">184</span>,
209
+ <span class="ruby-value str">'sup1'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">185</span>,
210
+ <span class="ruby-value str">'ordm'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">186</span>,
211
+ <span class="ruby-value str">'raquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">187</span>,
212
+ <span class="ruby-value str">'frac14'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">188</span>,
213
+ <span class="ruby-value str">'frac12'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">189</span>,
214
+ <span class="ruby-value str">'frac34'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">190</span>,
215
+ <span class="ruby-value str">'iquest'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">191</span>,
216
+ <span class="ruby-value str">'Agrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">192</span>,
217
+ <span class="ruby-value str">'Aacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">193</span>,
218
+ <span class="ruby-value str">'Acirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">194</span>,
219
+ <span class="ruby-value str">'Atilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">195</span>,
220
+ <span class="ruby-value str">'Auml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">196</span>,
221
+ <span class="ruby-value str">'Aring'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">197</span>,
222
+ <span class="ruby-value str">'AElig'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">198</span>,
223
+ <span class="ruby-value str">'Ccedil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">199</span>,
224
+ <span class="ruby-value str">'Egrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>,
225
+ <span class="ruby-value str">'Eacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">201</span>,
226
+ <span class="ruby-value str">'Ecirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">202</span>,
227
+ <span class="ruby-value str">'Euml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">203</span>,
228
+ <span class="ruby-value str">'Igrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">204</span>,
229
+ <span class="ruby-value str">'Iacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">205</span>,
230
+ <span class="ruby-value str">'Icirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">206</span>,
231
+ <span class="ruby-value str">'Iuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">207</span>,
232
+ <span class="ruby-value str">'ETH'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">208</span>,
233
+ <span class="ruby-value str">'Ntilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">209</span>,
234
+ <span class="ruby-value str">'Ograve'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
235
+ <span class="ruby-value str">'Oacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">211</span>,
236
+ <span class="ruby-value str">'Ocirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">212</span>,
237
+ <span class="ruby-value str">'Otilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">213</span>,
238
+ <span class="ruby-value str">'Ouml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">214</span>,
239
+ <span class="ruby-value str">'times'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">215</span>,
240
+ <span class="ruby-value str">'Oslash'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">216</span>,
241
+ <span class="ruby-value str">'Ugrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">217</span>,
242
+ <span class="ruby-value str">'Uacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">218</span>,
243
+ <span class="ruby-value str">'Ucirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">219</span>,
244
+ <span class="ruby-value str">'Uuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">220</span>,
245
+ <span class="ruby-value str">'Yacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">221</span>,
246
+ <span class="ruby-value str">'THORN'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">222</span>,
247
+ <span class="ruby-value str">'szlig'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">223</span>,
248
+ <span class="ruby-value str">'agrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">224</span>,
249
+ <span class="ruby-value str">'aacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">225</span>,
250
+ <span class="ruby-value str">'acirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">226</span>,
251
+ <span class="ruby-value str">'atilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">227</span>,
252
+ <span class="ruby-value str">'auml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">228</span>,
253
+ <span class="ruby-value str">'aring'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">229</span>,
254
+ <span class="ruby-value str">'aelig'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">230</span>,
255
+ <span class="ruby-value str">'ccedil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">231</span>,
256
+ <span class="ruby-value str">'egrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">232</span>,
257
+ <span class="ruby-value str">'eacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">233</span>,
258
+ <span class="ruby-value str">'ecirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">234</span>,
259
+ <span class="ruby-value str">'euml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">235</span>,
260
+ <span class="ruby-value str">'igrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">236</span>,
261
+ <span class="ruby-value str">'iacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">237</span>,
262
+ <span class="ruby-value str">'icirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">238</span>,
263
+ <span class="ruby-value str">'iuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">239</span>,
264
+ <span class="ruby-value str">'eth'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">240</span>,
265
+ <span class="ruby-value str">'ntilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">241</span>,
266
+ <span class="ruby-value str">'ograve'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">242</span>,
267
+ <span class="ruby-value str">'oacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">243</span>,
268
+ <span class="ruby-value str">'ocirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">244</span>,
269
+ <span class="ruby-value str">'otilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">245</span>,
270
+ <span class="ruby-value str">'ouml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">246</span>,
271
+ <span class="ruby-value str">'divide'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">247</span>,
272
+ <span class="ruby-value str">'oslash'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">248</span>,
273
+ <span class="ruby-value str">'ugrave'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">249</span>,
274
+ <span class="ruby-value str">'uacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">250</span>,
275
+ <span class="ruby-value str">'ucirc'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">251</span>,
276
+ <span class="ruby-value str">'uuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">252</span>,
277
+ <span class="ruby-value str">'yacute'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">253</span>,
278
+ <span class="ruby-value str">'thorn'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">254</span>,
279
+ <span class="ruby-value str">'yuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">255</span>,
280
+ <span class="ruby-value str">'quot'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">34</span>,
281
+ <span class="ruby-value str">'apos'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">39</span>, <span class="ruby-comment cmt"># Wasn't present in the HTML entities set, but is defined in XML standard</span>
282
+ <span class="ruby-value str">'amp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">38</span>,
283
+ <span class="ruby-value str">'lt'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>,
284
+ <span class="ruby-value str">'gt'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">62</span>,
285
+ <span class="ruby-value str">'OElig'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">338</span>,
286
+ <span class="ruby-value str">'oelig'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">339</span>,
287
+ <span class="ruby-value str">'Scaron'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">352</span>,
288
+ <span class="ruby-value str">'scaron'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">353</span>,
289
+ <span class="ruby-value str">'Yuml'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">376</span>,
290
+ <span class="ruby-value str">'circ'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">710</span>,
291
+ <span class="ruby-value str">'tilde'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">732</span>,
292
+ <span class="ruby-value str">'ensp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8194</span>,
293
+ <span class="ruby-value str">'emsp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8195</span>,
294
+ <span class="ruby-value str">'thinsp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8201</span>,
295
+ <span class="ruby-value str">'zwnj'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8204</span>,
296
+ <span class="ruby-value str">'zwj'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8205</span>,
297
+ <span class="ruby-value str">'lrm'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8206</span>,
298
+ <span class="ruby-value str">'rlm'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8207</span>,
299
+ <span class="ruby-value str">'ndash'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8211</span>,
300
+ <span class="ruby-value str">'mdash'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8212</span>,
301
+ <span class="ruby-value str">'lsquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8216</span>,
302
+ <span class="ruby-value str">'rsquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8217</span>,
303
+ <span class="ruby-value str">'sbquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8218</span>,
304
+ <span class="ruby-value str">'ldquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8220</span>,
305
+ <span class="ruby-value str">'rdquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8221</span>,
306
+ <span class="ruby-value str">'bdquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8222</span>,
307
+ <span class="ruby-value str">'dagger'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8224</span>,
308
+ <span class="ruby-value str">'Dagger'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8225</span>,
309
+ <span class="ruby-value str">'permil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8240</span>,
310
+ <span class="ruby-value str">'lsaquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8249</span>,
311
+ <span class="ruby-value str">'rsaquo'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8250</span>,
312
+ <span class="ruby-value str">'euro'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8364</span>,
313
+ <span class="ruby-value str">'fnof'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">402</span>,
314
+ <span class="ruby-value str">'Alpha'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">913</span>,
315
+ <span class="ruby-value str">'Beta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">914</span>,
316
+ <span class="ruby-value str">'Gamma'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">915</span>,
317
+ <span class="ruby-value str">'Delta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">916</span>,
318
+ <span class="ruby-value str">'Epsilon'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">917</span>,
319
+ <span class="ruby-value str">'Zeta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">918</span>,
320
+ <span class="ruby-value str">'Eta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">919</span>,
321
+ <span class="ruby-value str">'Theta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">920</span>,
322
+ <span class="ruby-value str">'Iota'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">921</span>,
323
+ <span class="ruby-value str">'Kappa'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">922</span>,
324
+ <span class="ruby-value str">'Lambda'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">923</span>,
325
+ <span class="ruby-value str">'Mu'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">924</span>,
326
+ <span class="ruby-value str">'Nu'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">925</span>,
327
+ <span class="ruby-value str">'Xi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">926</span>,
328
+ <span class="ruby-value str">'Omicron'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">927</span>,
329
+ <span class="ruby-value str">'Pi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">928</span>,
330
+ <span class="ruby-value str">'Rho'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">929</span>,
331
+ <span class="ruby-value str">'Sigma'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">931</span>,
332
+ <span class="ruby-value str">'Tau'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">932</span>,
333
+ <span class="ruby-value str">'Upsilon'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">933</span>,
334
+ <span class="ruby-value str">'Phi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">934</span>,
335
+ <span class="ruby-value str">'Chi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">935</span>,
336
+ <span class="ruby-value str">'Psi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">936</span>,
337
+ <span class="ruby-value str">'Omega'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">937</span>,
338
+ <span class="ruby-value str">'alpha'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">945</span>,
339
+ <span class="ruby-value str">'beta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">946</span>,
340
+ <span class="ruby-value str">'gamma'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">947</span>,
341
+ <span class="ruby-value str">'delta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">948</span>,
342
+ <span class="ruby-value str">'epsilon'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">949</span>,
343
+ <span class="ruby-value str">'zeta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">950</span>,
344
+ <span class="ruby-value str">'eta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">951</span>,
345
+ <span class="ruby-value str">'theta'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">952</span>,
346
+ <span class="ruby-value str">'iota'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">953</span>,
347
+ <span class="ruby-value str">'kappa'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">954</span>,
348
+ <span class="ruby-value str">'lambda'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">955</span>,
349
+ <span class="ruby-value str">'mu'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">956</span>,
350
+ <span class="ruby-value str">'nu'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">957</span>,
351
+ <span class="ruby-value str">'xi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">958</span>,
352
+ <span class="ruby-value str">'omicron'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">959</span>,
353
+ <span class="ruby-value str">'pi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">960</span>,
354
+ <span class="ruby-value str">'rho'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">961</span>,
355
+ <span class="ruby-value str">'sigmaf'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">962</span>,
356
+ <span class="ruby-value str">'sigma'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">963</span>,
357
+ <span class="ruby-value str">'tau'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">964</span>,
358
+ <span class="ruby-value str">'upsilon'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">965</span>,
359
+ <span class="ruby-value str">'phi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">966</span>,
360
+ <span class="ruby-value str">'chi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">967</span>,
361
+ <span class="ruby-value str">'psi'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">968</span>,
362
+ <span class="ruby-value str">'omega'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">969</span>,
363
+ <span class="ruby-value str">'thetasym'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">977</span>,
364
+ <span class="ruby-value str">'upsih'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">978</span>,
365
+ <span class="ruby-value str">'piv'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">982</span>,
366
+ <span class="ruby-value str">'bull'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8226</span>,
367
+ <span class="ruby-value str">'hellip'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8230</span>,
368
+ <span class="ruby-value str">'prime'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8242</span>,
369
+ <span class="ruby-value str">'Prime'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8243</span>,
370
+ <span class="ruby-value str">'oline'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8254</span>,
371
+ <span class="ruby-value str">'frasl'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8260</span>,
372
+ <span class="ruby-value str">'weierp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8472</span>,
373
+ <span class="ruby-value str">'image'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8465</span>,
374
+ <span class="ruby-value str">'real'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8476</span>,
375
+ <span class="ruby-value str">'trade'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8482</span>,
376
+ <span class="ruby-value str">'alefsym'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8501</span>,
377
+ <span class="ruby-value str">'larr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8592</span>,
378
+ <span class="ruby-value str">'uarr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8593</span>,
379
+ <span class="ruby-value str">'rarr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8594</span>,
380
+ <span class="ruby-value str">'darr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8595</span>,
381
+ <span class="ruby-value str">'harr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8596</span>,
382
+ <span class="ruby-value str">'crarr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8629</span>,
383
+ <span class="ruby-value str">'lArr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8656</span>,
384
+ <span class="ruby-value str">'uArr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8657</span>,
385
+ <span class="ruby-value str">'rArr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8658</span>,
386
+ <span class="ruby-value str">'dArr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8659</span>,
387
+ <span class="ruby-value str">'hArr'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8660</span>,
388
+ <span class="ruby-value str">'forall'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8704</span>,
389
+ <span class="ruby-value str">'part'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8706</span>,
390
+ <span class="ruby-value str">'exist'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8707</span>,
391
+ <span class="ruby-value str">'empty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8709</span>,
392
+ <span class="ruby-value str">'nabla'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8711</span>,
393
+ <span class="ruby-value str">'isin'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8712</span>,
394
+ <span class="ruby-value str">'notin'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8713</span>,
395
+ <span class="ruby-value str">'ni'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8715</span>,
396
+ <span class="ruby-value str">'prod'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8719</span>,
397
+ <span class="ruby-value str">'sum'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8721</span>,
398
+ <span class="ruby-value str">'minus'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8722</span>,
399
+ <span class="ruby-value str">'lowast'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8727</span>,
400
+ <span class="ruby-value str">'radic'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8730</span>,
401
+ <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8733</span>,
402
+ <span class="ruby-value str">'infin'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8734</span>,
403
+ <span class="ruby-value str">'ang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8736</span>,
404
+ <span class="ruby-value str">'and'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8743</span>,
405
+ <span class="ruby-value str">'or'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8744</span>,
406
+ <span class="ruby-value str">'cap'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8745</span>,
407
+ <span class="ruby-value str">'cup'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8746</span>,
408
+ <span class="ruby-value str">'int'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8747</span>,
409
+ <span class="ruby-value str">'there4'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8756</span>,
410
+ <span class="ruby-value str">'sim'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8764</span>,
411
+ <span class="ruby-value str">'cong'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8773</span>,
412
+ <span class="ruby-value str">'asymp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8776</span>,
413
+ <span class="ruby-value str">'ne'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8800</span>,
414
+ <span class="ruby-value str">'equiv'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8801</span>,
415
+ <span class="ruby-value str">'le'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8804</span>,
416
+ <span class="ruby-value str">'ge'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8805</span>,
417
+ <span class="ruby-value str">'sub'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8834</span>,
418
+ <span class="ruby-value str">'sup'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8835</span>,
419
+ <span class="ruby-value str">'nsub'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8836</span>,
420
+ <span class="ruby-value str">'sube'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8838</span>,
421
+ <span class="ruby-value str">'supe'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8839</span>,
422
+ <span class="ruby-value str">'oplus'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8853</span>,
423
+ <span class="ruby-value str">'otimes'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8855</span>,
424
+ <span class="ruby-value str">'perp'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8869</span>,
425
+ <span class="ruby-value str">'sdot'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8901</span>,
426
+ <span class="ruby-value str">'lceil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8968</span>,
427
+ <span class="ruby-value str">'rceil'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8969</span>,
428
+ <span class="ruby-value str">'lfloor'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8970</span>,
429
+ <span class="ruby-value str">'rfloor'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">8971</span>,
430
+ <span class="ruby-value str">'lang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9001</span>,
431
+ <span class="ruby-value str">'rang'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9002</span>,
432
+ <span class="ruby-value str">'loz'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9674</span>,
433
+ <span class="ruby-value str">'spades'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9824</span>,
434
+ <span class="ruby-value str">'clubs'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9827</span>,
435
+ <span class="ruby-value str">'hearts'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9829</span>,
436
+ <span class="ruby-value str">'diams'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9830</span>,
437
+ }
438
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/&amp;(?:([a-zA-Z]+)|#([0-9]+)|#x([a-fA-F0-9]+));/</span>) {
439
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$1</span> <span class="ruby-keyword kw">then</span>
440
+ <span class="ruby-identifier">v</span> = <span class="ruby-ivar">@@xhtml_entity_replacements</span>[<span class="ruby-identifier">$1</span>]
441
+ <span class="ruby-comment cmt"># Nonstandard entity</span>
442
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">v</span>
443
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">extra_entities</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Proc</span>
444
+ <span class="ruby-identifier">v</span> = <span class="ruby-identifier">extra_entities</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">$1</span>)
445
+ <span class="ruby-comment cmt"># Well, we expect a Hash here, but any container will do.</span>
446
+ <span class="ruby-comment cmt"># As long as it's not a nil.</span>
447
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">extra_entities</span>
448
+ <span class="ruby-identifier">v</span> = <span class="ruby-identifier">extra_entities</span>[<span class="ruby-identifier">$1</span>]
449
+ <span class="ruby-keyword kw">end</span>
450
+ <span class="ruby-keyword kw">end</span>
451
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown escape #{$1}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">v</span>
452
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">$2</span>
453
+ <span class="ruby-identifier">v</span> = <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">to_i</span>
454
+ <span class="ruby-keyword kw">else</span>
455
+ <span class="ruby-identifier">v</span> = <span class="ruby-identifier">$3</span>.<span class="ruby-identifier">hex</span>
456
+ <span class="ruby-keyword kw">end</span>
457
+ <span class="ruby-comment cmt"># v can be a String or an Integer</span>
458
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">else</span> [<span class="ruby-identifier">v</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'U'</span>) <span class="ruby-keyword kw">end</span>
459
+ }
460
+ <span class="ruby-keyword kw">end</span>
461
+ </pre>
462
+ </div>
463
+ </div>
464
+ </div>
465
+ </div>
466
+
467
+ </div>
468
+
469
+ </body>
470
+ </html>