axlsx 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/README.md +41 -5
  2. data/Rakefile +3 -2
  3. data/examples/chart_colors.rb +18 -3
  4. data/examples/example.rb +100 -46
  5. data/examples/extractive.pdf +0 -0
  6. data/lib/axlsx.rb +7 -6
  7. data/lib/axlsx/content_type/content_type.rb +2 -0
  8. data/lib/axlsx/content_type/default.rb +21 -12
  9. data/lib/axlsx/content_type/override.rb +22 -11
  10. data/lib/axlsx/doc_props/app.rb +36 -32
  11. data/lib/axlsx/doc_props/core.rb +9 -5
  12. data/lib/axlsx/drawing/ax_data_source.rb +7 -6
  13. data/lib/axlsx/drawing/axis.rb +48 -27
  14. data/lib/axlsx/drawing/bar_3D_chart.rb +47 -37
  15. data/lib/axlsx/drawing/bar_series.rb +1 -0
  16. data/lib/axlsx/drawing/cat_axis.rb +42 -38
  17. data/lib/axlsx/drawing/chart.rb +34 -27
  18. data/lib/axlsx/drawing/drawing.rb +5 -4
  19. data/lib/axlsx/drawing/line_3D_chart.rb +1 -1
  20. data/lib/axlsx/drawing/num_data_source.rb +1 -1
  21. data/lib/axlsx/drawing/pie_3D_chart.rb +7 -7
  22. data/lib/axlsx/drawing/two_cell_anchor.rb +3 -8
  23. data/lib/axlsx/drawing/view_3D.rb +41 -31
  24. data/lib/axlsx/drawing/vml_drawing.rb +1 -1
  25. data/lib/axlsx/package.rb +11 -11
  26. data/lib/axlsx/rels/relationship.rb +3 -3
  27. data/lib/axlsx/stylesheet/styles.rb +1 -1
  28. data/lib/axlsx/util/constants.rb +4 -0
  29. data/lib/axlsx/util/simple_typed_list.rb +2 -2
  30. data/lib/axlsx/util/validators.rb +2 -2
  31. data/lib/axlsx/version.rb +1 -1
  32. data/lib/axlsx/workbook/workbook.rb +1 -2
  33. data/lib/axlsx/workbook/worksheet/cell.rb +1 -1
  34. data/lib/axlsx/workbook/worksheet/data_bar.rb +1 -1
  35. data/lib/axlsx/workbook/worksheet/page_setup.rb +9 -0
  36. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
  37. data/lib/axlsx/workbook/worksheet/worksheet.rb +180 -56
  38. data/test/content_type/tc_content_type.rb +1 -6
  39. data/test/doc_props/tc_core.rb +1 -1
  40. data/test/drawing/tc_axis.rb +8 -0
  41. data/test/drawing/tc_bar_3D_chart.rb +12 -12
  42. data/test/drawing/tc_bar_series.rb +0 -1
  43. data/test/drawing/tc_chart.rb +1 -5
  44. data/test/drawing/tc_pie_3D_chart.rb +3 -7
  45. data/test/drawing/tc_view_3D.rb +18 -18
  46. data/test/tc_package.rb +2 -0
  47. data/test/workbook/worksheet/tc_page_setup.rb +20 -3
  48. data/test/workbook/worksheet/tc_protected_range.rb +18 -0
  49. data/test/workbook/worksheet/tc_selection.rb +1 -1
  50. data/test/workbook/worksheet/tc_worksheet.rb +39 -18
  51. metadata +54 -103
  52. data/examples/axis-titles.xlsx +0 -0
  53. data/examples/basic_charts.xlsx +0 -0
  54. data/examples/chart_colors.xlsx +0 -0
  55. data/examples/charts.xlsx +0 -0
  56. data/examples/conditional_formatting/getting_barred.xlsx +0 -0
  57. data/examples/doc/_index.html +0 -84
  58. data/examples/doc/class_list.html +0 -47
  59. data/examples/doc/css/common.css +0 -1
  60. data/examples/doc/css/full_list.css +0 -55
  61. data/examples/doc/css/style.css +0 -322
  62. data/examples/doc/file_list.html +0 -46
  63. data/examples/doc/frames.html +0 -13
  64. data/examples/doc/index.html +0 -84
  65. data/examples/doc/js/app.js +0 -205
  66. data/examples/doc/js/full_list.js +0 -173
  67. data/examples/doc/js/jquery.js +0 -16
  68. data/examples/doc/method_list.html +0 -46
  69. data/examples/doc/top-level-namespace.html +0 -95
  70. data/examples/example.xlsx +0 -0
  71. data/examples/example_streamed.xlsx +0 -0
  72. data/examples/examples_saved.xlsx +0 -0
  73. data/examples/extractive.xlsx +0 -0
  74. data/examples/fish.xlsx +0 -0
  75. data/examples/no-use_autowidth.xlsx +0 -0
  76. data/examples/pareto.rb +0 -28
  77. data/examples/pareto.xlsx +0 -0
  78. data/examples/pie_chart_excel.xlsx +0 -0
  79. data/examples/pie_chart_saved.xlsx +0 -0
  80. data/examples/shared_strings_example.xlsx +0 -0
  81. data/examples/sheet_protection.xlsx +0 -0
  82. data/examples/sheet_view.xlsx +0 -0
  83. data/examples/two_cell_anchor_image.xlsx +0 -0
  84. data/examples/~$example.xlsx +0 -0
  85. data/lib/axlsx/drawing/ax_data_source.rb~ +0 -55
  86. data/lib/axlsx/drawing/data_source.rb~ +0 -51
  87. data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
  88. data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
  89. data/lib/axlsx/drawing/num_data.rb~ +0 -51
  90. data/lib/axlsx/drawing/num_data_source.rb~ +0 -54
  91. data/lib/axlsx/drawing/num_val.rb~ +0 -40
  92. data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
  93. data/lib/axlsx/drawing/ref.rb~ +0 -41
  94. data/lib/axlsx/drawing/str_data.rb~ +0 -58
  95. data/lib/axlsx/drawing/str_val.rb~ +0 -35
  96. data/lib/axlsx/drawing/vml_drawing.rb~ +0 -6
  97. data/lib/axlsx/drawing/vml_shape.rb~ +0 -61
  98. data/lib/axlsx/util/cbf.rb +0 -333
  99. data/lib/axlsx/util/cfb.rb~ +0 -201
  100. data/lib/axlsx/util/font_tables.rb~ +0 -0
  101. data/lib/axlsx/util/ms_off_crypto.rb +0 -189
  102. data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
  103. data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
  104. data/lib/axlsx/util/parser.rb~ +0 -6
  105. data/lib/axlsx/util/storage.rb~ +0 -0
  106. data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
  107. data/lib/axlsx/workbook/worksheet/cfvo.rb~ +0 -0
  108. data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
  109. data/lib/axlsx/workbook/worksheet/color_scale.rb~ +0 -46
  110. data/lib/axlsx/workbook/worksheet/comment.rb~ +0 -91
  111. data/lib/axlsx/workbook/worksheet/comments.rb~ +0 -86
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb~ +0 -0
  113. data/lib/axlsx/workbook/worksheet/icon_set.rb~ +0 -95
  114. data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
  115. data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
  116. data/lib/schema/dc.xsd~ +0 -118
  117. data/lib/schema/dcterms.xsd~ +0 -331
  118. data/lib/schema/opc-coreProperties.xsd~ +0 -50
  119. data/test/drawing/tc_data_source.rb~ +0 -30
  120. data/test/drawing/tc_num_data.rb~ +0 -35
  121. data/test/drawing/tc_num_val.rb~ +0 -29
  122. data/test/drawing/tc_str_data.rb~ +0 -30
  123. data/test/drawing/tc_str_val.rb~ +0 -26
  124. data/test/drawing/tc_vml_drawing.rb~ +0 -0
  125. data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
  126. data/test/workbook/worksheet/tc_cfvo.rb~ +0 -20
  127. data/test/workbook/worksheet/tc_col.rb~ +0 -10
  128. data/test/workbook/worksheet/tc_color_scale.rb~ +0 -0
  129. data/test/workbook/worksheet/tc_data_bar.rb~ +0 -0
  130. data/test/workbook/worksheet/tc_icon_set.rb~ +0 -0
