libxml-ruby 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. data/CHANGES +21 -0
  2. data/RAKEFILE +213 -0
  3. data/README +32 -11
  4. data/doc/rdoc/classes/LibXML.html +4 -0
  5. data/doc/rdoc/classes/LibXML/XML.html +7 -0
  6. data/doc/rdoc/classes/LibXML/XML/Attr.html +187 -177
  7. data/doc/rdoc/classes/LibXML/XML/Attributes.html +62 -61
  8. data/doc/rdoc/classes/LibXML/XML/Document.html +318 -254
  9. data/doc/rdoc/classes/LibXML/XML/Dtd.html +62 -8
  10. data/doc/rdoc/classes/LibXML/XML/Error.html +6 -0
  11. data/doc/rdoc/classes/LibXML/XML/HTMLParser.html +59 -41
  12. data/doc/rdoc/classes/LibXML/XML/InputCallbacks.html +12 -6
  13. data/doc/rdoc/classes/LibXML/XML/NS.html +65 -50
  14. data/doc/rdoc/classes/LibXML/XML/Node.html +671 -630
  15. data/doc/rdoc/classes/LibXML/XML/Node/FailedModify.html +12 -0
  16. data/doc/rdoc/classes/LibXML/XML/Node/Set.html +64 -60
  17. data/doc/rdoc/classes/LibXML/XML/Node/SetNamespace.html +12 -0
  18. data/doc/rdoc/classes/LibXML/XML/Node/UnknownType.html +12 -0
  19. data/doc/rdoc/classes/LibXML/XML/Parser.html +407 -383
  20. data/doc/rdoc/classes/LibXML/XML/Parser/Context.html +241 -219
  21. data/doc/rdoc/classes/LibXML/XML/Parser/ParseError.html +12 -0
  22. data/doc/rdoc/classes/LibXML/XML/Reader.html +421 -331
  23. data/doc/rdoc/classes/LibXML/XML/RelaxNG.html +237 -0
  24. data/doc/rdoc/classes/LibXML/XML/SaxParser.html +79 -60
  25. data/doc/rdoc/classes/LibXML/XML/Schema.html +109 -22
  26. data/doc/rdoc/classes/LibXML/XML/State.html +6 -0
  27. data/doc/rdoc/classes/LibXML/XML/XInclude.html +6 -0
  28. data/doc/rdoc/classes/LibXML/XML/XInclude/Error.html +6 -0
  29. data/doc/rdoc/classes/LibXML/XML/XPath.html +4 -48
  30. data/doc/rdoc/classes/LibXML/XML/XPath/Context.html +6 -5
  31. data/doc/rdoc/classes/LibXML/XML/XPath/InvalidPath.html +61 -0
  32. data/doc/rdoc/classes/LibXML/XML/XPath/Object.html +12 -8
  33. data/doc/rdoc/classes/LibXML/XML/XPointer.html +14 -8
  34. data/doc/rdoc/classes/LibXML/XML/XPointer/Context.html +6 -0
  35. data/doc/rdoc/classes/LibXML/XML/XPointer/Context/InvalidPath.html +6 -0
  36. data/doc/rdoc/classes/LibXML/XML/XPointer/InvalidExpression.html +13 -0
  37. data/doc/rdoc/created.rid +1 -1
  38. data/doc/rdoc/files/CHANGES.html +38 -10
  39. data/doc/rdoc/files/LICENSE.html +1 -1
  40. data/doc/rdoc/files/README.html +57 -23
  41. data/doc/rdoc/files/VERSION.html +1 -1
  42. data/doc/rdoc/files/ext/libxml/cbg_c.html +1 -1
  43. data/doc/rdoc/files/ext/libxml/libxml_c.html +1 -1
  44. data/doc/rdoc/files/ext/libxml/ruby_xml_attr_c.html +1 -1
  45. data/doc/rdoc/files/ext/libxml/ruby_xml_attributes_c.html +1 -1
  46. data/doc/rdoc/files/ext/libxml/ruby_xml_document_c.html +1 -1
  47. data/doc/rdoc/files/ext/libxml/ruby_xml_dtd_c.html +1 -1
  48. data/doc/rdoc/files/ext/libxml/ruby_xml_html_parser_c.html +1 -1
  49. data/doc/rdoc/files/ext/libxml/ruby_xml_input_cbg_c.html +1 -1
  50. data/doc/rdoc/files/ext/libxml/ruby_xml_node_c.html +1 -1
  51. data/doc/rdoc/files/ext/libxml/ruby_xml_node_set_c.html +1 -1
  52. data/doc/rdoc/files/ext/libxml/ruby_xml_ns_c.html +1 -1
  53. data/doc/rdoc/files/ext/libxml/ruby_xml_parser_c.html +1 -1
  54. data/doc/rdoc/files/ext/libxml/ruby_xml_parser_context_c.html +1 -1
  55. data/doc/rdoc/files/ext/libxml/ruby_xml_reader_c.html +1 -1
  56. data/doc/rdoc/{classes/XML.html → files/ext/libxml/ruby_xml_relaxng_c.html} +16 -35
  57. data/doc/rdoc/files/ext/libxml/ruby_xml_sax_parser_c.html +1 -1
  58. data/doc/rdoc/files/ext/libxml/ruby_xml_schema_c.html +1 -1
  59. data/doc/rdoc/files/ext/libxml/ruby_xml_state_c.html +1 -1
  60. data/doc/rdoc/files/ext/libxml/ruby_xml_xinclude_c.html +1 -1
  61. data/doc/rdoc/files/ext/libxml/ruby_xml_xpath_c.html +1 -1
  62. data/doc/rdoc/files/ext/libxml/ruby_xml_xpath_context_c.html +1 -1
  63. data/doc/rdoc/files/ext/libxml/ruby_xml_xpath_object_c.html +1 -1
  64. data/doc/rdoc/files/ext/libxml/ruby_xml_xpointer_c.html +1 -1
  65. data/doc/rdoc/files/ext/libxml/ruby_xml_xpointer_context_c.html +1 -1
  66. data/doc/rdoc/files/lib/libxml/attr_rb.html +1 -1
  67. data/doc/rdoc/files/lib/libxml/attributes_rb.html +1 -1
  68. data/doc/rdoc/files/lib/libxml/document_rb.html +1 -1
  69. data/doc/rdoc/files/lib/libxml/node_rb.html +1 -1
  70. data/doc/rdoc/files/lib/libxml/node_set_rb.html +1 -1
  71. data/doc/rdoc/files/lib/libxml/parser_options_rb.html +1 -1
  72. data/doc/rdoc/files/lib/libxml/parser_rb.html +1 -1
  73. data/doc/rdoc/files/lib/libxml/properties_rb.html +1 -1
  74. data/doc/rdoc/files/lib/libxml/tree_rb.html +1 -1
  75. data/doc/rdoc/files/lib/libxml_rb.html +2 -2
  76. data/doc/rdoc/files/lib/xml/libxml_rb.html +12 -2
  77. data/doc/rdoc/files/lib/xml_rb.html +134 -0
  78. data/doc/rdoc/fr_class_index.html +1 -1
  79. data/doc/rdoc/fr_file_index.html +2 -0
  80. data/doc/rdoc/fr_method_index.html +349 -344
  81. data/ext/libxml/libxml.c +2 -1
  82. data/ext/libxml/ruby_libxml.h +1 -0
  83. data/ext/libxml/ruby_xml_attr.c +8 -2
  84. data/ext/libxml/ruby_xml_attributes.c +5 -5
  85. data/ext/libxml/ruby_xml_document.c +41 -2
  86. data/ext/libxml/ruby_xml_dtd.c +169 -169
  87. data/ext/libxml/ruby_xml_html_parser.c +449 -449
  88. data/ext/libxml/ruby_xml_input_cbg.c +165 -165
  89. data/ext/libxml/ruby_xml_node.c +1 -1
  90. data/ext/libxml/ruby_xml_node_set.c +172 -172
  91. data/ext/libxml/ruby_xml_ns.c +145 -145
  92. data/ext/libxml/ruby_xml_parser.c +1398 -1398
  93. data/ext/libxml/ruby_xml_parser_context.c +697 -697
  94. data/ext/libxml/ruby_xml_reader.c +44 -0
  95. data/ext/libxml/ruby_xml_reader.h +14 -14
  96. data/ext/libxml/ruby_xml_relaxng.c +97 -0
  97. data/ext/libxml/ruby_xml_relaxng.h +15 -0
  98. data/ext/libxml/ruby_xml_sax_parser.c +486 -486
  99. data/ext/libxml/ruby_xml_schema.c +1 -1
  100. data/ext/libxml/ruby_xml_state.c +4 -4
  101. data/ext/libxml/ruby_xml_xinclude.c +21 -21
  102. data/ext/libxml/ruby_xml_xpath.c +89 -89
  103. data/ext/libxml/ruby_xml_xpath_context.c +283 -283
  104. data/ext/libxml/ruby_xml_xpath_object.c +5 -5
  105. data/ext/libxml/ruby_xml_xpointer.c +104 -104
  106. data/ext/libxml/ruby_xml_xpointer_context.c +22 -22
  107. data/ext/libxml/version.h +2 -2
  108. data/ext/libxml/version.h.rej +17 -0
  109. data/ext/mingw/Rakefile +41 -0
  110. data/lib/libxml.rb +15 -4
  111. data/lib/xml.rb +14 -0
  112. data/lib/xml/libxml.rb +4 -1
  113. data/test/etc_doc_to_s.rb +1 -1
  114. data/test/ets_copy_bug.rb +1 -1
  115. data/test/ets_copy_bug3.rb +1 -1
  116. data/test/ets_doc_file.rb +1 -1
  117. data/test/ets_doc_to_s.rb +1 -1
  118. data/test/ets_node_gc.rb +1 -1
  119. data/test/ets_tsr.rb +1 -1
  120. data/test/model/shiporder.rnc +28 -0
  121. data/test/model/shiporder.rng +86 -0
  122. data/test/{tc_xml_attributes.rb → tc_attributes.rb} +1 -10
  123. data/test/{tc_xml_document.rb → tc_document.rb} +1 -1
  124. data/test/{tc_xml_document_write.rb → tc_document_write.rb} +1 -1
  125. data/test/{tc_xml_dtd.rb → tc_dtd.rb} +1 -1
  126. data/test/{tc_xml_html_parser.rb → tc_html_parser.rb} +1 -1
  127. data/test/{tc_xml_node.rb → tc_node.rb} +1 -1
  128. data/test/{tc_xml_node_attr.rb → tc_node_attr.rb} +1 -1
  129. data/test/{tc_xml_node_cdata.rb → tc_node_cdata.rb} +24 -5
  130. data/test/{tc_xml_node_comment.rb → tc_node_comment.rb} +1 -1
  131. data/test/{tc_xml_node_copy.rb → tc_node_copy.rb} +1 -1
  132. data/test/{tc_xml_node_edit.rb → tc_node_edit.rb} +1 -1
  133. data/test/{tc_xml_node_set.rb → tc_node_set.rb} +1 -1
  134. data/test/{tc_xml_node_set2.rb → tc_node_set2.rb} +1 -1
  135. data/test/{tc_xml_node_text.rb → tc_node_text.rb} +1 -1
  136. data/test/{tc_xml_node_xlink.rb → tc_node_xlink.rb} +2 -2
  137. data/test/{tc_xml_parser.rb → tc_parser.rb} +1 -1
  138. data/test/{tc_xml_parser_context.rb → tc_parser_context.rb} +1 -1
  139. data/test/{tc_xml_properties.rb → tc_properties.rb} +1 -7
  140. data/test/{tc_xml_reader.rb → tc_reader.rb} +1 -1
  141. data/test/tc_relaxng.rb +39 -0
  142. data/test/{tc_xml_sax_parser.rb → tc_sax_parser.rb} +1 -1
  143. data/test/{tc_xml_schema.rb → tc_schema.rb} +1 -1
  144. data/test/{tc_xml_traversal.rb → tc_traversal.rb} +1 -1
  145. data/test/{tc_xml_xinclude.rb → tc_xinclude.rb} +1 -1
  146. data/test/{tc_xml_xpath.rb → tc_xpath.rb} +1 -1
  147. data/test/{tc_xml_xpath_context.rb → tc_xpath_context.rb} +1 -1
  148. data/test/{tc_xml_xpointer.rb → tc_xpointer.rb} +1 -1
  149. data/test/test_suite.rb +26 -25
  150. metadata +100 -100
  151. data/benchmark/depixelate.rb +0 -632
  152. data/benchmark/hamlet.xml +0 -9055
  153. data/benchmark/sock_entries.xml +0 -507
  154. data/benchmark/throughput.rb +0 -39
  155. data/benchmark/xml_benchmarks.rb +0 -227
  156. data/mingw/libiconv-2.dll +0 -0
  157. data/mingw/libxml2-2.dll +0 -0
  158. data/mingw/libxml_ruby.so +0 -0
  159. data/test/gc.log +0 -0
  160. data/vc/libxml_ruby.sln +0 -20
  161. data/vc/libxml_ruby.vcproj +0 -389
