libxml-ruby 0.5.4 → 0.6.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 (139) hide show
  1. data/LICENSE +23 -23
  2. data/README +144 -144
  3. data/ext/libxml/extconf.rb +26 -27
  4. data/ext/libxml/libxml.c +7 -37
  5. data/ext/libxml/{libxml.h → ruby_libxml.h} +93 -98
  6. data/ext/libxml/ruby_xml_attr.c +405 -387
  7. data/ext/libxml/ruby_xml_attr.h +19 -18
  8. data/ext/libxml/ruby_xml_document.c +1111 -1115
  9. data/ext/libxml/ruby_xml_document.h +27 -24
  10. data/ext/libxml/ruby_xml_dtd.c +168 -168
  11. data/ext/libxml/ruby_xml_html_parser.c +449 -450
  12. data/ext/libxml/ruby_xml_html_parser.h +1 -1
  13. data/ext/libxml/ruby_xml_input_cbg.c +158 -158
  14. data/ext/libxml/ruby_xml_node.c +2410 -2395
  15. data/ext/libxml/ruby_xml_node.h +1 -1
  16. data/ext/libxml/ruby_xml_node_set.c +170 -170
  17. data/ext/libxml/ruby_xml_node_set.h +1 -1
  18. data/ext/libxml/ruby_xml_ns.c +153 -153
  19. data/ext/libxml/ruby_xml_ns.h +1 -1
  20. data/ext/libxml/ruby_xml_parser.c +1425 -1422
  21. data/ext/libxml/ruby_xml_parser.h +1 -1
  22. data/ext/libxml/ruby_xml_parser_context.c +750 -716
  23. data/ext/libxml/ruby_xml_parser_context.h +1 -1
  24. data/ext/libxml/ruby_xml_reader.c +900 -896
  25. data/ext/libxml/ruby_xml_sax_parser.c +485 -485
  26. data/ext/libxml/ruby_xml_sax_parser.h +1 -1
  27. data/ext/libxml/ruby_xml_schema.c +146 -142
  28. data/ext/libxml/ruby_xml_state.c +5 -6
  29. data/ext/libxml/ruby_xml_state.h +1 -0
  30. data/ext/libxml/ruby_xml_tree.c +43 -43
  31. data/ext/libxml/ruby_xml_tree.h +1 -1
  32. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  33. data/ext/libxml/ruby_xml_xinclude.h +1 -1
  34. data/ext/libxml/ruby_xml_xpath.c +243 -252
  35. data/ext/libxml/ruby_xml_xpath.h +1 -1
  36. data/ext/libxml/ruby_xml_xpath_context.c +118 -118
  37. data/ext/libxml/ruby_xml_xpath_context.h +1 -1
  38. data/ext/libxml/ruby_xml_xpath_object.c +43 -29
  39. data/ext/libxml/ruby_xml_xpath_object.h +0 -1
  40. data/ext/libxml/ruby_xml_xpointer.c +100 -100
  41. data/ext/libxml/ruby_xml_xpointer.h +1 -1
  42. data/ext/libxml/ruby_xml_xpointer_context.c +21 -21
  43. data/ext/libxml/ruby_xml_xpointer_context.h +1 -1
  44. data/ext/libxml/sax_parser_callbacks.inc +213 -213
  45. data/ext/libxml/version.h +9 -9
  46. data/lib/libxml.rb +24 -3
  47. data/mingw/libiconv-2.dll +0 -0
  48. data/mingw/libxml2-2.dll +0 -0
  49. data/mingw/libxml_ruby.so +0 -0
  50. data/mingw/mingw.rake +36 -0
  51. data/test/dtd-test.rb +24 -24
  52. data/test/etc_doc_to_s.rb +1 -3
  53. data/test/ets_copy_bug.rb +21 -21
  54. data/test/ets_copy_bug2.rb +32 -32
  55. data/test/ets_copy_bug3.rb +38 -0
  56. data/test/ets_doc_file.rb +1 -0
  57. data/test/{model/default_validation_bug.rb → gc.log} +0 -0
  58. data/test/merge_bug.rb +55 -55
  59. data/test/schema-test.rb +74 -74
  60. data/test/tc_well_formed.rb +11 -0
  61. data/test/tc_xml_document.rb +52 -52
  62. data/test/tc_xml_document_write.rb +24 -24
  63. data/test/tc_xml_document_write2.rb +54 -54
  64. data/test/tc_xml_document_write3.rb +96 -96
  65. data/test/tc_xml_html_parser.rb +63 -63
  66. data/test/tc_xml_node.rb +59 -59
  67. data/test/tc_xml_node2.rb +25 -25
  68. data/test/tc_xml_node3.rb +27 -27
  69. data/test/tc_xml_node4.rb +86 -86
  70. data/test/tc_xml_node5.rb +52 -52
  71. data/test/tc_xml_node6.rb +27 -27
  72. data/test/tc_xml_node7.rb +35 -35
  73. data/test/tc_xml_node8.rb +32 -32
  74. data/test/tc_xml_node9.rb +32 -32
  75. data/test/tc_xml_node_set.rb +24 -24
  76. data/test/tc_xml_node_set2.rb +37 -37
  77. data/test/tc_xml_node_xlink.rb +28 -28
  78. data/test/tc_xml_parser.rb +190 -178
  79. data/test/tc_xml_parser2.rb +16 -17
  80. data/test/tc_xml_parser3.rb +23 -23
  81. data/test/tc_xml_parser4.rb +33 -33
  82. data/test/tc_xml_parser5.rb +27 -27
  83. data/test/tc_xml_parser6.rb +23 -23
  84. data/test/tc_xml_parser7.rb +28 -28
  85. data/test/tc_xml_parser8.rb +32 -32
  86. data/test/tc_xml_parser9.rb +11 -0
  87. data/test/tc_xml_parser_context.rb +88 -88
  88. data/test/tc_xml_reader.rb +112 -109
  89. data/test/tc_xml_sax_parser.rb +104 -94
  90. data/test/tc_xml_sax_parser2.rb +51 -0
  91. data/test/tc_xml_xinclude.rb +30 -30
  92. data/test/tc_xml_xpath.rb +38 -38
  93. data/test/tc_xml_xpath2.rb +14 -0
  94. data/test/tc_xml_xpointer.rb +78 -78
  95. data/vc/libxml.sln +20 -0
  96. data/vc/libxml.vcproj +389 -0
  97. data/work/Rakefile +247 -0
  98. data/work/task/make +26 -0
  99. data/work/task/memory +37 -0
  100. data/work/task/rdoc +39 -0
  101. data/work/task/setup +1616 -0
  102. data/work/task/test +29 -0
  103. data/work/test/ets_runner.rb +33 -0
  104. data/work/test/libxml_test.rb +3 -0
  105. data/work/test/runner.rb +0 -0
  106. data/work/test/runner_ets.rb +33 -0
  107. data/work/vc/debug/libxml.exp +0 -0
  108. data/work/vc/debug/libxml.ilk +0 -0
  109. data/work/vc/debug/libxml.lib +0 -0
  110. data/work/vc/debug/libxml.pdb +0 -0
  111. data/work/vc/debug/libxml.so +0 -0
  112. metadata +158 -189
  113. data/MANIFEST +0 -138
  114. data/NOTES +0 -9
  115. data/Rakefile +0 -38
  116. data/TODO +0 -75
  117. data/VERSION +0 -1
  118. data/log/Changelog-0.txt +0 -426
  119. data/log/Changelog.txt +0 -435
  120. data/meta/project.yaml +0 -27
  121. data/meta/unixname +0 -1
  122. data/setup.rb +0 -1472
  123. data/site/css/normal.css +0 -182
  124. data/site/img/raze-tiny.png +0 -0
  125. data/site/img/red-cube.jpg +0 -0
  126. data/site/img/xml-ruby.png +0 -0
  127. data/site/index.xml +0 -43
  128. data/site/install.xml +0 -77
  129. data/site/layout.rhtml +0 -38
  130. data/site/layout.xsl +0 -67
  131. data/site/license.xml +0 -32
  132. data/site/log/changelog.xml +0 -1324
  133. data/site/log/changelog.xsl +0 -42
  134. data/test/model/merge_bug_data.xml +0 -58
  135. data/test/model/rubynet.xml +0 -78
  136. data/test/model/rubynet_project +0 -13
  137. data/test/model/saxtest.xml +0 -5
  138. data/test/model/simple.xml +0 -7
  139. data/test/model/xinclude.xml +0 -5
