libxml-ruby 2.9.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +811 -790
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +188 -184
  6. data/Rakefile +1 -1
  7. data/ext/libxml/libxml.c +80 -80
  8. data/ext/libxml/ruby_libxml.h +75 -75
  9. data/ext/libxml/ruby_xml.c +0 -84
  10. data/ext/libxml/ruby_xml.h +0 -10
  11. data/ext/libxml/ruby_xml_attr.h +12 -12
  12. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  13. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  14. data/ext/libxml/ruby_xml_attributes.c +275 -275
  15. data/ext/libxml/ruby_xml_attributes.h +15 -15
  16. data/ext/libxml/ruby_xml_document.c +21 -27
  17. data/ext/libxml/ruby_xml_document.h +11 -11
  18. data/ext/libxml/ruby_xml_dtd.c +2 -13
  19. data/ext/libxml/ruby_xml_dtd.h +9 -9
  20. data/ext/libxml/ruby_xml_error.c +996 -996
  21. data/ext/libxml/ruby_xml_error.h +12 -12
  22. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  23. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  25. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  26. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +0 -1
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +153 -153
  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.c +100 -143
  35. data/ext/libxml/ruby_xml_node.h +13 -11
  36. data/ext/libxml/ruby_xml_parser.c +91 -94
  37. data/ext/libxml/ruby_xml_parser.h +12 -12
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  40. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  41. data/ext/libxml/ruby_xml_reader.c +45 -37
  42. data/ext/libxml/ruby_xml_reader.h +17 -17
  43. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  44. data/ext/libxml/ruby_xml_sax2_handler.c +3 -3
  45. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  46. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  47. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  48. data/ext/libxml/ruby_xml_schema.h +809 -809
  49. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  50. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  51. data/ext/libxml/ruby_xml_schema_element.c +94 -94
  52. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  53. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  54. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  55. data/ext/libxml/ruby_xml_schema_type.c +259 -259
  56. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  57. data/ext/libxml/ruby_xml_version.h +9 -9
  58. data/ext/libxml/ruby_xml_writer.c +1136 -1136
  59. data/ext/libxml/ruby_xml_writer.h +10 -10
  60. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  61. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  62. data/ext/libxml/ruby_xml_xpath.c +42 -36
  63. data/ext/libxml/ruby_xml_xpath.h +13 -13
  64. data/ext/libxml/ruby_xml_xpath_context.c +1 -1
  65. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  66. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  67. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  68. data/ext/libxml/ruby_xml_xpath_object.c +5 -2
  69. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  70. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  71. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  72. data/ext/vc/libxml_ruby.sln +17 -15
  73. data/lib/libxml.rb +1 -6
  74. data/lib/libxml/node.rb +2 -78
  75. data/lib/libxml/parser.rb +0 -266
  76. data/lib/libxml/sax_parser.rb +0 -17
  77. data/lib/libxml/schema.rb +66 -66
  78. data/lib/libxml/schema/attribute.rb +19 -19
  79. data/lib/libxml/schema/element.rb +27 -27
  80. data/lib/libxml/schema/type.rb +29 -29
  81. data/script/benchmark/depixelate +634 -634
  82. data/script/benchmark/hamlet.xml +9054 -9054
  83. data/script/benchmark/parsecount +170 -170
  84. data/script/benchmark/throughput +41 -41
  85. data/script/test +6 -6
  86. data/test/c14n/given/example-1.xml +14 -14
  87. data/test/c14n/given/example-2.xml +11 -11
  88. data/test/c14n/given/example-3.xml +18 -18
  89. data/test/c14n/given/example-4.xml +9 -9
  90. data/test/c14n/given/example-5.xml +12 -12
  91. data/test/c14n/given/example-6.xml +2 -2
  92. data/test/c14n/given/example-7.xml +11 -11
  93. data/test/c14n/given/example-8.xml +11 -11
  94. data/test/c14n/given/example-8.xpath +9 -9
  95. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  96. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  97. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  98. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  99. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  100. data/test/c14n/result/with-comments/example-1 +5 -5
  101. data/test/c14n/result/with-comments/example-2 +10 -10
  102. data/test/c14n/result/with-comments/example-3 +13 -13
  103. data/test/c14n/result/with-comments/example-4 +8 -8
  104. data/test/c14n/result/with-comments/example-5 +3 -3
  105. data/test/c14n/result/without-comments/example-1 +3 -3
  106. data/test/c14n/result/without-comments/example-2 +10 -10
  107. data/test/c14n/result/without-comments/example-3 +13 -13
  108. data/test/c14n/result/without-comments/example-4 +8 -8
  109. data/test/c14n/result/without-comments/example-5 +2 -2
  110. data/test/model/atom.xml +12 -12
  111. data/test/model/bands.iso-8859-1.xml +4 -4
  112. data/test/model/bands.utf-8.xml +4 -4
  113. data/test/model/bands.xml +4 -4
  114. data/test/model/books.xml +153 -153
  115. data/test/model/merge_bug_data.xml +58 -58
  116. data/test/model/ruby-lang.html +238 -238
  117. data/test/model/rubynet.xml +79 -79
  118. data/test/model/shiporder.rnc +28 -28
  119. data/test/model/shiporder.rng +86 -86
  120. data/test/model/shiporder.xml +22 -22
  121. data/test/model/shiporder.xsd +39 -39
  122. data/test/model/soap.xml +27 -27
  123. data/test/model/xinclude.xml +4 -4
  124. data/test/tc_attributes.rb +0 -6
  125. data/test/tc_error.rb +157 -158
  126. data/test/tc_node.rb +33 -17
  127. data/test/tc_node_edit.rb +0 -15
  128. data/test/tc_node_pi.rb +39 -39
  129. data/test/tc_parser.rb +0 -48
  130. data/test/tc_reader.rb +12 -53
  131. data/test/tc_writer.rb +447 -447
  132. data/test/tc_xpath.rb +1 -1
  133. data/test/test_helper.rb +2 -2
  134. metadata +3 -8
  135. data/ext/libxml/extconf.h +0 -4
  136. data/lib/libxml/ns.rb +0 -22
  137. data/lib/libxml/properties.rb +0 -23
  138. data/lib/libxml/reader.rb +0 -29
  139. data/lib/libxml/xpath_object.rb +0 -16
