libxml-ruby 2.8.0 → 3.2.1

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 (204) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +842 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +90 -78
  7. data/ext/libxml/extconf.h +3 -0
  8. data/ext/libxml/extconf.rb +61 -116
  9. data/ext/libxml/libxml.c +80 -76
  10. data/ext/libxml/ruby_libxml.h +67 -75
  11. data/ext/libxml/ruby_xml.c +933 -893
  12. data/ext/libxml/ruby_xml.h +10 -10
  13. data/ext/libxml/ruby_xml_attr.c +333 -333
  14. data/ext/libxml/ruby_xml_attr.h +12 -12
  15. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  16. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  17. data/ext/libxml/ruby_xml_attributes.c +275 -275
  18. data/ext/libxml/ruby_xml_attributes.h +15 -15
  19. data/ext/libxml/ruby_xml_cbg.c +85 -85
  20. data/ext/libxml/ruby_xml_document.c +1123 -1147
  21. data/ext/libxml/ruby_xml_document.h +11 -11
  22. data/ext/libxml/ruby_xml_dtd.c +248 -268
  23. data/ext/libxml/ruby_xml_dtd.h +9 -9
  24. data/ext/libxml/ruby_xml_encoding.c +250 -260
  25. data/ext/libxml/ruby_xml_encoding.h +16 -19
  26. data/ext/libxml/ruby_xml_error.c +996 -996
  27. data/ext/libxml/ruby_xml_error.h +12 -12
  28. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  29. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  30. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  31. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  32. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  33. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  34. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  35. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  36. data/ext/libxml/ruby_xml_io.c +47 -50
  37. data/ext/libxml/ruby_xml_io.h +10 -10
  38. data/ext/libxml/ruby_xml_namespace.c +153 -153
  39. data/ext/libxml/ruby_xml_namespace.h +10 -10
  40. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  41. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  42. data/ext/libxml/ruby_xml_node.c +1402 -1452
  43. data/ext/libxml/ruby_xml_node.h +13 -11
  44. data/ext/libxml/ruby_xml_parser.c +91 -94
  45. data/ext/libxml/ruby_xml_parser.h +12 -12
  46. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  47. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  48. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  49. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  50. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  51. data/ext/libxml/ruby_xml_reader.h +17 -17
  52. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  53. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  54. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  55. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  56. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  57. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  58. data/ext/libxml/ruby_xml_schema.c +278 -301
  59. data/ext/libxml/ruby_xml_schema.h +809 -809
  60. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  61. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  62. data/ext/libxml/ruby_xml_schema_element.c +95 -94
  63. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  64. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  65. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  66. data/ext/libxml/ruby_xml_schema_type.c +232 -259
  67. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  68. data/ext/libxml/ruby_xml_version.h +9 -9
  69. data/ext/libxml/ruby_xml_writer.c +1133 -1137
  70. data/ext/libxml/ruby_xml_writer.h +10 -10
  71. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  72. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  73. data/ext/libxml/ruby_xml_xpath.c +194 -188
  74. data/ext/libxml/ruby_xml_xpath.h +13 -13
  75. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  76. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  77. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  78. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  79. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  80. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  81. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  82. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  83. data/ext/vc/libxml_ruby.sln +17 -15
  84. data/lib/libxml-ruby.rb +30 -0
  85. data/lib/libxml.rb +3 -33
  86. data/lib/libxml/node.rb +2 -78
  87. data/lib/libxml/parser.rb +0 -266
  88. data/lib/libxml/sax_parser.rb +0 -17
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml/schema/attribute.rb +19 -19
  91. data/lib/libxml/schema/element.rb +19 -27
  92. data/lib/libxml/schema/type.rb +21 -29
  93. data/libxml-ruby.gemspec +48 -44
  94. data/script/benchmark/depixelate +634 -634
  95. data/script/benchmark/hamlet.xml +9054 -9054
  96. data/script/benchmark/parsecount +170 -170
  97. data/script/benchmark/throughput +41 -41
  98. data/script/test +6 -6
  99. data/setup.rb +0 -1
  100. data/test/c14n/given/example-1.xml +14 -14
  101. data/test/c14n/given/example-2.xml +11 -11
  102. data/test/c14n/given/example-3.xml +18 -18
  103. data/test/c14n/given/example-4.xml +9 -9
  104. data/test/c14n/given/example-5.xml +12 -12
  105. data/test/c14n/given/example-6.xml +2 -2
  106. data/test/c14n/given/example-7.xml +11 -11
  107. data/test/c14n/given/example-8.xml +11 -11
  108. data/test/c14n/given/example-8.xpath +9 -9
  109. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  110. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  111. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  112. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  113. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  114. data/test/c14n/result/with-comments/example-1 +5 -5
  115. data/test/c14n/result/with-comments/example-2 +10 -10
  116. data/test/c14n/result/with-comments/example-3 +13 -13
  117. data/test/c14n/result/with-comments/example-4 +8 -8
  118. data/test/c14n/result/with-comments/example-5 +3 -3
  119. data/test/c14n/result/without-comments/example-1 +3 -3
  120. data/test/c14n/result/without-comments/example-2 +10 -10
  121. data/test/c14n/result/without-comments/example-3 +13 -13
  122. data/test/c14n/result/without-comments/example-4 +8 -8
  123. data/test/c14n/result/without-comments/example-5 +2 -2
  124. data/test/model/atom.xml +12 -12
  125. data/test/model/bands.iso-8859-1.xml +4 -4
  126. data/test/model/bands.utf-8.xml +4 -4
  127. data/test/model/bands.xml +4 -4
  128. data/test/model/books.xml +153 -153
  129. data/test/model/cwm_1_0.xml +11336 -0
  130. data/test/model/merge_bug_data.xml +58 -58
  131. data/test/model/ruby-lang.html +238 -238
  132. data/test/model/rubynet.xml +79 -79
  133. data/test/model/shiporder.rnc +28 -28
  134. data/test/model/shiporder.rng +86 -86
  135. data/test/model/shiporder.xml +22 -22
  136. data/test/model/shiporder.xsd +39 -39
  137. data/test/model/soap.xml +27 -27
  138. data/test/model/xinclude.xml +4 -4
  139. data/test/test.xml +2 -0
  140. data/test/{tc_attr.rb → test_attr.rb} +23 -25
  141. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +13 -14
  142. data/test/{tc_attributes.rb → test_attributes.rb} +11 -18
  143. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +36 -41
  144. data/test/test_deprecated_require.rb +12 -0
  145. data/test/{tc_document.rb → test_document.rb} +32 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +28 -29
  148. data/test/{tc_encoding.rb → test_encoding.rb} +129 -126
  149. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +7 -6
  150. data/test/test_error.rb +178 -0
  151. data/test/test_helper.rb +3 -10
  152. data/test/test_html_parser.rb +162 -0
  153. data/test/test_html_parser_context.rb +23 -0
  154. data/test/test_namespace.rb +60 -0
  155. data/test/{tc_namespaces.rb → test_namespaces.rb} +34 -44
  156. data/test/{tc_node.rb → test_node.rb} +68 -47
  157. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +12 -13
  158. data/test/{tc_node_comment.rb → test_node_comment.rb} +7 -8
  159. data/test/{tc_node_copy.rb → test_node_copy.rb} +4 -6
  160. data/test/{tc_node_edit.rb → test_node_edit.rb} +23 -41
  161. data/test/{tc_node_pi.rb → test_node_pi.rb} +37 -40
  162. data/test/{tc_node_text.rb → test_node_text.rb} +10 -12
  163. data/test/{tc_node_write.rb → test_node_write.rb} +18 -29
  164. data/test/test_node_xlink.rb +28 -0
  165. data/test/test_parser.rb +324 -0
  166. data/test/{tc_parser_context.rb → test_parser_context.rb} +41 -42
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +363 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +36 -37
  171. data/test/{tc_schema.rb → test_schema.rb} +43 -37
  172. data/test/test_suite.rb +38 -40
  173. data/test/{tc_traversal.rb → test_traversal.rb} +5 -6
  174. data/test/{tc_writer.rb → test_writer.rb} +468 -448
  175. data/test/{tc_xinclude.rb → test_xinclude.rb} +4 -5
  176. data/test/test_xml.rb +262 -0
  177. data/test/{tc_xpath.rb → test_xpath.rb} +31 -32
  178. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +8 -9
  179. data/test/test_xpath_expression.rb +37 -0
  180. data/test/{tc_xpointer.rb → test_xpointer.rb} +16 -18
  181. metadata +117 -95
  182. data/lib/libxml/ns.rb +0 -22
  183. data/lib/libxml/properties.rb +0 -23
  184. data/lib/libxml/reader.rb +0 -29
  185. data/lib/libxml/xpath_object.rb +0 -16
  186. data/test/etc_doc_to_s.rb +0 -21
  187. data/test/ets_doc_file.rb +0 -17
  188. data/test/ets_doc_to_s.rb +0 -23
  189. data/test/ets_gpx.rb +0 -28
  190. data/test/ets_node_gc.rb +0 -23
  191. data/test/ets_test.xml +0 -2
  192. data/test/ets_tsr.rb +0 -11
  193. data/test/tc_deprecated_require.rb +0 -13
  194. data/test/tc_document_write.rb +0 -196
  195. data/test/tc_error.rb +0 -180
  196. data/test/tc_html_parser.rb +0 -153
  197. data/test/tc_html_parser_context.rb +0 -24
  198. data/test/tc_namespace.rb +0 -62
  199. data/test/tc_node_xlink.rb +0 -29
  200. data/test/tc_parser.rb +0 -381
  201. data/test/tc_reader.rb +0 -400
  202. data/test/tc_relaxng.rb +0 -54
  203. data/test/tc_xml.rb +0 -226
  204. data/test/tc_xpath_expression.rb +0 -38