@@ -1,213 +1,213 @@
1
- /* $Id: sax_parser_callbacks.inc 225 2007-12-07 04:58:09Z transami $ */
2
-
3
- /* Please see the LICENSE file for copyright and distribution information */
4
-
5
- /*
6
- * SAX CALLBACK HANDLERS
7
- */
8
- static void internal_subset_func(ruby_xml_sax_parser *cbp,
9
- const char *name,
10
- const char *extid,
11
- const char *sysid) {
12
- VALUE handler = cbp->callbackHandler;
13
-
14
- if (handler && handler != Qnil) {
15
- rb_funcall(handler, cbidOnInternalSubset, 3, rb_str_new2(name),
16
- rb_str_new2(extid), rb_str_new2(sysid));
17
- }
18
- }
19
-
20
- static void is_standalone_func(ruby_xml_sax_parser *cbp) {
21
- VALUE handler = cbp->callbackHandler;
22
-
23
- if (handler && handler != Qnil) {
24
- rb_funcall(handler,cbidOnIsStandalone,0);
25
- }
26
- }
27
-
28
- static void has_internal_subset_func(ruby_xml_sax_parser *cbp) {
29
- VALUE handler = cbp->callbackHandler;
30
-
31
- if (handler && handler != Qnil) {
32
- rb_funcall(handler,cbidOnHasInternalSubset,0);
33
- }
34
- }
35
-
36
- static void has_external_subset_func(ruby_xml_sax_parser *cbp) {
37
- VALUE handler = cbp->callbackHandler;
38
-
39
- if (handler && handler != Qnil) {
40
- rb_funcall(handler,cbidOnHasExternalSubset,0);
41
- }
42
- }
43
-
44
- static void start_document_func(ruby_xml_sax_parser *cbp) {
45
- VALUE handler = cbp->callbackHandler;
46
-
47
- if (handler && handler != Qnil) {
48
- rb_funcall(handler,cbidOnStartDocument,0);
49
- }
50
- }
51
-
52
- static void end_document_func(ruby_xml_sax_parser *cbp) {
53
- VALUE handler = cbp->callbackHandler;
54
-
55
- if (handler && handler != Qnil) {
56
- rb_funcall(handler,cbidOnEndDocument,0);
57
- }
58
- }
59
-
60
- static void start_element_func(ruby_xml_sax_parser *cbp,
61
- const char *name, const char **attrs) {
62
- VALUE handler = cbp->callbackHandler;
63
- VALUE ahsh = rb_hash_new();
64
- const char *attr, *value;
65
-
66
- if (attrs) {
67
- while ((attr = *(attrs++))) {
68
- value = *(attrs++);
69
- rb_hash_aset(ahsh, rb_str_new2(attr), rb_str_new2(value));
70
- }
71
- }
72
-
73
- if (handler && handler != Qnil) {
74
- rb_funcall(handler,cbidOnStartElement,2,rb_str_new2(name),ahsh);
75
- }
76
- }
77
-
78
- static void end_element_func(ruby_xml_sax_parser *cbp,
79
- const char *name) {
80
- VALUE handler = cbp->callbackHandler;
81
-
82
- if (handler && handler != Qnil) {
83
- rb_funcall(handler,cbidOnEndElement,1,rb_str_new2(name));
84
- }
85
- }
86
-
87
- static void reference_func(ruby_xml_sax_parser *cbp,
88
- const char *name) {
89
- VALUE handler = cbp->callbackHandler;
90
-
91
- if (handler && handler != Qnil) {
92
- rb_funcall(handler,cbidOnReference,1,rb_str_new2(name));
93
- }
94
- }
95
-
96
- static void characters_func(ruby_xml_sax_parser *cbp,
97
- const char *chars, int len) {
98
- VALUE handler = cbp->callbackHandler;
99
-
100
- if (handler && handler != Qnil) {
101
- rb_funcall(handler,cbidOnCharacters,1,rb_str_new(chars, len));
102
- }
103
- }
104
-
105
- static void processing_instruction_func(ruby_xml_sax_parser *cbp,
106
- const char *target, const char *data) {
107
- VALUE handler = cbp->callbackHandler;
108
-
109
- if (handler && handler != Qnil) {
110
- rb_funcall(handler, cbidOnProcessingInstruction, 2,
111
- rb_str_new2(target),rb_str_new2(data));
112
- }
113
- }
114
-
115
- static void comment_func(ruby_xml_sax_parser *cbp,
116
- const char *msg) {
117
- VALUE handler = cbp->callbackHandler;
118
-
119
- if (handler && handler != Qnil) {
120
- rb_funcall(handler,cbidOnComment,1,rb_str_new2(msg));
121
- }
122
- }
123
-
124
- #define FORMAT_AND_CALL(callsym) \
125
- do { \
126
- va_list args; \
127
- char buf[1024]; \
128
- va_start(args, msg); \
129
- vsnprintf(buf, sizeof buf, msg, args); \
130
- rb_funcall(handler,callsym,1,rb_str_new2(buf)); \
131
- va_end(args); \
132
- } \
133
- while (0)
134
-
135
- // TODO these next three should actually be formatting messages.
136
- static void warning_func(ruby_xml_sax_parser *cbp,
137
- const char *msg, ...) {
138
- VALUE handler = cbp->callbackHandler;
139
-
140
- if (handler && handler != Qnil) {
141
- FORMAT_AND_CALL(cbidOnXmlParserWarning);
142
- }
143
- }
144
-
145
- static void error_func(ruby_xml_sax_parser *cbp,
146
- const char *msg, ...) {
147
- VALUE handler = cbp->callbackHandler;
148
-
149
- if (handler && handler != Qnil) {
150
- FORMAT_AND_CALL(cbidOnXmlParserError);
151
- }
152
- }
153
-
154
- static void fatal_error_func(ruby_xml_sax_parser *cbp,
155
- const char *msg, ...) {
156
- VALUE handler = cbp->callbackHandler;
157
-
158
- if (handler && handler != Qnil) {
159
- FORMAT_AND_CALL(cbidOnXmlParserFatalError);
160
- }
161
- }
162
-
163
- static void cdata_block_func(ruby_xml_sax_parser *cbp,
164
- const char *value, int len) {
165
- VALUE handler = cbp->callbackHandler;
166
-
167
- if (handler && handler != Qnil) {
168
- rb_funcall(handler,cbidOnCdataBlock,1,rb_str_new(value, len));
169
- }
170
- }
171
-
172
- static void external_subset_func(ruby_xml_sax_parser *cbp,
173
- const char *name,
174
- const char *extid,
175
- const char *sysid) {
176
- VALUE handler = cbp->callbackHandler;
177
-
178
- if (handler && handler != Qnil) {
179
- rb_funcall(handler, cbidOnExternalSubset, 3, rb_str_new2(name),
180
- rb_str_new2(extid), rb_str_new2(sysid));
181
- }
182
- }
183
-
184
- static xmlSAXHandler rubySAXHandlerStruct = {
185
- (internalSubsetSAXFunc)internal_subset_func,
186
- (isStandaloneSAXFunc)is_standalone_func,
187
- (hasInternalSubsetSAXFunc)has_internal_subset_func,
188
- (hasExternalSubsetSAXFunc)has_external_subset_func,
189
- 0, /* resolveEntity */
190
- 0, /* getEntity */
191
- 0, /* entityDecl */
192
- 0, /* notationDecl */
193
- 0, /* attributeDecl */
194
- 0, /* elementDecl */
195
- 0, /* unparsedEntityDecl */
196
- 0, /* setDocumentLocator */
197
- (startDocumentSAXFunc)start_document_func,
198
- (endDocumentSAXFunc)end_document_func,
199
- (startElementSAXFunc)start_element_func,
200
- (endElementSAXFunc)end_element_func,
201
- (referenceSAXFunc)reference_func,
202
- (charactersSAXFunc)characters_func,
203
- 0, /* ignorableWhitespace */
204
- (processingInstructionSAXFunc)processing_instruction_func,
205
- (commentSAXFunc)comment_func,
206
- (warningSAXFunc)warning_func,
207
- (errorSAXFunc)error_func,
208
- (fatalErrorSAXFunc)fatal_error_func,
209
- 0, /* xmlGetParameterEntity */
210
- (cdataBlockSAXFunc)cdata_block_func,
211
- (externalSubsetSAXFunc)external_subset_func,
212
- 1
213
- };
1
+ /* $Id: sax_parser_callbacks.inc 120 2006-11-26 12:57:56Z roscopeco $ */
2
+
3
+ /* Please see the LICENSE file for copyright and distribution information */
4
+
5
+ /*
6
+ * SAX CALLBACK HANDLERS
7
+ */
8
+ static void internal_subset_func(ruby_xml_sax_parser *cbp,
9
+ const char *name,
10
+ const char *extid,
11
+ const char *sysid) {
12
+ VALUE handler = cbp->callbackHandler;
13
+
14
+ if (handler && handler != Qnil) {
15
+ rb_funcall(handler, cbidOnInternalSubset, 3, rb_str_new2(name),
16
+ rb_str_new2(extid), rb_str_new2(sysid));
17
+ }
18
+ }
19
+
20
+ static void is_standalone_func(ruby_xml_sax_parser *cbp) {
21
+ VALUE handler = cbp->callbackHandler;
22
+
23
+ if (handler && handler != Qnil) {
24
+ rb_funcall(handler,cbidOnIsStandalone,0);
25
+ }
26
+ }
27
+
28
+ static void has_internal_subset_func(ruby_xml_sax_parser *cbp) {
29
+ VALUE handler = cbp->callbackHandler;
30
+
31
+ if (handler && handler != Qnil) {
32
+ rb_funcall(handler,cbidOnHasInternalSubset,0);
33
+ }
34
+ }
35
+
36
+ static void has_external_subset_func(ruby_xml_sax_parser *cbp) {
37
+ VALUE handler = cbp->callbackHandler;
38
+
39
+ if (handler && handler != Qnil) {
40
+ rb_funcall(handler,cbidOnHasExternalSubset,0);
41
+ }
42
+ }
43
+
44
+ static void start_document_func(ruby_xml_sax_parser *cbp) {
45
+ VALUE handler = cbp->callbackHandler;
46
+
47
+ if (handler && handler != Qnil) {
48
+ rb_funcall(handler,cbidOnStartDocument,0);
49
+ }
50
+ }
51
+
52
+ static void end_document_func(ruby_xml_sax_parser *cbp) {
53
+ VALUE handler = cbp->callbackHandler;
54
+
55
+ if (handler && handler != Qnil) {
56
+ rb_funcall(handler,cbidOnEndDocument,0);
57
+ }
58
+ }
59
+
60
+ static void start_element_func(ruby_xml_sax_parser *cbp,
61
+ const char *name, const char **attrs) {
62
+ VALUE handler = cbp->callbackHandler;
63
+ VALUE ahsh = rb_hash_new();
64
+ const char *attr, *value;
65
+
66
+ if (attrs) {
67
+ while ((attr = *(attrs++))) {
68
+ value = *(attrs++);
69
+ rb_hash_aset(ahsh, rb_str_new2(attr), rb_str_new2(value));
70
+ }
71
+ }
72
+
73
+ if (handler && handler != Qnil) {
74
+ rb_funcall(handler,cbidOnStartElement,2,rb_str_new2(name),ahsh);
75
+ }
76
+ }
77
+
78
+ static void end_element_func(ruby_xml_sax_parser *cbp,
79
+ const char *name) {
80
+ VALUE handler = cbp->callbackHandler;
81
+
82
+ if (handler && handler != Qnil) {
83
+ rb_funcall(handler,cbidOnEndElement,1,rb_str_new2(name));
84
+ }
85
+ }
86
+
87
+ static void reference_func(ruby_xml_sax_parser *cbp,
88
+ const char *name) {
89
+ VALUE handler = cbp->callbackHandler;
90
+
91
+ if (handler && handler != Qnil) {
92
+ rb_funcall(handler,cbidOnReference,1,rb_str_new2(name));
93
+ }
94
+ }
95
+
96
+ static void characters_func(ruby_xml_sax_parser *cbp,
97
+ const char *chars, int len) {
98
+ VALUE handler = cbp->callbackHandler;
99
+
100
+ if (handler && handler != Qnil) {
101
+ rb_funcall(handler,cbidOnCharacters,1,rb_str_new(chars, len));
102
+ }
103
+ }
104
+
105
+ static void processing_instruction_func(ruby_xml_sax_parser *cbp,
106
+ const char *target, const char *data) {
107
+ VALUE handler = cbp->callbackHandler;
108
+
109
+ if (handler && handler != Qnil) {
110
+ rb_funcall(handler, cbidOnProcessingInstruction, 2,
111
+ rb_str_new2(target),rb_str_new2(data));
112
+ }
113
+ }
114
+
115
+ static void comment_func(ruby_xml_sax_parser *cbp,
116
+ const char *msg) {
117
+ VALUE handler = cbp->callbackHandler;
118
+
119
+ if (handler && handler != Qnil) {
120
+ rb_funcall(handler,cbidOnComment,1,rb_str_new2(msg));
121
+ }
122
+ }
123
+
124
+ #define FORMAT_AND_CALL(callsym) \
125
+ do { \
126
+ va_list args; \
127
+ char buf[1024]; \
128
+ va_start(args, msg); \
129
+ vsnprintf(buf, sizeof buf, msg, args); \
130
+ rb_funcall(handler,callsym,1,rb_str_new2(buf)); \
131
+ va_end(args); \
132
+ } \
133
+ while (0)
134
+
135
+ // TODO these next three should actually be formatting messages.
136
+ static void warning_func(ruby_xml_sax_parser *cbp,
137
+ const char *msg, ...) {
138
+ VALUE handler = cbp->callbackHandler;
139
+
140
+ if (handler && handler != Qnil) {
141
+ FORMAT_AND_CALL(cbidOnXmlParserWarning);
142
+ }
143
+ }
144
+
145
+ static void error_func(ruby_xml_sax_parser *cbp,
146
+ const char *msg, ...) {
147
+ VALUE handler = cbp->callbackHandler;
148
+
149
+ if (handler && handler != Qnil) {
150
+ FORMAT_AND_CALL(cbidOnXmlParserError);
151
+ }
152
+ }
153
+
154
+ static void fatal_error_func(ruby_xml_sax_parser *cbp,
155
+ const char *msg, ...) {
156
+ VALUE handler = cbp->callbackHandler;
157
+
158
+ if (handler && handler != Qnil) {
159
+ FORMAT_AND_CALL(cbidOnXmlParserFatalError);
160
+ }
161
+ }
162
+
163
+ static void cdata_block_func(ruby_xml_sax_parser *cbp,
164
+ const char *value, int len) {
165
+ VALUE handler = cbp->callbackHandler;
166
+
167
+ if (handler && handler != Qnil) {
168
+ rb_funcall(handler,cbidOnCdataBlock,1,rb_str_new(value, len));
169
+ }
170
+ }
171
+
172
+ static void external_subset_func(ruby_xml_sax_parser *cbp,
173
+ const char *name,
174
+ const char *extid,
175
+ const char *sysid) {
176
+ VALUE handler = cbp->callbackHandler;
177
+
178
+ if (handler && handler != Qnil) {
179
+ rb_funcall(handler, cbidOnExternalSubset, 3, rb_str_new2(name),
180
+ rb_str_new2(extid), rb_str_new2(sysid));
181
+ }
182
+ }
183
+
184
+ static xmlSAXHandler rubySAXHandlerStruct = {
185
+ (internalSubsetSAXFunc)internal_subset_func,
186
+ (isStandaloneSAXFunc)is_standalone_func,
187
+ (hasInternalSubsetSAXFunc)has_internal_subset_func,
188
+ (hasExternalSubsetSAXFunc)has_external_subset_func,
189
+ 0, /* resolveEntity */
190
+ 0, /* getEntity */
191
+ 0, /* entityDecl */
192
+ 0, /* notationDecl */
193
+ 0, /* attributeDecl */
194
+ 0, /* elementDecl */
195
+ 0, /* unparsedEntityDecl */
196
+ 0, /* setDocumentLocator */
197
+ (startDocumentSAXFunc)start_document_func,
198
+ (endDocumentSAXFunc)end_document_func,
199
+ (startElementSAXFunc)start_element_func,
200
+ (endElementSAXFunc)end_element_func,
201
+ (referenceSAXFunc)reference_func,
202
+ (charactersSAXFunc)characters_func,
203
+ 0, /* ignorableWhitespace */
204
+ (processingInstructionSAXFunc)processing_instruction_func,
205
+ (commentSAXFunc)comment_func,
206
+ (warningSAXFunc)warning_func,
207
+ (errorSAXFunc)error_func,
208
+ (fatalErrorSAXFunc)fatal_error_func,
209
+ 0, /* xmlGetParameterEntity */
210
+ (cdataBlockSAXFunc)cdata_block_func,
211
+ (externalSubsetSAXFunc)external_subset_func,
212
+ 1
213
+ };
data/ext/libxml/version.h CHANGED
@@ -1,9 +1,9 @@
1
- /* Don't nuke this block! It is used for automatically updating the
2
- * versions below. VERSION = string formatting, VERNUM = numbered
3
- * version for inline testing: increment both or none at all. */
4
- #define RUBY_LIBXML_VERSION "0.5.4"
5
- #define RUBY_LIBXML_VERNUM 540
6
- #define RUBY_LIBXML_VER_MAJ 0
7
- #define RUBY_LIBXML_VER_MIN 5
8
- #define RUBY_LIBXML_VER_MIC 4
9
- #define RUBY_LIBXML_VER_PATCH 0
1
+ /* Don't nuke this block! It is used for automatically updating the
2
+ * versions below. VERSION = string formatting, VERNUM = numbered
3
+ * version for inline testing: increment both or none at all.*/
4
+ #define RUBY_LIBXML_VERSION "0.6.0"
5
+ #define RUBY_LIBXML_VERNUM 0
6
+ #define RUBY_LIBXML_VER_MAJ 0
7
+ #define RUBY_LIBXML_VER_MIN 6
8
+ #define RUBY_LIBXML_VER_MIC 0
9
+ #define RUBY_LIBXML_VER_PATCH 0
data/lib/libxml.rb CHANGED
@@ -1,7 +1,27 @@
1
- # $Id: libxml.rb 235 2007-12-11 20:28:30Z danj $
1
+ # $Id: libxml.rb 291 2008-07-01 08:04:25Z cfis $
2
2
  # Please see the LICENSE file for copyright and distribution information