@@ -1,12 +1,12 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_ERROR__
4
- #define __RXML_ERROR__
5
-
6
- extern VALUE eXMLError;
7
-
8
- void rxml_init_error();
9
- VALUE rxml_error_wrap(xmlErrorPtr xerror);
10
- void rxml_raise(xmlErrorPtr xerror);
11
-
12
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_ERROR__
4
+ #define __RXML_ERROR__
5
+
6
+ extern VALUE eXMLError;
7
+
8
+ void rxml_init_error();
9
+ VALUE rxml_error_wrap(xmlErrorPtr xerror);
10
+ void rxml_raise(xmlErrorPtr xerror);
11
+
12
+ #endif
@@ -1,92 +1,89 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #include "ruby_libxml.h"
4
-
5
- /* Document-class: LibXML::XML::HTMLParser
6
- *
7
- * The HTML parser implements an HTML 4.0 non-verifying parser with an API
8
- * compatible with the XML::Parser. In contrast with the XML::Parser,
9
- * it can parse "real world" HTML, even if it severely broken from a
10
- * specification point of view.
11
- *
12
- * The HTML parser creates an in-memory document object
13
- * that consist of any number of XML::Node instances. This is simple
14
- * and powerful model, but has the major limitation that the size of
15
- * the document that can be processed is limited by the amount of
16
- * memory available.
17
- *
18
- * Using the html parser is simple:
19
- *
20
- * parser = XML::HTMLParser.file('my_file')
21
- * doc = parser.parse
22
- *
23
- * You can also parse documents (see XML::HTMLParser.document),
24
- * strings (see XML::HTMLParser.string) and io objects (see
25
- * XML::HTMLParser.io).
26
- */
27
-
28
- VALUE cXMLHtmlParser;
29
- static ID CONTEXT_ATTR;
30
-
31
-
32
- /* call-seq:
33
- * XML::HTMLParser.initialize -> parser
34
- *
35
- * Initializes a new parser instance with no pre-determined source.
36
- */
37
- static VALUE rxml_html_parser_initialize(int argc, VALUE *argv, VALUE self)
38
- {
39
- VALUE context = Qnil;
40
-
41
- rb_scan_args(argc, argv, "01", &context);
42
-
43
- if (context == Qnil)
44
- {
45
- rb_warn("Passing no parameters to XML::HTMLParser.new is deprecated. Pass an instance of XML::Parser::Context instead.");
46
- context = rb_class_new_instance(0, NULL, cXMLParserContext);
47
- }
48
-
49
- rb_ivar_set(self, CONTEXT_ATTR, context);
50
- return self;
51
- }
52
-
53
- /*
54
- * call-seq:
55
- * parser.parse -> XML::Document
56
- *
57
- * Parse the input XML and create an XML::Document with
58
- * it's content. If an error occurs, XML::Parser::ParseError
59
- * is thrown.
60
- */
61
- static VALUE rxml_html_parser_parse(VALUE self)
62
- {
63
- xmlParserCtxtPtr ctxt;
64
- VALUE context = rb_ivar_get(self, CONTEXT_ATTR);
65
-
66
- Data_Get_Struct(context, xmlParserCtxt, ctxt);
67
-
68
- if (htmlParseDocument(ctxt) == -1 && ! ctxt->recovery)
69
- {
70
- if (ctxt->myDoc)
71
- xmlFreeDoc(ctxt->myDoc);
72
- rxml_raise(&ctxt->lastError);
73
- }
74
-
75
- rb_funcall(context, rb_intern("close"), 0);
76
-
77
- return rxml_document_wrap(ctxt->myDoc);
78
- }
79
-
80
- void rxml_init_html_parser(void)
81
- {
82
- CONTEXT_ATTR = rb_intern("@context");
83
-
84
- cXMLHtmlParser = rb_define_class_under(mXML, "HTMLParser", rb_cObject);
85
-
86
- /* Atributes */
87
- rb_define_attr(cXMLHtmlParser, "input", 1, 0);
88
-
89
- /* Instance methods */
90
- rb_define_method(cXMLHtmlParser, "initialize", rxml_html_parser_initialize, -1);
91
- rb_define_method(cXMLHtmlParser, "parse", rxml_html_parser_parse, 0);
92
- }
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #include "ruby_libxml.h"
4
+
5
+ /* Document-class: LibXML::XML::HTMLParser
6
+ *
7
+ * The HTML parser implements an HTML 4.0 non-verifying parser with an API
8
+ * compatible with the XML::Parser. In contrast with the XML::Parser,
9
+ * it can parse "real world" HTML, even if it severely broken from a
10
+ * specification point of view.
11
+ *
12
+ * The HTML parser creates an in-memory document object
13
+ * that consist of any number of XML::Node instances. This is simple
14
+ * and powerful model, but has the major limitation that the size of
15
+ * the document that can be processed is limited by the amount of
16
+ * memory available.
17
+ *
18
+ * Using the html parser is simple:
19
+ *
20
+ * parser = XML::HTMLParser.file('my_file')
21
+ * doc = parser.parse
22
+ *
23
+ * You can also parse documents (see XML::HTMLParser.document),
24
+ * strings (see XML::HTMLParser.string) and io objects (see
25
+ * XML::HTMLParser.io).
26
+ */
27
+
28
+ VALUE cXMLHtmlParser;
29
+ static ID CONTEXT_ATTR;
30
+
31
+
32
+ /* call-seq:
33
+ * XML::HTMLParser.initialize -> parser
34
+ *
35
+ * Initializes a new parser instance with no pre-determined source.
36
+ */
37
+ static VALUE rxml_html_parser_initialize(int argc, VALUE *argv, VALUE self)
38
+ {
39
+ VALUE context = Qnil;
40
+
41
+ rb_scan_args(argc, argv, "01", &context);
42
+
43
+ if (context == Qnil)
44
+ {
45
+ rb_raise(rb_eArgError, "An instance of a XML::Parser::Context must be passed to XML::HTMLParser.new");
46
+ }
47
+
48
+ rb_ivar_set(self, CONTEXT_ATTR, context);
49
+ return self;
50
+ }
51
+
52
+ /*
53
+ * call-seq:
54
+ * parser.parse -> XML::Document
55
+ *
56
+ * Parse the input XML and create an XML::Document with
57
+ * it's content. If an error occurs, XML::Parser::ParseError
58
+ * is thrown.
59
+ */
60
+ static VALUE rxml_html_parser_parse(VALUE self)
61
+ {
62
+ xmlParserCtxtPtr ctxt;
63
+ VALUE context = rb_ivar_get(self, CONTEXT_ATTR);
64
+
65
+ Data_Get_Struct(context, xmlParserCtxt, ctxt);
66
+
67
+ if (htmlParseDocument(ctxt) == -1 && ! ctxt->recovery)
68
+ {
69
+ rxml_raise(&ctxt->lastError);
70
+ }
71
+
72
+ rb_funcall(context, rb_intern("close"), 0);
73
+
74
+ return rxml_document_wrap(ctxt->myDoc);
75
+ }
76
+
77
+ void rxml_init_html_parser(void)
78
+ {
79
+ CONTEXT_ATTR = rb_intern("@context");
80
+
81
+ cXMLHtmlParser = rb_define_class_under(mXML, "HTMLParser", rb_cObject);
82
+
83
+ /* Atributes */
84
+ rb_define_attr(cXMLHtmlParser, "input", 1, 0);
85
+
86
+ /* Instance methods */
87
+ rb_define_method(cXMLHtmlParser, "initialize", rxml_html_parser_initialize, -1);
88
+ rb_define_method(cXMLHtmlParser, "parse", rxml_html_parser_parse, 0);
89
+ }
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_HTML_PARSER__
4
- #define __RXML_HTML_PARSER__
5
-
6
- extern VALUE cXMLHtmlParser;
7
-
8
- void rxml_init_html_parser(void);
9
-
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_HTML_PARSER__
4
+ #define __RXML_HTML_PARSER__
5
+
6
+ extern VALUE cXMLHtmlParser;
7
+
8
+ void rxml_init_html_parser(void);
9
+
10
+ #endif
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_HTML_PARSER_CONTEXT__
4
- #define __RXML_HTML_PARSER_CONTEXT__
5
-
6
- extern VALUE cXMLHtmlParserContext;
7
-
8
- void rxml_init_html_parser_context(void);
9
-
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_HTML_PARSER_CONTEXT__
4
+ #define __RXML_HTML_PARSER_CONTEXT__
5
+
6
+ extern VALUE cXMLHtmlParserContext;
7
+
8
+ void rxml_init_html_parser_context(void);
9
+
10
+ #endif
@@ -1,46 +1,46 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #include "ruby_libxml.h"
4
-
5
- /* Document-class: LibXML::XML::HTMLParser::Options
6
- *
7
- * Options to control the operation of the HTMLParser. The easiest
8
- * way to set a parser's options is via the methods
9
- * XML::HTMLParser.file, XML::HTMLParser.io or XML::HTMLParser.string.
10
- * For additional control, see XML::HTMLParser::Context#options=.
11
- */
12
-
13
- VALUE mXMLHtmlParserOptions;
14
-
15
- void rxml_init_html_parser_options(void)
16
- {
17
- mXMLHtmlParserOptions = rb_define_module_under(cXMLHtmlParser, "Options");
18
-
19
-
20
- #if LIBXML_VERSION >= 20621
21
- /* 1: Relax parsing. */
22
- rb_define_const(mXMLHtmlParserOptions, "RECOVER", INT2NUM(HTML_PARSE_RECOVER));
23
- #endif
24
- #if LIBXML_VERSION >= 20708
25
- /* 2: Do not default a doctype if not found */
26
- rb_define_const(mXMLHtmlParserOptions, "NODEFDTD", INT2NUM(HTML_PARSE_NODEFDTD));
27
- #endif
28
- /* 32: Suppress error reports. */
29
- rb_define_const(mXMLHtmlParserOptions, "NOERROR", INT2NUM(HTML_PARSE_NOERROR));
30
- /* 64: Suppress warning reports. */
31
- rb_define_const(mXMLHtmlParserOptions, "NOWARNING", INT2NUM(HTML_PARSE_NOWARNING));
32
- /* 128: Enable pedantic error reporting. */
33
- rb_define_const(mXMLHtmlParserOptions, "PEDANTIC", INT2NUM(HTML_PARSE_PEDANTIC));
34
- /* 256: Remove blank nodes. */
35
- rb_define_const(mXMLHtmlParserOptions, "NOBLANKS", INT2NUM(HTML_PARSE_NOBLANKS));
36
- #if LIBXML_VERSION >= 20621
37
- /* 2048: Forbid network access. */
38
- rb_define_const(mXMLHtmlParserOptions, "NONET", INT2NUM(HTML_PARSE_NONET));
39
- /* 65536: Compact small text nodes. */
40
- rb_define_const(mXMLHtmlParserOptions, "COMPACT", INT2NUM(HTML_PARSE_COMPACT));
41
- #endif
42
- #if LIBXML_VERSION >= 20707
43
- /* 8192: Do not add implied html/body... elements */
44
- rb_define_const(mXMLHtmlParserOptions, "NOIMPLIED", INT2NUM(HTML_PARSE_NOIMPLIED));
45
- #endif
46
- }
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #include "ruby_libxml.h"
4
+
5
+ /* Document-class: LibXML::XML::HTMLParser::Options
6
+ *
7
+ * Options to control the operation of the HTMLParser. The easiest
8
+ * way to set a parser's options is via the methods
9
+ * XML::HTMLParser.file, XML::HTMLParser.io or XML::HTMLParser.string.
10
+ * For additional control, see XML::HTMLParser::Context#options=.
11
+ */
12
+
13
+ VALUE mXMLHtmlParserOptions;
14
+
15
+ void rxml_init_html_parser_options(void)
16
+ {
17
+ mXMLHtmlParserOptions = rb_define_module_under(cXMLHtmlParser, "Options");
18
+
19
+
20
+ #if LIBXML_VERSION >= 20621
21
+ /* 1: Relax parsing. */
22
+ rb_define_const(mXMLHtmlParserOptions, "RECOVER", INT2NUM(HTML_PARSE_RECOVER));
23
+ #endif
24
+ #if LIBXML_VERSION >= 20708
25
+ /* 2: Do not default a doctype if not found */
26
+ rb_define_const(mXMLHtmlParserOptions, "NODEFDTD", INT2NUM(HTML_PARSE_NODEFDTD));
27
+ #endif
28
+ /* 32: Suppress error reports. */
29
+ rb_define_const(mXMLHtmlParserOptions, "NOERROR", INT2NUM(HTML_PARSE_NOERROR));
30
+ /* 64: Suppress warning reports. */
31
+ rb_define_const(mXMLHtmlParserOptions, "NOWARNING", INT2NUM(HTML_PARSE_NOWARNING));
32
+ /* 128: Enable pedantic error reporting. */
33
+ rb_define_const(mXMLHtmlParserOptions, "PEDANTIC", INT2NUM(HTML_PARSE_PEDANTIC));
34
+ /* 256: Remove blank nodes. */
35
+ rb_define_const(mXMLHtmlParserOptions, "NOBLANKS", INT2NUM(HTML_PARSE_NOBLANKS));
36
+ #if LIBXML_VERSION >= 20621
37
+ /* 2048: Forbid network access. */
38
+ rb_define_const(mXMLHtmlParserOptions, "NONET", INT2NUM(HTML_PARSE_NONET));
39
+ /* 65536: Compact small text nodes. */
40
+ rb_define_const(mXMLHtmlParserOptions, "COMPACT", INT2NUM(HTML_PARSE_COMPACT));
41
+ #endif
42
+ #if LIBXML_VERSION >= 20707
43
+ /* 8192: Do not add implied html/body... elements */
44
+ rb_define_const(mXMLHtmlParserOptions, "NOIMPLIED", INT2NUM(HTML_PARSE_NOIMPLIED));
45
+ #endif
46
+ }
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_HTML_PARSER_OPTIONS__
4
- #define __RXML_HTML_PARSER_OPTIONS__
5
-
6
- extern VALUE mXMLHtmlParserOptions;
7
-
8
- void rxml_init_html_parser_options(void);
9
-
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_HTML_PARSER_OPTIONS__
4
+ #define __RXML_HTML_PARSER_OPTIONS__
5
+
6
+ extern VALUE mXMLHtmlParserOptions;
7
+
8
+ void rxml_init_html_parser_options(void);
9
+
10
+ #endif
@@ -1,20 +1,20 @@
1
- #ifndef _INPUT_CBG_
2
- #define _INPUT_CBG_
3
-
4
- void rxml_init_input_callbacks(void);
5
-
6
- typedef struct ic_doc_context {
7
- char *buffer;
8
- char *bpos;
9
- int remaining;
10
- } ic_doc_context;
11
-
12
- typedef struct ic_scheme {
13
- char *scheme_name;
14
- VALUE class;
15
- int name_len;
16
-
17
- struct ic_scheme *next_scheme;
18
- } ic_scheme;
19
-
20
- #endif
1
+ #ifndef _INPUT_CBG_
2
+ #define _INPUT_CBG_
3
+
4
+ void rxml_init_input_callbacks(void);
5
+
6
+ typedef struct ic_doc_context {
7
+ char *buffer;
8
+ char *bpos;
9
+ int remaining;
10
+ } ic_doc_context;
11
+
12
+ typedef struct ic_scheme {
13
+ char *scheme_name;
14
+ VALUE class;
15
+ int name_len;
16
+
17
+ struct ic_scheme *next_scheme;
18
+ } ic_scheme;
19
+
20
+ #endif
@@ -1,6 +1,5 @@
1
1
  /* Please see the LICENSE file for copyright and distribution information */
