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.
- checksums.yaml +4 -4
- data/{HISTORY → CHANGELOG.md} +875 -887
- data/LICENSE +20 -20
- data/README.md +67 -0
- data/Rakefile +77 -98
- data/ext/libxml/extconf.rb +39 -20
- data/ext/libxml/libxml.c +67 -79
- data/ext/libxml/ruby_libxml.h +43 -44
- data/ext/libxml/ruby_xml.c +556 -899
- data/ext/libxml/ruby_xml.h +9 -10
- data/ext/libxml/ruby_xml_attr.c +338 -333
- data/ext/libxml/ruby_xml_attr.h +13 -12
- data/ext/libxml/ruby_xml_attr_decl.c +19 -12
- data/ext/libxml/ruby_xml_attr_decl.h +11 -11
- data/ext/libxml/ruby_xml_attributes.c +18 -9
- data/ext/libxml/ruby_xml_attributes.h +17 -15
- data/ext/libxml/ruby_xml_document.c +1142 -1129
- data/ext/libxml/ruby_xml_document.h +12 -11
- data/ext/libxml/ruby_xml_dtd.c +287 -248
- data/ext/libxml/ruby_xml_dtd.h +10 -9
- data/ext/libxml/ruby_xml_encoding.c +250 -250
- data/ext/libxml/ruby_xml_encoding.h +20 -18
- data/ext/libxml/ruby_xml_error.c +1003 -996
- data/ext/libxml/ruby_xml_error.h +14 -14
- data/ext/libxml/ruby_xml_html_parser.c +91 -91
- data/ext/libxml/ruby_xml_html_parser.h +10 -10
- data/ext/libxml/ruby_xml_html_parser_context.c +364 -337
- data/ext/libxml/ruby_xml_html_parser_context.h +11 -10
- data/ext/libxml/ruby_xml_html_parser_options.c +48 -48
- data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
- data/ext/libxml/ruby_xml_input_cbg.c +216 -188
- data/ext/libxml/ruby_xml_input_cbg.h +20 -20
- data/ext/libxml/ruby_xml_io.c +49 -47
- data/ext/libxml/ruby_xml_io.h +10 -10
- data/ext/libxml/ruby_xml_namespace.c +159 -154
- data/ext/libxml/ruby_xml_namespace.h +11 -10
- data/ext/libxml/ruby_xml_namespaces.c +313 -293
- data/ext/libxml/ruby_xml_namespaces.h +9 -9
- data/ext/libxml/ruby_xml_node.c +1433 -1398
- data/ext/libxml/ruby_xml_node.h +15 -13
- data/ext/libxml/ruby_xml_parser.c +91 -91
- data/ext/libxml/ruby_xml_parser.h +10 -10
- data/ext/libxml/ruby_xml_parser_context.c +1016 -1001
- data/ext/libxml/ruby_xml_parser_context.h +11 -10
- data/ext/libxml/ruby_xml_parser_options.c +74 -66
- data/ext/libxml/ruby_xml_parser_options.h +10 -10
- data/ext/libxml/ruby_xml_reader.c +40 -31
- data/ext/libxml/ruby_xml_reader.h +14 -14
- data/ext/libxml/ruby_xml_registry.c +31 -0
- data/ext/libxml/ruby_xml_registry.h +22 -0
- data/ext/libxml/ruby_xml_relaxng.c +21 -5
- data/ext/libxml/ruby_xml_relaxng.h +9 -8
- data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
- data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
- data/ext/libxml/ruby_xml_sax_parser.c +108 -116
- data/ext/libxml/ruby_xml_sax_parser.h +10 -10
- data/ext/libxml/ruby_xml_schema.c +22 -15
- data/ext/libxml/ruby_xml_schema.h +26 -25
- data/ext/libxml/ruby_xml_schema_attribute.c +7 -7
- data/ext/libxml/ruby_xml_schema_attribute.h +37 -37
- data/ext/libxml/ruby_xml_schema_element.c +8 -8
- data/ext/libxml/ruby_xml_schema_element.h +11 -11
- data/ext/libxml/ruby_xml_schema_facet.c +50 -50
- data/ext/libxml/ruby_xml_schema_facet.h +9 -9
- data/ext/libxml/ruby_xml_schema_type.c +12 -19
- data/ext/libxml/ruby_xml_schema_type.h +9 -9
- data/ext/libxml/ruby_xml_version.h +9 -9
- data/ext/libxml/ruby_xml_writer.c +183 -185
- data/ext/libxml/ruby_xml_writer.h +6 -6
- data/ext/libxml/ruby_xml_xinclude.c +20 -20
- data/ext/libxml/ruby_xml_xinclude.h +11 -11
- data/ext/libxml/ruby_xml_xpath.c +195 -195
- data/ext/libxml/ruby_xml_xpath.h +15 -15
- data/ext/libxml/ruby_xml_xpath_context.c +408 -362
- data/ext/libxml/ruby_xml_xpath_context.h +9 -9
- data/ext/libxml/ruby_xml_xpath_expression.c +12 -6
- data/ext/libxml/ruby_xml_xpath_expression.h +11 -10
- data/ext/libxml/ruby_xml_xpath_object.c +69 -54
- data/ext/libxml/ruby_xml_xpath_object.h +19 -17
- data/ext/vc/libxml_ruby/libxml_ruby.vcxproj +271 -0
- data/ext/xcode/libxml-ruby.xcodeproj/project.pbxproj +633 -0
- data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/ext/xcode/libxml-ruby.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/ext/xcode/libxml-ruby.xcodeproj/xcshareddata/xcschemes/libxml-ruby.xcscheme +80 -0
- data/lib/libxml/attr.rb +122 -122
- data/lib/libxml/attr_decl.rb +80 -80
- data/lib/libxml/attributes.rb +13 -13
- data/lib/libxml/document.rb +165 -194
- data/lib/libxml/error.rb +122 -95
- data/lib/libxml/html_parser.rb +80 -96
- data/lib/libxml/namespace.rb +61 -61
- data/lib/libxml/namespaces.rb +37 -37
- data/lib/libxml/node.rb +321 -323
- data/lib/libxml/parser.rb +94 -100
- data/lib/libxml/sax_callbacks.rb +179 -179
- data/lib/libxml/sax_parser.rb +40 -40
- data/lib/libxml/schema/attribute.rb +27 -19
- data/lib/libxml/schema/element.rb +20 -0
- data/lib/libxml/schema/type.rb +44 -21
- data/lib/libxml/schema.rb +47 -47
- data/lib/libxml/tree.rb +28 -28
- data/lib/libxml-ruby.rb +30 -30
- data/libxml-ruby.gemspec +46 -48
- data/test/c14n/result/1-1-without-comments/example-1 +3 -3
- data/test/c14n/result/1-1-without-comments/example-2 +10 -10
- data/test/c14n/result/1-1-without-comments/example-3 +13 -13
- data/test/c14n/result/1-1-without-comments/example-4 +8 -8
- data/test/c14n/result/1-1-without-comments/example-5 +2 -2
- data/test/c14n/result/with-comments/example-1 +5 -5
- data/test/c14n/result/with-comments/example-2 +10 -10
- data/test/c14n/result/with-comments/example-3 +13 -13
- data/test/c14n/result/with-comments/example-4 +8 -8
- data/test/c14n/result/with-comments/example-5 +3 -3
- data/test/c14n/result/without-comments/example-1 +3 -3
- data/test/c14n/result/without-comments/example-2 +10 -10
- data/test/c14n/result/without-comments/example-3 +13 -13
- data/test/c14n/result/without-comments/example-4 +8 -8
- data/test/c14n/result/without-comments/example-5 +2 -2
- data/test/test_attr.rb +179 -180
- data/test/test_attr_decl.rb +131 -131
- data/test/test_attributes.rb +135 -135
- data/test/test_canonicalize.rb +122 -120
- data/test/test_document.rb +138 -132
- data/test/test_document_write.rb +142 -145
- data/test/test_dtd.rb +134 -129
- data/test/test_encoding.rb +126 -129
- data/test/test_encoding_sax.rb +114 -114
- data/test/test_error.rb +197 -194
- data/test/test_helper.rb +21 -13
- data/test/test_html_parser.rb +166 -162
- data/test/test_html_parser_context.rb +22 -22
- data/test/test_input_callbacks.rb +36 -0
- data/test/test_namespace.rb +58 -60
- data/test/test_namespaces.rb +200 -200
- data/test/test_node.rb +251 -237
- data/test/test_node_cdata.rb +50 -50
- data/test/test_node_comment.rb +32 -32
- data/test/test_node_copy.rb +40 -40
- data/test/test_node_edit.rb +176 -158
- data/test/test_node_pi.rb +37 -37
- data/test/test_node_text.rb +69 -69
- data/test/test_node_write.rb +93 -96
- data/test/test_node_xlink.rb +28 -28
- data/test/test_parser.rb +297 -324
- data/test/test_parser_context.rb +198 -198
- data/test/test_properties.rb +38 -38
- data/test/test_reader.rb +413 -364
- data/test/test_relaxng.rb +59 -53
- data/test/test_sax_parser.rb +345 -326
- data/test/test_schema.rb +28 -0
- data/test/test_traversal.rb +152 -152
- data/test/test_writer.rb +469 -468
- data/test/test_xinclude.rb +20 -20
- data/test/test_xml.rb +164 -267
- data/test/test_xpath.rb +244 -244
- data/test/test_xpath_context.rb +87 -87
- data/test/test_xpath_expression.rb +37 -37
- metadata +49 -31
- data/README.rdoc +0 -217
- data/ext/libxml/extconf.h +0 -3
- data/ext/libxml/ruby_xml_cbg.c +0 -85
- data/lib/libxml/hpricot.rb +0 -78
- data/lib/libxml.rb +0 -5
- data/lib/xml/libxml.rb +0 -10
- data/lib/xml.rb +0 -14
- data/script/benchmark/depixelate +0 -634
- data/script/benchmark/hamlet.xml +0 -9055
- data/script/benchmark/parsecount +0 -170
- data/script/benchmark/sock_entries.xml +0 -507
- data/script/benchmark/throughput +0 -41
- data/script/test +0 -6
- 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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def
|
|
14
|
-
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
data/lib/libxml/schema/type.rb
CHANGED
|
@@ -1,21 +1,44 @@
|
|
|
1
|
-
module LibXML
|
|
2
|
-
module XML
|
|
3
|
-
class Schema::Type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
spec.
|
|
9
|
-
spec.
|
|
10
|
-
spec.
|
|
11
|
-
spec.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
spec.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
spec.
|
|
23
|
-
spec.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'ext/
|
|
33
|
-
'ext/
|
|
34
|
-
'ext/
|
|
35
|
-
'
|
|
36
|
-
'
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
spec.
|
|
43
|
-
spec.
|
|
44
|
-
spec.
|
|
45
|
-
spec.
|
|
46
|
-
|
|
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
|
|
3
|
-
Second line</text>
|
|
4
|
-
<value>2</value>
|
|
5
|
-
<compute>value>"0" && value<"10" ?"valid":"error"</compute>
|
|
6
|
-
<compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute>
|
|
7
|
-
<norm attr=" ' 
	 ' "></norm>
