libxml-ruby 4.1.2 → 6.0.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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/{HISTORY → CHANGELOG.md} +875 -887
  3. data/LICENSE +20 -20
  4. data/README.md +67 -0
  5. data/Rakefile +77 -98
  6. data/ext/libxml/extconf.rb +39 -20
  7. data/ext/libxml/libxml.c +67 -79
  8. data/ext/libxml/ruby_libxml.h +43 -44
  9. data/ext/libxml/ruby_xml.c +556 -899
  10. data/ext/libxml/ruby_xml.h +9 -10
  11. data/ext/libxml/ruby_xml_attr.c +338 -333
  12. data/ext/libxml/ruby_xml_attr.h +13 -12
  13. data/ext/libxml/ruby_xml_attr_decl.c +19 -12
  14. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  15. data/ext/libxml/ruby_xml_attributes.c +18 -9
  16. data/ext/libxml/ruby_xml_attributes.h +17 -15
  17. data/ext/libxml/ruby_xml_document.c +1142 -1129
  18. data/ext/libxml/ruby_xml_document.h +12 -11
  19. data/ext/libxml/ruby_xml_dtd.c +287 -248
  20. data/ext/libxml/ruby_xml_dtd.h +10 -9
  21. data/ext/libxml/ruby_xml_encoding.c +250 -250
  22. data/ext/libxml/ruby_xml_encoding.h +20 -18
  23. data/ext/libxml/ruby_xml_error.c +1003 -996
  24. data/ext/libxml/ruby_xml_error.h +14 -14
  25. data/ext/libxml/ruby_xml_html_parser.c +91 -91
  26. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  27. data/ext/libxml/ruby_xml_html_parser_context.c +364 -337
  28. data/ext/libxml/ruby_xml_html_parser_context.h +11 -10
  29. data/ext/libxml/ruby_xml_html_parser_options.c +48 -48
  30. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  31. data/ext/libxml/ruby_xml_input_cbg.c +216 -188
  32. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  33. data/ext/libxml/ruby_xml_io.c +49 -47
  34. data/ext/libxml/ruby_xml_io.h +10 -10
  35. data/ext/libxml/ruby_xml_namespace.c +159 -154
  36. data/ext/libxml/ruby_xml_namespace.h +11 -10
  37. data/ext/libxml/ruby_xml_namespaces.c +313 -293
  38. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  39. data/ext/libxml/ruby_xml_node.c +1433 -1398
  40. data/ext/libxml/ruby_xml_node.h +15 -13
  41. data/ext/libxml/ruby_xml_parser.c +91 -91
  42. data/ext/libxml/ruby_xml_parser.h +10 -10
  43. data/ext/libxml/ruby_xml_parser_context.c +1016 -1001
  44. data/ext/libxml/ruby_xml_parser_context.h +11 -10
  45. data/ext/libxml/ruby_xml_parser_options.c +74 -66
  46. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  47. data/ext/libxml/ruby_xml_reader.c +40 -31
  48. data/ext/libxml/ruby_xml_reader.h +14 -14
  49. data/ext/libxml/ruby_xml_registry.c +31 -0
  50. data/ext/libxml/ruby_xml_registry.h +22 -0
  51. data/ext/libxml/ruby_xml_relaxng.c +21 -5
  52. data/ext/libxml/ruby_xml_relaxng.h +9 -8
  53. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  54. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  55. data/ext/libxml/ruby_xml_sax_parser.c +108 -116
  56. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  57. data/ext/libxml/ruby_xml_schema.c +22 -15
  58. data/ext/libxml/ruby_xml_schema.h +26 -25
  59. data/ext/libxml/ruby_xml_schema_attribute.c +7 -7
  60. data/ext/libxml/ruby_xml_schema_attribute.h +37 -37
  61. data/ext/libxml/ruby_xml_schema_element.c +8 -8
  62. data/ext/libxml/ruby_xml_schema_element.h +11 -11
  63. data/ext/libxml/ruby_xml_schema_facet.c +50 -50
  64. data/ext/libxml/ruby_xml_schema_facet.h +9 -9
  65. data/ext/libxml/ruby_xml_schema_type.c +12 -19
  66. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  67. data/ext/libxml/ruby_xml_version.h +9 -9
  68. data/ext/libxml/ruby_xml_writer.c +183 -185
  69. data/ext/libxml/ruby_xml_writer.h +6 -6
  70. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  71. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  72. data/ext/libxml/ruby_xml_xpath.c +195 -195
  73. data/ext/libxml/ruby_xml_xpath.h +15 -15
  74. data/ext/libxml/ruby_xml_xpath_context.c +408 -362
  75. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  76. data/ext/libxml/ruby_xml_xpath_expression.c +12 -6
  77. data/ext/libxml/ruby_xml_xpath_expression.h +11 -10
  78. data/ext/libxml/ruby_xml_xpath_object.c +69 -54
  79. data/ext/libxml/ruby_xml_xpath_object.h +19 -17
  80. data/ext/vc/libxml_ruby/libxml_ruby.vcxproj +271 -0
  81. data/ext/xcode/libxml-ruby.xcodeproj/project.pbxproj +633 -0
  82. data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  83. data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  84. data/ext/xcode/libxml-ruby.xcodeproj/xcshareddata/xcschemes/libxml-ruby.xcscheme +80 -0
  85. data/lib/libxml/attr.rb +122 -122
  86. data/lib/libxml/attr_decl.rb +80 -80
  87. data/lib/libxml/attributes.rb +13 -13
  88. data/lib/libxml/document.rb +165 -194
  89. data/lib/libxml/error.rb +122 -95
  90. data/lib/libxml/html_parser.rb +80 -96
  91. data/lib/libxml/namespace.rb +61 -61
  92. data/lib/libxml/namespaces.rb +37 -37
  93. data/lib/libxml/node.rb +321 -323
  94. data/lib/libxml/parser.rb +94 -100
  95. data/lib/libxml/sax_callbacks.rb +179 -179
  96. data/lib/libxml/sax_parser.rb +40 -40
  97. data/lib/libxml/schema/attribute.rb +27 -19
  98. data/lib/libxml/schema/element.rb +20 -0
  99. data/lib/libxml/schema/type.rb +44 -21
  100. data/lib/libxml/schema.rb +47 -47
  101. data/lib/libxml/tree.rb +28 -28
  102. data/lib/libxml-ruby.rb +30 -30
  103. data/libxml-ruby.gemspec +46 -48
  104. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  105. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  106. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  107. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  108. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  109. data/test/c14n/result/with-comments/example-1 +5 -5
  110. data/test/c14n/result/with-comments/example-2 +10 -10
  111. data/test/c14n/result/with-comments/example-3 +13 -13
  112. data/test/c14n/result/with-comments/example-4 +8 -8
  113. data/test/c14n/result/with-comments/example-5 +3 -3
  114. data/test/c14n/result/without-comments/example-1 +3 -3
  115. data/test/c14n/result/without-comments/example-2 +10 -10
  116. data/test/c14n/result/without-comments/example-3 +13 -13
  117. data/test/c14n/result/without-comments/example-4 +8 -8
  118. data/test/c14n/result/without-comments/example-5 +2 -2
  119. data/test/test_attr.rb +179 -180
  120. data/test/test_attr_decl.rb +131 -131
  121. data/test/test_attributes.rb +135 -135
  122. data/test/test_canonicalize.rb +122 -120
  123. data/test/test_document.rb +138 -132
  124. data/test/test_document_write.rb +142 -145
  125. data/test/test_dtd.rb +134 -129
  126. data/test/test_encoding.rb +126 -129
  127. data/test/test_encoding_sax.rb +114 -114
  128. data/test/test_error.rb +197 -194
  129. data/test/test_helper.rb +21 -13
  130. data/test/test_html_parser.rb +166 -162
  131. data/test/test_html_parser_context.rb +22 -22
  132. data/test/test_input_callbacks.rb +36 -0
  133. data/test/test_namespace.rb +58 -60
  134. data/test/test_namespaces.rb +200 -200
  135. data/test/test_node.rb +251 -237
  136. data/test/test_node_cdata.rb +50 -50
  137. data/test/test_node_comment.rb +32 -32
  138. data/test/test_node_copy.rb +40 -40
  139. data/test/test_node_edit.rb +176 -158
  140. data/test/test_node_pi.rb +37 -37
  141. data/test/test_node_text.rb +69 -69
  142. data/test/test_node_write.rb +93 -96
  143. data/test/test_node_xlink.rb +28 -28
  144. data/test/test_parser.rb +297 -324
  145. data/test/test_parser_context.rb +198 -198
  146. data/test/test_properties.rb +38 -38
  147. data/test/test_reader.rb +413 -364
  148. data/test/test_relaxng.rb +59 -53
  149. data/test/test_sax_parser.rb +345 -326
  150. data/test/test_schema.rb +28 -0
  151. data/test/test_traversal.rb +152 -152
  152. data/test/test_writer.rb +469 -468
  153. data/test/test_xinclude.rb +20 -20
  154. data/test/test_xml.rb +164 -267
  155. data/test/test_xpath.rb +244 -244
  156. data/test/test_xpath_context.rb +87 -87
  157. data/test/test_xpath_expression.rb +37 -37
  158. metadata +49 -31
  159. data/README.rdoc +0 -217
  160. data/ext/libxml/extconf.h +0 -3
  161. data/ext/libxml/ruby_xml_cbg.c +0 -85
  162. data/lib/libxml/hpricot.rb +0 -78
  163. data/lib/libxml.rb +0 -5
  164. data/lib/xml/libxml.rb +0 -10
  165. data/lib/xml.rb +0 -14
  166. data/script/benchmark/depixelate +0 -634
  167. data/script/benchmark/hamlet.xml +0 -9055
  168. data/script/benchmark/parsecount +0 -170
  169. data/script/benchmark/sock_entries.xml +0 -507
  170. data/script/benchmark/throughput +0 -41
  171. data/script/test +0 -6
  172. data/test/test_deprecated_require.rb +0 -12
