libxml-ruby 5.0.4 → 5.0.6

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +17 -6
  3. data/README.rdoc +1 -1
  4. data/Rakefile +98 -98
  5. data/ext/libxml/extconf.h +1 -0
  6. data/ext/libxml/extconf.rb +5 -0
  7. data/ext/libxml/libxml.c +79 -79
  8. data/ext/libxml/ruby_xml.c +556 -556
  9. data/ext/libxml/ruby_xml_attr.c +333 -333
  10. data/ext/libxml/ruby_xml_attr.h +12 -12
  11. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  12. data/ext/libxml/ruby_xml_attributes.h +17 -17
  13. data/ext/libxml/ruby_xml_cbg.c +85 -85
  14. data/ext/libxml/ruby_xml_document.c +1129 -1129
  15. data/ext/libxml/ruby_xml_dtd.c +257 -257
  16. data/ext/libxml/ruby_xml_dtd.h +9 -9
  17. data/ext/libxml/ruby_xml_encoding.c +250 -250
  18. data/ext/libxml/ruby_xml_error.c +1003 -1003
  19. data/ext/libxml/ruby_xml_error.h +14 -14
  20. data/ext/libxml/ruby_xml_html_parser.c +91 -91
  21. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  22. data/ext/libxml/ruby_xml_html_parser_context.c +351 -351
  23. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_options.c +48 -48
  25. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  26. data/ext/libxml/ruby_xml_input_cbg.c +188 -188
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +47 -47
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +151 -151
  31. data/ext/libxml/ruby_xml_namespace.h +10 -10
  32. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  33. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  34. data/ext/libxml/ruby_xml_node.h +13 -13
  35. data/ext/libxml/ruby_xml_parser.c +91 -91
  36. data/ext/libxml/ruby_xml_parser.h +10 -10
  37. data/ext/libxml/ruby_xml_parser_context.c +1009 -1009
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +74 -74
  40. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  41. data/ext/libxml/ruby_xml_reader.h +14 -14
  42. data/ext/libxml/ruby_xml_relaxng.h +8 -8
  43. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  44. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  45. data/ext/libxml/ruby_xml_sax_parser.c +108 -108
  46. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  47. data/ext/libxml/ruby_xml_schema.h +25 -25
  48. data/ext/libxml/ruby_xml_schema_attribute.h +37 -37
  49. data/ext/libxml/ruby_xml_schema_element.h +11 -11
  50. data/ext/libxml/ruby_xml_schema_facet.c +50 -50
  51. data/ext/libxml/ruby_xml_schema_facet.h +9 -9
  52. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  53. data/ext/libxml/ruby_xml_version.h +9 -9
  54. data/ext/libxml/ruby_xml_writer.c +1124 -1124
  55. data/ext/libxml/ruby_xml_writer.h +6 -6
  56. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  57. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  58. data/ext/libxml/ruby_xml_xpath.c +195 -195
  59. data/ext/libxml/ruby_xml_xpath.h +15 -15
  60. data/ext/libxml/ruby_xml_xpath_context.c +362 -362
  61. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  62. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  63. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  64. data/lib/libxml/attr.rb +122 -122
  65. data/lib/libxml/attr_decl.rb +80 -80
  66. data/lib/libxml/attributes.rb +13 -13
  67. data/lib/libxml/document.rb +194 -194
  68. data/lib/libxml/error.rb +95 -95
  69. data/lib/libxml/hpricot.rb +77 -77
  70. data/lib/libxml/html_parser.rb +96 -96
  71. data/lib/libxml/namespace.rb +61 -61
  72. data/lib/libxml/namespaces.rb +37 -37
  73. data/lib/libxml/node.rb +323 -323
  74. data/lib/libxml/parser.rb +102 -102
  75. data/lib/libxml/sax_callbacks.rb +179 -179
  76. data/lib/libxml/sax_parser.rb +40 -40
  77. data/lib/libxml/tree.rb +28 -28
  78. data/lib/libxml-ruby.rb +2 -2
  79. data/lib/libxml.rb +4 -4
  80. data/lib/xml/libxml.rb +10 -10
  81. data/lib/xml.rb +13 -13
  82. data/libxml-ruby.gemspec +50 -49
  83. data/test/test_document.rb +140 -140
  84. data/test/test_document_write.rb +142 -142
  85. data/test/test_dtd.rb +126 -126
  86. data/test/test_encoding.rb +126 -126
  87. data/test/test_error.rb +197 -194
  88. data/test/test_helper.rb +21 -20
  89. data/test/test_namespace.rb +58 -58
  90. data/test/test_node.rb +235 -235
  91. data/test/test_node_write.rb +93 -93
  92. data/test/test_parser.rb +333 -333
  93. data/test/test_reader.rb +364 -364
  94. data/test/test_writer.rb +500 -468
  95. data/test/test_xml.rb +168 -168
  96. metadata +5 -5
  97. data/test/test.rb +0 -5