|
|
8
|
-
<normId id="' 
	 '"></normId>
|
|
1
|
+
<doc>
|
|
2
|
+
<text>First line
|
|
3
|
+
Second line</text>
|
|
4
|
+
<value>2</value>
|
|
5
|
+
<compute>value>"0" && value<"10" ?"valid":"error"</compute>
|
|
6
|
+
<compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute>
|
|
7
|
+
<norm attr=" ' 
	 ' "></norm>
|
|
8
|
+
<normId id="' 
	 '"></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
|
|
3
|
-
Second line</text>
|
|
4
|
-
<value>2</value>
|
|
5
|
-
<compute>value>"0" && value<"10" ?"valid":"error"</compute>
|
|
6
|
-
<compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute>
|
|
7
|
-
<norm attr=" ' 
	 ' "></norm>
|
|
8
|
-
<normId id="' 
	 '"></normId>
|
|
1
|
+
<doc>
|
|
2
|
+
<text>First line
|
|
3
|
+
Second line</text>
|
|
4
|
+
<value>2</value>
|
|
5
|
+
<compute>value>"0" && value<"10" ?"valid":"error"</compute>
|
|
6
|
+
<compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute>
|
|
7
|
+
<norm attr=" ' 
	 ' "></norm>
|
|
8
|
+
<normId id="' 
	 '"></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) -->
|