@@ -1,19 +1,27 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Schema::Attribute
6
- REQUIRED = 1
7
- OPTIONAL = 2
8
-
9
- def default
10
- node['default']
11
- end
12
-
13
- def required?
14
- occurs == REQUIRED
15
- end
16
-
17
- end
18
- end
19
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Schema::Attribute
6
+ REQUIRED = 1
7
+ OPTIONAL = 2
8
+
9
+ # call-seq:
10
+ # attribute.default -> String or nil
11
+ #
12
+ # Returns the default value for this attribute, or nil if none.
13
+ def default
14
+ node['default']
15
+ end
16
+
17
+ # call-seq:
18
+ # attribute.required? -> true or false
19
+ #
20
+ # Returns whether this attribute is required.
21
+ def required?
22
+ occurs == REQUIRED
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -3,22 +3,42 @@
3
3
  module LibXML
4
4
  module XML
5
5
  class Schema::Element
6
+ # call-seq:
7
+ # element.min_occurs -> Integer
8
+ #
9
+ # Returns the minimum number of times this element must appear.
6
10
  def min_occurs
7
11
  @min
8
12
  end
9
13
 
14
+ # call-seq:
15
+ # element.max_occurs -> Integer
16
+ #
17
+ # Returns the maximum number of times this element may appear.
10
18
  def max_occurs
