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,96 +1,80 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class HTMLParser
6
- # call-seq:
7
- # XML::HTMLParser.file(path) -> XML::HTMLParser
8
- # XML::HTMLParser.file(path, :encoding => XML::Encoding::UTF_8,
9
- # :options => XML::HTMLParser::Options::NOENT) -> XML::HTMLParser
10
- #
11
- # Creates a new parser by parsing the specified file or uri.
12
- #
13
- # You may provide an optional hash table to control how the
14
- # parsing is performed. Valid options are:
15
- #
16
- # encoding - The document encoding, defaults to nil. Valid values
17
- # are the encoding constants defined on XML::Encoding.
18
- # options - Parser options. Valid values are the constants defined on
19
- # XML::HTMLParser::Options. Mutliple options can be combined
20
- # by using Bitwise OR (|).
21
- def self.file(path, options = {})
22
- context = XML::HTMLParser::Context.file(path)
23
- context.encoding = options[:encoding] if options[:encoding]
24
- context.options = options[:options] if options[:options]
25
- self.new(context)
26
- end
27
-
28
- # call-seq:
29
- # XML::HTMLParser.io(io) -> XML::HTMLParser
30
- # XML::HTMLParser.io(io, :encoding => XML::Encoding::UTF_8,
31
- # :options => XML::HTMLParser::Options::NOENT
32
- # :base_uri="http://libxml.org") -> XML::HTMLParser
33
- #
34
- # Creates a new reader by parsing the specified io object.
35
- #
36
- # Parameters:
37
- #
38
- # io - io object that contains the xml to parser
39
- # base_uri - The base url for the parsed document.
40
- # encoding - The document encoding, defaults to nil. Valid values
41
- # are the encoding constants defined on XML::Encoding.
42
- # options - Parser options. Valid values are the constants defined on
43
- # XML::HTMLParser::Options. Mutliple options can be combined
44
- # by using Bitwise OR (|).
45
- def self.io(io, options = {})
46
- context = XML::HTMLParser::Context.io(io)
47
- context.base_uri = options[:base_uri] if options[:base_uri]
48
- context.encoding = options[:encoding] if options[:encoding]
49
- context.options = options[:options] if options[:options]
50
- self.new(context)
51
- end
52
-
53
- # call-seq:
54
- # XML::HTMLParser.string(string)
55
- # XML::HTMLParser.string(string, :encoding => XML::Encoding::UTF_8,
56
- # :options => XML::HTMLParser::Options::NOENT
57
- # :base_uri="http://libxml.org") -> XML::HTMLParser
58
- #
59
- # Creates a new parser by parsing the specified string.
60
- #
61
- # You may provide an optional hash table to control how the
62
- # parsing is performed. Valid options are:
63
- #
64
- # base_uri - The base url for the parsed document.
65
- # encoding - The document encoding, defaults to nil. Valid values
66
- # are the encoding constants defined on XML::Encoding.
67
- # options - Parser options. Valid values are the constants defined on
68
- # XML::HTMLParser::Options. Mutliple options can be combined
69
- # by using Bitwise OR (|).
70
- def self.string(string, options = {})
71
- context = XML::HTMLParser::Context.string(string)
72
- context.base_uri = options[:base_uri] if options[:base_uri]
73
- context.encoding = options[:encoding] if options[:encoding]
74
- context.options = options[:options] if options[:options]
75
- self.new(context)
76
- end
77
-
78
- # :enddoc:
79
-
80
- def file=(value)
81
- warn("XML::HTMLParser#file is deprecated. Use XML::HTMLParser.file instead")
82
- @context = XML::HTMLParser::Context.file(value)
83
- end
84
-
85
- def io=(value)
86
- warn("XML::HTMLParser#io is deprecated. Use XML::HTMLParser.io instead")
87
- @context = XML::HTMLParser::Context.io(value)
88
- end
89
-
90
- def string=(value)
91
- warn("XML::HTMLParser#string is deprecated. Use XML::HTMLParser.string instead")
92
- @context = XML::HTMLParser::Context.string(value)
93
- end
94
- end
95
- end
96
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class HTMLParser
6
+ # call-seq:
7
+ # XML::HTMLParser.file(path) -> XML::HTMLParser
8
+ # XML::HTMLParser.file(path, encoding: XML::Encoding::UTF_8,
9
+ # options: XML::HTMLParser::Options::NOENT) -> XML::HTMLParser
10
+ #
11
+ # Creates a new parser by parsing the specified file or uri.
12
+ #
13
+ # Parameters:
14
+ #
15
+ # path - Path to file to parse
16
+ # encoding - The document encoding, defaults to nil. Valid values
17
+ # are the encoding constants defined on XML::Encoding.
18
+ # options - Parser options. Valid values are the constants defined on
19
+ # XML::HTMLParser::Options. Mutliple options can be combined
20
+ # by using Bitwise OR (|).
21
+ def self.file(path, encoding: nil, options: nil)
22
+ context = XML::HTMLParser::Context.file(path)
23
+ context.encoding = encoding if encoding
24
+ context.options = options if options
25
+ self.new(context)
26
+ end
27
+
28
+ # call-seq:
29
+ # XML::HTMLParser.io(io) -> XML::HTMLParser
30
+ # XML::HTMLParser.io(io, encoding: XML::Encoding::UTF_8,
31
+ # options: XML::HTMLParser::Options::NOENT
32
+ # base_uri: "http://libxml.org") -> XML::HTMLParser
33
+ #
34
+ # Creates a new reader by parsing the specified io object.
35
+ #
36
+ # Parameters:
37
+ #
38
+ # io - io object that contains the xml to parser
39
+ # base_uri - The base url for the parsed document.
40
+ # encoding - The document encoding, defaults to nil. Valid values
41
+ # are the encoding constants defined on XML::Encoding.
42
+ # options - Parser options. Valid values are the constants defined on
43
+ # XML::HTMLParser::Options. Mutliple options can be combined
44
+ # by using Bitwise OR (|).
45
+ def self.io(io, base_uri: nil, encoding: nil, options: nil)
46
+ context = XML::HTMLParser::Context.io(io)
47
+ context.base_uri = base_uri if base_uri
48
+ context.encoding = encoding if encoding
49
+ context.options = options if options
50
+ self.new(context)
51
+ end
52
+
53
+ # call-seq:
54
+ # XML::HTMLParser.string(string)
55
+ # XML::HTMLParser.string(string, encoding: XML::Encoding::UTF_8,
56
+ # options: XML::HTMLParser::Options::NOENT
57
+ # base_uri: "http://libxml.org") -> XML::HTMLParser
58
+ #
59
+ # Creates a new parser by parsing the specified string.
60
+ #
61
+ # Parameters:
62
+ #
63
+ # string - String to parse
64
+ # base_uri - The base url for the parsed document.
65
+ # encoding - The document encoding, defaults to nil. Valid values
66
+ # are the encoding constants defined on XML::Encoding.
67
+ # options - Parser options. Valid values are the constants defined on
68
+ # XML::HTMLParser::Options. Mutliple options can be combined
69
+ # by using Bitwise OR (|).
70
+ def self.string(string, base_uri: nil, encoding: nil, options: nil)
71
+ context = XML::HTMLParser::Context.string(string)
72
+ context.base_uri = base_uri if base_uri
73
+ context.encoding = encoding if encoding
74
+ context.options = options if options
75
+ self.new(context)
76
+ end
77
+
78
+ end
79
+ end
80
+ end
@@ -1,62 +1,62 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Namespace
6
- include Comparable
7
- include Enumerable
8
-
9
- # call-seq:
10
- # namespace1 <=> namespace2
11
- #
12
- # Compares two namespace objects. Namespace objects are
13
- # considered equal if their prefixes and hrefs are the same.
14
- def <=>(other)
15
- if self.prefix.nil? and other.prefix.nil?
16
- self.href <=> other.href
17
- elsif self.prefix.nil?
18
- -1
19
- elsif other.prefix.nil?
20
- 1
21
- else
22
- self.prefix <=> other.prefix
23
- end
24
- end
25
-
26
- # call-seq:
27
- # namespace.each {|ns| .. }
28
- #
29
- # libxml stores namespaces in memory as a linked list.
30
- # Use the each method to iterate over the list. Note
31
- # the first namespace in the loop is the current namespace.
32
- #
33
- # Usage:
34
- # namespace.each do |ns|
35
- # ..
36
- # end
37
- def each
38
- ns = self
39
-
40
- while ns
41
- yield ns
42
- ns = ns.next
43
- end
44
- end
45
-
46
- # call-seq:
47
- # namespace.to_s -> "string"
48
- #
49
- # Returns the string represenation of a namespace.
50
- #
51
- # Usage:
52
- # namespace.to_s
53
- def to_s
54
- if self.prefix
55
- "#{self.prefix}:#{self.href}"
56
- else
57
- self.href
58
- end
59
- end
60
- end
61
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Namespace
6
+ include Comparable
7
+ include Enumerable
8
+
9
+ # call-seq:
10
+ # namespace1 <=> namespace2
11
+ #
12
+ # Compares two namespace objects. Namespace objects are
13
+ # considered equal if their prefixes and hrefs are the same.
14
+ def <=>(other)
15
+ if self.prefix.nil? and other.prefix.nil?
16
+ self.href <=> other.href
17
+ elsif self.prefix.nil?
18
+ -1
19
+ elsif other.prefix.nil?
20
+ 1
21
+ else
22
+ self.prefix <=> other.prefix
23
+ end
24
+ end
25
+
26
+ # call-seq:
27
+ # namespace.each {|ns| .. }
28
+ #
29
+ # libxml stores namespaces in memory as a linked list.
30
+ # Use the each method to iterate over the list. Note
31
+ # the first namespace in the loop is the current namespace.
32
+ #
33
+ # Usage:
34
+ # namespace.each do |ns|
35
+ # ..
36
+ # end
37
+ def each
38
+ ns = self
39
+
40
+ while ns
41
+ yield ns
42
+ ns = ns.next
43
+ end
44
+ end
45
+
46
+ # call-seq:
47
+ # namespace.to_s -> "string"
48
+ #
49
+ # Returns the string represenation of a namespace.
50
+ #
51
+ # Usage:
52
+ # namespace.to_s
53
+ def to_s
54
+ if self.prefix
55
+ "#{self.prefix}:#{self.href}"
56
+ else
57
+ self.href
58
+ end
59
+ end
60
+ end
61
+ end
62
62
  end
