libxml-ruby 2.8.0 → 3.2.3

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 (205) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +859 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +98 -78
  7. data/ext/libxml/extconf.rb +61 -116
  8. data/ext/libxml/libxml.c +80 -76
  9. data/ext/libxml/ruby_libxml.h +67 -75
  10. data/ext/libxml/ruby_xml.c +937 -893
  11. data/ext/libxml/ruby_xml.h +10 -10
  12. data/ext/libxml/ruby_xml_attr.c +333 -333
  13. data/ext/libxml/ruby_xml_attr.h +12 -12
  14. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  15. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  16. data/ext/libxml/ruby_xml_attributes.c +275 -275
  17. data/ext/libxml/ruby_xml_attributes.h +15 -15
  18. data/ext/libxml/ruby_xml_cbg.c +85 -85
  19. data/ext/libxml/ruby_xml_document.c +1123 -1147
  20. data/ext/libxml/ruby_xml_document.h +11 -11
  21. data/ext/libxml/ruby_xml_dtd.c +248 -268
  22. data/ext/libxml/ruby_xml_dtd.h +9 -9
  23. data/ext/libxml/ruby_xml_encoding.c +250 -260
  24. data/ext/libxml/ruby_xml_encoding.h +16 -19
  25. data/ext/libxml/ruby_xml_error.c +996 -996
  26. data/ext/libxml/ruby_xml_error.h +12 -12
  27. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  28. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  29. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  30. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  31. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  32. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  33. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  34. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  35. data/ext/libxml/ruby_xml_io.c +47 -50
  36. data/ext/libxml/ruby_xml_io.h +10 -10
  37. data/ext/libxml/ruby_xml_namespace.c +154 -153
  38. data/ext/libxml/ruby_xml_namespace.h +10 -10
  39. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  40. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  41. data/ext/libxml/ruby_xml_node.c +1406 -1452
  42. data/ext/libxml/ruby_xml_node.h +13 -11
  43. data/ext/libxml/ruby_xml_parser.c +91 -94
  44. data/ext/libxml/ruby_xml_parser.h +12 -12
  45. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  46. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  47. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  48. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  49. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  50. data/ext/libxml/ruby_xml_reader.h +17 -17
  51. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  52. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  53. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  54. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  55. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  56. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  57. data/ext/libxml/ruby_xml_schema.c +350 -301
  58. data/ext/libxml/ruby_xml_schema.h +806 -809
  59. data/ext/libxml/ruby_xml_schema_attribute.c +61 -109
  60. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  61. data/ext/libxml/ruby_xml_schema_element.c +69 -94
  62. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  63. data/ext/libxml/ruby_xml_schema_facet.c +46 -52
  64. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  65. data/ext/libxml/ruby_xml_schema_type.c +214 -259
  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 +1133 -1137
  69. data/ext/libxml/ruby_xml_writer.h +10 -10
  70. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  71. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  72. data/ext/libxml/ruby_xml_xpath.c +194 -188
  73. data/ext/libxml/ruby_xml_xpath.h +13 -13
  74. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  75. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  76. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  77. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  78. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  79. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  80. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  81. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  82. data/ext/vc/libxml_ruby.sln +17 -15
  83. data/lib/libxml/node.rb +2 -78
  84. data/lib/libxml/parser.rb +0 -266
  85. data/lib/libxml/sax_parser.rb +0 -17
  86. data/lib/libxml/schema/attribute.rb +19 -19
  87. data/lib/libxml/schema/element.rb +19 -27
  88. data/lib/libxml/schema/type.rb +21 -29
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml-ruby.rb +30 -0
  91. data/lib/libxml.rb +3 -33
  92. data/libxml-ruby.gemspec +48 -44
  93. data/script/benchmark/depixelate +634 -634
  94. data/script/benchmark/hamlet.xml +9054 -9054
  95. data/script/benchmark/parsecount +170 -170
  96. data/script/benchmark/throughput +41 -41
  97. data/script/test +6 -6
  98. data/setup.rb +0 -1
  99. data/test/c14n/given/example-1.xml +14 -14
  100. data/test/c14n/given/example-2.xml +11 -11
  101. data/test/c14n/given/example-3.xml +18 -18
  102. data/test/c14n/given/example-4.xml +9 -9
  103. data/test/c14n/given/example-5.xml +12 -12
  104. data/test/c14n/given/example-6.xml +2 -2
  105. data/test/c14n/given/example-7.xml +11 -11
  106. data/test/c14n/given/example-8.xml +11 -11
  107. data/test/c14n/given/example-8.xpath +9 -9
  108. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  109. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  110. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  111. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  112. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  113. data/test/c14n/result/with-comments/example-1 +5 -5
  114. data/test/c14n/result/with-comments/example-2 +10 -10
  115. data/test/c14n/result/with-comments/example-3 +13 -13
  116. data/test/c14n/result/with-comments/example-4 +8 -8
  117. data/test/c14n/result/with-comments/example-5 +3 -3
  118. data/test/c14n/result/without-comments/example-1 +3 -3
  119. data/test/c14n/result/without-comments/example-2 +10 -10
  120. data/test/c14n/result/without-comments/example-3 +13 -13
  121. data/test/c14n/result/without-comments/example-4 +8 -8
  122. data/test/c14n/result/without-comments/example-5 +2 -2
  123. data/test/model/atom.xml +12 -12
  124. data/test/model/bands.iso-8859-1.xml +4 -4
  125. data/test/model/bands.utf-8.xml +4 -4
  126. data/test/model/bands.xml +4 -4
  127. data/test/model/books.xml +153 -153
  128. data/test/model/cwm_1_0.xml +11336 -0
  129. data/test/model/merge_bug_data.xml +58 -58
  130. data/test/model/ruby-lang.html +238 -238
  131. data/test/model/rubynet.xml +79 -79
  132. data/test/model/shiporder.rnc +28 -28
  133. data/test/model/shiporder.rng +86 -86
  134. data/test/model/shiporder.xml +22 -22
  135. data/test/model/shiporder.xsd +44 -40
  136. data/test/model/shiporder_bad.xsd +40 -0
  137. data/test/model/shiporder_import.xsd +45 -0
  138. data/test/model/soap.xml +27 -27
  139. data/test/model/xinclude.xml +4 -4
  140. data/test/{tc_attr.rb → test_attr.rb} +23 -25
  141. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +13 -14
  142. data/test/{tc_attributes.rb → test_attributes.rb} +11 -18
  143. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +36 -41
  144. data/test/test_deprecated_require.rb +12 -0
  145. data/test/{tc_document.rb → test_document.rb} +33 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +29 -29
  148. data/test/{tc_encoding.rb → test_encoding.rb} +129 -126
  149. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +7 -6
  150. data/test/test_error.rb +178 -0
  151. data/test/test_helper.rb +4 -9
  152. data/test/test_html_parser.rb +162 -0
  153. data/test/test_html_parser_context.rb +23 -0
  154. data/test/test_namespace.rb +60 -0
  155. data/test/{tc_namespaces.rb → test_namespaces.rb} +34 -44
  156. data/test/{tc_node.rb → test_node.rb} +68 -47
  157. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +12 -13
  158. data/test/{tc_node_comment.rb → test_node_comment.rb} +7 -8
  159. data/test/{tc_node_copy.rb → test_node_copy.rb} +4 -6
  160. data/test/{tc_node_edit.rb → test_node_edit.rb} +23 -41
  161. data/test/{tc_node_pi.rb → test_node_pi.rb} +37 -40
  162. data/test/{tc_node_text.rb → test_node_text.rb} +10 -12
  163. data/test/{tc_node_write.rb → test_node_write.rb} +18 -29
  164. data/test/test_node_xlink.rb +28 -0
  165. data/test/test_parser.rb +324 -0
  166. data/test/{tc_parser_context.rb → test_parser_context.rb} +42 -49
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +364 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +44 -38
  171. data/test/test_schema.rb +231 -0
  172. data/test/test_suite.rb +38 -40
  173. data/test/{tc_traversal.rb → test_traversal.rb} +5 -6
  174. data/test/{tc_writer.rb → test_writer.rb} +468 -448
  175. data/test/{tc_xinclude.rb → test_xinclude.rb} +4 -5
  176. data/test/test_xml.rb +263 -0
  177. data/test/{tc_xpath.rb → test_xpath.rb} +31 -32
  178. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +8 -9
  179. data/test/test_xpath_expression.rb +37 -0
  180. data/test/{tc_xpointer.rb → test_xpointer.rb} +16 -18
  181. metadata +122 -100
  182. data/lib/libxml/ns.rb +0 -22
  183. data/lib/libxml/properties.rb +0 -23
  184. data/lib/libxml/reader.rb +0 -29
  185. data/lib/libxml/xpath_object.rb +0 -16
  186. data/test/etc_doc_to_s.rb +0 -21
  187. data/test/ets_doc_file.rb +0 -17
  188. data/test/ets_doc_to_s.rb +0 -23
  189. data/test/ets_gpx.rb +0 -28
  190. data/test/ets_node_gc.rb +0 -23
  191. data/test/ets_test.xml +0 -2
  192. data/test/ets_tsr.rb +0 -11
  193. data/test/tc_deprecated_require.rb +0 -13
  194. data/test/tc_document_write.rb +0 -196
  195. data/test/tc_error.rb +0 -180
  196. data/test/tc_html_parser.rb +0 -153
  197. data/test/tc_html_parser_context.rb +0 -24
  198. data/test/tc_namespace.rb +0 -62
  199. data/test/tc_node_xlink.rb +0 -29
  200. data/test/tc_parser.rb +0 -381
  201. data/test/tc_reader.rb +0 -400
  202. data/test/tc_relaxng.rb +0 -54
  203. data/test/tc_schema.rb +0 -162
  204. data/test/tc_xml.rb +0 -226
  205. data/test/tc_xpath_expression.rb +0 -38