11
19
  @max
12
20
  end
13
21
 
22
+ # call-seq:
23
+ # element.required? -> true or false
24
+ #
25
+ # Returns whether this element is required (min_occurs > 0).
14
26
  def required?
15
27
  !min_occurs.zero?
16
28
  end
17
29
 
30
+ # call-seq:
31
+ # element.array? -> true or false
32
+ #
33
+ # Returns whether this element can appear more than once (max_occurs > 1).
18
34
  def array?
19
35
  max_occurs > 1
20
36
  end
21
37
 
38
+ # call-seq:
39
+ # element.elements -> Hash
40
+ #
41
+ # Returns the child elements of this element's type.
22
42
  def elements
23
43
  type.elements
24
44
  end
@@ -1,21 +1,44 @@
1
- module LibXML
2
- module XML
3
- class Schema::Type
4
- def kind_name
5
- Schema::Types.constants.find { |k| Schema::Types.const_get(k) == kind }
6
- end
7
-
8
- def annonymus_subtypes
9
- elements.select { |_, e| e.type.name.nil? }
10
- end
11
-
12
- def annonymus_subtypes_recursively(parent=nil)
13
- annonymus_subtypes.map do |element_name, e|
14
- [{[parent, element_name].compact.join('::') => e.type},
15
- e.type.annonymus_subtypes_recursively(element_name)]
16
- end.flatten
17
- end
18
-
19
- end
20
- end
21
- end
1
+ module LibXML
2
+ module XML
3
+ class Schema::Type
4
+ # call-seq:
5
+ # type.kind_name -> String
6
+ #
7
+ # Returns the name of the constant that matches this type's +kind+ value.
8
+ #
9
+ # schema.types['shiporderType'].kind_name
10
+ # # => :XML_SCHEMA_TYPE_COMPLEX
11
+ def kind_name
12
+ Schema::Types.constants.find { |k| Schema::Types.const_get(k) == kind }
13
+ end
14
+
15
+ # call-seq:
16
+ # type.anonymous_subtypes -> Hash
17
+ #
18
+ # Returns a Hash of child elements whose types are anonymous
19
+ # (inline complex types with no global name).
20
+ #
21
+ # type.anonymous_subtypes
22
+ # # => {"shipto" => #<Schema::Element>, "item" => #<Schema::Element>}
23
+ def anonymous_subtypes
24
+ elements.select { |_, e| e.type.name.nil? }
25
+ end
26
+
27
+ # call-seq:
28
+ # type.anonymous_subtypes_recursively -> Array
29
+ #
30
+ # Returns a flattened Array of Hashes mapping qualified names to
31
+ # anonymous Schema::Type instances, descending into nested types.
32
+ #
33
+ # type.anonymous_subtypes_recursively
34
+ # # => [{"shipto" => #<Schema::Type>}, {"item" => #<Schema::Type>}]
35
+ def anonymous_subtypes_recursively(parent=nil)
36
+ anonymous_subtypes.map do |element_name, e|
37
+ [{[parent, element_name].compact.join('::') => e.type},
38
+ e.type.anonymous_subtypes_recursively(element_name)]
39
+ end.flatten
40
+ end
41
+
42
+ end
43
+ end
44
+ end
data/lib/libxml/schema.rb CHANGED
@@ -1,48 +1,48 @@
1
- module LibXML
2
- module XML
3
- class Schema
4
- module Types
5
- XML_SCHEMA_TYPE_BASIC = 1 # A built-in datatype
6
- XML_SCHEMA_TYPE_ANY = 2
7
- XML_SCHEMA_TYPE_FACET = 3
8
- XML_SCHEMA_TYPE_SIMPLE = 4
9
- XML_SCHEMA_TYPE_COMPLEX = 5
10
- XML_SCHEMA_TYPE_SEQUENCE = 6
11
- XML_SCHEMA_TYPE_CHOICE = 7
12
- XML_SCHEMA_TYPE_ALL = 8
13
- XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
14
- XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
15
- XML_SCHEMA_TYPE_UR = 11
16
- XML_SCHEMA_TYPE_RESTRICTION = 12
17
- XML_SCHEMA_TYPE_EXTENSION = 13
18
- XML_SCHEMA_TYPE_ELEMENT = 14
19
- XML_SCHEMA_TYPE_ATTRIBUTE = 15
20
- XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
21
- XML_SCHEMA_TYPE_GROUP = 17
22
- XML_SCHEMA_TYPE_NOTATION = 18
23
- XML_SCHEMA_TYPE_LIST = 19
24
- XML_SCHEMA_TYPE_UNION = 20
25
- XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
26
- XML_SCHEMA_TYPE_IDC_UNIQUE = 22
27
- XML_SCHEMA_TYPE_IDC_KEY = 23
28
- XML_SCHEMA_TYPE_IDC_KEYREF = 24
29
- XML_SCHEMA_TYPE_PARTICLE = 25
30
- XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
31
- XML_SCHEMA_FACET_MININCLUSIVE = 1000
32
- XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
33
- XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
34
- XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
35
- XML_SCHEMA_FACET_TOTALDIGITS = 1004
36
- XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
37
- XML_SCHEMA_FACET_PATTERN = 1006
38
- XML_SCHEMA_FACET_ENUMERATION = 1007
39
- XML_SCHEMA_FACET_WHITESPACE = 1008
40
- XML_SCHEMA_FACET_LENGTH = 1009
41
- XML_SCHEMA_FACET_MAXLENGTH = 1010
42
- XML_SCHEMA_FACET_MINLENGTH = 1011
43
- XML_SCHEMA_EXTRA_QNAMEREF = 2000
44
- XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
45
- end
46
- end
47
- end
1
+ module LibXML
2
+ module XML
3
+ class Schema
4
+ module Types
5
+ XML_SCHEMA_TYPE_BASIC = 1 # A built-in datatype
6
+ XML_SCHEMA_TYPE_ANY = 2
7
+ XML_SCHEMA_TYPE_FACET = 3
8
+ XML_SCHEMA_TYPE_SIMPLE = 4
9
+ XML_SCHEMA_TYPE_COMPLEX = 5
10
+ XML_SCHEMA_TYPE_SEQUENCE = 6
11
+ XML_SCHEMA_TYPE_CHOICE = 7
12
+ XML_SCHEMA_TYPE_ALL = 8
13
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
14
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
15
+ XML_SCHEMA_TYPE_UR = 11
16
+ XML_SCHEMA_TYPE_RESTRICTION = 12
17
+ XML_SCHEMA_TYPE_EXTENSION = 13
18
+ XML_SCHEMA_TYPE_ELEMENT = 14
19
+ XML_SCHEMA_TYPE_ATTRIBUTE = 15
20
+ XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
21
+ XML_SCHEMA_TYPE_GROUP = 17
22
+ XML_SCHEMA_TYPE_NOTATION = 18
23
+ XML_SCHEMA_TYPE_LIST = 19
24
+ XML_SCHEMA_TYPE_UNION = 20
25
+ XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
26
+ XML_SCHEMA_TYPE_IDC_UNIQUE = 22
27
+ XML_SCHEMA_TYPE_IDC_KEY = 23
28
+ XML_SCHEMA_TYPE_IDC_KEYREF = 24
29
+ XML_SCHEMA_TYPE_PARTICLE = 25
30
+ XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
31
+ XML_SCHEMA_FACET_MININCLUSIVE = 1000
32
+ XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
33
+ XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
34
+ XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
35
+ XML_SCHEMA_FACET_TOTALDIGITS = 1004
36
+ XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
37
+ XML_SCHEMA_FACET_PATTERN = 1006
38
+ XML_SCHEMA_FACET_ENUMERATION = 1007
39
+ XML_SCHEMA_FACET_WHITESPACE = 1008
40
+ XML_SCHEMA_FACET_LENGTH = 1009
41
+ XML_SCHEMA_FACET_MAXLENGTH = 1010
42
+ XML_SCHEMA_FACET_MINLENGTH = 1011
43
+ XML_SCHEMA_EXTRA_QNAMEREF = 2000
44
+ XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
45
+ end
46
+ end
47
+ end
48
48
  end