File without changes
File without changes
@@ -1,46 +0,0 @@
1
- module Axlsx
2
- # Conditional Format Rule color scale object
3
- # Describes a gradated color scale in this conditional formatting rule.
4
-
5
- # @note The recommended way to manage these rules is via Worksheet#add_conditional_formatting
6
- # @see Worksheet#add_conditional_formatting
7
- # @see ConditionalFormattingRule#initialize
8
- class ColorScale
9
-
10
- # A simple typed list of cfvos
11
- # @return [SimpleTypedList]
12
- # @see cfvo
13
- attr_reader :cfvos
14
-
15
- # A simple types list of colors
16
- # @return [SimpleTypedList]
17
- # @see Color
18
- attr_reader :colors
19
-
20
- def initializer
21
- initialize_cfvos
22
- initialize_colors
23
- yield self if block_given?
24
- end
25
-
26
- def add
27
- @cfvos << Cfvo.new(:type => :min, :val => 0)
28
- @colors << Color.new :rgb => "FF000000"
29
- {:cfvo => @cfvos.last, :color => @colors.last}
30
- end
31
-
32
- protected
33
-
34
- def initialize_cfvos
35
- @cfvos = SimpleTypedList.new Cfvo
36
- @cfvos.concat [Cfvo.new(:type => :min, :val => 0), Cfvo.new(:type => :max, :val => 0)]
37
- @cfvos.lock
38
- end
39
-
40
- def initialize_colors
41
- @colors = SimpleTypedList.new Color
42
- @colors.concat [Color.new(:rgb => "FFFF0000", Color.new(:rgb => "FF0000FF")]
43
- @colors.lock
44
- end
45
-
46
- end
@@ -1,91 +0,0 @@
1
- module Axlsx
2
-
3
- # A comment is the text data for a comment
4
- class Comment
5
-
6
- # The text to render
7
- # @return [String]
8
- attr_reader :text
9
-
10
- # The index of the the author for this comment in the owning Comments object
11
- # @see Comments
12
- # @return [Integer]
13
- attr_reader :author_index
14
-
15
- # The owning Comments object
16
- # @return [Comments]
17
- attr_reader :comments
18
-
19
-
20
- # The string based cell position reference (e.g. 'A1') that determines the positioning of this comment
21
- attr_reader :ref
22
-
23
- # TODO
24
- # r (Rich Text Run)
25
- # rPh (Phonetic Text Run)
26
- # phoneticPr (Phonetic Properties)
27
-
28
- def initialize(comments, options={})
29
- raise ArgumentError, "A comment needs a parent comments object" unless comments.is_a?(Comments)
30
- @comments = comments
31
- options.each do |o|
32
- self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
33
- end
34
- yield self if block_given?
35
- end
36
-
37
- def pn
38
- "#{COMMENT_PN % (index+1)}"
39
- end
40
-
41
- def vml_shape
42
- @vml_shape ||= initialize_vml_shape
43
- end
44
-
45
- def initialize_vml_shape
46
- ws = self.comments.worksheet
47
- @vml_shape = VmlShape.new(self, :row => ws[ref].row.index, :column => ws[ref].index) do |vml|
48
- vml.left_column = vml.row + 1
49
- vml.right_column = vml.column + 4
50
- vml.top_row = vml.row
51
- vml.bottom_row = vml.row + 4
52
- end
53
- end
54
-
55
- # The index of this comment
56
- # @return [Integer]
57
- def index
58
- @comments.comment_list.index(self)
59
- end
60
-
61
- def ref=(v)
62
- Axlsx::DataTypeValidator.validate "Comment.ref", [String, Cell], v
63
- @ref = v if v.is_a?(String)
64
- @ref = v.r if v.is_a?(Cell)
65
- end
66
-
67
- def text=(v)
68
- Axlsx::validate_string(v)
69
- @text = v
70
- end
71
-
72
- def author_index=(v)
73
- Axlsx::validate_unsigned_int(v)
74
- @author_index = v
75
- end
76
-
77
- def to_xml_string(str = "")
78
- author = @comments.authors[author_index]
79
- str << '<comment ref="' << ref << '" authorId="' << author_index.to_s << '">'
80
- str << '<text><r>'
81
- str << '<rPr> <b/><color indexed="81"/></rPr>'
82
- str << '<t>' << author.to_s << ':
83
- </t></r>'
84
- str << '<r>'
85
- str << '<rPr><color indexed="81"/></rPr>'
86
- str << '<t>' << text << '</t></r></text>'
87
- str << '</comment>'
88
- end
89
-
90
- end
91
- end
@@ -1,86 +0,0 @@
1
- module Axlsx
2
-
3
- class Comments
4
-
5
- # a collection of the comment authors
6
- # @return [SimpleTypedList]
7
- attr_reader :authors
8
-
9
- # a collection of comment objects
10
- # @return [SimpleTypedList]
11
- attr_reader :comment_list
12
-
13
-
14
- # The worksheet that these comments belong to
15
- # @return [Worksheet]
16
- attr_reader :worksheet
17
-
18
- # Creates a new Comments object
19
- def initialize(worksheet)
20
- raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
21
- @worksheet = worksheet
22
- @authors = SimpleTypedList.new String
23
- @comment_list = SimpleTypedList.new Comment
24
- end
25
-
26
- def add_comment(options={})
27
- raise ArgumentError, "Comment require an author" unless options[:author]
28
- raise ArgumentError, "Comment requires text" unless options[:text]
29
- options[:author_index] = @authors.index(options[:author]) || @authors << options[:author]
30
- @comment_list << Comment.new(self, options)
31
- @comment_list.last
32
- end
33
-
34
- def to_xml_string(str="")
35
- end
36
-
37
- end
38
-
39
- class Comment
40
-
41
- attr_reader :text
42
-
43
- attr_reader :author_index
44
-
45
- attr_reader :comments
46
-
47
- # TODO
48
- # r (Rich Text Run)
49
- # rPh (Phonetic Text Run)
50
- # phoneticPr (Phonetic Properties)
51
- def initialize(comments, options={})
52
- raise ArgumentError, "A comment needs a parent comments object" unless comments.is_a?(Comments)
53
- @comments = comments
54
- options.each do |o|
55
- self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
56
- end
57
- yield self if block_given?
58
- end
59
-
60
- def pn
61
- "#{COMMENT_PN % (index+1)}"
62
- end
63
-
64
- # The index of this comment
65
- # @return [Integer]
66
- def index
67
- @comments.comment_list.index(self)
68
- end
69
-
70
-
71
- def text=(v)
72
- Axlsx::validate_string(v)
73
- @text = v
74
- end
75
-
76
- def author_index=(v)
77
- Axlsx::validate_unsigned_int(v)
78
- @author_index = v
79
- end
80
-
81
- def to_xml_string(str = "")
82
- end
83
-
84
- end
85
-
86
- end
File without changes
@@ -1,95 +0,0 @@
1
- module Axlsx
2
- # Conditional Format Rule data bar object
3
- # Describes a data bar conditional formatting rule.
4
-
5
- # @note The recommended way to manage these rules is via Worksheet#add_conditional_formatting
6
- # @see Worksheet#add_conditional_formatting
7
- # @see ConditionalFormattingRule#initialize
8
- class DataBar
9
- CHILD_ELEMENTS = [:value_objects]
10
-
11
- # minLength attribute
12
- # The minimum length of the data bar, as a percentage of the cell width.
13
- # The default value is 10
14
- # @return [Integer]
15
- attr_reader :minLength
16
-
17
- # maxLength attribute
18
- # The maximum length of the data bar, as a percentage of the cell width.
19
- # The default value is 90
20
- # @return [Integer]
21
- attr_reader :maxLength
22
-
23
- # maxLength attribute
24
- # Indicates whether to show the values of the cells on which this data bar is applied.
25
- # The default value is true
26
- # @return [Boolean]
27
- attr_reader :showValue
28
-
29
- # A simple typed list of cfvos
30
- # @return [SimpleTypedList]
31
- # @see Cfvo
32
- attr_reader :value_objects
33
-
34
- # color
35
- # the color object used in the data bar formatting
36
- # @return [Color]
37
- def color
38
- @color ||= Color.new :rgb => "FF0000FF"
39
- end
40
-
41
- # Creates a new data bar conditional formatting object
42
- # @option options [Integer] minLength
43
- # @option options [Integer] maxLength
44
- # @option options [Boolean] showValue
45
- # @option options [String] color - the rbg value used to color the bars
46
- def initialize(options = {})
47
- @minLength = 10
48
- @maxLength = 90
49
- @showValue = true
50
- initialize_value_objects
51
- options.each do |o|
52
- self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
53
- end
54
- yield self if block_given?
55
- end
56
-
57
- # @see minLength
58
- def minLength=(v); Axlsx.validate_unsigned_int(v); @minLength = v end
59
- # @see maxLength
60
- def maxLength=(v); Axlsx.validate_unsigned_int(v); @maxLength = v end
61
-
62
- # @see showValue
63
- def showValue=(v); Axlsx.validate_boolean(v); @showValue = v end
64
-
65
- # Sets the color for the data bars.
66
- # @param [Color|String] The color object, or rgb string value to apply
67
- def color=(v)
68
- @color = v if v.is_a? Color
69
- self.color.rgb = v if v.is_a? String
70
- @color
71
- end
72
-
73
- # Serialize this object to an xml string
74
- # @param [String] str
75
- # @return [String]
76
- def to_xml_string(str="")
77
- str << '<dataBar '
78
- str << instance_values.map { |key, value| '' << key << '="' << value.to_s << '"' unless CHILD_ELEMENTS.include?(key.to_sym) }.join(' ')
79
- str << '>'
80
- @value_objects.each { |cfvo| cfvo.to_xml_string(str) }
81
- self.color.to_xml_string(str)
82
- str << '</dataBar>'
83
- end
84
-
85
- private
86
-
87
- # Initalize the simple typed list of value objects
88
- # I am keeping this private for now as I am not sure what impact changes to the required two cfvo objects will do.
89
- def initialize_value_objects
90
- @value_objects = SimpleTypedList.new Cfvo
91
- @value_objects.concat [Cfvo.new(:type => :min, :val => 0), Cfvo.new(:type => :max, :val => 0)]
92
- @value_objects.lock
93
- end
94
- end
95
- end
@@ -1,97 +0,0 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # Table
4
- # @note Worksheet#add_table is the recommended way to create charts for your worksheets.
5
- # @see README for examples
6
- class Table
7
-
8
-
9
- # The reference to the table data
10
- # @return [String]
11
- attr_reader :ref
12
-
13
- # The name of the table.
14
- # @return [String]
15
- attr_reader :name
16
-
17
- # The style for the table.
18
- # @return [TableStyle]
19
- attr_reader :style
20
-
21
- # Creates a new Table object
22
- # @param [String] ref The reference to the table data.
23
- # @param [Sheet] ref The sheet containing the table data.
24
- # @option options [Cell, String] name
25
- # @option options [TableStyle] style
26
- def initialize(ref, sheet, options={})
27
- @ref = ref
28
- @sheet = sheet
29
- @style = nil
30
- @sheet.workbook.tables << self
31
- @name = "Table#{index+1}"
32
- options.each do |o|
33
- self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
34
- end
35
- yield self if block_given?
36
- end
37
-
38
- # The index of this chart in the workbooks charts collection
39
- # @return [Integer]
40
- def index
41
- @sheet.workbook.tables.index(self)
42
- end
43
-
44
- # The part name for this table
45
- # @return [String]
46
- def pn
47
- "#{TABLE_PN % (index+1)}"
48
- end
49
-
50
- # The relation reference id for this table
51
- # @return [String]
52
- def rId
53
- "rId#{index+1}"
54
- end
55
-
56
- # The name of the Table.
57
- # @param [String, Cell] v
58
- # @return [Title]
59
- def name=(v)
60
- DataTypeValidator.validate "#{self.class}.name", [String], v
61
- if v.is_a?(String)
62
- @name = v
63
- end
64
- end
65
-
66
-
67
- # The style for the table.
68
- # TODO
69
- # def style=(v) DataTypeValidator.validate "Chart.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
70
-
71
- # Table Serialization
72
- # serializes the table
73
- def to_xml
74
- builder = Nokogiri::XML::Builder.new(:encoding => ENCODING) do |xml|
75
- xml.table(:xmlns => XML_NS, :id => index+1, :name => @name, :displayName => @name.gsub(/\s/,'_'), :ref => @ref, :totalsRowShown => 0) {
76
- xml.autoFilter :ref=>@ref
77
- xml.tableColumns(:count => header_cells.length) {
78
- header_cells.each_with_index do |cell,index|
79
- xml.tableColumn :id => index+1, :name => cell.value
80
- end
81
- }
82
- xml.tableStyleInfo :showFirstColumn=>"0", :showLastColumn=>"0", :showRowStripes=>"1", :showColumnStripes=>"0", :name=>"TableStyleMedium9"
83
- #TODO implement tableStyleInfo
84
- }
85
- end
86
- builder.to_xml(:save_with => 0)
87
- end
88
-
89
- private
90
-
91
- # get the header cells (hackish)
92
- def header_cells
93
- header = @ref.gsub(/^(\w+)(\d+)\:(\w+)\d+$/, '\1\2:\3\2')
94
- @sheet[header]
95
- end
96
- end
97
- end
@@ -1,118 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
- xmlns="http://purl.org/dc/elements/1.1/"
4
- targetNamespace="http://purl.org/dc/elements/1.1/"
5
- elementFormDefault="qualified"
6
- attributeFormDefault="unqualified">
7
-
8
- <xs:annotation>
9
- <xs:documentation xml:lang="en">
10
- DCMES 1.1 XML Schema
11
- XML Schema for http://purl.org/dc/elements/1.1/ namespace
12
-
13
- Created 2003-04-02
14
-
15
- Created by
16
-
17
- Tim Cole (t-cole3@uiuc.edu)
18
- Tom Habing (thabing@uiuc.edu)
19
- Jane Hunter (jane@dstc.edu.au)
20
- Pete Johnston (p.johnston@ukoln.ac.uk),
21
- Carl Lagoze (lagoze@cs.cornell.edu)
22
-
23
- This schema declares XML elements for the 15 DC elements from the
24
- http://purl.org/dc/elements/1.1/ namespace.
25
-
26
- It defines a complexType SimpleLiteral which permits mixed content
27
- and makes the xml:lang attribute available. It disallows child elements by
28
- use of minOcccurs/maxOccurs.
29
-
30
- However, this complexType does permit the derivation of other complexTypes
31
- which would permit child elements.
32
-
33
- All elements are declared as substitutable for the abstract element any,
34
- which means that the default type for all elements is dc:SimpleLiteral.
35
-
36
- </xs:documentation>
37
-
38
- </xs:annotation>
39
-
40
-
41
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
42
- schemaLocation="http://www.w3.org/2001/03/xml.xsd">
43
- </xs:import>
44
-
45
- <xs:complexType name="SimpleLiteral">
46
- <xs:annotation>
47
- <xs:documentation xml:lang="en">
48
- This is the default type for all of the DC elements.
49
- It permits text content only with optional
50
- xml:lang attribute.
51
- Text is allowed because mixed="true", but sub-elements
52
- are disallowed because minOccurs="0" and maxOccurs="0"
53
- are on the xs:any tag.
54
-
55
- This complexType allows for restriction or extension permitting
56
- child elements.
57
- </xs:documentation>
58
- </xs:annotation>
59
-
60
- <xs:complexContent mixed="true">
61
- <xs:restriction base="xs:anyType">
62
- <xs:sequence>
63
- <xs:any processContents="lax" minOccurs="0" maxOccurs="0"/>
64
- </xs:sequence>
65
- <xs:attribute ref="xml:lang" use="optional"/>
66
- </xs:restriction>
67
- </xs:complexContent>
68
- </xs:complexType>
69
-
70
- <xs:element name="any" type="SimpleLiteral" abstract="true"/>
71
-
72
- <xs:element name="title" substitutionGroup="any"/>
73
- <xs:element name="creator" substitutionGroup="any"/>
74
- <xs:element name="subject" substitutionGroup="any"/>
75
- <xs:element name="description" substitutionGroup="any"/>
76
- <xs:element name="publisher" substitutionGroup="any"/>
77
- <xs:element name="contributor" substitutionGroup="any"/>
78
- <xs:element name="date" substitutionGroup="any"/>
79
- <xs:element name="type" substitutionGroup="any"/>
80
- <xs:element name="format" substitutionGroup="any"/>
81
- <xs:element name="identifier" substitutionGroup="any"/>
82
- <xs:element name="source" substitutionGroup="any"/>
83
- <xs:element name="language" substitutionGroup="any"/>
84
- <xs:element name="relation" substitutionGroup="any"/>
85
- <xs:element name="coverage" substitutionGroup="any"/>
86
- <xs:element name="rights" substitutionGroup="any"/>
87
-
88
- <xs:group name="elementsGroup">
89
- <xs:annotation>
90
- <xs:documentation xml:lang="en">
91
- This group is included as a convenience for schema authors
92
- who need to refer to all the elements in the
93
- http://purl.org/dc/elements/1.1/ namespace.
94
- </xs:documentation>
95
- </xs:annotation>
96
-
97
- <xs:sequence>
98
- <xs:choice minOccurs="0" maxOccurs="unbounded">
99
- <xs:element ref="any"/>
100
- </xs:choice>
101
- </xs:sequence>
102
- </xs:group>
103
-
104
- <xs:complexType name="elementContainer">
105
- <xs:annotation>
106
- <xs:documentation xml:lang="en">
107
- This complexType is included as a convenience for schema authors who need to define a root
108
- or container element for all of the DC elements.
109
- </xs:documentation>
110
- </xs:annotation>
111
-
112
- <xs:choice>
113
- <xs:group ref="elementsGroup"/>
114
- </xs:choice>
115
- </xs:complexType>
116
-
117
-
118
- </xs:schema>