@@ -1,38 +1,38 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Namespaces
6
- # call-seq:
7
- # namespace.default -> XML::Namespace
8
- #
9
- # Returns the default namespace for this node or nil.
10
- #
11
- # Usage:
12
- # doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
13
- # ns = doc.root.namespaces.default_namespace
14
- # assert_equal(ns.href, 'http://schemas.xmlsoap.org/soap/envelope/')
15
- def default
16
- find_by_prefix(nil)
17
- end
18
-
19
- # call-seq:
20
- # namespace.default_prefix = "string"
21
- #
22
- # Assigns a name (prefix) to the default namespace.
23
- # This makes it much easier to perform XML::XPath
24
- # searches.
25
- #
26
- # Usage:
27
- # doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
28
- # doc.root.namespaces.default_prefix = 'soap'
29
- # node = doc.root.find_first('soap:Envelope')
30
- def default_prefix=(prefix)
31
- # Find default prefix
32
- ns = find_by_prefix(nil)
33
- raise(ArgumentError, "No default namespace was found") unless ns
34
- Namespace.new(self.node, prefix, ns.href)
35
- end
36
- end
37
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Namespaces
6
+ # call-seq:
7
+ # namespace.default -> XML::Namespace
8
+ #
9
+ # Returns the default namespace for this node or nil.
10
+ #
11
+ # Usage:
12
+ # doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
13
+ # ns = doc.root.namespaces.default_namespace
14
+ # assert_equal(ns.href, 'http://schemas.xmlsoap.org/soap/envelope/')
15
+ def default
16
+ find_by_prefix(nil)
17
+ end
18
+
19
+ # call-seq:
20
+ # namespace.default_prefix = "string"
21
+ #
22
+ # Assigns a name (prefix) to the default namespace.
23
+ # This makes it much easier to perform XML::XPath
24
+ # searches.
25
+ #
26
+ # Usage:
27
+ # doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
28
+ # doc.root.namespaces.default_prefix = 'soap'
29
+ # node = doc.root.find_first('soap:Envelope')
30
+ def default_prefix=(prefix)
31
+ # Find default prefix
32
+ ns = find_by_prefix(nil)
33
+ raise(ArgumentError, "No default namespace was found") unless ns
34
+ Namespace.new(self.node, prefix, ns.href)
35
+ end
36
+ end
37
+ end
38
38
  end