@@ -1,151 +1,151 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #include "ruby_libxml.h"
4
- #include "ruby_xml_namespace.h"
5
-
6
- VALUE cXMLNamespace;
7
-
8
- /* Document-class: LibXML::XML::Namespace
9
- *
10
- * The Namespace class represents an XML namespace.
11
- * To add a namespace to a node, create a new instance
12
- * of this class. Note that this does *not* assign the
13
- * node to the namespace. To do that see the
14
- * XML::Namespaces#namespace method.
15
- *
16
- * Usage:
17
- *
18
- * node = XML::Node.new('<Envelope>')
19
- * XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
20
- * assert_equal("<Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
21
- * assert_nil(node.namespaces.namespace)
22
- */
23
-
24
- /* Namespaces are owned and freed by their nodes. Thus, its easier for the
25
- ruby bindings to not manage attribute memory management. */
26
-
27
- static VALUE rxml_namespace_alloc(VALUE klass)
28
- {
29
- return Data_Wrap_Struct(klass, NULL, NULL, NULL);
30
- }
31
-
32
- VALUE rxml_namespace_wrap(xmlNsPtr xns)
33
- {
34
- return Data_Wrap_Struct(cXMLNamespace, NULL, NULL, xns);
35
- }
36
-
37
-
38
- /*
39
- * call-seq:
40
- * initialize(node, "prefix", "href") -> XML::Namespace
41
- *
42
- * Create a new namespace and adds it to the specified node.
43
- * Note this does *not* assign the node to the namespace.
44
- * To do that see the XML::Namespaces#namespace method.
45
- */
46
- static VALUE rxml_namespace_initialize(VALUE self, VALUE node, VALUE prefix,
47
- VALUE href)
48
- {
49
- xmlNodePtr xnode;
50
- xmlChar *xmlPrefix;
51
- xmlNsPtr xns;
52
-
53
- Check_Type(node, T_DATA);
54
- Data_Get_Struct(node, xmlNode, xnode);
55
- xmlResetLastError();
56
-
57
- /* Prefix can be null - that means its the default namespace */
58
- xmlPrefix = NIL_P(prefix) ? NULL : (xmlChar *)StringValuePtr(prefix);
59
- xns = xmlNewNs(xnode, (xmlChar*) StringValuePtr(href), xmlPrefix);
60
-
61
- DATA_PTR(self) = xns;
62
- return self;
63
- }
64
-
65
- /*
66
- * call-seq:
67
- * ns.href -> "href"
68
- *
69
- * Usage:
70
- *
71
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
72
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
73
- * assert_equal('http://schemas.xmlsoap.org/soap/envelope/', ns.href)
74
- */
75
- static VALUE rxml_namespace_href_get(VALUE self)
76
- {
77
- xmlNsPtr xns;
78
- Data_Get_Struct(self, xmlNs, xns);
79
- if (xns->href == NULL)
80
- return Qnil;
81
- else
82
- return rxml_new_cstr( xns->href, NULL);
83
- }
84
-
85
- /*
86
- * call-seq:
87
- * ns.node_type -> num
88
- *
89
- * Obtain this namespace's type identifier.
90
- */
91
- static VALUE rxml_namespace_node_type(VALUE self)
92
- {
93
- xmlNsPtr xns;
94
- Data_Get_Struct(self, xmlNs, xns);
95
- return INT2NUM(xns->type);
96
- }
97
-
98
- /*
99
- * call-seq:
100
- * ns.prefix -> "prefix"
101
- *
102
- * Obtain the namespace's prefix.
103
- *
104
- * Usage:
105
- *
106
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
107
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
108
- * assert_equal('soap', ns.prefix)
109
- */
110
- static VALUE rxml_namespace_prefix_get(VALUE self)
111
- {
112
- xmlNsPtr xns;
113
- Data_Get_Struct(self, xmlNs, xns);
114
- if (xns->prefix == NULL)
115
- return Qnil;
116
- else
117
- return rxml_new_cstr( xns->prefix, NULL);
118
- }
119
-
120
- /*
121
- * call-seq:
122
- * ns.next -> XML::Namespace
123
- *
124
- * Obtain the next namespace.
125
- *
126
- * Usage:
127
- *
128
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
129
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
130
- * assert_nil(ns.next)
131
- */
132
- static VALUE rxml_namespace_next(VALUE self)
133
- {
134
- xmlNsPtr xns;
135
- Data_Get_Struct(self, xmlNs, xns);
136
- if (xns == NULL || xns->next == NULL)
137
- return (Qnil);
138
- else
139
- return rxml_namespace_wrap(xns->next);
140
- }
141
-
142
- void rxml_init_namespace(void)
143
- {
144
- cXMLNamespace = rb_define_class_under(mXML, "Namespace", rb_cObject);
145
- rb_define_alloc_func(cXMLNamespace, rxml_namespace_alloc);
146
- rb_define_method(cXMLNamespace, "initialize", rxml_namespace_initialize, 3);
147
- rb_define_method(cXMLNamespace, "href", rxml_namespace_href_get, 0);
148
- rb_define_method(cXMLNamespace, "next", rxml_namespace_next, 0);
149
- rb_define_method(cXMLNamespace, "node_type", rxml_namespace_node_type, 0);
150
- rb_define_method(cXMLNamespace, "prefix", rxml_namespace_prefix_get, 0);
151
- }
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #include "ruby_libxml.h"
4
+ #include "ruby_xml_namespace.h"
5
+
6
+ VALUE cXMLNamespace;
7
+
8
+ /* Document-class: LibXML::XML::Namespace
9
+ *
10
+ * The Namespace class represents an XML namespace.
11
+ * To add a namespace to a node, create a new instance
12
+ * of this class. Note that this does *not* assign the
13
+ * node to the namespace. To do that see the
14
+ * XML::Namespaces#namespace method.
15
+ *
16
+ * Usage:
17
+ *
18
+ * node = XML::Node.new('<Envelope>')
19
+ * XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
20
+ * assert_equal("<Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
21
+ * assert_nil(node.namespaces.namespace)
22
+ */
23
+
24
+ /* Namespaces are owned and freed by their nodes. Thus, its easier for the
25
+ ruby bindings to not manage attribute memory management. */
26
+
27
+ static VALUE rxml_namespace_alloc(VALUE klass)
28
+ {
29
+ return Data_Wrap_Struct(klass, NULL, NULL, NULL);
30
+ }
31
+
32
+ VALUE rxml_namespace_wrap(xmlNsPtr xns)
33
+ {
34
+ return Data_Wrap_Struct(cXMLNamespace, NULL, NULL, xns);
35
+ }
36
+
37
+
38
+ /*
39
+ * call-seq:
40
+ * initialize(node, "prefix", "href") -> XML::Namespace
41
+ *
42
+ * Create a new namespace and adds it to the specified node.
43
+ * Note this does *not* assign the node to the namespace.
44
+ * To do that see the XML::Namespaces#namespace method.
45
+ */
46
+ static VALUE rxml_namespace_initialize(VALUE self, VALUE node, VALUE prefix,
47
+ VALUE href)
48
+ {
49
+ xmlNodePtr xnode;
50
+ xmlChar *xmlPrefix;
51
+ xmlNsPtr xns;
52
+
53
+ Check_Type(node, T_DATA);
54
+ Data_Get_Struct(node, xmlNode, xnode);
55
+ xmlResetLastError();
56
+
57
+ /* Prefix can be null - that means its the default namespace */
58
+ xmlPrefix = NIL_P(prefix) ? NULL : (xmlChar *)StringValuePtr(prefix);
59
+ xns = xmlNewNs(xnode, (xmlChar*) StringValuePtr(href), xmlPrefix);
60
+
61
+ DATA_PTR(self) = xns;
62
+ return self;
63
+ }
64
+
65
+ /*
66
+ * call-seq:
67
+ * ns.href -> "href"
68
+ *
69
+ * Usage:
70
+ *
71
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
72
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
73
+ * assert_equal('http://schemas.xmlsoap.org/soap/envelope/', ns.href)
74
+ */
75
+ static VALUE rxml_namespace_href_get(VALUE self)
76
+ {
77
+ xmlNsPtr xns;
78
+ Data_Get_Struct(self, xmlNs, xns);
79
+ if (xns->href == NULL)
80
+ return Qnil;
81
+ else
82
+ return rxml_new_cstr( xns->href, NULL);
83
+ }
84
+
85
+ /*
86
+ * call-seq:
87
+ * ns.node_type -> num
88
+ *
89
+ * Obtain this namespace's type identifier.
90
+ */
91
+ static VALUE rxml_namespace_node_type(VALUE self)
92
+ {
93
+ xmlNsPtr xns;
94
+ Data_Get_Struct(self, xmlNs, xns);
95
+ return INT2NUM(xns->type);
96
+ }
97
+
98
+ /*
99
+ * call-seq:
100
+ * ns.prefix -> "prefix"
101
+ *
102
+ * Obtain the namespace's prefix.
103
+ *
104
+ * Usage:
105
+ *
106
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
107
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
108
+ * assert_equal('soap', ns.prefix)
109
+ */
110
+ static VALUE rxml_namespace_prefix_get(VALUE self)
111
+ {
112
+ xmlNsPtr xns;
113
+ Data_Get_Struct(self, xmlNs, xns);
114
+ if (xns->prefix == NULL)
115
+ return Qnil;
116
+ else
117
+ return rxml_new_cstr( xns->prefix, NULL);
118
+ }
119
+
120
+ /*
121
+ * call-seq:
122
+ * ns.next -> XML::Namespace
123
+ *
124
+ * Obtain the next namespace.
125
+ *
126
+ * Usage:
127
+ *
128
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
129
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
130
+ * assert_nil(ns.next)
131
+ */
132
+ static VALUE rxml_namespace_next(VALUE self)
133
+ {
134
+ xmlNsPtr xns;
135
+ Data_Get_Struct(self, xmlNs, xns);
136
+ if (xns == NULL || xns->next == NULL)
137
+ return (Qnil);
138
+ else
139
+ return rxml_namespace_wrap(xns->next);
140
+ }
141
+
142
+ void rxml_init_namespace(void)
143
+ {
144
+ cXMLNamespace = rb_define_class_under(mXML, "Namespace", rb_cObject);
145
+ rb_define_alloc_func(cXMLNamespace, rxml_namespace_alloc);
146
+ rb_define_method(cXMLNamespace, "initialize", rxml_namespace_initialize, 3);
147
+ rb_define_method(cXMLNamespace, "href", rxml_namespace_href_get, 0);
148
+ rb_define_method(cXMLNamespace, "next", rxml_namespace_next, 0);
149
+ rb_define_method(cXMLNamespace, "node_type", rxml_namespace_node_type, 0);
150
+ rb_define_method(cXMLNamespace, "prefix", rxml_namespace_prefix_get, 0);
151
+ }
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_NAMESPACE__
4
- #define __RXML_NAMESPACE__
5
-
6
- extern VALUE cXMLNamespace;
7
-
8
- void rxml_init_namespace(void);
9
- VALUE rxml_namespace_wrap(xmlNsPtr xns);
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_NAMESPACE__
4
+ #define __RXML_NAMESPACE__
5
+
6
+ extern VALUE cXMLNamespace;
7
+
8
+ void rxml_init_namespace(void);
9
+ VALUE rxml_namespace_wrap(xmlNsPtr xns);
10
+ #endif