@@ -1,109 +1,109 @@
1
- #include "ruby_libxml.h"
2
- #include "ruby_xml_schema_attribute.h"
3
- #include "ruby_xml_schema_type.h"
4
-
5
- VALUE cXMLSchemaAttribute;
6
-
7
- static void rxml_schema_attribute_free(xmlSchemaAttributeUsePtr attr)
8
- {
9
- attr = NULL;
10
- xmlFree(attr);
11
- }
12
-
13
- VALUE rxml_wrap_schema_attribute(xmlSchemaAttributeUsePtr attr)
14
- {
15
- return Data_Wrap_Struct(cXMLSchemaAttribute, NULL, rxml_schema_attribute_free, attr);
16
- }
17
-
18
- static VALUE rxml_schema_attribute_namespace(VALUE self)
19
- {
20
- xmlSchemaAttributeUsePtr attr;
21
- const xmlChar *tns;
22
-
23
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
24
-
25
- if (attr == NULL)
26
- return Qnil;
27
-
28
- if (attr->type == XML_SCHEMA_EXTRA_ATTR_USE_PROHIB) {
29
- tns = ((xmlSchemaAttributeUseProhibPtr) attr)->targetNamespace;
30
- } else if (attr->type == XML_SCHEMA_EXTRA_QNAMEREF) {
31
- tns = ((xmlSchemaQNameRefPtr) attr)->targetNamespace;
32
- } else {
33
- tns = ((xmlSchemaAttributePtr) ((xmlSchemaAttributeUsePtr) (attr))->attrDecl)->targetNamespace;
34
- }
35
-
36
- QNIL_OR_STRING(tns)
37
- }
38
-
39
- static VALUE rxml_schema_attribute_name(VALUE self)
40
- {
41
- xmlSchemaAttributeUsePtr attr;
42
- const xmlChar *name;
43
-
44
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
45
-
46
- if (attr == NULL)
47
- return Qnil;
48
-
49
- if (attr->type == XML_SCHEMA_EXTRA_ATTR_USE_PROHIB) {
50
- name = ((xmlSchemaAttributeUseProhibPtr) attr)->name;
51
- } else if (attr->type == XML_SCHEMA_EXTRA_QNAMEREF) {
52
- name = ((xmlSchemaQNameRefPtr) attr)->name;
53
- } else {
54
- xmlSchemaAttributePtr attrDecl = ((xmlSchemaAttributeUsePtr) attr)->attrDecl;
55
- name = attrDecl->name;
56
- }
57
-
58
- QNIL_OR_STRING(name)
59
- }
60
-
61
- static VALUE rxml_schema_attribute_type(VALUE self)
62
- {
63
- xmlSchemaAttributeUsePtr attr;
64
- xmlSchemaTypePtr xtype;
65
-
66
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
67
-
68
- xtype = attr->attrDecl->subtypes;
69
-
70
- return rxml_wrap_schema_type((xmlSchemaTypePtr) xtype);
71
- }
72
-
73
- static VALUE rxml_schema_attribute_node(VALUE self)
74
- {
75
- xmlSchemaAttributeUsePtr attr;
76
-
77
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
78
-
79
- return rxml_node_wrap(attr->node);
80
- }
81
-
82
- static VALUE rxml_schema_attribute_value(VALUE self)
83
- {
84
- xmlSchemaAttributeUsePtr attr;
85
-
86
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
87
-
88
- QNIL_OR_STRING(attr->defValue)
89
- }
90
-
91
- static VALUE rxml_schema_attribute_occurs(VALUE self)
92
- {
93
- xmlSchemaAttributeUsePtr attr;
94
-
95
- Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
96
-
97
- return INT2NUM(attr->occurs);
98
- }
99
-
100
- void rxml_init_schema_attribute(void)
101
- {
102
- cXMLSchemaAttribute = rb_define_class_under(cXMLSchema, "Attribute", rb_cObject);
103
- rb_define_method(cXMLSchemaAttribute, "namespace", rxml_schema_attribute_namespace, 0);
104
- rb_define_method(cXMLSchemaAttribute, "name", rxml_schema_attribute_name, 0);
105
- rb_define_method(cXMLSchemaAttribute, "type", rxml_schema_attribute_type, 0);
106
- rb_define_method(cXMLSchemaAttribute, "node", rxml_schema_attribute_node, 0);
107
- rb_define_method(cXMLSchemaAttribute, "value", rxml_schema_attribute_value, 0);
108
- rb_define_method(cXMLSchemaAttribute, "occurs", rxml_schema_attribute_occurs, 0);
109
- }
1
+ #include "ruby_libxml.h"
2
+ #include "ruby_xml_schema_attribute.h"
3
+ #include "ruby_xml_schema_type.h"
4
+
5
+ VALUE cXMLSchemaAttribute;
6
+
7
+ static void rxml_schema_attribute_free(xmlSchemaAttributeUsePtr attr)
8
+ {
9
+ attr = NULL;
10
+ xmlFree(attr);
11
+ }
12
+
13
+ VALUE rxml_wrap_schema_attribute(xmlSchemaAttributeUsePtr attr)
14
+ {
15
+ return Data_Wrap_Struct(cXMLSchemaAttribute, NULL, rxml_schema_attribute_free, attr);
16
+ }
17
+
18
+ static VALUE rxml_schema_attribute_namespace(VALUE self)
19
+ {
20
+ xmlSchemaAttributeUsePtr attr;
21
+ const xmlChar *tns;
22
+
23
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
24
+
25
+ if (attr == NULL)
26
+ return Qnil;
27
+
28
+ if (attr->type == XML_SCHEMA_EXTRA_ATTR_USE_PROHIB) {
29
+ tns = ((xmlSchemaAttributeUseProhibPtr) attr)->targetNamespace;
30
+ } else if (attr->type == XML_SCHEMA_EXTRA_QNAMEREF) {
31
+ tns = ((xmlSchemaQNameRefPtr) attr)->targetNamespace;
32
+ } else {
33
+ tns = ((xmlSchemaAttributePtr) ((xmlSchemaAttributeUsePtr) (attr))->attrDecl)->targetNamespace;
34
+ }
35
+
36
+ QNIL_OR_STRING(tns)
37
+ }
38
+
39
+ static VALUE rxml_schema_attribute_name(VALUE self)
40
+ {
41
+ xmlSchemaAttributeUsePtr attr;
42
+ const xmlChar *name;
43
+
44
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
45
+
46
+ if (attr == NULL)
47
+ return Qnil;
48
+
49
+ if (attr->type == XML_SCHEMA_EXTRA_ATTR_USE_PROHIB) {
50
+ name = ((xmlSchemaAttributeUseProhibPtr) attr)->name;
51
+ } else if (attr->type == XML_SCHEMA_EXTRA_QNAMEREF) {
52
+ name = ((xmlSchemaQNameRefPtr) attr)->name;
53
+ } else {
54
+ xmlSchemaAttributePtr attrDecl = ((xmlSchemaAttributeUsePtr) attr)->attrDecl;
55
+ name = attrDecl->name;
56
+ }
57
+
58
+ QNIL_OR_STRING(name)
59
+ }
60
+
61
+ static VALUE rxml_schema_attribute_type(VALUE self)
62
+ {
63
+ xmlSchemaAttributeUsePtr attr;
64
+ xmlSchemaTypePtr xtype;
65
+
66
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
67
+
68
+ xtype = attr->attrDecl->subtypes;
69
+
70
+ return rxml_wrap_schema_type((xmlSchemaTypePtr) xtype);
71
+ }
72
+
73
+ static VALUE rxml_schema_attribute_node(VALUE self)
74
+ {
75
+ xmlSchemaAttributeUsePtr attr;
76
+
77
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
78
+
79
+ return rxml_node_wrap(attr->node);
80
+ }
81
+
82
+ static VALUE rxml_schema_attribute_value(VALUE self)
83
+ {
84
+ xmlSchemaAttributeUsePtr attr;
85
+
86
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
87
+
88
+ QNIL_OR_STRING(attr->defValue)
89
+ }
90
+
91
+ static VALUE rxml_schema_attribute_occurs(VALUE self)
92
+ {
93
+ xmlSchemaAttributeUsePtr attr;
94
+
95
+ Data_Get_Struct(self, xmlSchemaAttributeUse, attr);
96
+
97
+ return INT2NUM(attr->occurs);
98
+ }
99
+
100
+ void rxml_init_schema_attribute(void)
101
+ {
102
+ cXMLSchemaAttribute = rb_define_class_under(cXMLSchema, "Attribute", rb_cObject);
103
+ rb_define_method(cXMLSchemaAttribute, "namespace", rxml_schema_attribute_namespace, 0);
104
+ rb_define_method(cXMLSchemaAttribute, "name", rxml_schema_attribute_name, 0);
105
+ rb_define_method(cXMLSchemaAttribute, "type", rxml_schema_attribute_type, 0);
106
+ rb_define_method(cXMLSchemaAttribute, "node", rxml_schema_attribute_node, 0);
107
+ rb_define_method(cXMLSchemaAttribute, "value", rxml_schema_attribute_value, 0);
108
+ rb_define_method(cXMLSchemaAttribute, "occurs", rxml_schema_attribute_occurs, 0);
109
+ }
@@ -1,15 +1,15 @@
1
- #ifndef __RXML_SCHEMA_ATTRIBUTE__
2
- #define __RXML_SCHEMA_ATTRIBUTE__
3
-
4
- #include "ruby_xml_schema.h"
5
- #include <libxml/schemasInternals.h>
6
- #include <libxml/xmlschemas.h>
7
- #include <libxml/xmlschemastypes.h>
8
-
9
- extern VALUE cXMLSchemaAttribute;
10
-
11
-
12
- void rxml_init_schema_attribute(void);
13
- VALUE rxml_wrap_schema_attribute(xmlSchemaAttributeUsePtr attr);
14
-
15
- #endif
1
+ #ifndef __RXML_SCHEMA_ATTRIBUTE__
2
+ #define __RXML_SCHEMA_ATTRIBUTE__
3
+
4
+ #include "ruby_xml_schema.h"
5
+ #include <libxml/schemasInternals.h>
6
+ #include <libxml/xmlschemas.h>
7
+ #include <libxml/xmlschemastypes.h>
8
+
9
+ extern VALUE cXMLSchemaAttribute;
10
+
11
+
12
+ void rxml_init_schema_attribute(void);
13
+ VALUE rxml_wrap_schema_attribute(xmlSchemaAttributeUsePtr attr);
14
+
15
+ #endif
@@ -1,94 +1,95 @@
1
- #include "ruby_libxml.h"
2
- #include "ruby_xml_schema_element.h"
3
- #include "ruby_xml_schema_type.h"
4
-
5
- VALUE cXMLSchemaElement;
6
-
7
- static void rxml_schema_element_free(xmlSchemaElementPtr xschema_element)
8
- {
9
- xschema_element = NULL;
10
- xmlFree(xschema_element);
11
- }
12
-
13
- VALUE rxml_wrap_schema_element(xmlSchemaElementPtr xelement)
14
- {
15
- return Data_Wrap_Struct(cXMLSchemaElement, NULL, rxml_schema_element_free, xelement);
16
- }
17
-
18
- static VALUE rxml_schema_element_namespace(VALUE self)
19
- {
20
- xmlSchemaElementPtr xelem;
21
-
22
- Data_Get_Struct(self, xmlSchemaElement, xelem);
23
-
24
- QNIL_OR_STRING(xelem->targetNamespace)
25
- }
26
-
27
- static VALUE rxml_schema_element_name(VALUE self)
28
- {
29
- xmlSchemaElementPtr xelem;
30
-
31
- Data_Get_Struct(self, xmlSchemaElement, xelem);
32
-
33
-
34
- QNIL_OR_STRING(xelem->name)
35
- }
36
-
37
- static VALUE rxml_schema_element_type(VALUE self)
38
- {
39
- xmlSchemaElementPtr xelem;
40
- xmlSchemaTypePtr xtype;
41
-
42
- Data_Get_Struct(self, xmlSchemaElement, xelem);
43
-
44
- xtype = xelem->subtypes;
45
-
46
- return rxml_wrap_schema_type((xmlSchemaTypePtr) xtype);
47
- }
48
-
49
- static VALUE rxml_schema_element_node(VALUE self)
50
- {
51
- xmlSchemaElementPtr xelem;
52
-
53
- Data_Get_Struct(self, xmlSchemaElement, xelem);
54
-
55
- return rxml_node_wrap(xelem->node);
56
- }
57
-
58
- static VALUE rxml_schema_element_value(VALUE self)
59
- {
60
- xmlSchemaElementPtr xelem;
61
-
62
- Data_Get_Struct(self, xmlSchemaElement, xelem);
63
-
64
- QNIL_OR_STRING(xelem->value)
65
- }
66
-
67
- static VALUE rxml_schema_element_min_occurs(VALUE self)
68
- {
69
- return rb_iv_get(self, "@min");
70
- }
71
-
72
- static VALUE rxml_schema_element_max_occurs(VALUE self)
73
- {
74
- return rb_iv_get(self, "@max");
75
- }
76
-
77
- static VALUE rxml_schema_element_annot(VALUE self)
78
- {
79
- return rb_iv_get(self, "@annotation");
80
- }
81
-
82
-
83
- void rxml_init_schema_element(void)
84
- {
85
- cXMLSchemaElement = rb_define_class_under(cXMLSchema, "Element", rb_cObject);
86
- rb_define_method(cXMLSchemaElement, "namespace", rxml_schema_element_namespace, 0);
87
- rb_define_method(cXMLSchemaElement, "name", rxml_schema_element_name, 0);
88
- rb_define_method(cXMLSchemaElement, "type", rxml_schema_element_type, 0);
89
- rb_define_method(cXMLSchemaElement, "node", rxml_schema_element_node, 0);
90
- rb_define_method(cXMLSchemaElement, "value", rxml_schema_element_value, 0);
91
- rb_define_method(cXMLSchemaElement, "min_occurs", rxml_schema_element_min_occurs, 0);
92
- rb_define_method(cXMLSchemaElement, "max_occurs", rxml_schema_element_max_occurs, 0);
93
- rb_define_method(cXMLSchemaElement, "annotation", rxml_schema_element_annot, 0);
94
- }
1
+ #include "ruby_libxml.h"
2
+ #include "ruby_xml_schema_element.h"
3
+ #include "ruby_xml_schema_type.h"
4
+
5
+ VALUE cXMLSchemaElement;
6
+
7
+ static void rxml_schema_element_free(xmlSchemaElementPtr xschema_element)
8
+ {
9
+ xschema_element = NULL;
10
+ xmlFree(xschema_element);
11
+ }
12
+
13
+ VALUE rxml_wrap_schema_element(xmlSchemaElementPtr xelement)
14
+ {
15
+ return Data_Wrap_Struct(cXMLSchemaElement, NULL, rxml_schema_element_free, xelement);
16
+ }
17
+
18
+ static VALUE rxml_schema_element_namespace(VALUE self)
19
+ {
20
+ xmlSchemaElementPtr xelem;
21
+
22
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
23
+
24
+ QNIL_OR_STRING(xelem->targetNamespace)
25
+ }
26
+
27
+ static VALUE rxml_schema_element_name(VALUE self)
28
+ {
29
+ xmlSchemaElementPtr xelem;
30
+
31
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
32
+
33
+
34
+ QNIL_OR_STRING(xelem->name)
35
+ }
36
+
37
+ static VALUE rxml_schema_element_type(VALUE self)
38
+ {
39
+ xmlSchemaElementPtr xelem;
40
+ xmlSchemaTypePtr xtype;
41
+
42
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
43
+
44
+ xtype = xelem->subtypes;
45
+
46
+ return rxml_wrap_schema_type((xmlSchemaTypePtr) xtype);
47
+ }
48
+
49
+ static VALUE rxml_schema_element_node(VALUE self)
50
+ {
51
+ xmlSchemaElementPtr xelem;
52
+
53
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
54
+
55
+ return rxml_node_wrap(xelem->node);
56
+ }
57
+
58
+ static VALUE rxml_schema_element_value(VALUE self)
59
+ {
60
+ xmlSchemaElementPtr xelem;
61
+
62
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
63
+
64
+ QNIL_OR_STRING(xelem->value)
65
+ }
66
+
67
+ static VALUE rxml_schema_element_annot(VALUE self)
68
+ {
69
+ VALUE result = Qnil;
70
+ xmlSchemaElementPtr xelem;
71
+
72
+ Data_Get_Struct(self, xmlSchemaElement, xelem);
73
+
74
+ if (xelem != NULL && xelem->annot != NULL && xelem->annot->content != NULL)
75
+ {
76
+ xmlChar *content = xmlNodeGetContent(xelem->annot->content);
77
+ if (content)
78
+ {
79
+ result = rxml_new_cstr(content, NULL);
80
+ xmlFree(content);
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+
86
+ void rxml_init_schema_element(void)
87
+ {
88
+ cXMLSchemaElement = rb_define_class_under(cXMLSchema, "Element", rb_cObject);
89
+ rb_define_method(cXMLSchemaElement, "namespace", rxml_schema_element_namespace, 0);
90
+ rb_define_method(cXMLSchemaElement, "name", rxml_schema_element_name, 0);
91
+ rb_define_method(cXMLSchemaElement, "type", rxml_schema_element_type, 0);
92
+ rb_define_method(cXMLSchemaElement, "node", rxml_schema_element_node, 0);
93
+ rb_define_method(cXMLSchemaElement, "value", rxml_schema_element_value, 0);
94
+ rb_define_method(cXMLSchemaElement, "annotation", rxml_schema_element_annot, 0);
95
+ }
@@ -1,14 +1,14 @@
1
- #ifndef __RXML_SCHEMA_ELEMENT__
2
- #define __RXML_SCHEMA_ELEMENT__
3
-
4
- #include "ruby_xml_schema.h"
5
- #include <libxml/schemasInternals.h>
6
- #include <libxml/xmlschemas.h>
7
- #include <libxml/xmlschemastypes.h>
8
-
9
- extern VALUE cXMLSchemaElement;
10
-
11
- VALUE rxml_wrap_schema_element(xmlSchemaElementPtr xelement);
12
- void rxml_init_schema_element(void);
13
-
14
- #endif
1
+ #ifndef __RXML_SCHEMA_ELEMENT__
2
+ #define __RXML_SCHEMA_ELEMENT__
3
+
4
+ #include "ruby_xml_schema.h"
5
+ #include <libxml/schemasInternals.h>
6
+ #include <libxml/xmlschemas.h>
7
+ #include <libxml/xmlschemastypes.h>
8
+
9
+ extern VALUE cXMLSchemaElement;
10
+
11
+ VALUE rxml_wrap_schema_element(xmlSchemaElementPtr xelement);
12
+ void rxml_init_schema_element(void);
13
+
14
+ #endif