libxml-ruby 2.8.0 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
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>