data/lib/libxml/tree.rb CHANGED
@@ -1,29 +1,29 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Tree # :nodoc:
6
- ELEMENT_NODE = Node::ELEMENT_NODE
7
- ATTRIBUTE_NODE = Node::ATTRIBUTE_NODE
8
- TEXT_NODE = Node::TEXT_NODE
9
- CDATA_SECTION_NODE = Node::CDATA_SECTION_NODE
10
- ENTITY_REF_NODE = Node::ENTITY_REF_NODE
11
- ENTITY_NODE = Node::ENTITY_NODE
12
- PI_NODE = Node::PI_NODE
13
- COMMENT_NODE = Node::COMMENT_NODE
14
- DOCUMENT_NODE = Node::DOCUMENT_NODE
15
- DOCUMENT_TYPE_NODE = Node::DOCUMENT_TYPE_NODE
16
- DOCUMENT_FRAG_NODE = Node::DOCUMENT_FRAG_NODE
17
- NOTATION_NODE = Node::NOTATION_NODE
18
- HTML_DOCUMENT_NODE = Node::HTML_DOCUMENT_NODE
19
- DTD_NODE = Node::DTD_NODE
20
- ELEMENT_DECL = Node::ELEMENT_DECL
21
- ATTRIBUTE_DECL = Node::ATTRIBUTE_DECL
22
- ENTITY_DECL = Node::ENTITY_DECL
23
- NAMESPACE_DECL = Node::NAMESPACE_DECL
24
- XINCLUDE_START = Node::XINCLUDE_START
25
- XINCLUDE_END = Node::XINCLUDE_END
26
- DOCB_DOCUMENT_NODE = Node::DOCB_DOCUMENT_NODE
27
- end
28
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Tree # :nodoc:
6
+ ELEMENT_NODE = Node::ELEMENT_NODE
7
+ ATTRIBUTE_NODE = Node::ATTRIBUTE_NODE
8
+ TEXT_NODE = Node::TEXT_NODE
9
+ CDATA_SECTION_NODE = Node::CDATA_SECTION_NODE
10
+ ENTITY_REF_NODE = Node::ENTITY_REF_NODE
11
+ ENTITY_NODE = Node::ENTITY_NODE
12
+ PI_NODE = Node::PI_NODE
13
+ COMMENT_NODE = Node::COMMENT_NODE
14
+ DOCUMENT_NODE = Node::DOCUMENT_NODE
15
+ DOCUMENT_TYPE_NODE = Node::DOCUMENT_TYPE_NODE
16
+ DOCUMENT_FRAG_NODE = Node::DOCUMENT_FRAG_NODE
17
+ NOTATION_NODE = Node::NOTATION_NODE
18
+ HTML_DOCUMENT_NODE = Node::HTML_DOCUMENT_NODE
19
+ DTD_NODE = Node::DTD_NODE
20
+ ELEMENT_DECL = Node::ELEMENT_DECL
21
+ ATTRIBUTE_DECL = Node::ATTRIBUTE_DECL
22
+ ENTITY_DECL = Node::ENTITY_DECL
23
+ NAMESPACE_DECL = Node::NAMESPACE_DECL
24
+ XINCLUDE_START = Node::XINCLUDE_START
25
+ XINCLUDE_END = Node::XINCLUDE_END
26
+ DOCB_DOCUMENT_NODE = Node::DOCB_DOCUMENT_NODE
27
+ end
28
+ end
29
29
  end