@@ -1,79 +1,79 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <rubynet xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <pkg version="1.0">
4
- <meta>
5
- <pkgname>REXML</pkgname>
6
- <authors>
7
- <author>
8
- <name>Aaron Malone</name>
9
- <email>aaron@munge.net</email>
10
- <irc_network>irc.opentprojects.org</irc_network>
11
- <irc_channel>#ruby-lang</irc_channel>
12
- <irc_handle>AAmalone</irc_handle>
13
- </author>
14
- </authors>
15
- <maintainers>
16
- <maintainer>
17
- <name>Tools Team</name>
18
- <email>tools@gentoo.org</email>
19
- <irc_network>irc.opentprojects.org</irc_network>
20
- <irc_channel>#ruby-lang</irc_channel>
21
- <irc_handle>TinyT</irc_handle>
22
- </maintainer>
23
- </maintainers>
24
- <categories>
25
-
26
- <!-- For pieces of data that are repeated constnatly, could we
27
- use XLink to centralize some of these definitions? If we move
28
- stuff around on rubynet.org, we don't want to have to do a
29
- search/replace: just update the entity, IMHO. -->
30
-
31
- <major_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/xml/">XML</major_category>
32
- <minor_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/text%20processing/">Text Processing</minor_category>
33
- <minor_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/storage/">Storage</minor_category>
34
- </categories>
35
- <version>
36
- <major_version>1</major_version>
37
- <minor_version>2</minor_version>
38
- <micro_version>3</micro_version>
39
- </version>
40
- <copyright>1999-2002 Gentoo Technologies,Inc.</copyright>
41
- <license>Ruby</license>
42
- <status>Stable</status>
43
- <full_name>Ruby Electric XML</full_name>
44
- <description>Pure Ruby parser, blah blah. Based of Electrice XML</description>
45
- <homepage xlink:type="simple" xlink:href="http://www.germane-software.com/~ser/Software/rexml/">REXML Home</homepage>
46
- <download xlink:type="simple" xlink:href="http://www.germane-software.com/~ser/Software/rexml/rexml-1.2.3.bz2/">REXML Download</download>
47
- </meta>
48
- <dependencies>
49
- <dependency name="ruby" uri="http://www.rubynet.org/packages/ruby/">
50
- <required_version restriction="no-lower-than">
51
- <version>
52
- <major_version>1</major_version>
53
- <minor_version>6</minor_version>
54
- <micro_version>0</micro_version>
55
- </version>
56
- </required_version>
57
- </dependency>
58
- </dependencies>
59
- <files>
60
- <file>
61
- <filename>uga.rb</filename>
62
- <mode>0444</mode>
63
- <content encoding="xml">... the file here</content>
64
- </file>
65
- <file>
66
- <filename>booga.h</filename>
67
- <mode>0444</mode>
68
- <content encoding="xml">... the file here</content>
69
- </file>
70
- <file>
71
- <filename>foo.so</filename>
72
- <mode>0555</mode>
73
- <!-- Encode routine: str.to_a.pack('m')
74
- Decode routine: str.unpack('m') -->
75
- <content encoding="mime64">Li4uIHRoZSBmaWxlIGhlcmU=\n</content>
76
- </file>
77
- </files>
78
- </pkg>
79
- </rubynet>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <rubynet xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <pkg version="1.0">
4
+ <meta>
5
+ <pkgname>REXML</pkgname>
6
+ <authors>
7
+ <author>
8
+ <name>Aaron Malone</name>
9
+ <email>aaron@munge.net</email>
10
+ <irc_network>irc.opentprojects.org</irc_network>
11
+ <irc_channel>#ruby-lang</irc_channel>
12
+ <irc_handle>AAmalone</irc_handle>
13
+ </author>
14
+ </authors>
15
+ <maintainers>
16
+ <maintainer>
17
+ <name>Tools Team</name>
18
+ <email>tools@gentoo.org</email>
19
+ <irc_network>irc.opentprojects.org</irc_network>
20
+ <irc_channel>#ruby-lang</irc_channel>
21
+ <irc_handle>TinyT</irc_handle>
22
+ </maintainer>
23
+ </maintainers>
24
+ <categories>
25
+
26
+ <!-- For pieces of data that are repeated constnatly, could we
27
+ use XLink to centralize some of these definitions? If we move
28
+ stuff around on rubynet.org, we don't want to have to do a
29
+ search/replace: just update the entity, IMHO. -->
30
+
31
+ <major_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/xml/">XML</major_category>
32
+ <minor_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/text%20processing/">Text Processing</minor_category>
33
+ <minor_category xlink:type="simple" xlink:href="http://www.rubynet.org/category/storage/">Storage</minor_category>
34
+ </categories>
35
+ <version>
36
+ <major_version>1</major_version>
37
+ <minor_version>2</minor_version>
38
+ <micro_version>3</micro_version>
39
+ </version>
40
+ <copyright>1999-2002 Gentoo Technologies,Inc.</copyright>
41
+ <license>Ruby</license>
42
+ <status>Stable</status>
43
+ <full_name>Ruby Electric XML</full_name>
44
+ <description>Pure Ruby parser, blah blah. Based of Electrice XML</description>
45
+ <homepage xlink:type="simple" xlink:href="http://www.germane-software.com/~ser/Software/rexml/">REXML Home</homepage>
46
+ <download xlink:type="simple" xlink:href="http://www.germane-software.com/~ser/Software/rexml/rexml-1.2.3.bz2/">REXML Download</download>
47
+ </meta>
48
+ <dependencies>
49
+ <dependency name="ruby" uri="http://www.rubynet.org/packages/ruby/">
50
+ <required_version restriction="no-lower-than">
51
+ <version>
52
+ <major_version>1</major_version>
53
+ <minor_version>6</minor_version>
54
+ <micro_version>0</micro_version>
55
+ </version>
56
+ </required_version>
57
+ </dependency>
58
+ </dependencies>
59
+ <files>
60
+ <file>
61
+ <filename>uga.rb</filename>
62
+ <mode>0444</mode>
63
+ <content encoding="xml">... the file here</content>
64
+ </file>
65
+ <file>
66
+ <filename>booga.h</filename>
67
+ <mode>0444</mode>
68
+ <content encoding="xml">... the file here</content>
69
+ </file>
70
+ <file>
71
+ <filename>foo.so</filename>
72
+ <mode>0555</mode>
73
+ <!-- Encode routine: str.to_a.pack('m')
74
+ Decode routine: str.unpack('m') -->
75
+ <content encoding="mime64">Li4uIHRoZSBmaWxlIGhlcmU=\n</content>
76
+ </file>
77
+ </files>
78
+ </pkg>
79
+ </rubynet>
@@ -1,28 +1,28 @@
1
- #
2
- # relax ng schema in compact syntax; this cannot be used within libxml but
3
- # was used to write the schema as compact syntax makes it easier to handle.
4
- # relax ng schema in xml syntax was created using trang.
5
- #
6
- namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"
7
-
8
- start = shiporder
9
-
10
- shiporder = element shiporder { attribute orderid { text },
11
- attribute xsi:noNamespaceSchemaLocation { text },
12
- orderperson, shipto, item* }
13
-
14
- orderperson = element orderperson { text }
15
-
16
- shipto = element shipto { name, address, city, country }
17
-
18
- name = element name { text }
19
- address = element address { text }
20
- city = element city { text }
21
- country = element country { text }
22
-
23
- item = element item { title, note?, quantity, price }
24
-
25
- title = element title { text }
26
- note = element note { text }
27
- quantity = element quantity { text }
28
- price = element price { text }
1
+ #
2
+ # relax ng schema in compact syntax; this cannot be used within libxml but
3
+ # was used to write the schema as compact syntax makes it easier to handle.
4
+ # relax ng schema in xml syntax was created using trang.
5
+ #
6
+ namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"
7
+
8
+ start = shiporderType
9
+
10
+ shiporderType = element shiporder { attribute orderid { text },
11
+ attribute xsi:noNamespaceSchemaLocation { text },
12
+ orderperson, shipto, item* }
13
+
14
+ orderperson = element orderperson { text }
15
+
16
+ shipto = element shipto { name, address, city, country }
17
+
18
+ name = element name { text }
19
+ address = element address { text }
20
+ city = element city { text }
21
+ country = element country { text }
22
+
23
+ item = element item { title, note?, quantity, price }
24
+
25
+ title = element title { text }
26
+ note = element note { text }
27
+ quantity = element quantity { text }
28
+ price = element price { text }
@@ -1,86 +1,86 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!--
3
-
4
- relax ng schema in compact syntax; this cannot be used within libxml but
5
- was used to write the schema as it's easier to understand
6
-
7
- -->
8
- <grammar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0">
9
- <start>
10
- <ref name="shiporder"/>
11
- </start>
12
- <define name="shiporder">
13
- <element name="shiporder">
14
- <attribute name="orderid"/>
15
- <attribute name="xsi:noNamespaceSchemaLocation"/>
16
- <ref name="orderperson"/>
17
- <ref name="shipto"/>
18
- <zeroOrMore>
19
- <ref name="item"/>
20
- </zeroOrMore>
21
- </element>
22
- </define>
23
- <define name="orderperson">
24
- <element name="orderperson">
25
- <text/>
26
- </element>
27
- </define>
28
- <define name="shipto">
29
- <element name="shipto">
30
- <ref name="name"/>
31
- <ref name="address"/>
32
- <ref name="city"/>
33
- <ref name="country"/>
34
- </element>
35
- </define>
36
- <define name="name">
37
- <element name="name">
38
- <text/>
39
- </element>
40
- </define>
41
- <define name="address">
42
- <element name="address">
43
- <text/>
44
- </element>
45
- </define>
46
- <define name="city">
47
- <element name="city">
48
- <text/>
49
- </element>
50
- </define>
51
- <define name="country">
52
- <element name="country">
53
- <text/>
54
- </element>
55
- </define>
56
- <define name="item">
57
- <element name="item">
58
- <ref name="title"/>
59
- <optional>
60
- <ref name="note"/>
61
- </optional>
62
- <ref name="quantity"/>
63
- <ref name="price"/>
64
- </element>
65
- </define>
66
- <define name="title">
67
- <element name="title">
68
- <text/>
69
- </element>
70
- </define>
71
- <define name="note">
72
- <element name="note">
73
- <text/>
74
- </element>
75
- </define>
76
- <define name="quantity">
77
- <element name="quantity">
78
- <text/>
79
- </element>
80
- </define>
81
- <define name="price">
82
- <element name="price">
83
- <text/>
84
- </element>
85
- </define>
86
- </grammar>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+
4
+ relax ng schema in compact syntax; this cannot be used within libxml but
5
+ was used to write the schema as it's easier to understand
6
+
7
+ -->
8
+ <grammar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0">
9
+ <start>
10
+ <ref name="shiporderType"/>
11
+ </start>
12
+ <define name="shiporderType">
13
+ <element name="shiporder">
14
+ <attribute name="orderid"/>
15
+ <attribute name="xsi:noNamespaceSchemaLocation"/>
16
+ <ref name="orderperson"/>
17
+ <ref name="shipto"/>
18
+ <zeroOrMore>
19
+ <ref name="item"/>
20
+ </zeroOrMore>
21
+ </element>
22
+ </define>
23
+ <define name="orderperson">
24
+ <element name="orderperson">
25
+ <text/>
26
+ </element>
27
+ </define>
28
+ <define name="shipto">
29
+ <element name="shipto">
30
+ <ref name="name"/>
31
+ <ref name="address"/>
32
+ <ref name="city"/>
33
+ <ref name="country"/>
34
+ </element>
35
+ </define>
36
+ <define name="name">
37
+ <element name="name">
38
+ <text/>
39
+ </element>
40
+ </define>
41
+ <define name="address">
42
+ <element name="address">
43
+ <text/>
44
+ </element>
45
+ </define>
46
+ <define name="city">
47
+ <element name="city">
48
+ <text/>
49
+ </element>
50
+ </define>
51
+ <define name="country">
52
+ <element name="country">
53
+ <text/>
54
+ </element>
55
+ </define>
56
+ <define name="item">
57
+ <element name="item">
58
+ <ref name="title"/>
59
+ <optional>
60
+ <ref name="note"/>
61
+ </optional>
62
+ <ref name="quantity"/>
63
+ <ref name="price"/>
64
+ </element>
65
+ </define>
66
+ <define name="title">
67
+ <element name="title">
68
+ <text/>
69
+ </element>
70
+ </define>
71
+ <define name="note">
72
+ <element name="note">
73
+ <text/>
74
+ </element>
75
+ </define>
76
+ <define name="quantity">
77
+ <element name="quantity">
78
+ <text/>
79
+ </element>
80
+ </define>
81
+ <define name="price">
82
+ <element name="price">
83
+ <text/>
84
+ </element>
85
+ </define>
86
+ </grammar>
@@ -1,23 +1,23 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <shiporder orderid="889923"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xsi:noNamespaceSchemaLocation="shiporder.xsd">
5
- <orderperson>John Smith</orderperson>
6
- <shipto>
7
- <name>Ola Nordmann</name>
8
- <address>Langgt 23</address>
9
- <city>4000 Stavanger</city>
10
- <country>Norway</country>
11
- </shipto>
12
- <item>
13
- <title>Empire Burlesque</title>
14
- <note>Special Edition</note>
15
- <quantity>1</quantity>
16
- <price>10.90</price>
17
- </item>
18
- <item>
19
- <title>Hide your heart</title>
20
- <quantity>1</quantity>
21
- <price>9.90</price>
22
- </item>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shiporder orderid="889923"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="shiporder.xsd">
5
+ <orderperson>John Smith</orderperson>
6
+ <shipto>
7
+ <name>Ola Nordmann</name>
8
+ <address>Langgt 23</address>
9
+ <city>4000 Stavanger</city>
10
+ <country>Norway</country>
11
+ </shipto>
12
+ <item>
13
+ <title>Empire Burlesque</title>
14
+ <note>Special Edition</note>
15
+ <quantity>1</quantity>
16
+ <price>10.90</price>
17
+ </item>
18
+ <item>
19
+ <title>Hide your heart</title>
20
+ <quantity>1</quantity>
21
+ <price>9.90</price>
22
+ </item>
23
23
  </shiporder>