data/CHANGES CHANGED
@@ -1,5 +1,26 @@
1
1
  (See log/ChangeLog for more detailed changes derived directly from source control.)
2
2
 
3
+ == 0.8.2 / 2008-07-21 Charlie Savage
4
+
5
+ * To use LibXML you can either require 'xml' or require 'libxml'.
6
+ The differences is that require 'xml' mixes the LibXML module into
7
+ the global namespace, thereby allowing you to write code such
8
+ as document = XML::Document.new. Note that this is different
9
+ from 0.8.0 and 0.8.1 and may require updating your code.
10
+
11
+ * Support RelaxNG validation (thanks to Morus Walter)
12
+
13
+ * Support passing IO objects to XmlReaders (thanks to Tom Hughes)
14
+
15
+ * Fix segmentation fault caused by adding an attribute to a CDATA node
16
+
17
+ * Moved node checking functions from C to Ruby
18
+
19
+ * Improved Windows support - libxml-ruby should now work out of the box.
20
+
21
+ * Improved Windows support - turned on libxml's zlib and iconv support.
22
+
23
+
3
24
  == 0.8.1 / 2008-07-09 Charlie Savage
4
25
 
5
26
  * Reimplmented Node#each_attr for backwards compatability
@@ -0,0 +1,213 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Be sure to set ENV['RUBYFORGE_USERNAME'] to use publish.
4
+
5
+ require 'rubygems'
6
+ require 'date'
7
+ require 'rake/gempackagetask'
8
+ require 'rake/rdoctask'
9
+ require 'rake/testtask'
10
+ require 'date'
11
+
12
+
13
+ # ------- Default Package ----------
14
+ FILES = FileList[
15
+ 'RAKEFILE',
16
+ 'README',
17
+ 'LICENSE',
18
+ 'CHANGES',
19
+ 'setup.rb',
20
+ 'doc/**/*',
21
+ 'ext/libxml/*',
22
+ 'ext/mingw/Rakefile',
23
+ 'vc/*.sln',
24
+ 'vc/*.vcproj',
25
+ 'lib/**/*',
26
+ 'benchmark/**/*',
27
+ 'test/**/*'
28
+ ]
29
+
30
+ # Default GEM Specification
31
+ default_spec = Gem::Specification.new do |spec|
32
+ spec.name = "libxml-ruby"
33
+
34
+ spec.homepage = "http://libxml.rubyforge.org/"
35
+ spec.summary = "Ruby libxml bindings"
36
+ spec.description = <<-EOF
37
+ The Libxml-Ruby project provides Ruby language bindings for the GNOME
38
+ Libxml2 XML toolkit. It is free software, released under the MIT License.
39
+ Libxml-ruby's primary advantage over REXML is performance - if speed
40
+ is your need, these are good libraries to consider, as demonstrated
41
+ by the informal benchmark below.
42
+ EOF
43
+
44
+ # Determine the current version of the software
45
+ spec.version =
46
+ if File.read('ext/libxml/version.h') =~ /\s*RUBY_LIBXML_VERSION\s*['"](\d.+)['"]/
47
+ CURRENT_VERSION = $1
48
+ else
49
+ CURRENT_VERSION = "0.0.0"
50
+ end
51
+
52
+ spec.author = "Charlie Savage"
53
+ spec.email = "libxml-devel@rubyforge.org"
54
+ spec.platform = Gem::Platform::RUBY
55
+ spec.require_paths = ["lib", "ext/libxml"]
56
+ spec.bindir = "bin"
57
+ spec.extensions = ["ext/libxml/extconf.rb"]
58
+ spec.files = FILES.to_a
59
+ spec.test_files = Dir.glob("test/tc_*.rb")
60
+
61
+ spec.required_ruby_version = '>= 1.8.4'
62
+ spec.date = DateTime.now
63
+ spec.rubyforge_project = 'libxml'
64
+
65
+ spec.has_rdoc = true
66
+ end
67
+
68
+ # Rake task to build the default package
69
+ Rake::GemPackageTask.new(default_spec) do |pkg|
70
+ pkg.package_dir = 'admin/pkg'
71
+ pkg.need_tar = true
72
+ pkg.need_zip = true
73
+ end
74
+
75
+
76
+ # ------- Windows Package ----------
77
+
78
+ # Use *.dll* to get import libraries
79
+ binaries = (FileList['ext/mingw/*.so',
80
+ 'ext/mingw/*.dll*'])
81
+
82
+ # Windows specification
83
+ win_spec = default_spec.clone
84
+ win_spec.extensions = []
85
+ win_spec.platform = Gem::Platform::CURRENT
86
+ win_spec.files += binaries.map {|binaryname| "lib/#{File.basename(binaryname)}"}
87
+
88
+
89
+ desc "Create Windows Gem"
90
+ task :create_win32_gem do
91
+ # Copy the win32 extension built by MingW - easier to install
92
+ # since there are no dependencies of msvcr80.dll
93
+ current_dir = File.expand_path(File.dirname(__FILE__))
94
+
95
+ binaries.each do |binaryname|
96
+ target = File.join(current_dir, 'lib', File.basename(binaryname))
97
+ cp(binaryname, target)
98
+ end
99
+
100
+ # Create the gem, then move it to admin/pkg
101
+ Gem::Builder.new(win_spec).build
102
+ gem_file = "#{win_spec.name}-#{win_spec.version}-#{win_spec.platform}.gem"
103
+ mv(gem_file, "admin/pkg/#{gem_file}")
104
+
105
+ # Remove win extension from top level directory
106
+ binaries.each do |binaryname|
107
+ target = File.join(current_dir, 'lib', File.basename(binaryname))
108
+ rm(target)
109
+ end
110
+ end
111
+
112
+
113
+ # --------- RDoc Documentation ---------
114
+ desc "Generate rdoc documentation"
115
+ Rake::RDocTask.new("rdoc") do |rdoc|
116
+ rdoc.rdoc_dir = 'doc/rdoc'
117
+ rdoc.title = "LibXML"
118
+ # Show source inline with line numbers
119
+ rdoc.options << "--inline-source" << "--line-numbers"
120
+ # Make the readme file the start page for the generated html
121
+ rdoc.options << '--main' << 'README'
122
+ rdoc.rdoc_files.include('doc/*.rdoc',
123
+ 'ext/**/*.c',
124
+ 'lib/**/*.rb',
125
+ 'CHANGES',
126
+ 'README',
127
+ 'LICENSE',
128
+ 'VERSION')
129
+ end
130
+
131
+ task :default => :package
132
+ task :package => :create_win32_gem
133
+
134
+ Rake::TestTask.new do |t|
135
+ t.libs << "test"
136
+ t.libs << "lib"
137
+ t.libs << "ext/libxml"
138
+ end
139
+
140
+ if not RUBY_PLATFORM.match(/mswin32/i)
141
+ Rake::Task[:test].prerequisites << :extensions
142
+ end
143
+
144
+ task :build => :extensions
145
+ task :extension => :build
146
+
147
+ ext = Config::CONFIG["DLEXT"]
148
+ task :extensions => ["ext/libxml/libxml_ruby.#{ext}"]
149
+ file "ext/libxml/libxml_ruby.#{ext}" =>
150
+ ["ext/libxml/Makefile"] + FileList["ext/libxml/*.{c,h}"].to_a do |t|
151
+ Dir.chdir("ext/libxml") { sh "make" }
152
+ end
153
+
154
+ namespace :extensions do
155
+ task :clean do
156
+ Dir.chdir("ext/libxml") do
157
+ sh "rm -f Makefile"
158
+ sh "rm -f *.{o,so,bundle,log}"
159
+ end
160
+ end
161
+ end
162
+
163
+ file "ext/libxml/Makefile" => ["ext/libxml/extconf.rb"] do
164
+
165
+ command = ["ruby"] + $:.map{|dir| "-I#{File.expand_path dir}"} + ["extconf.rb"]
166
+ Dir.chdir("ext/libxml") { sh *command }
167
+ end
168
+
169
+ # --------- Publish Website to Rubyforge ---------
170
+ desc "publish website (uses rsync)"
171
+ task :publish => [:publish_website, :publish_rdoc]
172
+
173
+ task :publish_website do
174
+ unixname = 'libxml'
175
+ username = ENV['RUBYFORGE_USERNAME']
176
+
177
+ dir = 'admin/web'
178
+ url = "#{username}@rubyforge.org:/var/www/gforge-projects/#{unixname}"
179
+
180
+ dir = dir.chomp('/') + '/'
181
+
182
+ # Using commandline filter options didn't seem to work, so
183
+ # I opted for creating an .rsync_filter file for all cases.
184
+
185
+ protect = %w{usage statcvs statsvn robot.txt wiki}
186
+ exclude = %w{.svn}
187
+
188
+ rsync_file = File.join(dir,'.rsync-filter')
189
+ unless File.file?(rsync_file)
190
+ File.open(rsync_file, 'w') do |f|
191
+ exclude.each{|e| f << "- #{e}\n"}
192
+ protect.each{|e| f << "P #{e}\n"}
193
+ end
194
+ end
195
+
196
+ # maybe -p ?
197
+ cmd = "rsync -rLvz --delete-after --filter='dir-merge #{rsync_file}' #{dir} #{url}"
198
+ sh cmd
199
+ end
200
+
201
+ task :publish_rdoc do
202
+ unixname = 'libxml'
203
+ username = ENV['RUBYFORGE_USERNAME']
204
+
205
+ dir = 'doc/rdoc'
206
+ url = "#{username}@rubyforge.org:/var/www/gforge-projects/#{unixname}/rdoc"
207
+
208
+ dir = dir.chomp('/') + '/'
209
+
210
+ # maybe -p ?
211
+ cmd = "rsync -rLvz --delete-after #{dir} #{url}"
212
+ sh cmd
213
+ end
data/README CHANGED
@@ -35,14 +35,14 @@ The easiest way to install libxml-ruby is via Ruby Gems. To install:
35
35
 
36
36
  If you are running Windows, make sure to install the Win32 RubyGem which
37
37
  includes an already built binary file. The binary is built against
38
- libxml2 version 2.6.32 and iconv version 1.12. Both of these are also
38
+ libxml2 version 2.6.32 and iconv version 1.11. Both of these are also
39
39
  included as pre-built binaries, and should be put either in the
40
40
  libxml/lib directory or on the Windows path.
41
41
 
42
- The Windows binaries are biult with MingW. The gem also includes
43
- a Microsoft VC++ 2005 solution. If you wish to run a debug version
44
- of libxml-ruby on Windows, then it is highly recommended
45
- you use VC++.
42
+ The Windows binaries are built with MingW and include libxml-ruby,
43
+ libxml2 and iconv. The gem also includes a Microsoft VC++ 2008
44
+ solution. If you wish to run a debug version of libxml-ruby on
45
+ Windows, then it is highly recommended you use VC++.
46
46
 
47
47
 
48
48
  == Functionality
@@ -52,11 +52,13 @@ functionality such as:
52
52
 
53
53
  * SAX
54
54
  * DOM
55
+ * HTML Parsing
55
56
  * XMLReader
56
57
  * XPath
57
58
  * XPointer
58
- * XML Schema
59
59
  * DTDs
60
+ * RelaxNG Schemas
61
+ * XML Schema
60
62
  * XSLT (split into the libxslt-ruby bindings)
61
63
 
62
64
  libxml-ruby provides impressive coverage of libxml's functionality
@@ -84,16 +86,35 @@ From https://svn.concord.org/svn/projects/trunk/common/ruby/xml_benchmarks/
84
86
  rexml 22.859000 0.047000 22.906000 ( 23.203000)
85
87
 
86
88
  == USAGE
87
-
88
89
  For in-depth information about using libxml-ruby please refer
89
- to its online Rdoc documentation. Some simple examples
90
- are shown below.
90
+ to its online Rdoc documentation.
91
+
92
+ All libxml classes are in the LibXML::XML module. The simplest
93
+ way to use libxml is to require 'xml'. This will mixin the
94
+ LibXML module into the global namespace, allowing you to
95
+ write code like this:
96
+
97
+ require 'xml'
98
+ document = XML::Document.new
99
+
100
+ If you prefer not to add the LibXML module to the global namepace, then
101
+ write your code like this:
102
+
103
+ require 'libxml'
104
+
105
+ class MyClass
106
+ def some_method
107
+ document = LibXML::XML::Document.new
108
+ end
109
+ end
110
+
111
+ Some simple examples are shown below.
91
112
 
92
113
  === READING
93
114
 
94
115
  There are several ways to read xml documents.
95
116
 
96
- require 'libxml'
117
+ require 'xml'
97
118
  doc = XML::Document.file('output.xml')
98
119
  root = doc.root
99
120
 
@@ -126,7 +147,7 @@ And your terminal should look like:
126
147
 
127
148
  To write a simple document:
128
149
 
129
- require 'libxml'
150
+ require 'xml'
130
151
 
131
152
  doc = XML::Document.new()
132
153
  doc.root = XML::Node.new('root_node')
@@ -106,6 +106,10 @@
106
106
  <a href="../files/ext/libxml/ruby_xml_reader_c.html">
107
107
  ext/libxml/ruby_xml_reader.c
108
108
  </a>
109
+ <br />
110
+ <a href="../files/ext/libxml/ruby_xml_relaxng_c.html">
111
+ ext/libxml/ruby_xml_relaxng.c
112
+ </a>
109
113
  <br />
110
114
  <a href="../files/ext/libxml/ruby_xml_sax_parser_c.html">
111
115
  ext/libxml/ruby_xml_sax_parser.c
@@ -108,6 +108,12 @@
108
108
 
109
109
  <div id="contextContent">
110
110
 
111
+ <div id="description">
112
+ <p>
113
+ Please see the LICENSE file for copyright and distribution information
114
+ </p>
115
+
116
+ </div>
111
117
 
112
118
 
113
119
  </div>
@@ -136,6 +142,7 @@ Class <a href="XML/NS.html" class="link">LibXML::XML::NS</a><br />
136
142
  Class <a href="XML/Node.html" class="link">LibXML::XML::Node</a><br />
137
143
  Class <a href="XML/Parser.html" class="link">LibXML::XML::Parser</a><br />
138
144
  Class <a href="XML/Reader.html" class="link">LibXML::XML::Reader</a><br />
145
+ Class <a href="XML/RelaxNG.html" class="link">LibXML::XML::RelaxNG</a><br />
139
146
  Class <a href="XML/SaxParser.html" class="link">LibXML::XML::SaxParser</a><br />
140
147
  Class <a href="XML/Schema.html" class="link">LibXML::XML::Schema</a><br />
141
148
  Class <a href="XML/State.html" class="link">LibXML::XML::State</a><br />
@@ -85,13 +85,13 @@
85
85
  <div id="description">
86
86
  <p>
87
87
  Provides access to an single element attribute. Accessed by calling <a
88
- href="Node.html#M000129">XML::Node#attributes</a> method.
88
+ href="Node.html#M000132">XML::Node#attributes</a> method.
89
89
  </p>
90
90
  <p>
91
91
  Basic Usage:
92
92
  </p>
93
93
  <pre>
94
- require 'libxml'
94
+ require 'xml'
95
95
 
96
96
  doc = XML::Document.new(&lt;some_file&gt;)
97
97
  attribute = doc.root.attributes.get_attribute_ns('http://www.w3.org/1999/xlink', 'href')
@@ -109,33 +109,33 @@ Basic Usage:
109
109
  <h3 class="section-bar">Methods</h3>
110
110
 
111
111
  <div class="name-list">
112
- <a href="#M000237">child</a>&nbsp;&nbsp;
113
- <a href="#M000238">child?</a>&nbsp;&nbsp;
114
- <a href="#M000239">doc</a>&nbsp;&nbsp;
115
- <a href="#M000240">doc?</a>&nbsp;&nbsp;
116
- <a href="#M000259">each</a>&nbsp;&nbsp;
117
- <a href="#M000258">each_attr</a>&nbsp;&nbsp;
118
- <a href="#M000257">each_sibling</a>&nbsp;&nbsp;
119
- <a href="#M000241">last</a>&nbsp;&nbsp;
120
- <a href="#M000242">last?</a>&nbsp;&nbsp;
121
- <a href="#M000243">name</a>&nbsp;&nbsp;
122
- <a href="#M000236">new</a>&nbsp;&nbsp;
123
- <a href="#M000244">next</a>&nbsp;&nbsp;
124
- <a href="#M000245">next?</a>&nbsp;&nbsp;
125
- <a href="#M000246">node_type_name</a>&nbsp;&nbsp;
126
- <a href="#M000247">ns</a>&nbsp;&nbsp;
127
- <a href="#M000248">ns?</a>&nbsp;&nbsp;
128
- <a href="#M000249">parent</a>&nbsp;&nbsp;
129
- <a href="#M000250">parent?</a>&nbsp;&nbsp;
130
- <a href="#M000251">prev</a>&nbsp;&nbsp;
131
- <a href="#M000252">prev?</a>&nbsp;&nbsp;
132
- <a href="#M000253">remove!</a>&nbsp;&nbsp;
133
- <a href="#M000256">siblings</a>&nbsp;&nbsp;
134
- <a href="#M000261">to_a</a>&nbsp;&nbsp;
135
- <a href="#M000260">to_h</a>&nbsp;&nbsp;
136
- <a href="#M000262">to_s</a>&nbsp;&nbsp;
137
- <a href="#M000254">value</a>&nbsp;&nbsp;
138
- <a href="#M000255">value=</a>&nbsp;&nbsp;
112
+ <a href="#M000240">child</a>&nbsp;&nbsp;
113
+ <a href="#M000241">child?</a>&nbsp;&nbsp;
114
+ <a href="#M000242">doc</a>&nbsp;&nbsp;
115
+ <a href="#M000243">doc?</a>&nbsp;&nbsp;
116
+ <a href="#M000262">each</a>&nbsp;&nbsp;
117
+ <a href="#M000261">each_attr</a>&nbsp;&nbsp;
118
+ <a href="#M000260">each_sibling</a>&nbsp;&nbsp;
119
+ <a href="#M000244">last</a>&nbsp;&nbsp;
120
+ <a href="#M000245">last?</a>&nbsp;&nbsp;
121
+ <a href="#M000246">name</a>&nbsp;&nbsp;
122
+ <a href="#M000239">new</a>&nbsp;&nbsp;
123
+ <a href="#M000247">next</a>&nbsp;&nbsp;
124
+ <a href="#M000248">next?</a>&nbsp;&nbsp;
125
+ <a href="#M000249">node_type_name</a>&nbsp;&nbsp;
126
+ <a href="#M000250">ns</a>&nbsp;&nbsp;
127
+ <a href="#M000251">ns?</a>&nbsp;&nbsp;
128
+ <a href="#M000252">parent</a>&nbsp;&nbsp;
129
+ <a href="#M000253">parent?</a>&nbsp;&nbsp;
130
+ <a href="#M000254">prev</a>&nbsp;&nbsp;
131
+ <a href="#M000255">prev?</a>&nbsp;&nbsp;
132
+ <a href="#M000256">remove!</a>&nbsp;&nbsp;
133
+ <a href="#M000259">siblings</a>&nbsp;&nbsp;
134
+ <a href="#M000264">to_a</a>&nbsp;&nbsp;
135
+ <a href="#M000263">to_h</a>&nbsp;&nbsp;
136
+ <a href="#M000265">to_s</a>&nbsp;&nbsp;
137
+ <a href="#M000257">value</a>&nbsp;&nbsp;
138
+ <a href="#M000258">value=</a>&nbsp;&nbsp;
139
139
  </div>
140
140
  </div>
141
141
 
@@ -164,11 +164,11 @@ Basic Usage:
164
164
  <div id="methods">
165
165
  <h3 class="section-bar">Public Class methods</h3>
166
166
 
167
- <div id="method-M000236" class="method-detail">
168
- <a name="M000236"></a>
167
+ <div id="method-M000239" class="method-detail">
168
+ <a name="M000239"></a>
169
169
 
170
170
  <div class="method-heading">
171
- <a href="#M000236" class="method-signature">
171
+ <a href="#M000239" class="method-signature">
172
172
  <span class="method-name">attr.initialize(node, "name", "value")<br />
173
173
  </span>
174
174
  </a>
@@ -176,18 +176,21 @@ Basic Usage:
176
176
 
177
177
  <div class="method-description">
178
178
  <p>
179
- Creates a new attribute for the node.
179
+ Creates a <a href="Attr.html#M000239">new</a> attribute for the node.
180
180
  </p>
181
181
  <p>
182
182
  node: The <a href="Node.html">XML::Node</a> that will contain the attribute
183
- name: The name of the attribute value: The value of the attribute
183
+ <a href="Attr.html#M000246">name</a>: The <a
184
+ href="Attr.html#M000246">name</a> of the attribute <a
185
+ href="Attr.html#M000257">value</a>: The <a
186
+ href="Attr.html#M000257">value</a> of the attribute
184
187
  </p>
185
188
  <pre>
186
189
  attr = XML::Attr.new(doc.root, 'name', 'libxml')
187
190
  </pre>
188
191
  <p><a class="source-toggle" href="#"
189
- onclick="toggleCode('M000236-source');return false;">[Source]</a></p>
190
- <div class="method-source-code" id="M000236-source">
192
+ onclick="toggleCode('M000239-source');return false;">[Source]</a></p>
193
+ <div class="method-source-code" id="M000239-source">
191
194
  <pre>
192
195
  /*
193
196
  * call-seq:
@@ -211,11 +214,11 @@ ruby_xml_attr_initialize(int argc, VALUE *argv, VALUE self) {
211
214
 
212
215
  <h3 class="section-bar">Public Instance methods</h3>
213
216
 
214
- <div id="method-M000237" class="method-detail">
215
- <a name="M000237"></a>
217
+ <div id="method-M000240" class="method-detail">
218
+ <a name="M000240"></a>
216
219
 
217
220
  <div class="method-heading">
218
- <a href="#M000237" class="method-signature">
221
+ <a href="#M000240" class="method-signature">
219
222
  <span class="method-name">attr.child &rarr; node<br />
220
223
  </span>
221
224
  </a>
@@ -223,11 +226,12 @@ ruby_xml_attr_initialize(int argc, VALUE *argv, VALUE self) {
223
226
 
224
227
  <div class="method-description">
225
228
  <p>
226
- Obtain this attribute&#8217;s child attribute(s).
229
+ Obtain this attribute&#8216;s <a href="Attr.html#M000240">child</a>
230
+ attribute(s).
227
231
  </p>
228
232
  <p><a class="source-toggle" href="#"
229
- onclick="toggleCode('M000237-source');return false;">[Source]</a></p>
230
- <div class="method-source-code" id="M000237-source">
233
+ onclick="toggleCode('M000240-source');return false;">[Source]</a></p>
234
+ <div class="method-source-code" id="M000240-source">
231
235
  <pre>
232
236
  /*
233
237
  * call-seq:
@@ -243,11 +247,11 @@ ruby_xml_attr_child_get(VALUE self) {
243
247
  </div>
244
248
  </div>
245
249
 
246
- <div id="method-M000238" class="method-detail">
247
- <a name="M000238"></a>
250
+ <div id="method-M000241" class="method-detail">
251
+ <a name="M000241"></a>
248
252
 
249
253
  <div class="method-heading">
250
- <a href="#M000238" class="method-signature">
254
+ <a href="#M000241" class="method-signature">
251
255
  <span class="method-name">attr.child? &rarr; (true|false)<br />
252
256
  </span>
253
257
  </a>
@@ -255,11 +259,12 @@ ruby_xml_attr_child_get(VALUE self) {
255
259
 
256
260
  <div class="method-description">
257
261
  <p>
258
- Determine whether this attribute has child attributes.
262
+ Determine whether this attribute has <a href="Attr.html#M000240">child</a>
263
+ attributes.
259
264
  </p>
260
265
  <p><a class="source-toggle" href="#"
261
- onclick="toggleCode('M000238-source');return false;">[Source]</a></p>
262
- <div class="method-source-code" id="M000238-source">
266
+ onclick="toggleCode('M000241-source');return false;">[Source]</a></p>
267
+ <div class="method-source-code" id="M000241-source">
263
268
  <pre>
264
269
  /*
265
270
  * call-seq:
@@ -275,11 +280,11 @@ ruby_xml_attr_child_q(VALUE self) {
275
280
  </div>
276
281
  </div>
277
282
 
278
- <div id="method-M000239" class="method-detail">
279
- <a name="M000239"></a>
283
+ <div id="method-M000242" class="method-detail">
284
+ <a name="M000242"></a>
280
285
 
281
286
  <div class="method-heading">
282
- <a href="#M000239" class="method-signature">
287
+ <a href="#M000242" class="method-signature">
283
288
  <span class="method-name">attr.doc &rarr; XML::Document<br />
284
289
  </span>
285
290
  </a>
@@ -287,14 +292,14 @@ ruby_xml_attr_child_q(VALUE self) {
287
292
 
288
293
  <div class="method-description">
289
294
  <p>
290
- Returns this attribute&#8217;s document.
295
+ Returns this attribute&#8216;s document.
291
296
  </p>
292
297
  <pre>
293
298
  doc.root.attributes.get_attribute('name').doc == doc
294
299
  </pre>
295
300
  <p><a class="source-toggle" href="#"
296
- onclick="toggleCode('M000239-source');return false;">[Source]</a></p>
297
- <div class="method-source-code" id="M000239-source">
301
+ onclick="toggleCode('M000242-source');return false;">[Source]</a></p>
302
+ <div class="method-source-code" id="M000242-source">
298
303
  <pre>
299
304
  /*
300
305
  * call-seq:
@@ -312,11 +317,11 @@ ruby_xml_attr_doc_get(VALUE self) {
312
317
  </div>
313
318
  </div>
314
319
 
315
- <div id="method-M000240" class="method-detail">
316
- <a name="M000240"></a>
320
+ <div id="method-M000243" class="method-detail">
321
+ <a name="M000243"></a>
317
322
 
318
323
  <div class="method-heading">
319
- <a href="#M000240" class="method-signature">
324
+ <a href="#M000243" class="method-signature">
320
325
  <span class="method-name">attr.doc? &rarr; (true|false)<br />
321
326
  </span>
322
327
  </a>
@@ -328,8 +333,8 @@ Determine whether this attribute is associated with an <a
328
333
  href="Document.html">XML::Document</a>.
329
334
  </p>
330
335
  <p><a class="source-toggle" href="#"
331
- onclick="toggleCode('M000240-source');return false;">[Source]</a></p>
332
- <div class="method-source-code" id="M000240-source">
336
+ onclick="toggleCode('M000243-source');return false;">[Source]</a></p>
337
+ <div class="method-source-code" id="M000243-source">
333
338
  <pre>
334
339
  /*
335
340
  * call-seq:
@@ -346,8 +351,8 @@ ruby_xml_attr_doc_q(VALUE self) {
346
351
  </div>
347
352
  </div>
348
353
 
349
- <div id="method-M000259" class="method-detail">
350
- <a name="M000259"></a>
354
+ <div id="method-M000262" class="method-detail">
355
+ <a name="M000262"></a>
351
356
 
352
357
  <div class="method-heading">
353
358
  <span class="method-name">each</span><span class="method-args">(&amp;blk)</span>
@@ -355,13 +360,13 @@ ruby_xml_attr_doc_q(VALUE self) {
355
360
 
356
361
  <div class="method-description">
357
362
  <p>
358
- Alias for <a href="Attr.html#M000257">each_sibling</a>
363
+ Alias for <a href="Attr.html#M000260">each_sibling</a>
359
364
  </p>
360
365
  </div>
361
366
  </div>
362
367
 
363
- <div id="method-M000258" class="method-detail">
364
- <a name="M000258"></a>
368
+ <div id="method-M000261" class="method-detail">
369
+ <a name="M000261"></a>
365
370
 
366
371
  <div class="method-heading">
367
372
  <span class="method-name">each_attr</span><span class="method-args">(&amp;blk)</span>
@@ -369,24 +374,24 @@ Alias for <a href="Attr.html#M000257">each_sibling</a>
369
374
 
370
375
  <div class="method-description">
371
376
  <p>
372
- Alias for <a href="Attr.html#M000257">each_sibling</a>
377
+ Alias for <a href="Attr.html#M000260">each_sibling</a>
373
378
  </p>
374
379
  </div>
375
380
  </div>
376
381
 
377
- <div id="method-M000257" class="method-detail">
378
- <a name="M000257"></a>
382
+ <div id="method-M000260" class="method-detail">
383
+ <a name="M000260"></a>
379
384
 
380
385
  <div class="method-heading">
381
- <a href="#M000257" class="method-signature">
386
+ <a href="#M000260" class="method-signature">
382
387
  <span class="method-name">each_sibling</span><span class="method-args">(&amp;blk)</span>
383
388
  </a>
384
389
  </div>
385
390
 
386
391
  <div class="method-description">
387
392
  <p><a class="source-toggle" href="#"
388
- onclick="toggleCode('M000257-source');return false;">[Source]</a></p>
389
- <div class="method-source-code" id="M000257-source">
393
+ onclick="toggleCode('M000260-source');return false;">[Source]</a></p>
394
+ <div class="method-source-code" id="M000260-source">
390
395
  <pre>
391
396
  <span class="ruby-comment cmt"># File lib/libxml/attr.rb, line 19</span>
392
397
  19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_sibling</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
@@ -397,11 +402,11 @@ Alias for <a href="Attr.html#M000257">each_sibling</a>
397
402
  </div>
398
403
  </div>
399
404
 
400
- <div id="method-M000241" class="method-detail">
401
- <a name="M000241"></a>
405
+ <div id="method-M000244" class="method-detail">
406
+ <a name="M000244"></a>
402
407
 
403
408
  <div class="method-heading">
404
- <a href="#M000241" class="method-signature">
409
+ <a href="#M000244" class="method-signature">
405
410
  <span class="method-name">attr.last &rarr; node<br />
406
411
  </span>
407
412
  </a>
@@ -409,11 +414,11 @@ Alias for <a href="Attr.html#M000257">each_sibling</a>
409
414
 
410
415
  <div class="method-description">
411
416
  <p>
412
- Obtain the last attribute.
417
+ Obtain the <a href="Attr.html#M000244">last</a> attribute.
413
418
  </p>
414
419
  <p><a class="source-toggle" href="#"
415
- onclick="toggleCode('M000241-source');return false;">[Source]</a></p>
416
- <div class="method-source-code" id="M000241-source">
420
+ onclick="toggleCode('M000244-source');return false;">[Source]</a></p>
421
+ <div class="method-source-code" id="M000244-source">
417
422
  <pre>
418
423
  /*
419
424
  * call-seq:
@@ -429,11 +434,11 @@ ruby_xml_attr_last_get(VALUE self) {
429
434
  </div>
430
435
  </div>
431
436
 
432
- <div id="method-M000242" class="method-detail">
433
- <a name="M000242"></a>
437
+ <div id="method-M000245" class="method-detail">
438
+ <a name="M000245"></a>
434
439
 
435
440
  <div class="method-heading">
436
- <a href="#M000242" class="method-signature">
441
+ <a href="#M000245" class="method-signature">
437
442
  <span class="method-name">attr.last? &rarr; (true|false)<br />
438
443
  </span>
439
444
  </a>
@@ -441,11 +446,12 @@ ruby_xml_attr_last_get(VALUE self) {
441
446
 
442
447
  <div class="method-description">
443
448
  <p>
444
- Determine whether this is the last attribute.
449
+ Determine whether this is the <a href="Attr.html#M000244">last</a>
450
+ attribute.
445
451
  </p>
446
452
  <p><a class="source-toggle" href="#"
447
- onclick="toggleCode('M000242-source');return false;">[Source]</a></p>
448
- <div class="method-source-code" id="M000242-source">
453
+ onclick="toggleCode('M000245-source');return false;">[Source]</a></p>
454
+ <div class="method-source-code" id="M000245-source">
449
455
  <pre>
450
456
  /*
451
457
  * call-seq:
@@ -461,11 +467,11 @@ ruby_xml_attr_last_q(VALUE self) {
461
467
  </div>
462
468
  </div>
463
469
 
464
- <div id="method-M000243" class="method-detail">
465
- <a name="M000243"></a>
470
+ <div id="method-M000246" class="method-detail">
471
+ <a name="M000246"></a>
466
472
 
467
473
  <div class="method-heading">
468
- <a href="#M000243" class="method-signature">
474
+ <a href="#M000246" class="method-signature">
469
475
  <span class="method-name">attr.name &rarr; "name"<br />
470
476
  </span>
471
477
  </a>
@@ -473,11 +479,11 @@ ruby_xml_attr_last_q(VALUE self) {
473
479
 
474
480
  <div class="method-description">
475
481
  <p>
476
- Obtain this attribute&#8217;s name.
482
+ Obtain this attribute&#8216;s <a href="Attr.html#M000246">name</a>.
477
483
  </p>
478
484
  <p><a class="source-toggle" href="#"
479
- onclick="toggleCode('M000243-source');return false;">[Source]</a></p>
480
- <div class="method-source-code" id="M000243-source">
485
+ onclick="toggleCode('M000246-source');return false;">[Source]</a></p>
486
+ <div class="method-source-code" id="M000246-source">
481
487
  <pre>
482
488
  /*
483
489
  * call-seq:
@@ -493,11 +499,11 @@ ruby_xml_attr_name_get(VALUE self) {
493
499
  </div>
494
500
  </div>
495
501
 
496
- <div id="method-M000244" class="method-detail">
497
- <a name="M000244"></a>
502
+ <div id="method-M000247" class="method-detail">
503
+ <a name="M000247"></a>
498
504
 
499
505
  <div class="method-heading">
500
- <a href="#M000244" class="method-signature">
506
+ <a href="#M000247" class="method-signature">
501
507
  <span class="method-name">attr.next &rarr; node<br />
502
508
  </span>
503
509
  </a>
@@ -505,11 +511,11 @@ ruby_xml_attr_name_get(VALUE self) {
505
511
 
506
512
  <div class="method-description">
507
513
  <p>
508
- Obtain the next attribute.
514
+ Obtain the <a href="Attr.html#M000247">next</a> attribute.
509
515
  </p>
510
516
  <p><a class="source-toggle" href="#"
511
- onclick="toggleCode('M000244-source');return false;">[Source]</a></p>
512
- <div class="method-source-code" id="M000244-source">
517
+ onclick="toggleCode('M000247-source');return false;">[Source]</a></p>
518
+ <div class="method-source-code" id="M000247-source">
513
519
  <pre>
514
520
  /*
515
521
  * call-seq:
@@ -525,11 +531,11 @@ ruby_xml_attr_next_get(VALUE self) {
525
531
  </div>
526
532
  </div>
527
533
 
528
- <div id="method-M000245" class="method-detail">
529
- <a name="M000245"></a>
534
+ <div id="method-M000248" class="method-detail">
535
+ <a name="M000248"></a>
530
536
 
531
537
  <div class="method-heading">
532
- <a href="#M000245" class="method-signature">
538
+ <a href="#M000248" class="method-signature">
533
539
  <span class="method-name">attr.next? &rarr; (true|false)<br />
534
540
  </span>
535
541
  </a>
@@ -537,11 +543,12 @@ ruby_xml_attr_next_get(VALUE self) {
537
543
 
538
544
  <div class="method-description">
539
545
  <p>
540
- Determine whether there is a next attribute.
546
+ Determine whether there is a <a href="Attr.html#M000247">next</a>
547
+ attribute.
541
548
  </p>
542
549
  <p><a class="source-toggle" href="#"
543
- onclick="toggleCode('M000245-source');return false;">[Source]</a></p>
544
- <div class="method-source-code" id="M000245-source">
550
+ onclick="toggleCode('M000248-source');return false;">[Source]</a></p>
551
+ <div class="method-source-code" id="M000248-source">
545
552
  <pre>
546
553
  /*
547
554
  * call-seq:
@@ -557,11 +564,11 @@ ruby_xml_attr_next_q(VALUE self) {
557
564
  </div>
558
565
  </div>
559
566
 
560
- <div id="method-M000246" class="method-detail">
561
- <a name="M000246"></a>
567
+ <div id="method-M000249" class="method-detail">
568
+ <a name="M000249"></a>
562
569
 
563
570
  <div class="method-heading">
564
- <a href="#M000246" class="method-signature">
571
+ <a href="#M000249" class="method-signature">
565
572
  <span class="method-name">attr.type_name &rarr; "attribute"<br />
566
573
  </span>
567
574
  </a>
@@ -569,11 +576,12 @@ ruby_xml_attr_next_q(VALUE self) {
569
576
 
570
577
  <div class="method-description">
571
578
  <p>
572
- Obtain this attribute node&#8217;s type name.
579
+ Obtain this attribute node&#8216;s type <a
580
+ href="Attr.html#M000246">name</a>.
573
581
  </p>
574
582
  <p><a class="source-toggle" href="#"
575
- onclick="toggleCode('M000246-source');return false;">[Source]</a></p>
576
- <div class="method-source-code" id="M000246-source">
583
+ onclick="toggleCode('M000249-source');return false;">[Source]</a></p>
584
+ <div class="method-source-code" id="M000249-source">
577
585
  <pre>
578
586
  /*
579
587
  * call-seq:
@@ -589,11 +597,11 @@ ruby_xml_attr_node_type_name(VALUE self) {
589
597
  </div>
590
598
  </div>
591
599
 
592
- <div id="method-M000247" class="method-detail">
593
- <a name="M000247"></a>
600
+ <div id="method-M000250" class="method-detail">
601
+ <a name="M000250"></a>
594
602
 
595
603
  <div class="method-heading">
596
- <a href="#M000247" class="method-signature">
604
+ <a href="#M000250" class="method-signature">
597
605
  <span class="method-name">attr.ns &rarr; namespace<br />
598
606
  </span>
599
607
  </a>
@@ -601,12 +609,12 @@ ruby_xml_attr_node_type_name(VALUE self) {
601
609
 
602
610
  <div class="method-description">
603
611
  <p>
604
- Obtain this attribute&#8217;s associated <a href="NS.html">XML::NS</a>, if
612
+ Obtain this attribute&#8216;s associated <a href="NS.html">XML::NS</a>, if
605
613
  any.
606
614
  </p>
607
615
  <p><a class="source-toggle" href="#"
608
- onclick="toggleCode('M000247-source');return false;">[Source]</a></p>
609
- <div class="method-source-code" id="M000247-source">
616
+ onclick="toggleCode('M000250-source');return false;">[Source]</a></p>
617
+ <div class="method-source-code" id="M000250-source">
610
618
  <pre>
611
619
  /*
612
620
  * call-seq:
@@ -622,11 +630,11 @@ ruby_xml_attr_ns_get(VALUE self) {
622
630
  </div>
623
631
  </div>
624
632
 
625
- <div id="method-M000248" class="method-detail">
626
- <a name="M000248"></a>
633
+ <div id="method-M000251" class="method-detail">
634
+ <a name="M000251"></a>
627
635
 
628
636
  <div class="method-heading">
629
- <a href="#M000248" class="method-signature">
637
+ <a href="#M000251" class="method-signature">
630
638
  <span class="method-name">attr.ns? &rarr; (true|false)<br />
631
639
  </span>
632
640
  </a>
@@ -637,8 +645,8 @@ ruby_xml_attr_ns_get(VALUE self) {
637
645
  Determine whether this attribute has an associated namespace.
638
646
  </p>
639
647
  <p><a class="source-toggle" href="#"
640
- onclick="toggleCode('M000248-source');return false;">[Source]</a></p>
641
- <div class="method-source-code" id="M000248-source">
648
+ onclick="toggleCode('M000251-source');return false;">[Source]</a></p>
649
+ <div class="method-source-code" id="M000251-source">
642
650
  <pre>
643
651
  /*
644
652
  * call-seq:
@@ -655,11 +663,11 @@ ruby_xml_attr_ns_q(VALUE self) {
655
663
  </div>
656
664
  </div>
657
665
 
658
- <div id="method-M000249" class="method-detail">
659
- <a name="M000249"></a>
666
+ <div id="method-M000252" class="method-detail">
667
+ <a name="M000252"></a>
660
668
 
661
669
  <div class="method-heading">
662
- <a href="#M000249" class="method-signature">
670
+ <a href="#M000252" class="method-signature">
663
671
  <span class="method-name">attr.parent &rarr; node<br />
664
672
  </span>
665
673
  </a>
@@ -667,11 +675,11 @@ ruby_xml_attr_ns_q(VALUE self) {
667
675
 
668
676
  <div class="method-description">
669
677
  <p>
670
- Obtain this attribute node&#8217;s parent.
678
+ Obtain this attribute node&#8216;s <a href="Attr.html#M000252">parent</a>.
671
679
  </p>
672
680
  <p><a class="source-toggle" href="#"
673
- onclick="toggleCode('M000249-source');return false;">[Source]</a></p>
674
- <div class="method-source-code" id="M000249-source">
681
+ onclick="toggleCode('M000252-source');return false;">[Source]</a></p>
682
+ <div class="method-source-code" id="M000252-source">
675
683
  <pre>
676
684
  /*
677
685
  * call-seq:
@@ -687,11 +695,11 @@ ruby_xml_attr_parent_get(VALUE self) {
687
695
  </div>
688
696
  </div>
689
697
 
690
- <div id="method-M000250" class="method-detail">
691
- <a name="M000250"></a>
698
+ <div id="method-M000253" class="method-detail">
699
+ <a name="M000253"></a>
692
700
 
693
701
  <div class="method-heading">
694
- <a href="#M000250" class="method-signature">
702
+ <a href="#M000253" class="method-signature">
695
703
  <span class="method-name">attr.parent? &rarr; (true|false)<br />
696
704
  </span>
697
705
  </a>
@@ -699,11 +707,12 @@ ruby_xml_attr_parent_get(VALUE self) {
699
707
 
700
708
  <div class="method-description">
701
709
  <p>
702
- Determine whether this attribute has a parent.
710
+ Determine whether this attribute has a <a
711
+ href="Attr.html#M000252">parent</a>.
703
712
  </p>
704
713
  <p><a class="source-toggle" href="#"
705
- onclick="toggleCode('M000250-source');return false;">[Source]</a></p>
706
- <div class="method-source-code" id="M000250-source">
714
+ onclick="toggleCode('M000253-source');return false;">[Source]</a></p>
715
+ <div class="method-source-code" id="M000253-source">
707
716
  <pre>
708
717
  /*
709
718
  * call-seq:
@@ -719,11 +728,11 @@ ruby_xml_attr_parent_q(VALUE self) {
719
728
  </div>
720
729
  </div>
721
730
 
722
- <div id="method-M000251" class="method-detail">
723
- <a name="M000251"></a>
731
+ <div id="method-M000254" class="method-detail">
732
+ <a name="M000254"></a>
724
733
 
725
734
  <div class="method-heading">
726
- <a href="#M000251" class="method-signature">
735
+ <a href="#M000254" class="method-signature">
727
736
  <span class="method-name">attr.prev &rarr; node<br />
728
737
  </span>
729
738
  </a>
@@ -734,8 +743,8 @@ ruby_xml_attr_parent_q(VALUE self) {
734
743
  Obtain the previous attribute.
735
744
  </p>
736
745
  <p><a class="source-toggle" href="#"
737
- onclick="toggleCode('M000251-source');return false;">[Source]</a></p>
738
- <div class="method-source-code" id="M000251-source">
746
+ onclick="toggleCode('M000254-source');return false;">[Source]</a></p>
747
+ <div class="method-source-code" id="M000254-source">
739
748
  <pre>
740
749
  /*
741
750
  * call-seq:
@@ -751,11 +760,11 @@ ruby_xml_attr_prev_get(VALUE self) {
751
760
  </div>
752
761
  </div>
753
762
 
754
- <div id="method-M000252" class="method-detail">
755
- <a name="M000252"></a>
763
+ <div id="method-M000255" class="method-detail">
764
+ <a name="M000255"></a>
756
765
 
757
766
  <div class="method-heading">
758
- <a href="#M000252" class="method-signature">
767
+ <a href="#M000255" class="method-signature">
759
768
  <span class="method-name">attr.prev? &rarr; (true|false)<br />
760
769
  </span>
761
770
  </a>
@@ -766,8 +775,8 @@ ruby_xml_attr_prev_get(VALUE self) {
766
775
  Determine whether there is a previous attribute.
767
776
  </p>
768
777
  <p><a class="source-toggle" href="#"
769
- onclick="toggleCode('M000252-source');return false;">[Source]</a></p>
770
- <div class="method-source-code" id="M000252-source">
778
+ onclick="toggleCode('M000255-source');return false;">[Source]</a></p>
779
+ <div class="method-source-code" id="M000255-source">
771
780
  <pre>
772
781
  /*
773
782
  * call-seq:
@@ -783,11 +792,11 @@ ruby_xml_attr_prev_q(VALUE self) {
783
792
  </div>
784
793
  </div>
785
794
 
786
- <div id="method-M000253" class="method-detail">
787
- <a name="M000253"></a>
795
+ <div id="method-M000256" class="method-detail">
796
+ <a name="M000256"></a>
788
797
 
789
798
  <div class="method-heading">
790
- <a href="#M000253" class="method-signature">
799
+ <a href="#M000256" class="method-signature">
791
800
  <span class="method-name">node.remove! &rarr; nil<br />
792
801
  </span>
793
802
  </a>
@@ -795,11 +804,12 @@ ruby_xml_attr_prev_q(VALUE self) {
795
804
 
796
805
  <div class="method-description">
797
806
  <p>
798
- Removes this attribute from it&#8217;s parent.
807
+ Removes this attribute from it&#8216;s <a
808
+ href="Attr.html#M000252">parent</a>.
799
809
  </p>
800
810
  <p><a class="source-toggle" href="#"
801
- onclick="toggleCode('M000253-source');return false;">[Source]</a></p>
802
- <div class="method-source-code" id="M000253-source">
811
+ onclick="toggleCode('M000256-source');return false;">[Source]</a></p>
812
+ <div class="method-source-code" id="M000256-source">
803
813
  <pre>
804
814
  /*
805
815
  * call-seq:
@@ -815,11 +825,11 @@ ruby_xml_attr_remove_ex(VALUE self) {
815
825
  </div>
816
826
  </div>
817
827
 
818
- <div id="method-M000256" class="method-detail">
819
- <a name="M000256"></a>
828
+ <div id="method-M000259" class="method-detail">
829
+ <a name="M000259"></a>
820
830
 
821
831
  <div class="method-heading">
822
- <a href="#M000256" class="method-signature">
832
+ <a href="#M000259" class="method-signature">
823
833
  <span class="method-name">siblings</span><span class="method-args">(node, &amp;blk)</span>
824
834
  </a>
825
835
  </div>
@@ -829,8 +839,8 @@ ruby_xml_attr_remove_ex(VALUE self) {
829
839
  Iterates nodes and attributes
830
840
  </p>
831
841
  <p><a class="source-toggle" href="#"
832
- onclick="toggleCode('M000256-source');return false;">[Source]</a></p>
833
- <div class="method-source-code" id="M000256-source">
842
+ onclick="toggleCode('M000259-source');return false;">[Source]</a></p>
843
+ <div class="method-source-code" id="M000259-source">
834
844
  <pre>
835
845
  <span class="ruby-comment cmt"># File lib/libxml/attr.rb, line 10</span>
836
846
  10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">siblings</span>(<span class="ruby-identifier">node</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
@@ -846,19 +856,19 @@ Iterates nodes and attributes
846
856
  </div>
847
857
  </div>
848
858
 
849
- <div id="method-M000261" class="method-detail">
850
- <a name="M000261"></a>
859
+ <div id="method-M000264" class="method-detail">
860
+ <a name="M000264"></a>
851
861
 
852
862
  <div class="method-heading">
853
- <a href="#M000261" class="method-signature">
863
+ <a href="#M000264" class="method-signature">
854
864
  <span class="method-name">to_a</span><span class="method-args">()</span>
855
865
  </a>
856
866
  </div>
857
867
 
858
868
  <div class="method-description">
859
869
  <p><a class="source-toggle" href="#"
860
- onclick="toggleCode('M000261-source');return false;">[Source]</a></p>
861
- <div class="method-source-code" id="M000261-source">
870
+ onclick="toggleCode('M000264-source');return false;">[Source]</a></p>
871
+ <div class="method-source-code" id="M000264-source">
862
872
  <pre>
863
873
  <span class="ruby-comment cmt"># File lib/libxml/attr.rb, line 33</span>
864
874
  33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
@@ -872,19 +882,19 @@ Iterates nodes and attributes
872
882
  </div>
873
883
  </div>
874
884
 
875
- <div id="method-M000260" class="method-detail">
876
- <a name="M000260"></a>
885
+ <div id="method-M000263" class="method-detail">
886
+ <a name="M000263"></a>
877
887
 
878
888
  <div class="method-heading">
879
- <a href="#M000260" class="method-signature">
889
+ <a href="#M000263" class="method-signature">
880
890
  <span class="method-name">to_h</span><span class="method-args">()</span>
881
891
  </a>
882
892
  </div>
883
893
 
884
894
  <div class="method-description">
885
895
  <p><a class="source-toggle" href="#"
886
- onclick="toggleCode('M000260-source');return false;">[Source]</a></p>
887
- <div class="method-source-code" id="M000260-source">
896
+ onclick="toggleCode('M000263-source');return false;">[Source]</a></p>
897
+ <div class="method-source-code" id="M000263-source">
888
898
  <pre>
889
899
  <span class="ruby-comment cmt"># File lib/libxml/attr.rb, line 26</span>
890
900
  26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
@@ -898,19 +908,19 @@ Iterates nodes and attributes
898
908
  </div>
899
909
  </div>
900
910
 
901
- <div id="method-M000262" class="method-detail">
902
- <a name="M000262"></a>
911
+ <div id="method-M000265" class="method-detail">
912
+ <a name="M000265"></a>
903
913
 
904
914
  <div class="method-heading">
905
- <a href="#M000262" class="method-signature">
915
+ <a href="#M000265" class="method-signature">
906
916
  <span class="method-name">to_s</span><span class="method-args">()</span>
907
917
  </a>
908
918
  </div>
909
919
 
910
920
  <div class="method-description">
911
921
  <p><a class="source-toggle" href="#"
912
- onclick="toggleCode('M000262-source');return false;">[Source]</a></p>
913
- <div class="method-source-code" id="M000262-source">
922
+ onclick="toggleCode('M000265-source');return false;">[Source]</a></p>
923
+ <div class="method-source-code" id="M000265-source">
914
924
  <pre>
915
925
  <span class="ruby-comment cmt"># File lib/libxml/attr.rb, line 40</span>
916
926
  40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
@@ -921,11 +931,11 @@ Iterates nodes and attributes
921
931
  </div>
922
932
  </div>
923
933
 
924
- <div id="method-M000254" class="method-detail">
925
- <a name="M000254"></a>
934
+ <div id="method-M000257" class="method-detail">
935
+ <a name="M000257"></a>
926
936
 
927
937
  <div class="method-heading">
928
- <a href="#M000254" class="method-signature">
938
+ <a href="#M000257" class="method-signature">
929
939
  <span class="method-name">attr.value &rarr; "value"<br />
930
940
  </span>
931
941
  </a>
@@ -933,11 +943,11 @@ Iterates nodes and attributes
933
943
 
934
944
  <div class="method-description">
935
945
  <p>
936
- Obtain the value of this attribute.
946
+ Obtain the <a href="Attr.html#M000257">value</a> of this attribute.
937
947
  </p>
938
948
  <p><a class="source-toggle" href="#"
939
- onclick="toggleCode('M000254-source');return false;">[Source]</a></p>
940
- <div class="method-source-code" id="M000254-source">
949
+ onclick="toggleCode('M000257-source');return false;">[Source]</a></p>
950
+ <div class="method-source-code" id="M000257-source">
941
951
  <pre>
942
952
  /*
943
953
  * call-seq:
@@ -953,11 +963,11 @@ ruby_xml_attr_value_get(VALUE self) {
953
963
  </div>
954
964
  </div>
955
965
 
956
- <div id="method-M000255" class="method-detail">
957
- <a name="M000255"></a>
966
+ <div id="method-M000258" class="method-detail">
967
+ <a name="M000258"></a>
958
968
 
959
969
  <div class="method-heading">
960
- <a href="#M000255" class="method-signature">
970
+ <a href="#M000258" class="method-signature">
961
971
  <span class="method-name">attr.value = "value"<br />
962
972
  </span>
963
973
  </a>
@@ -965,11 +975,11 @@ ruby_xml_attr_value_get(VALUE self) {
965
975
 
966
976
  <div class="method-description">
967
977
  <p>
968
- Sets the value of this attribute.
978
+ Sets the <a href="Attr.html#M000257">value</a> of this attribute.
969
979
  </p>
970
980
  <p><a class="source-toggle" href="#"
971
- onclick="toggleCode('M000255-source');return false;">[Source]</a></p>
972
- <div class="method-source-code" id="M000255-source">
981
+ onclick="toggleCode('M000258-source');return false;">[Source]</a></p>
982
+ <div class="method-source-code" id="M000258-source">
973
983
  <pre>
974
984
  /*
975
985
  * call-seq: