nokogiri 1.4.3.1-java → 1.5.0-java

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 (231) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGELOG.ja.rdoc +113 -0
  3. data/CHANGELOG.rdoc +113 -1
  4. data/Manifest.txt +72 -68
  5. data/README.ja.rdoc +4 -4
  6. data/README.rdoc +31 -7
  7. data/Rakefile +110 -132
  8. data/bin/nokogiri +7 -3
  9. data/ext/java/nokogiri/EncodingHandler.java +124 -0
  10. data/ext/java/nokogiri/HtmlDocument.java +119 -0
  11. data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
  12. data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
  13. data/ext/java/nokogiri/HtmlSaxParserContext.java +259 -0
  14. data/ext/java/nokogiri/NokogiriService.java +590 -0
  15. data/ext/java/nokogiri/XmlAttr.java +180 -0
  16. data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
  17. data/ext/java/nokogiri/XmlCdata.java +84 -0
  18. data/ext/java/nokogiri/XmlComment.java +86 -0
  19. data/ext/java/nokogiri/XmlDocument.java +519 -0
  20. data/ext/java/nokogiri/XmlDocumentFragment.java +223 -0
  21. data/ext/java/nokogiri/XmlDtd.java +469 -0
  22. data/ext/java/nokogiri/XmlElement.java +195 -0
  23. data/ext/java/nokogiri/XmlElementContent.java +382 -0
  24. data/ext/java/nokogiri/XmlElementDecl.java +152 -0
  25. data/ext/java/nokogiri/XmlEntityDecl.java +162 -0
  26. data/ext/java/nokogiri/XmlEntityReference.java +97 -0
  27. data/ext/java/nokogiri/XmlNamespace.java +183 -0
  28. data/ext/java/nokogiri/XmlNode.java +1378 -0
  29. data/ext/java/nokogiri/XmlNodeSet.java +267 -0
  30. data/ext/java/nokogiri/XmlProcessingInstruction.java +99 -0
  31. data/ext/java/nokogiri/XmlReader.java +408 -0
  32. data/ext/java/nokogiri/XmlRelaxng.java +144 -0
  33. data/ext/java/nokogiri/XmlSaxParserContext.java +367 -0
  34. data/ext/java/nokogiri/XmlSaxPushParser.java +184 -0
  35. data/ext/java/nokogiri/XmlSchema.java +324 -0
  36. data/ext/java/nokogiri/XmlSyntaxError.java +119 -0
  37. data/ext/java/nokogiri/XmlText.java +119 -0
  38. data/ext/java/nokogiri/XmlXpathContext.java +199 -0
  39. data/ext/java/nokogiri/XsltStylesheet.java +197 -0
  40. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +204 -0
  41. data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
  42. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +86 -0
  43. data/ext/java/nokogiri/internals/NokogiriHandler.java +327 -0
  44. data/ext/java/nokogiri/internals/NokogiriHelpers.java +639 -0
  45. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +167 -0
  46. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +130 -0
  47. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +74 -0
  48. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
  49. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +79 -0
  50. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +141 -0
  51. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +73 -0
  52. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +67 -0
  53. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +86 -0
  54. data/ext/java/nokogiri/internals/ParserContext.java +276 -0
  55. data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
  56. data/ext/java/nokogiri/internals/ReaderNode.java +531 -0
  57. data/ext/java/nokogiri/internals/SaveContextVisitor.java +567 -0
  58. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +76 -0
  59. data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
  60. data/ext/java/nokogiri/internals/XmlDomParser.java +76 -0
  61. data/ext/java/nokogiri/internals/XmlDomParserContext.java +244 -0
  62. data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
  63. data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
  64. data/ext/nokogiri/depend +358 -32
  65. data/ext/nokogiri/extconf.rb +10 -6
  66. data/ext/nokogiri/nokogiri.c +23 -3
  67. data/ext/nokogiri/nokogiri.h +7 -2
  68. data/ext/nokogiri/xml_document.c +9 -0
  69. data/ext/nokogiri/xml_dtd.c +2 -2
  70. data/ext/nokogiri/xml_io.c +32 -7
  71. data/ext/nokogiri/xml_node.c +45 -25
  72. data/ext/nokogiri/xml_node_set.c +1 -1
  73. data/ext/nokogiri/xml_relax_ng.c +0 -7
  74. data/ext/nokogiri/xml_sax_parser.c +14 -7
  75. data/ext/nokogiri/xml_sax_parser_context.c +40 -0
  76. data/ext/nokogiri/xml_xpath_context.c +33 -2
  77. data/ext/nokogiri/xslt_stylesheet.c +128 -6
  78. data/lib/isorelax.jar +0 -0
  79. data/lib/jing.jar +0 -0
  80. data/lib/nekodtd.jar +0 -0
  81. data/lib/nekohtml.jar +0 -0
  82. data/lib/nokogiri/css/parser.rb +665 -70
  83. data/lib/nokogiri/css/parser.y +3 -1
  84. data/lib/nokogiri/css/parser_extras.rb +91 -0
  85. data/lib/nokogiri/css/tokenizer.rb +148 -3
  86. data/lib/nokogiri/css/tokenizer.rex +1 -1
  87. data/lib/nokogiri/css/xpath_visitor.rb +15 -7
  88. data/lib/nokogiri/css.rb +5 -3
  89. data/lib/nokogiri/decorators/slop.rb +5 -3
  90. data/lib/nokogiri/html/document.rb +142 -19
  91. data/lib/nokogiri/html/document_fragment.rb +19 -17
  92. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  93. data/lib/nokogiri/html/sax/parser.rb +6 -2
  94. data/lib/nokogiri/html.rb +1 -0
  95. data/lib/nokogiri/nokogiri.jar +0 -0
  96. data/lib/nokogiri/version.rb +76 -26
  97. data/lib/nokogiri/xml/attribute_decl.rb +1 -1
  98. data/lib/nokogiri/xml/builder.rb +7 -0
  99. data/lib/nokogiri/xml/document.rb +43 -2
  100. data/lib/nokogiri/xml/document_fragment.rb +16 -2
  101. data/lib/nokogiri/xml/dtd.rb +12 -1
  102. data/lib/nokogiri/xml/element_decl.rb +1 -1
  103. data/lib/nokogiri/xml/entity_decl.rb +1 -1
  104. data/lib/nokogiri/xml/node/save_options.rb +20 -1
  105. data/lib/nokogiri/xml/node.rb +198 -78
  106. data/lib/nokogiri/xml/node_set.rb +10 -3
  107. data/lib/nokogiri/xml/parse_options.rb +8 -0
  108. data/lib/nokogiri/xml/reader.rb +42 -6
  109. data/lib/nokogiri/xml/sax/document.rb +4 -2
  110. data/lib/nokogiri/xml/schema.rb +7 -1
  111. data/lib/nokogiri/xslt/stylesheet.rb +1 -1
  112. data/lib/nokogiri/xslt.rb +9 -5
  113. data/lib/nokogiri.rb +19 -25
  114. data/lib/xercesImpl.jar +0 -0
  115. data/nokogiri_help_responses.md +40 -0
  116. data/tasks/cross_compile.rb +130 -136
  117. data/tasks/nokogiri.org.rb +18 -0
  118. data/tasks/test.rb +2 -2
  119. data/test/css/test_parser.rb +29 -18
  120. data/test/css/test_tokenizer.rb +8 -0
  121. data/test/decorators/test_slop.rb +16 -0
  122. data/test/files/encoding.html +82 -0
  123. data/test/files/encoding.xhtml +84 -0
  124. data/test/files/metacharset.html +10 -0
  125. data/test/files/noencoding.html +47 -0
  126. data/test/helper.rb +5 -1
  127. data/test/html/sax/test_parser.rb +65 -3
  128. data/test/html/test_document.rb +75 -1
  129. data/test/html/test_document_encoding.rb +61 -0
  130. data/test/html/test_document_fragment.rb +50 -5
  131. data/test/html/test_element_description.rb +4 -2
  132. data/test/html/test_node.rb +9 -0
  133. data/test/test_memory_leak.rb +20 -35
  134. data/test/test_nokogiri.rb +14 -20
  135. data/test/test_reader.rb +23 -6
  136. data/test/test_xslt_transforms.rb +6 -2
  137. data/test/xml/node/test_save_options.rb +10 -2
  138. data/test/xml/sax/test_parser.rb +39 -8
  139. data/test/xml/sax/test_parser_context.rb +50 -0
  140. data/test/xml/sax/test_push_parser.rb +18 -1
  141. data/test/xml/test_attribute_decl.rb +7 -3
  142. data/test/xml/test_builder.rb +17 -0
  143. data/test/xml/test_document.rb +34 -5
  144. data/test/xml/test_document_fragment.rb +14 -2
  145. data/test/xml/test_dtd.rb +28 -3
  146. data/test/xml/test_element_content.rb +1 -1
  147. data/test/xml/test_element_decl.rb +1 -1
  148. data/test/xml/test_entity_decl.rb +12 -10
  149. data/test/xml/test_namespace.rb +7 -5
  150. data/test/xml/test_node.rb +65 -13
  151. data/test/xml/test_node_reparenting.rb +72 -31
  152. data/test/xml/test_node_set.rb +57 -0
  153. data/test/xml/test_schema.rb +5 -0
  154. data/test/xml/test_xpath.rb +32 -0
  155. data/test/xslt/test_custom_functions.rb +94 -0
  156. data/test/xslt/test_exception_handling.rb +37 -0
  157. metadata +512 -517
  158. data/deps.rip +0 -5
  159. data/ext/nokogiri/libcharset-1.dll +0 -0
  160. data/ext/nokogiri/libexslt.dll +0 -0
  161. data/ext/nokogiri/libiconv-2.dll +0 -0
  162. data/ext/nokogiri/libxml2.dll +0 -0
  163. data/ext/nokogiri/libxslt.dll +0 -0
  164. data/ext/nokogiri/zlib1.dll +0 -0
  165. data/lib/nokogiri/css/generated_parser.rb +0 -676
  166. data/lib/nokogiri/css/generated_tokenizer.rb +0 -146
  167. data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
  168. data/lib/nokogiri/ffi/html/document.rb +0 -28
  169. data/lib/nokogiri/ffi/html/element_description.rb +0 -81
  170. data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
  171. data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
  172. data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
  173. data/lib/nokogiri/ffi/libxml.rb +0 -411
  174. data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
  175. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
  176. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
  177. data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
  178. data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -19
  179. data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
  180. data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
  181. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
  182. data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
  183. data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
  184. data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
  185. data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
  186. data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
  187. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
  188. data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
  189. data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
  190. data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
  191. data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
  192. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -19
  193. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
  194. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
  195. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
  196. data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
  197. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
  198. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
  199. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
  200. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
  201. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
  202. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
  203. data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
  204. data/lib/nokogiri/ffi/xml/attr.rb +0 -41
  205. data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
  206. data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
  207. data/lib/nokogiri/ffi/xml/comment.rb +0 -18
  208. data/lib/nokogiri/ffi/xml/document.rb +0 -166
  209. data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
  210. data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
  211. data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
  212. data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
  213. data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
  214. data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
  215. data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
  216. data/lib/nokogiri/ffi/xml/node.rb +0 -554
  217. data/lib/nokogiri/ffi/xml/node_set.rb +0 -149
  218. data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
  219. data/lib/nokogiri/ffi/xml/reader.rb +0 -236
  220. data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
  221. data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -135
  222. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -67
  223. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
  224. data/lib/nokogiri/ffi/xml/schema.rb +0 -109
  225. data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
  226. data/lib/nokogiri/ffi/xml/text.rb +0 -18
  227. data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
  228. data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -148
  229. data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -53
  230. data/lib/nokogiri/version_warning.rb +0 -14
  231. data/test/ffi/test_document.rb +0 -35