2
2
 
3
- #include "extconf.h"
4
3
  #include "ruby_libxml.h"
5
4
 
6
5
  static ID READ_METHOD;
@@ -1,10 +1,10 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_IO__
4
- #define __RXML_IO__
5
-
6
- int rxml_read_callback(void *context, char *buffer, int len);
7
- int rxml_write_callback(void *context, const char *buffer, int len);
8
- void rxml_init_io(void);
9
-
10
- #endif
1
+ /* Please see the LICENSE file for copyright and distribution information */
2
+
3
+ #ifndef __RXML_IO__
4
+ #define __RXML_IO__
5
+
6
+ int rxml_read_callback(void *context, char *buffer, int len);
7
+ int rxml_write_callback(void *context, const char *buffer, int len);
8
+ void rxml_init_io(void);
9
+
10
+ #endif
@@ -1,153 +1,153 @@
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
-
56
- /* Prefix can be null - that means its the default namespace */
57
- xmlPrefix = NIL_P(prefix) ? NULL : (xmlChar *)StringValuePtr(prefix);
58
- xns = xmlNewNs(xnode, (xmlChar*) StringValuePtr(href), xmlPrefix);
59
-
60
- if (!xns)
61
- rxml_raise(&xmlLastError);
62
-
63
- DATA_PTR(self) = xns;
64
- return self;
65
- }
66
-
67
- /*
68
- * call-seq:
69
- * ns.href -> "href"
70
- *
71
- * Usage:
72
- *
73
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
74
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
75
- * assert_equal('http://schemas.xmlsoap.org/soap/envelope/', ns.href)
76
- */
77
- static VALUE rxml_namespace_href_get(VALUE self)
78
- {
79
- xmlNsPtr xns;
80
- Data_Get_Struct(self, xmlNs, xns);
81
- if (xns->href == NULL)
82
- return Qnil;
83
- else
84
- return rxml_new_cstr( xns->href, NULL);
85
- }
86
-
87
- /*
88
- * call-seq:
89
- * ns.node_type -> num
90
- *
91
- * Obtain this namespace's type identifier.
92
- */
93
- static VALUE rxml_namespace_node_type(VALUE self)
94
- {
95
- xmlNsPtr xns;
96
- Data_Get_Struct(self, xmlNs, xns);
97
- return INT2NUM(xns->type);
98
- }
99
-
100
- /*
101
- * call-seq:
102
- * ns.prefix -> "prefix"
103
- *
104
- * Obtain the namespace's prefix.
105
- *
106
- * Usage:
107
- *
108
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
109
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
110
- * assert_equal('soap', ns.prefix)
111
- */
112
- static VALUE rxml_namespace_prefix_get(VALUE self)
113
- {
114
- xmlNsPtr xns;
115
- Data_Get_Struct(self, xmlNs, xns);
116
- if (xns->prefix == NULL)
117
- return Qnil;
118
- else
119
- return rxml_new_cstr( xns->prefix, NULL);
120
- }
121
-
122
- /*
123
- * call-seq:
124
- * ns.next -> XML::Namespace
125
- *
126
- * Obtain the next namespace.
127
- *
128
- * Usage:
129
- *
130
- * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
131
- * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
132
- * assert_nil(ns.next)
133
- */
134
- static VALUE rxml_namespace_next(VALUE self)
135
- {
136
- xmlNsPtr xns;
137
- Data_Get_Struct(self, xmlNs, xns);
138
- if (xns == NULL || xns->next == NULL)
139
- return (Qnil);
140
- else
141
- return rxml_namespace_wrap(xns->next);
142
- }
143
-
144
- void rxml_init_namespace(void)
145
- {
146
- cXMLNamespace = rb_define_class_under(mXML, "Namespace", rb_cObject);
147
- rb_define_alloc_func(cXMLNamespace, rxml_namespace_alloc);
148
- rb_define_method(cXMLNamespace, "initialize", rxml_namespace_initialize, 3);
149
- rb_define_method(cXMLNamespace, "href", rxml_namespace_href_get, 0);
150
- rb_define_method(cXMLNamespace, "next", rxml_namespace_next, 0);
151
- rb_define_method(cXMLNamespace, "node_type", rxml_namespace_node_type, 0);
152
- rb_define_method(cXMLNamespace, "prefix", rxml_namespace_prefix_get, 0);
153
- }
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
+
56
+ /* Prefix can be null - that means its the default namespace */
57
+ xmlPrefix = NIL_P(prefix) ? NULL : (xmlChar *)StringValuePtr(prefix);
58
+ xns = xmlNewNs(xnode, (xmlChar*) StringValuePtr(href), xmlPrefix);
59
+
60
+ if (!xns)
61
+ rxml_raise(&xmlLastError);
62
+
63
+ DATA_PTR(self) = xns;
64
+ return self;
65
+ }
66
+
67
+ /*
68
+ * call-seq:
69
+ * ns.href -> "href"
70
+ *
71
+ * Usage:
72
+ *
73
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
74
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
75
+ * assert_equal('http://schemas.xmlsoap.org/soap/envelope/', ns.href)
76
+ */
77
+ static VALUE rxml_namespace_href_get(VALUE self)
78
+ {
79
+ xmlNsPtr xns;
80
+ Data_Get_Struct(self, xmlNs, xns);
81
+ if (xns->href == NULL)
82
+ return Qnil;
83
+ else
84
+ return rxml_new_cstr( xns->href, NULL);
85
+ }
86
+
87
+ /*
88
+ * call-seq:
89
+ * ns.node_type -> num
90
+ *
91
+ * Obtain this namespace's type identifier.
92
+ */
93
+ static VALUE rxml_namespace_node_type(VALUE self)
94
+ {
95
+ xmlNsPtr xns;
96
+ Data_Get_Struct(self, xmlNs, xns);
97
+ return INT2NUM(xns->type);
98
+ }
99
+
100
+ /*
101
+ * call-seq:
102
+ * ns.prefix -> "prefix"
103
+ *
104
+ * Obtain the namespace's prefix.
105
+ *
106
+ * Usage:
107
+ *
108
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
109
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
110
+ * assert_equal('soap', ns.prefix)
111
+ */
112
+ static VALUE rxml_namespace_prefix_get(VALUE self)
113
+ {
114
+ xmlNsPtr xns;
115
+ Data_Get_Struct(self, xmlNs, xns);
116
+ if (xns->prefix == NULL)
117
+ return Qnil;
118
+ else
119
+ return rxml_new_cstr( xns->prefix, NULL);
120
+ }
121
+
122
+ /*
123
+ * call-seq:
124
+ * ns.next -> XML::Namespace
125
+ *
126
+ * Obtain the next namespace.
127
+ *
128
+ * Usage:
129
+ *
130
+ * doc = XML::Document.string('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>')
131
+ * ns = doc.root.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
132
+ * assert_nil(ns.next)
133
+ */
134
+ static VALUE rxml_namespace_next(VALUE self)
135
+ {
136
+ xmlNsPtr xns;
137
+ Data_Get_Struct(self, xmlNs, xns);
138
+ if (xns == NULL || xns->next == NULL)
139
+ return (Qnil);
140
+ else
141
+ return rxml_namespace_wrap(xns->next);
142
+ }
143
+
144
+ void rxml_init_namespace(void)
145
+ {
146
+ cXMLNamespace = rb_define_class_under(mXML, "Namespace", rb_cObject);
147
+ rb_define_alloc_func(cXMLNamespace, rxml_namespace_alloc);
148
+ rb_define_method(cXMLNamespace, "initialize", rxml_namespace_initialize, 3);
149
+ rb_define_method(cXMLNamespace, "href", rxml_namespace_href_get, 0);
150
+ rb_define_method(cXMLNamespace, "next", rxml_namespace_next, 0);
151
+ rb_define_method(cXMLNamespace, "node_type", rxml_namespace_node_type, 0);
152
+ rb_define_method(cXMLNamespace, "prefix", rxml_namespace_prefix_get, 0);
153
+ }