caxlsx 3.1.1 → 3.2.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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -343
  5. data/LICENSE +21 -21
  6. data/README.md +168 -172
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -294
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -768
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -171
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -86
  186. data/test/drawing/tc_bar_chart.rb +86 -86
  187. data/test/drawing/tc_bar_series.rb +46 -46
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -10
  247. data/test/tc_package.rb +317 -314
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -143
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -160
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -77
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +101 -101
data/lib/schema/xml.xsd CHANGED
@@ -1,116 +1,116 @@
1
- <?xml version='1.0'?>
2
- <xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
-
4
- <xs:annotation>
5
- <xs:documentation>
6
- See http://www.w3.org/XML/1998/namespace.html and
7
- http://www.w3.org/TR/REC-xml for information about this namespace.
8
-
9
- This schema document describes the XML namespace, in a form
10
- suitable for import by other schema documents.
11
-
12
- Note that local names in this namespace are intended to be defined
13
- only by the World Wide Web Consortium or its subgroups. The
14
- following names are currently defined in this namespace and should
15
- not be used with conflicting semantics by any Working Group,
16
- specification, or document instance:
17
-
18
- base (as an attribute name): denotes an attribute whose value
19
- provides a URI to be used as the base for interpreting any
20
- relative URIs in the scope of the element on which it
21
- appears; its value is inherited. This name is reserved
22
- by virtue of its definition in the XML Base specification.
23
-
24
- lang (as an attribute name): denotes an attribute whose value
25
- is a language code for the natural language of the content of
26
- any element; its value is inherited. This name is reserved
27
- by virtue of its definition in the XML specification.
28
-
29
- space (as an attribute name): denotes an attribute whose
30
- value is a keyword indicating what whitespace processing
31
- discipline is intended for the content of the element; its
32
- value is inherited. This name is reserved by virtue of its
33
- definition in the XML specification.
34
-
35
- Father (in any context at all): denotes Jon Bosak, the chair of
36
- the original XML Working Group. This name is reserved by
37
- the following decision of the W3C XML Plenary and
38
- XML Coordination groups:
39
-
40
- In appreciation for his vision, leadership and dedication
41
- the W3C XML Plenary on this 10th day of February, 2000
42
- reserves for Jon Bosak in perpetuity the XML name
43
- xml:Father
44
- </xs:documentation>
45
- </xs:annotation>
46
-
47
- <xs:annotation>
48
- <xs:documentation>This schema defines attributes and an attribute group
49
- suitable for use by
50
- schemas wishing to allow xml:base, xml:lang or xml:space attributes
51
- on elements they define.
52
-
53
- To enable this, such a schema must import this schema
54
- for the XML namespace, e.g. as follows:
55
- &lt;schema . . .>
56
- . . .
57
- &lt;import namespace="http://www.w3.org/XML/1998/namespace"
58
- schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
59
-
60
- Subsequently, qualified reference to any of the attributes
61
- or the group defined below will have the desired effect, e.g.
62
-
63
- &lt;type . . .>
64
- . . .
65
- &lt;attributeGroup ref="xml:specialAttrs"/>
66
-
67
- will define a type which will schema-validate an instance
68
- element with any of those attributes</xs:documentation>
69
- </xs:annotation>
70
-
71
- <xs:annotation>
72
- <xs:documentation>In keeping with the XML Schema WG's standard versioning
73
- policy, this schema document will persist at
74
- http://www.w3.org/2001/03/xml.xsd.
75
- At the date of issue it can also be found at
76
- http://www.w3.org/2001/xml.xsd.
77
- The schema document at that URI may however change in the future,
78
- in order to remain compatible with the latest version of XML Schema
79
- itself. In other words, if the XML Schema namespace changes, the version
80
- of this document at
81
- http://www.w3.org/2001/xml.xsd will change
82
- accordingly; the version at
83
- http://www.w3.org/2001/03/xml.xsd will not change.
84
- </xs:documentation>
85
- </xs:annotation>
86
-
87
- <xs:attribute name="lang" type="xs:language">
88
- <xs:annotation>
89
- <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
90
- codes as the enumerated possible values . . .</xs:documentation>
91
- </xs:annotation>
92
- </xs:attribute>
93
-
94
- <xs:attribute name="space" default="preserve">
95
- <xs:simpleType>
96
- <xs:restriction base="xs:NCName">
97
- <xs:enumeration value="default"/>
98
- <xs:enumeration value="preserve"/>
99
- </xs:restriction>
100
- </xs:simpleType>
101
- </xs:attribute>
102
-
103
- <xs:attribute name="base" type="xs:anyURI">
104
- <xs:annotation>
105
- <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
106
- information about this attribute.</xs:documentation>
107
- </xs:annotation>
108
- </xs:attribute>
109
-
110
- <xs:attributeGroup name="specialAttrs">
111
- <xs:attribute ref="xml:base"/>
112
- <xs:attribute ref="xml:lang"/>
113
- <xs:attribute ref="xml:space"/>
114
- </xs:attributeGroup>
115
-
116
- </xs:schema>
1
+ <?xml version='1.0'?>
2
+ <xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:annotation>
5
+ <xs:documentation>
6
+ See http://www.w3.org/XML/1998/namespace.html and
7
+ http://www.w3.org/TR/REC-xml for information about this namespace.
8
+
9
+ This schema document describes the XML namespace, in a form
10
+ suitable for import by other schema documents.
11
+
12
+ Note that local names in this namespace are intended to be defined
13
+ only by the World Wide Web Consortium or its subgroups. The
14
+ following names are currently defined in this namespace and should
15
+ not be used with conflicting semantics by any Working Group,
16
+ specification, or document instance:
17
+
18
+ base (as an attribute name): denotes an attribute whose value
19
+ provides a URI to be used as the base for interpreting any
20
+ relative URIs in the scope of the element on which it
21
+ appears; its value is inherited. This name is reserved
22
+ by virtue of its definition in the XML Base specification.
23
+
24
+ lang (as an attribute name): denotes an attribute whose value
25
+ is a language code for the natural language of the content of
26
+ any element; its value is inherited. This name is reserved
27
+ by virtue of its definition in the XML specification.
28
+
29
+ space (as an attribute name): denotes an attribute whose
30
+ value is a keyword indicating what whitespace processing
31
+ discipline is intended for the content of the element; its
32
+ value is inherited. This name is reserved by virtue of its
33
+ definition in the XML specification.
34
+
35
+ Father (in any context at all): denotes Jon Bosak, the chair of
36
+ the original XML Working Group. This name is reserved by
37
+ the following decision of the W3C XML Plenary and
38
+ XML Coordination groups:
39
+
40
+ In appreciation for his vision, leadership and dedication
41
+ the W3C XML Plenary on this 10th day of February, 2000
42
+ reserves for Jon Bosak in perpetuity the XML name
43
+ xml:Father
44
+ </xs:documentation>
45
+ </xs:annotation>
46
+
47
+ <xs:annotation>
48
+ <xs:documentation>This schema defines attributes and an attribute group
49
+ suitable for use by
50
+ schemas wishing to allow xml:base, xml:lang or xml:space attributes
51
+ on elements they define.
52
+
53
+ To enable this, such a schema must import this schema
54
+ for the XML namespace, e.g. as follows:
55
+ &lt;schema . . .>
56
+ . . .
57
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
58
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
59
+
60
+ Subsequently, qualified reference to any of the attributes
61
+ or the group defined below will have the desired effect, e.g.
62
+
63
+ &lt;type . . .>
64
+ . . .
65
+ &lt;attributeGroup ref="xml:specialAttrs"/>
66
+
67
+ will define a type which will schema-validate an instance
68
+ element with any of those attributes</xs:documentation>
69
+ </xs:annotation>
70
+
71
+ <xs:annotation>
72
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
73
+ policy, this schema document will persist at
74
+ http://www.w3.org/2001/03/xml.xsd.
75
+ At the date of issue it can also be found at
76
+ http://www.w3.org/2001/xml.xsd.
77
+ The schema document at that URI may however change in the future,
78
+ in order to remain compatible with the latest version of XML Schema
79
+ itself. In other words, if the XML Schema namespace changes, the version
80
+ of this document at
81
+ http://www.w3.org/2001/xml.xsd will change
82
+ accordingly; the version at
83
+ http://www.w3.org/2001/03/xml.xsd will not change.
84
+ </xs:documentation>
85
+ </xs:annotation>
86
+
87
+ <xs:attribute name="lang" type="xs:language">
88
+ <xs:annotation>
89
+ <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
90
+ codes as the enumerated possible values . . .</xs:documentation>
91
+ </xs:annotation>
92
+ </xs:attribute>
93
+
94
+ <xs:attribute name="space" default="preserve">
95
+ <xs:simpleType>
96
+ <xs:restriction base="xs:NCName">
97
+ <xs:enumeration value="default"/>
98
+ <xs:enumeration value="preserve"/>
99
+ </xs:restriction>
100
+ </xs:simpleType>
101
+ </xs:attribute>
102
+
103
+ <xs:attribute name="base" type="xs:anyURI">
104
+ <xs:annotation>
105
+ <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
106
+ information about this attribute.</xs:documentation>
107
+ </xs:annotation>
108
+ </xs:attribute>
109
+
110
+ <xs:attributeGroup name="specialAttrs">
111
+ <xs:attribute ref="xml:base"/>
112
+ <xs:attribute ref="xml:lang"/>
113
+ <xs:attribute ref="xml:space"/>
114
+ </xs:attributeGroup>
115
+
116
+ </xs:schema>
data/test/benchmark.rb CHANGED
@@ -1,72 +1,72 @@
1
- #!/usr/bin/env ruby -s
2
- $:.unshift "#{File.dirname(__FILE__)}/../lib"
3
- require 'axlsx'
4
- require 'csv'
5
- require 'benchmark'
6
- Axlsx::trust_input = true
7
- row = []
8
- input = (32..126).to_a.pack('U*').chars.to_a
9
- 20.times { row << input.shuffle.join}
10
- times = 3000
11
- Benchmark.bmbm(30) do |x|
12
-
13
- x.report('axlsx_noautowidth') {
14
- p = Axlsx::Package.new
15
- p.workbook do |wb|
16
- wb.add_worksheet do |sheet|
17
- times.times do
18
- sheet << row
19
- end
20
- end
21
- end
22
- p.use_autowidth = false
23
- p.serialize("example_noautowidth.xlsx")
24
- }
25
-
26
- x.report('axlsx') {
27
- p = Axlsx::Package.new
28
- p.workbook do |wb|
29
- wb.add_worksheet do |sheet|
30
- times.times do
31
- sheet << row
32
- end
33
- end
34
- end
35
- p.serialize("example_autowidth.xlsx")
36
- }
37
-
38
- x.report('axlsx_shared') {
39
- p = Axlsx::Package.new
40
- p.workbook do |wb|
41
- wb.add_worksheet do |sheet|
42
- times.times do
43
- sheet << row
44
- end
45
- end
46
- end
47
- p.use_shared_strings = true
48
- p.serialize("example_shared.xlsx")
49
- }
50
-
51
- x.report('axlsx_stream') {
52
- p = Axlsx::Package.new
53
- p.workbook do |wb|
54
- wb.add_worksheet do |sheet|
55
- times.times do
56
- sheet << row
57
- end
58
- end
59
- end
60
- s = p.to_stream()
61
- File.open('example_streamed.xlsx', 'w') { |f| f.write(s.read) }
62
- }
63
-
64
- x.report('csv') {
65
- CSV.open("example.csv", "wb") do |csv|
66
- times.times do
67
- csv << row
68
- end
69
- end
70
- }
71
- end
72
- File.delete("example.csv", "example_streamed.xlsx", "example_shared.xlsx", "example_autowidth.xlsx", "example_noautowidth.xlsx")
1
+ #!/usr/bin/env ruby -s
2
+ $:.unshift "#{File.dirname(__FILE__)}/../lib"
3
+ require 'axlsx'
4
+ require 'csv'
5
+ require 'benchmark'
6
+ Axlsx::trust_input = true
7
+ row = []
8
+ input = (32..126).to_a.pack('U*').chars.to_a
9
+ 20.times { row << input.shuffle.join}
10
+ times = 3000
11
+ Benchmark.bmbm(30) do |x|
12
+
13
+ x.report('axlsx_noautowidth') {
14
+ p = Axlsx::Package.new
15
+ p.workbook do |wb|
16
+ wb.add_worksheet do |sheet|
17
+ times.times do
18
+ sheet << row
19
+ end
20
+ end
21
+ end
22
+ p.use_autowidth = false
23
+ p.serialize("example_noautowidth.xlsx")
24
+ }
25
+
26
+ x.report('axlsx') {
27
+ p = Axlsx::Package.new
28
+ p.workbook do |wb|
29
+ wb.add_worksheet do |sheet|
30
+ times.times do
31
+ sheet << row
32
+ end
33
+ end
34
+ end
35
+ p.serialize("example_autowidth.xlsx")
36
+ }
37
+
38
+ x.report('axlsx_shared') {
39
+ p = Axlsx::Package.new
40
+ p.workbook do |wb|
41
+ wb.add_worksheet do |sheet|
42
+ times.times do
43
+ sheet << row
44
+ end
45
+ end
46
+ end
47
+ p.use_shared_strings = true
48
+ p.serialize("example_shared.xlsx")
49
+ }
50
+
51
+ x.report('axlsx_stream') {
52
+ p = Axlsx::Package.new
53
+ p.workbook do |wb|
54
+ wb.add_worksheet do |sheet|
55
+ times.times do
56
+ sheet << row
57
+ end
58
+ end
59
+ end
60
+ s = p.to_stream()
61
+ File.open('example_streamed.xlsx', 'w') { |f| f.write(s.read) }
62
+ }
63
+
64
+ x.report('csv') {
65
+ CSV.open("example.csv", "wb") do |csv|
66
+ times.times do
67
+ csv << row
68
+ end
69
+ end
70
+ }
71
+ end
72
+ File.delete("example.csv", "example_streamed.xlsx", "example_shared.xlsx", "example_autowidth.xlsx", "example_noautowidth.xlsx")
@@ -1,76 +1,76 @@
1
- # encoding: UTF-8
2
- require 'tc_helper.rb'
3
-
4
- class TestContentType < Test::Unit::TestCase
5
- def setup
6
- @package = Axlsx::Package.new
7
- @doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
8
- end
9
-
10
- def test_valid_document
11
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CONTENT_TYPES_XSD))
12
- assert(schema.validate(@doc).map{ |e| puts e.message; e.message }.empty?)
13
- end
14
-
15
- def test_pre_built_types
16
-
17
- o_path = "//xmlns:Override[@ContentType='%s']"
18
- d_path = "//xmlns:Default[@ContentType='%s']"
19
-
20
- #default
21
- assert_equal(@doc.xpath("//xmlns:Default").size, 2, "There should be 2 default types")
22
-
23
- node = @doc.xpath(d_path % Axlsx::XML_CT).first
24
- assert_equal(node["Extension"], "#{Axlsx::XML_EX}", "xml content type invalid")
25
-
26
- node = @doc.xpath(d_path % Axlsx::RELS_CT).first
27
- assert_equal(node["Extension"],"#{Axlsx::RELS_EX}", "relationships content type invalid")
28
-
29
- #overrride
30
- assert_equal(@doc.xpath("//xmlns:Override").size, 4, "There should be 4 Override types")
31
-
32
- node = @doc.xpath(o_path % Axlsx::APP_CT).first
33
- assert_equal(node["PartName"], "/#{Axlsx::APP_PN}", "App part name invalid")
34
-
35
- node = @doc.xpath(o_path % Axlsx::CORE_CT).first
36
- assert_equal(node["PartName"], "/#{Axlsx::CORE_PN}", "Core part name invalid")
37
-
38
- node = @doc.xpath(o_path % Axlsx::STYLES_CT).first
39
- assert_equal(node["PartName"], "/xl/#{Axlsx::STYLES_PN}", "Styles part name invalid")
40
-
41
- node = @doc.xpath(o_path % Axlsx::WORKBOOK_CT).first
42
- assert_equal(node["PartName"], "/#{Axlsx::WORKBOOK_PN}", "Workbook part invalid")
43
- end
44
-
45
- def test_should_get_worksheet_for_worksheets
46
- o_path = "//xmlns:Override[@ContentType='%s']"
47
-
48
- ws = @package.workbook.add_worksheet
49
- doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
50
- assert_equal(doc.xpath("//xmlns:Override").size, 5, "adding a worksheet should add another type")
51
- assert_equal(doc.xpath(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
52
-
53
- ws = @package.workbook.add_worksheet
54
- doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
55
- assert_equal(doc.xpath("//xmlns:Override").size, 6, "adding workship should add another type")
56
- assert_equal(doc.xpath(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
57
-
58
- end
59
-
60
- def test_drawings_and_charts_need_content_types
61
- o_path = "//xmlns:Override[@ContentType='%s']"
62
- ws = @package.workbook.add_worksheet
63
-
64
- c = ws.add_chart Axlsx::Pie3DChart
65
- doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
66
- assert_equal(doc.xpath("//xmlns:Override").size, 7, "expected 7 types got #{doc.css("Types Override").size}")
67
- assert_equal(doc.xpath(o_path % Axlsx::DRAWING_CT).first["PartName"], "/xl/#{ws.drawing.pn}", "Drawing part name invlid")
68
- assert_equal(doc.xpath(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
69
-
70
- c = ws.add_chart Axlsx::Pie3DChart
71
- doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
72
- assert_equal(doc.xpath("//xmlns:Override").size, 8, "expected 7 types got #{doc.css("Types Override").size}")
73
- assert_equal(doc.xpath(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
74
- end
75
-
76
- end
1
+ # encoding: UTF-8
2
+ require 'tc_helper.rb'
3
+
4
+ class TestContentType < Test::Unit::TestCase
5
+ def setup
6
+ @package = Axlsx::Package.new
7
+ @doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
8
+ end
9
+
10
+ def test_valid_document
11
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::CONTENT_TYPES_XSD))
12
+ assert(schema.validate(@doc).map{ |e| puts e.message; e.message }.empty?)
13
+ end
14
+
15
+ def test_pre_built_types
16
+
17
+ o_path = "//xmlns:Override[@ContentType='%s']"
18
+ d_path = "//xmlns:Default[@ContentType='%s']"
19
+
20
+ #default
21
+ assert_equal(@doc.xpath("//xmlns:Default").size, 2, "There should be 2 default types")
22
+
23
+ node = @doc.xpath(d_path % Axlsx::XML_CT).first
24
+ assert_equal(node["Extension"], "#{Axlsx::XML_EX}", "xml content type invalid")
25
+
26
+ node = @doc.xpath(d_path % Axlsx::RELS_CT).first
27
+ assert_equal(node["Extension"],"#{Axlsx::RELS_EX}", "relationships content type invalid")
28
+
29
+ #overrride
30
+ assert_equal(@doc.xpath("//xmlns:Override").size, 4, "There should be 4 Override types")
31
+
32
+ node = @doc.xpath(o_path % Axlsx::APP_CT).first
33
+ assert_equal(node["PartName"], "/#{Axlsx::APP_PN}", "App part name invalid")
34
+
35
+ node = @doc.xpath(o_path % Axlsx::CORE_CT).first
36
+ assert_equal(node["PartName"], "/#{Axlsx::CORE_PN}", "Core part name invalid")
37
+
38
+ node = @doc.xpath(o_path % Axlsx::STYLES_CT).first
39
+ assert_equal(node["PartName"], "/xl/#{Axlsx::STYLES_PN}", "Styles part name invalid")
40
+
41
+ node = @doc.xpath(o_path % Axlsx::WORKBOOK_CT).first
42
+ assert_equal(node["PartName"], "/#{Axlsx::WORKBOOK_PN}", "Workbook part invalid")
43
+ end
44
+
45
+ def test_should_get_worksheet_for_worksheets
46
+ o_path = "//xmlns:Override[@ContentType='%s']"
47
+
48
+ ws = @package.workbook.add_worksheet
49
+ doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
50
+ assert_equal(doc.xpath("//xmlns:Override").size, 5, "adding a worksheet should add another type")
51
+ assert_equal(doc.xpath(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
52
+
53
+ ws = @package.workbook.add_worksheet
54
+ doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
55
+ assert_equal(doc.xpath("//xmlns:Override").size, 6, "adding workship should add another type")
56
+ assert_equal(doc.xpath(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
57
+
58
+ end
59
+
60
+ def test_drawings_and_charts_need_content_types
61
+ o_path = "//xmlns:Override[@ContentType='%s']"
62
+ ws = @package.workbook.add_worksheet
63
+
64
+ c = ws.add_chart Axlsx::Pie3DChart
65
+ doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
66
+ assert_equal(doc.xpath("//xmlns:Override").size, 7, "expected 7 types got #{doc.css("Types Override").size}")
67
+ assert_equal(doc.xpath(o_path % Axlsx::DRAWING_CT).first["PartName"], "/xl/#{ws.drawing.pn}", "Drawing part name invlid")
68
+ assert_equal(doc.xpath(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
69
+
70
+ c = ws.add_chart Axlsx::Pie3DChart
71
+ doc = Nokogiri::XML(@package.send(:content_types).to_xml_string)
72
+ assert_equal(doc.xpath("//xmlns:Override").size, 8, "expected 7 types got #{doc.css("Types Override").size}")
73
+ assert_equal(doc.xpath(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
74
+ end
75
+
76
+ end
@@ -1,16 +1,16 @@
1
- # encoding: UTF-8
2
- require 'tc_helper.rb'
3
-
4
- class TestDefault < Test::Unit::TestCase
5
-
6
- def test_content_type_restriction
7
- assert_raise(ArgumentError, "raises argument error if invlalid ContentType is") { Axlsx::Default.new :ContentType=>"asdf" }
8
- end
9
-
10
- def test_to_xml_string
11
- type = Axlsx::Default.new :Extension=>"xml", :ContentType=>Axlsx::XML_CT
12
- doc = Nokogiri::XML(type.to_xml_string)
13
- assert_equal(doc.xpath("Default[@ContentType='#{Axlsx::XML_CT}']").size, 1)
14
- assert_equal(doc.xpath("Default[@Extension='xml']").size, 1)
15
- end
16
- end
1
+ # encoding: UTF-8
2
+ require 'tc_helper.rb'
3
+
4
+ class TestDefault < Test::Unit::TestCase
5
+
6
+ def test_content_type_restriction
7
+ assert_raise(ArgumentError, "raises argument error if invlalid ContentType is") { Axlsx::Default.new :ContentType=>"asdf" }
8
+ end
9
+
10
+ def test_to_xml_string
11
+ type = Axlsx::Default.new :Extension=>"xml", :ContentType=>Axlsx::XML_CT
12
+ doc = Nokogiri::XML(type.to_xml_string)
13
+ assert_equal(doc.xpath("Default[@ContentType='#{Axlsx::XML_CT}']").size, 1)
14
+ assert_equal(doc.xpath("Default[@Extension='xml']").size, 1)
15
+ end
16
+ end
@@ -1,14 +1,14 @@
1
- require 'tc_helper.rb'
2
- class TestOverride < Test::Unit::TestCase
3
-
4
- def test_content_type_restriction
5
- assert_raise(ArgumentError, "requires known content type") { Axlsx::Override.new :ContentType=>"asdf" }
6
- end
7
-
8
- def test_to_xml
9
- type = Axlsx::Override.new :PartName=>"somechart.xml", :ContentType=>Axlsx::CHART_CT
10
- doc = Nokogiri::XML(type.to_xml_string)
11
- assert_equal(doc.xpath("Override[@ContentType='#{Axlsx::CHART_CT}']").size, 1)
12
- assert_equal(doc.xpath("Override[@PartName='somechart.xml']").size, 1)
13
- end
14
- end
1
+ require 'tc_helper.rb'
2
+ class TestOverride < Test::Unit::TestCase
3
+
4
+ def test_content_type_restriction
5
+ assert_raise(ArgumentError, "requires known content type") { Axlsx::Override.new :ContentType=>"asdf" }
6
+ end
7
+
8
+ def test_to_xml
9
+ type = Axlsx::Override.new :PartName=>"somechart.xml", :ContentType=>Axlsx::CHART_CT
10
+ doc = Nokogiri::XML(type.to_xml_string)
11
+ assert_equal(doc.xpath("Override[@ContentType='#{Axlsx::CHART_CT}']").size, 1)
12
+ assert_equal(doc.xpath("Override[@PartName='somechart.xml']").size, 1)
13
+ end
14
+ end