@@ -1,117 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
-
4
- module XmlDocumentMixin # :nodoc:
5
- def self.included(base)
6
- base.class_eval do
7
-
8
- layout(
9
- :_private, :pointer,
10
- :type, :int,
11
- :name, :string,
12
- :children, :pointer,
13
- :last, :pointer,
14
- :parent, :pointer,
15
- :next, :pointer,
16
- :prev, :pointer,
17
- :doc, :pointer,
18
-
19
- :compression, :int,
20
- :standalone, :int,
21
- :intSubset, :pointer,
22
- :extSubset, :pointer,
23
- :oldNs, :pointer,
24
- :version, :string,
25
- :encoding, :pointer,
26
- :ids, :pointer,
27
- :refs, :pointer,
28
- :URL, :string
29
- )
30
-
31
- end
32
- end
33
-
34
- def document
35
- p = self[:doc]
36
- p.null? ? nil : LibXML::XmlDocumentCast.new(p)
37
- end
38
-
39
- def ruby_node_pointer
40
- tuple = self[:_private]
41
- tuple.null? ? 0 : tuple.get_long(0)
42
- end
43
-
44
- def ruby_node_pointer=(value)
45
- self[:_private].put_long(0, value)
46
- end
47
-
48
- def ruby_doc
49
- Nokogiri::WeakBucket.get_object(self)
50
- end
51
-
52
- def ruby_doc=(object)
53
- Nokogiri::WeakBucket.set_object(self, object)
54
- end
55
-
56
- def unlinked_nodes
57
- LibXML::XmlNodeSetCast.new(self[:_private].get_pointer(LibXML.pointer_offset(1)))
58
- end
59
-
60
- def alloc_tuple
61
- self[:_private] = LibXML.calloc(LibXML::POINTER_SIZE, 2)
62
- self[:_private].put_pointer(LibXML.pointer_offset(1), LibXML.xmlXPathNodeSetCreate(nil))
63
- end
64
- end
65
-
66
- #
67
- # use at the point of creation, so we can be sure the document will be GCed properly
68
- #
69
- class XmlDocument < FFI::ManagedStruct # :nodoc:
70
- include XmlDocumentMixin
71
-
72
- def initialize(ptr)
73
- super(ptr)
74
- self.alloc_tuple
75
- end
76
-
77
- def self.release ptr
78
- doc = LibXML::XmlDocumentCast.new(ptr)
79
- func = LibXML.xmlDeregisterNodeDefault(nil)
80
- begin
81
- ns = LibXML::XmlNodeSetCast.new(doc[:_private].get_pointer(LibXML.pointer_offset(1)))
82
-
83
- ns[:nodeNr].times do |j|
84
- node_cstruct = LibXML::XmlNode.new(ns[:nodeTab].get_pointer(LibXML.pointer_offset(j)))
85
- case node_cstruct[:type]
86
- when Nokogiri::XML::Node::ATTRIBUTE_NODE
87
- LibXML.xmlFreePropList(node_cstruct)
88
- when Nokogiri::XML::Node::NAMESPACE_DECL
89
- LibXML.xmlFree(node_cstruct)
90
- else
91
- LibXML.xmlAddChild(doc, node_cstruct) if node_cstruct[:parent].null?
92
- end
93
- end
94
- LibXML::XmlNodeSet.release(ns.pointer)
95
-
96
- LibXML.free(doc[:_private])
97
- rescue
98
- puts "Nokogiri::LibXML::XmlDocument.release: exception: '#{$!}'"
99
- ensure
100
- LibXML.xmlFreeDoc(ptr)
101
- LibXML.xmlDeregisterNodeDefault(func)
102
- end
103
- end
104
- end
105
-
106
- #
107
- # use when we don't want to cause the doc to be GCed
108
- #
109
- class XmlDocumentCast < FFI::Struct # :nodoc:
110
- include XmlDocumentMixin
111
- end
112
-
113
- HtmlDocument = XmlDocument # implemented identically in libxml2.6
114
- HtmlDocumentCast = XmlDocumentCast # implemented identically in libxml2.6
115
- end
116
-
117
- end
@@ -1,28 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlDtd < FFI::Struct # :nodoc:
4
-
5
- layout(
6
- :_private, :long, # actually a pointer we're casting as an integer
7
- :type, :int,
8
- :name, :string,
9
- :children, :pointer,
10
- :last, :pointer,
11
- :parent, :pointer,
12
- :next, :pointer,
13
- :prev, :pointer,
14
- :doc, :pointer,
15
-
16
- :notations, :pointer,
17
- :elements, :pointer,
18
- :attributes, :pointer,
19
- :entities, :pointer,
20
- :external_id, :string,
21
- :system_id, :string
22
- )
23
-
24
- include CommonNode
25
-
26
- end
27
- end
28
- end
@@ -1,26 +0,0 @@
1
- module Nokogiri
2
- # :stopdoc:
3
- module LibXML
4
- class XmlElement < FFI::Struct
5
- include CommonNode
6
-
7
- layout(
8
- :_private, :long,
9
- :type, :int,
10
- :name, :string,
11
- :children, :pointer,
12
- :last, :pointer,
13
- :parent, :pointer,
14
- :next, :pointer,
15
- :prev, :pointer,
16
- :doc, :pointer,
17
-
18
- :etype, :int,
19
- :content, :pointer,
20
- :properties, :pointer,
21
- :prefix, :string
22
- )
23
- end
24
- end
25
- # :startdoc:
26
- end
@@ -1,17 +0,0 @@
1
- # :stopdoc:
2
- module Nokogiri
3
- module LibXML
4
- class XmlElementContent < FFI::Struct
5
- layout(
6
- :type, :int,
7
- :ocur, :int, # This is misspelled in the header file
8
- :name, :string,
9
- :c1, :pointer,
10
- :c2, :pointer,
11
- :parent,:pointer,
12
- :prefix,:string
13
- )
14
- end
15
- end
16
- end
17
- # :startdoc:
@@ -1,32 +0,0 @@
1
- module Nokogiri
2
- # :stopdoc:
3
- module LibXML
4
- class XmlEntity < FFI::Struct
5
- include CommonNode
6
-
7
- layout(
8
- :_private, :long,
9
- :type, :int,
10
- :name, :string,
11
- :children, :pointer,
12
- :last, :pointer,
13
- :parent, :pointer,
14
- :next, :pointer,
15
- :prev, :pointer,
16
- :doc, :pointer,
17
-
18
- :orig, :string,
19
- :content, :string,
20
- :length, :int,
21
- :etype, :int,
22
- :external_id, :string,
23
- :system_id, :string,
24
- :nexte, :pointer,
25
- :uri, :string,
26
- :owner, :int,
27
- :checked, :int
28
- )
29
- end
30
- end
31
- # :startdoc:
32
- end
@@ -1,12 +0,0 @@
1
- module Nokogiri
2
- # :stopdoc:
3
- module LibXML
4
- class XmlEnumeration < FFI::Struct
5
- layout(
6
- :next, :pointer,
7
- :name, :string
8
- )
9
- end
10
- end
11
- # :startdoc:
12
- end
@@ -1,28 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlNode < FFI::Struct # :nodoc:
4
-
5
- layout(
6
- :_private, :long, # actually a pointer we're casting as an integer
7
- :type, :int,
8
- :name, :string,
9
- :children, :pointer,
10
- :last, :pointer,
11
- :parent, :pointer,
12
- :next, :pointer,
13
- :prev, :pointer,
14
- :doc, :pointer,
15
-
16
- :ns, :pointer,
17
- :content, :string,
18
- :properties, :pointer,
19
- :nsDef, :pointer,
20
- :psvi, :pointer,
21
- :line, :short
22
- )
23
-
24
- include CommonNode
25
-
26
- end
27
- end
28
- end
@@ -1,53 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
-
4
- module XmlNodeSetMixin # :nodoc:
5
- def self.included(base)
6
- base.class_eval do
7
-
8
- layout(
9
- :nodeNr, :int,
10
- :nodeMax, :int,
11
- :nodeTab, :pointer
12
- )
13
-
14
- end
15
- end
16
-
17
- def document
18
- p = self[:doc]
19
- p.null? ? nil : LibXML::XmlDocumentCast.new(p)
20
- end
21
-
22
- def nodeAt(index)
23
- self[:nodeTab].get_pointer(LibXML.pointer_offset(index))
24
- end
25
-
26
- def nodeTab
27
- self[:nodeTab].read_array_of_pointer(self[:nodeNr])
28
- end
29
-
30
- def nodeTab=(array)
31
- # TODO: do we need to check nodeMax and allocate more memory? probably.
32
- self[:nodeTab].write_array_of_pointer(array)
33
- end
34
- end
35
-
36
-
37
- class XmlNodeSet < FFI::ManagedStruct # :nodoc:
38
- include XmlNodeSetMixin
39
-
40
- def self.release ptr
41
- ns = XmlNodeSetCast.new(ptr)
42
- LibXML.xmlFree ns[:nodeTab] if ns[:nodeTab]
43
- LibXML.xmlFree ptr
44
- end
45
- end
46
-
47
-
48
- class XmlNodeSetCast < FFI::Struct # :nodoc:
49
- include XmlNodeSetMixin
50
- end
51
-
52
- end
53
- end
@@ -1,11 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlNotation < FFI::Struct # :nodoc:
4
- layout(
5
- :name, :string,
6
- :PublicID, :string,
7
- :SystemID, :string
8
- )
9
- end
10
- end
11
- end
@@ -1,15 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlNs < FFI::Struct # :nodoc:
4
- layout(
5
- :next, :pointer,
6
- :type, :int,
7
- :href, :string,
8
- :prefix, :string,
9
- :_private, :long # actually a pointer we're casting as an integer
10
- )
11
-
12
- include CommonNode
13
- end
14
- end
15
- end
@@ -1,19 +0,0 @@
1
- module Nokogiri
2
- # :stopdoc:
3
- module LibXML
4
- class XmlParserContext < FFI::Struct
5
- layout(
6
- :sax, :pointer,
7
- :userData, :pointer,
8
- :myDoc, :pointer,
9
- :wellFormed, :int,
10
- :replaceEntities, :int,
11
- :version, :string,
12
- :encoding, :string,
13
- :standalone, :int,
14
- :html, :int
15
- )
16
- end
17
- end
18
- # :startdoc:
19
- end
@@ -1,14 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlRelaxNG < FFI::ManagedStruct # :nodoc:
4
-
5
- layout :dummy, :int, 0 # to avoid @layout warnings
6
-
7
- def self.release ptr
8
- LibXML.xmlRelaxNGFree(ptr)
9
- end
10
-
11
- end
12
- end
13
- end
14
-
@@ -1,51 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlSaxHandler < FFI::ManagedStruct # :nodoc:
4
-
5
- XML_SAX2_MAGIC = 0xDEEDBEAF # see, the libxml2 authors DO have a sense of humor. i think.
6
-
7
- layout(:internalSubset, :pointer,
8
- :isStandalone, :pointer,
9
- :hasInternalSubset, :pointer,
10
- :hasExternalSubset, :pointer,
11
- :resolveEntity, :pointer,
12
- :getEntity, :pointer,
13
- :entityDecl, :pointer,
14
- :notationDecl, :pointer,
15
- :attributeDecl, :pointer,
16
- :elementDecl, :pointer,
17
- :unparsedEntityDecl, :pointer,
18
- :setDocumentLocator, :pointer,
19
- :startDocument, :start_document_sax_func,
20
- :endDocument, :end_document_sax_func ,
21
- :startElement, :start_element_sax_func,
22
- :endElement, :end_element_sax_func,
23
- :reference, :pointer,
24
- :characters, :characters_sax_func,
25
- :ignorableWhitespace, :pointer,
26
- :processingInstruction, :pointer,
27
- :comment, :comment_sax_func,
28
- :warning, :warning_sax_func,
29
- :error, :error_sax_func,
30
- :fatalError, :pointer,
31
- :getParameterEntity, :pointer,
32
- :cdataBlock, :cdata_block_sax_func,
33
- :externalSubset, :pointer,
34
- :initialized, :uint,
35
- :_private, :pointer,
36
- :startElementNs, :start_element_ns_sax2_func,
37
- :endElementNs, :end_element_ns_sax2_func,
38
- :serror, :syntax_error_handler
39
- )
40
-
41
- def self.allocate
42
- new LibXML.calloc(1, LibXML::XmlSaxHandler.size)
43
- end
44
-
45
- def self.release ptr
46
- LibXML.free(ptr)
47
- end
48
-
49
- end
50
- end
51
- end
@@ -1,124 +0,0 @@
1
- module Nokogiri
2
- # :stopdoc:
3
- module LibXML
4
- class XmlSaxPushParserContext < FFI::ManagedStruct
5
-
6
- layout(
7
- :sax, :pointer, # struct _xmlSAXHandler *sax; /* The SAX handler */
8
- :userData, :pointer, # void *userData; /* For SAX interface only, used by DOM build */
9
- :myDoc, :pointer, # xmlDocPtr myDoc; /* the document being built */
10
- :wellFormed, :int, # int wellFormed; /* is the document well formed */
11
- :replaceEntities, :int, # int replaceEntities; /* shall we replace entities ? */
12
- :version, :pointer, # const xmlChar *version; /* the XML version string */
13
- :encoding, :pointer, # const xmlChar *encoding; /* the declared encoding, if any */
14
- :standalone, :int, # int standalone; /* standalone document */
15
- :html, :int, # int html; /* an HTML(1)/Docbook(2) document
16
-
17
- :input, :pointer, # xmlParserInputPtr input; /* Current input stream */
18
- :inputNr, :int, # int inputNr; /* Number of current input streams */
19
- :inputMax, :int, # int inputMax; /* Max number of input streams */
20
- :inputTab, :pointer, # xmlParserInputPtr *inputTab; /* stack of inputs */
21
-
22
- :node, :pointer, # xmlNodePtr node; /* Current parsed Node */
23
- :nodeNr, :int, # int nodeNr; /* Depth of the parsing stack */
24
- :nodeMax, :int, # int nodeMax; /* Max depth of the parsing stack */
25
- :nodeTab, :pointer, # xmlNodePtr *nodeTab; /* array of nodes */
26
-
27
- :record_info, :int, # int record_info; /* Whether node info should be kept */
28
-
29
- # xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
30
- :node_seq_maximum, :ulong,
31
- :node_seq_length, :ulong,
32
- :node_seq_buffer, :pointer,
33
-
34
- :errNo, :int, # int errNo; /* error code */
35
-
36
- :hasExternalSubset, :int, # int hasExternalSubset; /* reference and external subset */
37
- :hasPErefs, :int, # int hasPErefs; /* the internal subset has PE refs */
38
- :external, :int, # int external; /* are we parsing an external entity */
39
-
40
- :valid, :int, # int valid; /* is the document valid */
41
- :validate, :int, # int validate; /* shall we try to validate ? */
42
-
43
- # xmlValidCtxt vctxt; /* The validity context */
44
- :vctxt_userData, :pointer, # void *userData; /* user specific data block */
45
- :vctxt_error, :pointer, # xmlValidityErrorFunc error; /* the callback in case of errors */
46
- :vctxt_warning, :pointer, # xmlValidityWarningFunc warning; /* the callback in case of warning */
47
- :vctxt_node, :pointer, # xmlNodePtr node; /* Current parsed Node */
48
- :vctxt_nodeNr, :int, # int nodeNr; /* Depth of the parsing stack */
49
- :vctxt_nodeMax, :int, # int nodeMax; /* Max depth of the parsing stack */
50
- :vctxt_nodeTab, :pointer, # xmlNodePtr *nodeTab; /* array of nodes */
51
-
52
- :vctxt_finishDtd, :int, # unsigned int finishDtd; /* finished validating the Dtd ? */
53
- :vctxt_doc, :pointer, # xmlDocPtr doc; /* the document */
54
- :vctxt_valid, :int, # int valid; /* temporary validity check result */
55
- :vctxt_vstate, :pointer, # xmlValidState *vstate; /* current state */
56
- :vctxt_vstatNr, :int, # int vstateNr; /* Depth of the validation stack */
57
- :vctxt_vstateMax, :int, # int vstateMax; /* Max depth of the validation stack */
58
- :vctxt_vstateTab, :pointer, # xmlValidState *vstateTab; /* array of validation states */
59
- :vctxt_am, :pointer, # xmlAutomataPtr am; /* the automata */
60
- :vctxt_state, :pointer, # xmlAutomataStatePtr state; /* used to build the automata */
61
-
62
- :instate, :int, # xmlParserInputState instate; /* current type of input */
63
- :token, :int, # int token; /* next char look-ahead */
64
-
65
- :directory, :pointer, # char *directory; /* the data directory */
66
- :name, :pointer, # const xmlChar *name; /* Current parsed Node */
67
- :nameNr, :int, # int nameNr; /* Depth of the parsing stack */
68
- :nameMax, :int, # int nameMax; /* Max depth of the parsing stack */
69
- :nameTab, :pointer, # const xmlChar * *nameTab; /* array of nodes */
70
-
71
- :nbChars, :long, # long nbChars; /* number of xmlChar processed */
72
- :checkIndex, :long, # long checkIndex; /* used by progressive parsing lookup */
73
- :keepBlanks, :int, # int keepBlanks; /* ugly but ... */
74
- :disableSAX, :int, # int disableSAX; /* SAX callbacks are disabled */
75
- :inSubset, :int, # int inSubset; /* Parsing is in int 1/ext 2 subset */
76
- :intSubName, :pointer, # const xmlChar * intSubName; /* name of subset */
77
- :extSubURI, :pointer, # xmlChar * extSubURI; /* URI of external subset */
78
- :extSubSystem, :pointer, # xmlChar * extSubSystem; /* SYSTEM ID of external subset */
79
-
80
- :space, :pointer, # int * space; /* Should the parser preserve spaces */
81
- :spaceNr, :int, # int spaceNr; /* Depth of the parsing stack */
82
- :spaceMax, :int, # int spaceMax; /* Max depth of the parsing stack */
83
- :spaceTab, :pointer, # int * spaceTab; /* array of space infos */
84
- :depth, :int, # int depth; /* to prevent entity substitution loops */
85
- :entity, :pointer, # xmlParserInputPtr entity; /* used to check entities boundaries */
86
- :charset, :int, # int charset; /* encoding of the in-memory content
87
- :nodelen, :int, # int nodelen; /* Those two fields are there to */
88
- :nodemem, :int, # int nodemem; /* Speed up large node parsing */
89
- :pedantic, :int, # int pedantic; /* signal pedantic warnings */
90
- :_private, :pointer, # void *_private; /* For user data, libxml won't touch it */
91
-
92
- :loadsubset, :int, # int loadsubset; /* should the external subset be loaded */
93
- :linenumbers, :int, # int linenumbers; /* set line number in element content */
94
- :catalogs, :pointer, # void *catalogs; /* document's own catalog */
95
- :recovery, :int, # int recovery; /* run in recovery mode */
96
- :progressive, :int, # int progressive; /* is this a progressive parsing */
97
- :dict, :pointer, # xmlDictPtr dict; /* dictionnary for the parser */
98
- :atts, :pointer, # const xmlChar * *atts; /* array for the attributes callbacks */
99
- :maxatts, :int, # int maxatts; /* the size of the array */
100
- :docdict, :int, # int docdict; /* use strings from dict to build tree */
101
- :str_xml, :pointer, # const xmlChar *str_xml;
102
- :str_xmlns, :pointer, # const xmlChar *str_xmlns;
103
- :str_xml_ns, :pointer, # const xmlChar *str_xml_ns;
104
-
105
- :sax2, :int, # int sax2; /* operating in the new SAX mode */
106
- :nsNr, :int, # int nsNr; /* the number of inherited namespaces */
107
- :nsMax, :int, # int nsMax; /* the size of the arrays */
108
- :nsTab, :pointer, # const xmlChar * *nsTab; /* the array of prefix/namespace name */
109
- :attallocs, :pointer, # int *attallocs; /* which attribute were allocated */
110
- :pushTab, :pointer, # void * *pushTab; /* array of data for push */
111
- :attsDefault, :pointer, # xmlHashTablePtr attsDefault; /* defaulted attributes if any */
112
- :attsSpecial, :pointer, # xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */
113
- :nsWellFormed, :int, # int nsWellFormed; /* is the document XML Nanespace okay */
114
- :options, :int # int options; /* Extra options */
115
- )
116
-
117
- def self.release ptr
118
- LibXML.xmlFreeParserCtxt(ptr)
119
- end
120
- end
121
-
122
- end
123
- # :startdoc:
124
- end
@@ -1,13 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlSchema < FFI::ManagedStruct # :nodoc:
4
-
5
- layout :dummy, :int, 0 # to avoid @layout warnings
6
-
7
- def self.release ptr
8
- LibXML.xmlSchemaFree(ptr)
9
- end
10
-
11
- end
12
- end
13
- end
@@ -1,31 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlSyntaxError < FFI::ManagedStruct # :nodoc:
4
-
5
- layout(
6
- :domain, :int,
7
- :code, :int,
8
- :message, :pointer,
9
- :level, :int,
10
- :file, :string,
11
- :line, :int,
12
- :str1, :string,
13
- :str2, :string,
14
- :str3, :string,
15
- :int1, :int,
16
- :int2, :int,
17
- :ctxt, :pointer,
18
- :node, :pointer
19
- )
20
-
21
- def self.allocate
22
- LibXML.calloc(1, LibXML::XmlSyntaxError.size)
23
- end
24
-
25
- def self.release(ptr)
26
- LibXML.free(ptr)
27
- end
28
-
29
- end
30
- end
31
- end
@@ -1,12 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- class XmlTextReader < FFI::ManagedStruct # :nodoc:
4
-
5
- layout :dummy, :int # to avoid @layout warnings
6
-
7
- def self.release ptr
8
- LibXML.xmlFreeTextReader(ptr)
9
- end
10
- end
11
- end
12
- end
@@ -1,38 +0,0 @@
1
- module Nokogiri
2
- module LibXML # :nodoc:
3
- module XmlXpathContextMixin # :nodoc:
4
- def self.included(base)
5
- base.class_eval do
6
-
7
- layout(
8
- :doc, :pointer,
9
- :node, :pointer
10
- )
11
-
12
- end
13
- end
14
-
15
- def node
16
- LibXML::XmlNode.new(self[:node])
17
- end
18
-
19
- def document
20
- p = self[:doc]
21
- p.null? ? nil : LibXML::XmlDocumentCast.new(p)
22
- end
23
- end
24
-
25
- class XmlXpathContext < FFI::ManagedStruct # :nodoc:
26
- include XmlXpathContextMixin
27
-
28
- def self.release ptr
29
- LibXML.xmlXPathFreeContext(ptr)
30
- end
31
- end
32
-
33
- class XmlXpathContextCast < FFI::Struct # :nodoc:
34
- include XmlXpathContextMixin
35
- end
36
-
37
- end
38
- end