3
3
 
4
- require 'libxml_so'
4
+ require 'libxml_ruby.so'
5
+
6
+ module XML::XMLParserOptions
7
+ XML_PARSE_RECOVER = 1 # recover on errors
8
+ XML_PARSE_NOENT = 2 # substitute entities
9
+ XML_PARSE_DTDLOAD = 4 # load the external subset
10
+ XML_PARSE_DTDATTR = 8 # default DTD attributes
11
+ XML_PARSE_DTDVALID = 16 # validate with the DTD
12
+ XML_PARSE_NOERROR = 32 # suppress error reports
13
+ XML_PARSE_NOWARNING = 64 # suppress warning reports
14
+ XML_PARSE_PEDANTIC = 128 # pedantic error reporting
15
+ XML_PARSE_NOBLANKS = 256 # remove blank nodes
16
+ XML_PARSE_SAX1 = 512 # use the SAX1 interface internally
17
+ XML_PARSE_XINCLUDE = 1024 # Implement XInclude substitition
18
+ XML_PARSE_NONET = 2048 # Forbid network access
19
+ XML_PARSE_NODICT = 4096 # Do not reuse the context dictionnary
20
+ XML_PARSE_NSCLEAN = 8192 # remove redundant namespaces declarations
21
+ XML_PARSE_NOCDATA = 16384 # merge CDATA as text nodes
22
+ XML_PARSE_NOXINCNODE = 32768 # do not generate XINCLUDE START/END nodes
23
+ XML_PARSE_COMPACT = 65536 # compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree)
24
+ end
5
25
 