@@ -1,40 +1,44 @@
1
- <?xml version="1.0" encoding="iso-8859-1" ?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
- <xs:element name="shiporder" type="shiporder"/>
4
-
5
- <xs:complexType name="shiporder">
6
- <xs:annotation>
7
- <xs:documentation>Shiporder type documentation</xs:documentation>
8
- </xs:annotation>
9
- <xs:sequence>
10
- <xs:element name="orderperson" type="xs:string">
11
- <xs:annotation>
12
- <xs:documentation>orderperson element documentation</xs:documentation>
13
- </xs:annotation>
14
- </xs:element>
15
- <xs:element name="shipto">
16
- <xs:complexType>
17
- <xs:sequence>
18
- <xs:element name="name" type="xs:string"/>
19
- <xs:element name="address" type="xs:string"/>
20
- <xs:element name="city" type="xs:string"/>
21
- <xs:element name="country" type="xs:string"/>
22
- </xs:sequence>
23
- </xs:complexType>
24
- </xs:element>
25
- <xs:element name="item" maxOccurs="unbounded">
26
- <xs:complexType>
27
- <xs:sequence>
28
- <xs:element name="title" type="xs:string"/>
29
- <xs:element name="note" type="xs:string" minOccurs="0"/>
30
- <xs:element name="quantity" type="xs:positiveInteger"/>
31
- <xs:element name="price" type="xs:decimal"/>
32
- </xs:sequence>
33
- </xs:complexType>
34
- </xs:element>
35
- </xs:sequence>
36
- <xs:attribute name="orderid" type="xs:string" use="required"/>
37
- <xs:attribute name="foo" default="1" type="xs:integer" use="optional"/>
38
- <xs:attribute name="bar" use="prohibited"/>
39
- </xs:complexType>
40
- </xs:schema>
1
+ <?xml version="1.0" encoding="iso-8859-1" ?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:import namespace="http://xml4r.org/ibxml-ruby/test/shiporder"
5
+ schemaLocation="shiporder_import.xsd"/>
6
+
7
+ <xs:element name="shiporder" type="shiporderType"/>
8
+
9
+ <xs:complexType name="shiporderType">
10
+ <xs:annotation>
11
+ <xs:documentation>Shiporder type documentation</xs:documentation>
12
+ </xs:annotation>
13
+ <xs:sequence>
14
+ <xs:element name="orderperson" type="xs:string">
15
+ <xs:annotation>
16
+ <xs:documentation>orderperson element documentation</xs:documentation>
17
+ </xs:annotation>
18
+ </xs:element>
19
+ <xs:element name="shipto">
20
+ <xs:complexType>
21
+ <xs:sequence>
22
+ <xs:element name="name" type="xs:string"/>
23
+ <xs:element name="address" type="xs:string"/>
24
+ <xs:element name="city" type="xs:string"/>
25
+ <xs:element name="country" type="xs:string"/>
26
+ </xs:sequence>
27
+ </xs:complexType>
28
+ </xs:element>
29
+ <xs:element name="item" maxOccurs="unbounded">
30
+ <xs:complexType>
31
+ <xs:sequence>
32
+ <xs:element name="title" type="xs:string"/>
33
+ <xs:element name="note" type="xs:string" minOccurs="0"/>
34
+ <xs:element name="quantity" type="xs:positiveInteger"/>
35
+ <xs:element name="price" type="xs:decimal"/>
36
+ </xs:sequence>
37
+ </xs:complexType>
38
+ </xs:element>
39
+ </xs:sequence>
40
+ <xs:attribute name="orderid" type="xs:string" use="required"/>
41
+ <xs:attribute name="foo" default="1" type="xs:integer" use="optional"/>
42
+ <xs:attribute name="bar" use="prohibited"/>
43
+ </xs:complexType>
44
+ </xs:schema>
@@ -0,0 +1,40 @@
1
+ <?xml version="1.0" encoding="iso-8859-1" ?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+ <xs:element name="shiporder" type="shiporderType"/>
4
+
5
+ <xs:complexType name="shiporderType">
6
+ <xs:anntation>
7
+ <xs:documentation>Shiporder type documentation</xs:documentation>
8
+ </xs:anntation>
9
+ <xs:sequence>
10
+ <xs:element name="orderperson" type="xs:string">
11
+ <xs:annotation>
12
+ <xs:documentation>orderperson element documentation</xs:documentation>
13
+ </xs:annotation>
14
+ </xs:element>
15
+ <xs:element name="shipto">
16
+ <xs:complexType>
17
+ <xs:sequence>
18
+ <xs:element name="name" type="xs:string"/>
19
+ <xs:element name="address" type="xs:string"/>
20
+ <xs:element name="city" type="xs:string"/>
21
+ <xs:element name="country" type="xs:string"/>
22
+ </xs:sequence>
23
+ </xs:complexType>
24
+ </xs:element>
25
+ <xs:element name="item" maxOccurs="unbounded">
26
+ <xs:complexType>
27
+ <xs:seq>
28
+ <xs:element name="title" type="xs:string"/>
29
+ <xs:element name="note" type="xs:string" minOccurs="0"/>
30
+ <xs:element name="quantity" type="xs:positiveInteger"/>
31
+ <xs:element name="price" type="xs:decimal"/>
32
+ </xs:seq>
33
+ </xs:complexType>
34
+ </xs:element>
35
+ </xs:sequence>
36
+ <xs:attribute name="orderid" type="xs:string" use="required"/>
37
+ <xs:attribute name="foo" default="1" type="xs:integer" use="optional"/>
38
+ <xs:attribute name="bar" use="prohibited"/>
39
+ </xs:complexType>
40
+ </xs:schema>
@@ -0,0 +1,45 @@
1
+ <?xml version="1.0" encoding="iso-8859-1" ?>
2
+ <xs:schema xmlns="http://xml4r.org/libxml-ruby/test/shiporder"
3
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
4
+ targetNamespace="http://xml4r.org/libxml-ruby/test/shiporder">
5
+
6
+ <xs:element name="shiporder" type="shiporderFooType"/>
7
+ <xs:complexType name="shiporderFooType">
8
+ <xs:annotation>
9
+ <xs:documentation>Shiporder type documentation for Testing of imported schema</xs:documentation>
10
+ </xs:annotation>
11
+ <xs:sequence>
12
+ <xs:element name="orderperson" type="xs:string">
13
+ <xs:annotation>
14
+ <xs:documentation>orderperson element documentation</xs:documentation>
15
+ </xs:annotation>
16
+ </xs:element>
17
+ <xs:element name="shipto">
18
+ <xs:complexType>
19
+ <xs:sequence>
20
+ <xs:element name="name" type="xs:string"/>
21
+ <xs:element name="address" type="xs:string"/>
22
+ <xs:element name="city" type="xs:string"/>
23
+ <xs:element name="country" type="xs:string"/>
24
+ <xs:element name="phone" type="xs:string"/>
25
+ </xs:sequence>
26
+ </xs:complexType>
27
+ </xs:element>
28
+ <xs:element name="item" maxOccurs="unbounded">
29
+ <xs:complexType>
30
+ <xs:sequence>
31
+ <xs:element name="title" type="xs:string"/>
32
+ <xs:element name="note" type="xs:string" minOccurs="0"/>
33
+ <xs:element name="quantity" type="xs:positiveInteger"/>
34
+ <xs:element name="price" type="xs:decimal"/>
35
+ <xs:element name="discount" type="xs:decimal"/>
36
+ </xs:sequence>
37
+ </xs:complexType>
38
+ </xs:element>
39
+ </xs:sequence>
40
+ <xs:attribute name="orderid" type="xs:string" use="required"/>
41
+ <xs:attribute name="foo" default="1" type="xs:integer" use="optional"/>
42
+ <xs:attribute name="bar" type="xs:string" use="optional"/>
43
+ <xs:attribute name="xyzzy" type="xs:string" use="prohibited"/>
44
+ </xs:complexType>
45
+ </xs:schema>