data/lib/libxml-ruby.rb CHANGED
@@ -1,30 +1,30 @@
1
- # encoding: UTF-8
2
-
3
- # Load the C-based binding.
4
- begin
5
- RUBY_VERSION =~ /(\d+.\d+)/
6
- require "#{$1}/libxml_ruby"
7
- rescue LoadError
8
- require "libxml_ruby"
9
- end
10
-
11
- # Load Ruby supporting code.
12
- require 'libxml/error'
13
- require 'libxml/parser'
14
- require 'libxml/document'
15
- require 'libxml/namespaces'
16
- require 'libxml/namespace'
17
- require 'libxml/node'
18
- require 'libxml/attributes'
19
- require 'libxml/attr'
20
- require 'libxml/attr_decl'
21
- require 'libxml/tree'
22
- require 'libxml/html_parser'
23
- require 'libxml/sax_parser'
24
- require 'libxml/sax_callbacks'
25
-
26
- #Schema Interface
27
- require 'libxml/schema'
28
- require 'libxml/schema/type'
29
- require 'libxml/schema/element'
30
- require 'libxml/schema/attribute'
1
+ # encoding: UTF-8
2
+
3
+ # Load the C-based binding.
4
+ begin
5
+ RUBY_VERSION =~ /(\d+.\d+)/
6
+ require "#{$1}/libxml_ruby"
7
+ rescue LoadError
8
+ require "libxml_ruby"
9
+ end
10
+
11
+ # Load Ruby supporting code.
12
+ require 'libxml/error'
13
+ require 'libxml/parser'
14
+ require 'libxml/document'
15
+ require 'libxml/namespaces'
16
+ require 'libxml/namespace'
17
+ require 'libxml/node'
18
+ require 'libxml/attributes'
19
+ require 'libxml/attr'
20
+ require 'libxml/attr_decl'
21
+ require 'libxml/tree'
22
+ require 'libxml/html_parser'
23
+ require 'libxml/sax_parser'
24
+ require 'libxml/sax_callbacks'
25
+
26
+ #Schema Interface
27
+ require 'libxml/schema'
28
+ require 'libxml/schema/type'
29
+ require 'libxml/schema/element'
30
+ require 'libxml/schema/attribute'
data/libxml-ruby.gemspec CHANGED
@@ -1,48 +1,46 @@
1
- # encoding: utf-8
2
- require 'date'
3
-
4
- # Determine the current version of the software
5
- version = File.read('ext/libxml/ruby_xml_version.h').match(/\s*RUBY_LIBXML_VERSION\s*['"](\d.+)['"]/)[1]
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'libxml-ruby'
9
- spec.version = version
10
- spec.homepage = 'https://xml4r.github.io/libxml-ruby/'
11
- spec.summary = 'Ruby Bindings for LibXML2'
12
- spec.description = <<-EOS
13
- The Libxml-Ruby project provides Ruby language bindings for the GNOME
14
- Libxml2 XML toolkit. It is free software, released under the MIT License.
15
- Libxml-ruby's primary advantage over REXML is performance - if speed
16
- is your need, these are good libraries to consider, as demonstrated
17
- by the informal benchmark below.
18
- EOS
19
- spec.authors = ['Ross Bamform', 'Wai-Sun Chia', 'Sean Chittenden',
20
- 'Dan Janwoski', 'Anurag Priyam', 'Charlie Savage',
21
- 'Ryan Johnson']
22
- spec.platform = Gem::Platform::RUBY
23
- spec.bindir = 'bin'
24
- spec.extensions = ['ext/libxml/extconf.rb']
25
- spec.files = Dir.glob(['HISTORY',
26
- 'LICENSE',
27
- 'libxml-ruby.gemspec',
28
- 'MANIFEST',
29
- 'Rakefile',
30
- 'README.rdoc',
31
- 'setup.rb',
32
- 'ext/libxml/*.def',
33
- 'ext/libxml/*.h',
34
- 'ext/libxml/*.c',
35
- 'ext/libxml/*.rb',
36
- 'ext/vc/*.sln',
37
- 'ext/vc/*.vcprojx',
38
- 'lib/**/*.rb',
39
- 'script/**/*',
40
- 'test/**/*'])
41
-
42
- spec.test_files = Dir.glob('test/test_*.rb')
43
- spec.required_ruby_version = '>= 2.5'
44
- spec.date = DateTime.now
45
- spec.add_development_dependency('rake-compiler')
46
- spec.add_development_dependency('minitest')
47
- spec.license = 'MIT'
48
- end
1
+ # encoding: utf-8
2
+
3
+ # Determine the current version of the software
4
+ version = File.read('ext/libxml/ruby_xml_version.h').match(/\s*RUBY_LIBXML_VERSION\s*['"](\d.+)['"]/)[1]
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'libxml-ruby'
8
+ spec.version = version
9
+ spec.homepage = 'https://xml4r.github.io/libxml-ruby/'
10
+ spec.summary = 'Ruby Bindings for LibXML2'
11
+ spec.description = <<-EOS
12
+ libxml-Ruby provides Ruby language bindings for libxml2 It is free software,
13
+ released under the MIT License. libxml-ruby provides DOM, SAX, Reader, and
14
+ Writer APIs along with XPath support and validation via DTD, RelaxNG, and XML Schema.
15
+ EOS
16
+ spec.authors = ['Ross Bamform', 'Wai-Sun Chia', 'Sean Chittenden',
17
+ 'Dan Janwoski', 'Anurag Priyam', 'Charlie Savage',
18
+ 'Ryan Johnson']
19
+ spec.platform = Gem::Platform::RUBY
20
+ spec.bindir = 'bin'
21
+ spec.extensions = ['ext/libxml/extconf.rb']
22
+ spec.metadata = {'documentation_uri' => 'https://xml4r.github.io/libxml-ruby/'}
23
+ spec.files = Dir.glob(['CHANGELOG.md',
24
+ 'LICENSE',
25
+ 'libxml-ruby.gemspec',
26
+ 'Rakefile',
27
+ 'README.md',
28
+ 'ext/libxml/*.def',
29
+ 'ext/libxml/*.h',
30
+ 'ext/libxml/*.c',
31
+ 'ext/libxml/*.rb',
32
+ 'ext/vc/**/*.sln',
33
+ 'ext/vc/**/*.vcxproj',
34
+ 'ext/xcode/**/*',
35
+ 'lib/**/*.rb',
36
+ 'test/**/*']) -
37
+ Dir.glob(['ext/libxml/extconf.h'])
38
+
39
+ spec.test_files = Dir.glob('test/test_*.rb')
40
+ spec.required_ruby_version = '>= 3.2'
41
+ spec.add_development_dependency('logger')
42
+ spec.add_development_dependency('rake-compiler')
43
+ spec.add_development_dependency('minitest')
44
+ spec.add_development_dependency('rdoc')
45
+ spec.license = 'MIT'
46
+ end
@@ -1,4 +1,4 @@
1
- <?xml-stylesheet href="doc.xsl"
2
- type="text/xsl" ?>
3
- <doc>Hello, world!</doc>
1
+ <?xml-stylesheet href="doc.xsl"
2
+ type="text/xsl" ?>
3
+ <doc>Hello, world!</doc>
4
4
  <?pi-without-data?>
@@ -1,11 +1,11 @@
1
- <doc>
2
- <clean> </clean>
3
- <dirty> A B </dirty>
4
- <mixed>
5
- A
6
- <clean> </clean>
7
- B
8
- <dirty> A B </dirty>
9
- C
10
- </mixed>
1
+ <doc>
2
+ <clean> </clean>
3
+ <dirty> A B </dirty>
4
+ <mixed>
5
+ A
6
+ <clean> </clean>
7
+ B
8
+ <dirty> A B </dirty>
9
+ C
10
+ </mixed>
11
11
  </doc>
@@ -1,14 +1,14 @@
1
- <doc>
2
- <e1></e1>
3
- <e2></e2>
4
- <e3 id="elem3" name="elem3"></e3>
5
- <e4 id="elem4" name="elem4"></e4>
6
- <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
7
- <e6 xmlns:a="http://www.w3.org">
8
- <e7 xmlns="http://www.ietf.org">
9
- <e8 xmlns="">
10
- <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
11
- </e8>
12
- </e7>
13
- </e6>
1
+ <doc>
2
+ <e1></e1>
3
+ <e2></e2>
4
+ <e3 id="elem3" name="elem3"></e3>
5
+ <e4 id="elem4" name="elem4"></e4>
6
+ <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
7
+ <e6 xmlns:a="http://www.w3.org">
8
+ <e7 xmlns="http://www.ietf.org">
9
+ <e8 xmlns="">
10
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
11
+ </e8>
12
+ </e7>
13
+ </e6>
14
14
  </doc>
@@ -1,9 +1,9 @@
1
- <doc>
2
- <text>First line&#xD;
3
- Second line</text>
4
- <value>2</value>
5
- <compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>
6
- <compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>
7
- <norm attr=" ' &#xD;&#xA;&#x9; ' "></norm>
8
- <normId id="' &#xD;&#xA;&#x9; '"></normId>
1
+ <doc>
2
+ <text>First line&#xD;
3
+ Second line</text>
4
+ <value>2</value>
5
+ <compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>
6
+ <compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>
7
+ <norm attr=" ' &#xD;&#xA;&#x9; ' "></norm>
8
+ <normId id="' &#xD;&#xA;&#x9; '"></normId>
9
9
  </doc>
@@ -1,3 +1,3 @@
1
- <doc attrExtEnt="entExt">
2
- Hello, world!
1
+ <doc attrExtEnt="entExt">
2
+ Hello, world!
3
3
  </doc>
@@ -1,6 +1,6 @@
1
- <?xml-stylesheet href="doc.xsl"
2
- type="text/xsl" ?>
3
- <doc>Hello, world!<!-- Comment 1 --></doc>
4
- <?pi-without-data?>
5
- <!-- Comment 2 -->
1
+ <?xml-stylesheet href="doc.xsl"
2
+ type="text/xsl" ?>
3
+ <doc>Hello, world!<!-- Comment 1 --></doc>
4
+ <?pi-without-data?>
5
+ <!-- Comment 2 -->
6
6
  <!-- Comment 3 -->
@@ -1,11 +1,11 @@
1
- <doc>
2
- <clean> </clean>
3
- <dirty> A B </dirty>
4
- <mixed>
5
- A
6
- <clean> </clean>
7
- B
8
- <dirty> A B </dirty>
9
- C
10
- </mixed>
1
+ <doc>
2
+ <clean> </clean>
3
+ <dirty> A B </dirty>
4
+ <mixed>
5
+ A
6
+ <clean> </clean>
7
+ B
8
+ <dirty> A B </dirty>
9
+ C
10
+ </mixed>
11
11
  </doc>
@@ -1,14 +1,14 @@
1
- <doc>
2
- <e1></e1>
3
- <e2></e2>
4
- <e3 id="elem3" name="elem3"></e3>
5
- <e4 id="elem4" name="elem4"></e4>
6
- <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
7
- <e6 xmlns:a="http://www.w3.org">
8
- <e7 xmlns="http://www.ietf.org">
9
- <e8 xmlns="">
10
- <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
11
- </e8>
12
- </e7>
13
- </e6>
1
+ <doc>
2
+ <e1></e1>
3
+ <e2></e2>
4
+ <e3 id="elem3" name="elem3"></e3>
5
+ <e4 id="elem4" name="elem4"></e4>
6
+ <e5 xmlns="http://www.uvic.ca" xmlns:a="http://www.w3.org" xmlns:b="http://www.ietf.org" attr="I'm" attr2="all" b:attr="sorted" a:attr="out"></e5>
7
+ <e6 xmlns:a="http://www.w3.org">
8
+ <e7 xmlns="http://www.ietf.org">
9
+ <e8 xmlns="">
10
+ <e9 xmlns:a="http://www.ietf.org" attr="default"></e9>
11
+ </e8>
12
+ </e7>
13
+ </e6>
14
14
  </doc>
@@ -1,9 +1,9 @@
1
- <doc>
2
- <text>First line&#xD;
3
- Second line</text>
4
- <value>2</value>
5
- <compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>
6
- <compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>
7
- <norm attr=" ' &#xD;&#xA;&#x9; ' "></norm>
8
- <normId id="' &#xD;&#xA;&#x9; '"></normId>
1
+ <doc>
2
+ <text>First line&#xD;
3
+ Second line</text>
4
+ <value>2</value>
5
+ <compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>
6
+ <compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>
7
+ <norm attr=" ' &#xD;&#xA;&#x9; ' "></norm>
8
+ <normId id="' &#xD;&#xA;&#x9; '"></normId>
9
9
  </doc>
@@ -1,4 +1,4 @@
1
- <doc attrExtEnt="entExt">
2
- Hello, world!
3
- </doc>
1
+ <doc attrExtEnt="entExt">
2
+ Hello, world!
3
+ </doc>
4
4
  <!-- Let world.txt contain "world" (excluding the quotes) -->