6
26
  class XML::Document
7
27
  include Enumerable
@@ -91,7 +111,7 @@ class XML::Attr
91
111
  alias :each :each_sibling
92
112
 
93
113
  def to_h
94
- inject({}) do |h,a| h[a.name] = a.value end
114
+ inject({}) do |h,a| h[a.name] = a.value; h end
95
115
  end
96
116
 
97
117
  def to_a
@@ -102,3 +122,4 @@ class XML::Attr
102
122
  "#{name} = #{value}"
103
123
  end
104
124
  end
125
+
Binary file
Binary file
Binary file
data/mingw/mingw.rake ADDED
@@ -0,0 +1,36 @@
1
+ # We can't use Ruby's standard build procedures
2
+ # on Windows because the Ruby executable is
3
+ # built with VC++ while here we want to build
4
+ # with MingW. So just roll our own...
5
+
6
+ require 'rake/clean'
7
+ require 'rbconfig'
8
+
9
+ RUBY_INCLUDE_DIR = Config::CONFIG["archdir"]
10
+ RUBY_BIN_DIR = Config::CONFIG["bindir"]
11
+ RUBY_LIB_DIR = Config::CONFIG["libdir"]
12
+ RUBY_SHARED_LIB = Config::CONFIG["LIBRUBY"]
13
+ RUBY_SHARED_DLL = RUBY_SHARED_LIB.gsub(/lib$/, 'dll')
14
+
15
+ CLEAN.include('*.o')
16
+ CLOBBER.include('libxml.so')
17
+
18
+ task :default => "libxml"
19
+
20
+ SRC = FileList['../ext/libxml/*.c']
21
+ OBJ = SRC.collect do |file_name|
22
+ File.basename(file_name).ext('o')
23
+ end
24
+
25
+ SRC.each do |srcfile|
26
+ objfile = File.basename(srcfile).ext('o')
27
+ file objfile => srcfile do
28
+ command = "gcc -c -fPIC -O2 -Wall -o #{objfile} -I/usr/local/include #{srcfile} -I#{RUBY_INCLUDE_DIR}"
29
+ sh "sh -c '#{command}'"
30
+ end
31
+ end
32
+
33
+ file "libxml" => OBJ do
34
+ command = "libtool --mode=link gcc -shared -o libxml_ruby.so -L/usr/local/lib -lxml2 #{OBJ} #{RUBY_BIN_DIR}/#{RUBY_SHARED_DLL}"
35
+ sh "sh -c '#{command}'"
36
+ end
data/test/dtd-test.rb CHANGED
@@ -1,24 +1,24 @@
1
- require "libxml"
2
-
3
- xp = XML::Parser.new
4
- xp.string = '<?xml version="1.0" encoding="utf-8"?>
5
- <root><head a="ee" id="1">ass<buzz/></head><descr>really big ass</descr></root>'
6
-
7
- doc = xp.parse
8
-
9
- dtd = XML::Dtd.new('
10
- <!ELEMENT root (head, descr)>
11
- <!ELEMENT head (#PCDATA)>
12
- <!ATTLIST head
13
- id NMTOKEN #REQUIRED
14
- a CDATA #IMPLIED
15
- >
16
- <!ELEMENT descr (#PCDATA)>
17
- ')
18
-
19
- if doc.validate(dtd) { |message, error| puts "#{error ? 'error' : 'warning'} : #{message}" }
20
- puts "validation passed"
21
- else
22
- puts "validation failed"
23
- end
24
-
1
+ require "libxml"
2
+
3
+ xp = XML::Parser.new
4
+ xp.string = '<?xml version="1.0" encoding="utf-8"?>
5
+ <root><head a="ee" id="1">ass<buzz/></head><descr>really big ass</descr></root>'
6
+
7
+ doc = xp.parse
8
+
9
+ dtd = XML::Dtd.new('
10
+ <!ELEMENT root (head, descr)>
11
+ <!ELEMENT head (#PCDATA)>
12
+ <!ATTLIST head
13
+ id NMTOKEN #REQUIRED
14
+ a CDATA #IMPLIED
15
+ >
16
+ <!ELEMENT descr (#PCDATA)>
17
+ ')
18
+
19
+ if doc.validate(dtd) { |message, error| puts "#{error ? 'error' : 'warning'} : #{message}" }
20
+ puts "validation passed"
21
+ else
22
+ puts "validation failed"
23
+ end
24
+
data/test/etc_doc_to_s.rb CHANGED
@@ -1,17 +1,15 @@
1
1
  require 'libxml'
2
2
 
3
- 1000.times do |count|
3
+ 1.times do |count|
4
4
 
5
5
  xml_doc = XML::Document.new()
6
6
  xml_doc.encoding = "UTF-8"
7
7
  xml_doc.root = XML::Node.new("Request")
8
8
 
9
9
  1000.times do |index|
10
-
11
10
  xml_doc.root << node = XML::Node.new("row")
12
11
  node["user_id"] = index.to_s
13
12
  node << "600445"
14
-
15
13
  end
16
14
 
17
15
  xml_str = xml_doc.to_s
data/test/ets_copy_bug.rb CHANGED
@@ -1,21 +1,21 @@
1
- #!/usr/bin/ruby -w -I.
2
-
3
- def test( doc2 )
4
- doc = XML::Document.new('1.0')
5
- doc.root = XML::Node.new("ccc")
6
- doc.root['aaa'] = 'aaa'
7
- doc.root.child_add(doc2.root) # BUG!
8
- doc.root << doc2.root.copy(true)
9
- return doc
10
- end
11
-
12
- def test2
13
- doc2 = XML::Document.new('1.0')
14
- doc2.root = XML::Node.new("aaa")
15
- test( doc2 )
16
- end
17
-
18
- 1000.times { |i|
19
- print "\r#{i}"; $stdout.flush
20
- test2
21
- }
1
+ require 'libxml'
2
+
3
+ def test( doc2 )
4
+ doc = XML::Document.new('1.0')
5
+ doc.root = XML::Node.new("ccc")
6
+ doc.root['aaa'] = 'aaa'
7
+ doc.root.child_add(doc2.root) # BUG!
8
+ doc.root << doc2.root.copy(true)
9
+ return doc
10
+ end
11
+
12
+ def test2
13
+ doc2 = XML::Document.new('1.0')
14
+ doc2.root = XML::Node.new("aaa")
15
+ test( doc2 )
16
+ end
17
+
18
+ 1000.times { |i|
19
+ print "\r#{i}"; $stdout.flush
20
+ test2
21
+ }