1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <xs:schema xmlns:
xs=
"http://www.w3.org/2001/XMLSchema"
3 xmlns:
gnm=
"http://www.gnumeric.org/v10.dtd"
4 xmlns:
office=
"urn:oasis:names:tc:opendocument:xmlns:office:1.0"
5 targetNamespace=
"http://www.gnumeric.org/v10.dtd"
6 elementFormDefault=
"qualified"
7 attributeFormDefault=
"unqualified">
10 <xs:documentation xml:
lang=
"en">
11 Schema for gnumeric spreadsheet documents
12 Created for Gnumeric
1.2.2,
13 Based on gnumeric source code and sample gnumeric documents
14 Author: Marc Johnson (marc_johnson27591@hotmail.com)
16 updated for
1.4.2 in Feb
2005
17 updated for
1.6.0 in Sept
2005
18 updated for
1.7.1 in Jun
2006
19 updated for
1.7.11 in Jun
2007 jody@gnome.org
20 updated for
1.7.91 in Nov
2007 jody@gnome.org
24 <xs:element name=
"Workbook" type=
"gnm:Workbook"/>
26 <xs:complexType name=
"Version">
27 <xs:attribute name=
"Epoch" type=
"xs:nonNegativeInteger" use=
"required"/>
28 <xs:attribute name=
"Major" type=
"xs:nonNegativeInteger" use=
"required"/>
29 <xs:attribute name=
"Minor" type=
"xs:nonNegativeInteger" use=
"required"/>
30 <xs:attribute name=
"Full" type=
"xs:string" use=
"required"/>
31 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
34 <xs:complexType name=
"Workbook">
36 <xs:element name=
"Version" type=
"gnm:Version" minOccurs=
"0" maxOccurs=
"1"/>
37 <xs:element name=
"Attributes" type=
"gnm:Attributes"/>
39 <!-- ignore office:document-meta -->
40 <xs:any minOccurs=
"0" maxOccurs=
"unbounded"
41 namespace=
"##other" processContents=
"lax"/>
43 <!-- ancient files lack this, modern files require it -->
44 <xs:element name=
"SheetNameIndex" type=
"gnm:SheetNameIndex" minOccurs=
"0" maxOccurs=
"1"/>
46 <xs:element name=
"Names" type=
"gnm:Names" minOccurs=
"0" maxOccurs=
"1"/>
48 <!-- Deprecated, moved to Calculation and expanded in 1.7.11
49 Valid value == 1904, anything else == Lotus:1900 -->
50 <xs:element name=
"DateConvention" type=
"xs:int" minOccurs=
"0" maxOccurs=
"1"/>
52 <!-- preferred height and width -->
53 <xs:element name=
"Geometry">
55 <xs:attribute name=
"Width" type=
"xs:nonNegativeInteger" use=
"optional"/>
56 <xs:attribute name=
"Height" type=
"xs:nonNegativeInteger" use=
"optional"/>
57 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
60 <xs:element name=
"Sheets" type=
"gnm:Sheets"/>
61 <!-- which sheet was selected when the spreadsheet was saved? -->
62 <xs:element name=
"UIData">
64 <xs:attribute name=
"SelectedTab" type=
"xs:nonNegativeInteger" use=
"required"/>
65 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
68 <xs:element name=
"Calculation" minOccurs=
"0" maxOccurs=
"1">
70 <xs:attribute name=
"ManualRecalc" type=
"xs:boolean"/>
71 <xs:attribute name=
"EnableIteration" type=
"xs:boolean"/>
72 <xs:attribute name=
"MaxIterations" type=
"xs:nonNegativeInteger"/>
73 <xs:attribute name=
"IterationTolerance" type=
"xs:double"/>
74 <xs:attribute name=
"DateConvention" type=
"gnm:DateConvention" use=
"optional" default=
"Lotus:1900"/>
75 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
79 <!-- version number should be v10 - - >
80 <xs:attribute name="gnm" type="gnm:namespace" use="required"/> -->
81 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
84 <!-- How values are mapped to dates. All date functions are affected -->
85 <xs:simpleType name=
"DateConvention">
86 <xs:restriction base=
"xs:string">
87 <xs:enumeration value=
"Lotus:1900"/>
88 <xs:enumeration value=
"Apple:1904"/>
90 <!-- future values. currently treated as Lotus:1900 -->
91 <xs:enumeration value=
"ODF:1899"/>
95 <xs:simpleType name=
"CellRef">
96 <xs:restriction base=
"xs:string">
97 <xs:pattern value=
"[A-Z]+\d+"/>
101 <xs:complexType name=
"Names">
103 <xs:element name=
"Name" minOccurs=
"0" maxOccurs=
"unbounded">
106 <!-- an oversight in the sax exporter (fixed in 1.4.3)
107 leaves off the namespace. Handle both formats.
110 <xs:element name=
"name" type=
"xs:string"/>
111 <xs:element name=
"name" type=
"xs:string" form=
"unqualified"/>
114 <xs:element name=
"value" type=
"xs:string"/>
115 <xs:element name=
"value" type=
"xs:string" form=
"unqualified"/>
118 <xs:element name=
"position" type=
"xs:string"/>
119 <xs:element name=
"position" type=
"xs:string" form=
"unqualified"/>
127 <xs:complexType name=
"Attributes">
129 <xs:element name=
"Attribute" minOccurs=
"0" maxOccurs=
"unbounded">
132 <xs:element name=
"type" minOccurs=
"0" maxOccurs=
"1" type=
"gnm:AttributeType"/><!-- must be 4 -->
133 <xs:element name=
"name" minOccurs=
"1" maxOccurs=
"1" type=
"xs:string"/>
134 <xs:element name=
"value" minOccurs=
"1" maxOccurs=
"1" type=
"xs:string"/>
140 <xs:simpleType name=
"AttributeType">
141 <xs:restriction base=
"xs:integer">
142 <xs:minInclusive value=
"4"/>
143 <xs:maxInclusive value=
"4"/>
147 <xs:complexType name=
"SheetNameIndex">
149 <xs:element name=
"SheetName" minOccurs=
"0" maxOccurs=
"unbounded" type=
"xs:string"/>
153 <xs:complexType name=
"Sheets">
155 <xs:element name=
"Sheet" minOccurs=
"0" maxOccurs=
"unbounded">
158 <!-- name of the sheet -->
159 <xs:element name=
"Name" type=
"xs:string"/>
160 <!-- maximum column used -->
161 <xs:element name=
"MaxCol" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"1"/>
162 <!-- maximum row used -->
163 <xs:element name=
"MaxRow" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"1"/>
164 <!-- most recently used zoom factor -->
165 <xs:element name=
"Zoom" type=
"xs:double"/>
166 <xs:element name=
"Names" type=
"gnm:Names" minOccurs=
"0" maxOccurs=
"1"/>
167 <xs:element name=
"PrintInformation" type=
"gnm:PrintInformation"/>
168 <xs:element name=
"Styles" type=
"gnm:Styles"/>
169 <xs:element name=
"Cols">
172 <xs:element name=
"ColInfo" type=
"gnm:Col_Row" minOccurs=
"0" maxOccurs=
"unbounded"/>
174 <xs:attribute name=
"DefaultSizePts" type=
"xs:double" use=
"required"/>
175 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
178 <xs:element name=
"Rows">
181 <xs:element name=
"RowInfo" type=
"gnm:Col_Row" minOccurs=
"0" maxOccurs=
"unbounded"/>
183 <xs:attribute name=
"DefaultSizePts" type=
"xs:double" use=
"required"/>
184 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
187 <xs:element name=
"Selections" type=
"gnm:Selections"/>
188 <xs:element name=
"Objects" type=
"gnm:Objects" minOccurs=
"0" maxOccurs=
"1"/>
189 <xs:element name=
"Cells" type=
"gnm:Cells"/>
190 <xs:element name=
"MergedRegions" type=
"gnm:MergedRegions" minOccurs=
"0" maxOccurs=
"1"/>
191 <xs:element name=
"SheetLayout" type=
"gnm:SheetLayout" minOccurs=
"0" maxOccurs=
"1"/>
192 <xs:element name=
"Filters" type=
"gnm:Filters" minOccurs=
"0" maxOccurs=
"1"/>
193 <xs:element name=
"Solver" type=
"gnm:Solver" minOccurs=
"0" maxOccurs=
"1"/>
194 <xs:element name=
"Scenarios" type=
"gnm:Scenarios" minOccurs=
"0" maxOccurs=
"1"/>
196 <!-- note: xs:boolean values can be true, false, 1, 0;
197 gnumeric, in this element, always generates 'true' or
198 'false' for its attributes
200 <xs:attribute name=
"DisplayFormulas" type=
"xs:boolean" use=
"optional" default=
"false"/>
201 <xs:attribute name=
"HideZero" type=
"xs:boolean" use=
"optional" default=
"false"/>
202 <xs:attribute name=
"HideGrid" type=
"xs:boolean" use=
"optional" default=
"false"/>
203 <xs:attribute name=
"HideColHeader" type=
"xs:boolean" use=
"optional" default=
"false"/>
204 <xs:attribute name=
"HideRowHeader" type=
"xs:boolean" use=
"optional" default=
"false"/>
205 <xs:attribute name=
"DisplayOutlines" type=
"xs:boolean" use=
"optional" default=
"true"/>
206 <xs:attribute name=
"OutlineSymbolsBelow" type=
"xs:boolean" use=
"optional" default=
"true"/>
207 <xs:attribute name=
"OutlineSymbolsRight" type=
"xs:boolean" use=
"optional" default=
"true"/>
208 <xs:attribute name=
"Visibility" type=
"gnm:SheetVisibility" use=
"optional" default=
"GNM_SHEET_VISIBILITY_VISIBLE"/>
209 <xs:attribute name=
"RTL_Layout" type=
"xs:boolean" use=
"optional" default=
"false"/>
210 <xs:attribute name=
"Protected" type=
"xs:boolean" use=
"optional" default=
"false"/>
211 <xs:attribute name=
"TabColor" type=
"gnm:color" use=
"optional"/>
212 <xs:attribute name=
"TabTextColor" type=
"gnm:color" use=
"optional"/>
213 <xs:attribute name=
"GridColor" type=
"gnm:color" use=
"optional"/>
214 <xs:attribute name=
"ExprConvention" type=
"gnm:ExprConvention" use=
"optional" default=
"gnumeric:A1"/>
215 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
221 <!-- How expressions are _displayed_ no impact on evaluation -->
222 <xs:simpleType name=
"ExprConvention">
223 <xs:restriction base=
"xs:string">
224 <xs:enumeration value=
"gnumeric:A1"/>
225 <xs:enumeration value=
"gnumeric:R1C1"/>
227 <!-- future values, currently displayed as gnumeric:A1 -->
228 <xs:enumeration value=
"ODF:A1"/>
229 <xs:enumeration value=
"Lotus:A1"/>
233 <xs:complexType name=
"PrintInformation">
234 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
235 <xs:element name=
"Margins">
238 <xs:element name=
"top" type=
"gnm:margin"/>
239 <xs:element name=
"bottom" type=
"gnm:margin"/>
240 <xs:element name=
"left" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
241 <xs:element name=
"right" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
242 <xs:element name=
"header" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
243 <xs:element name=
"footer" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
247 <xs:element name=
"Scale">
249 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
250 <xs:attribute name=
"percentage" type=
"xs:double" use=
"optional"/>
251 <xs:attribute name=
"cols" type=
"xs:integer" />
252 <xs:attribute name=
"rows" type=
"xs:integer" />
253 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
256 <!-- center vertically -->
257 <xs:element name=
"vcenter">
259 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
260 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
263 <!-- center horizontally -->
264 <xs:element name=
"hcenter">
266 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
267 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
270 <!-- print grid lines -->
271 <xs:element name=
"grid">
273 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
274 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
277 <!-- print even if only styles -->
278 <xs:element name=
"even_if_only_styles">
280 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
281 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
284 <!-- print in monochrome -->
285 <xs:element name=
"monochrome">
287 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
288 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
291 <!-- print in draft mode -->
292 <xs:element name=
"draft">
294 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
295 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
298 <!-- print titles -->
299 <xs:element name=
"titles">
301 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
302 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
306 <!-- repeat range -->
307 <xs:element name=
"repeat_top" minOccurs=
"0" maxOccurs=
"1">
309 <xs:attribute name=
"value" type=
"xs:string" use=
"required"/>
310 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
313 <!-- repeat range -->
314 <xs:element name=
"repeat_left" minOccurs=
"0" maxOccurs=
"1">
316 <xs:attribute name=
"value" type=
"xs:string" use=
"required"/>
317 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
320 <xs:element name=
"order" type=
"gnm:print_ordering"/>
321 <xs:element name=
"orientation" type=
"gnm:print_orientation"/>
322 <xs:element name=
"Header" type=
"gnm:HeaderFooter"/>
323 <xs:element name=
"Footer" type=
"gnm:HeaderFooter"/>
324 <!-- typical values are A4, US-Letter -->
325 <xs:element name=
"paper" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
326 <!-- do not print this sheet when "all" is selected in the job -->
327 <xs:element name=
"do_not_print" minOccurs=
"0" maxOccurs=
"1">
329 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
332 <xs:element name=
"print-to-uri" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
333 <xs:element name=
"vPageBreaks" type=
"gnm:PageBreaks" minOccurs=
"0" maxOccurs=
"1"/><!-- between rows -->
334 <xs:element name=
"hPageBreaks" type=
"gnm:PageBreaks" minOccurs=
"0" maxOccurs=
"1"/><!-- between cols -->
336 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
339 <xs:complexType name=
"HeaderFooter">
340 <xs:attribute name=
"Left" type=
"xs:string" use=
"optional"/>
341 <xs:attribute name=
"Middle" type=
"xs:string" use=
"optional"/>
342 <xs:attribute name=
"Right" type=
"xs:string" use=
"optional"/>
343 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
346 <xs:complexType name=
"PageBreaks">
348 <xs:element name=
"break" minOccurs=
"0" maxOccurs=
"unbounded">
350 <xs:attribute name=
"pos" type=
"xs:nonNegativeInteger" use=
"required"/>
351 <xs:attribute name=
"type" type=
"gnm:PageBreakType" use=
"optional" default=
"auto"/>
355 <xs:attribute name=
"count" type=
"xs:nonNegativeInteger" use=
"optional"/>
356 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
359 <xs:simpleType name=
"PageBreakType">
360 <xs:restriction base=
"xs:string">
361 <xs:enumeration value=
"auto"/>
362 <xs:enumeration value=
"manual"/>
363 <xs:enumeration value=
"data-slice"/>
367 <xs:complexType name=
"margin">
368 <xs:attribute name=
"Points" type=
"xs:double"/>
369 <xs:attribute name=
"PrefUnit" type=
"gnm:print_units"/>
370 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
373 <xs:simpleType name=
"print_units">
374 <xs:restriction base=
"xs:string">
375 <xs:enumeration value=
"mm"/>
376 <xs:enumeration value=
"cm"/>
377 <xs:enumeration value=
"in"/>
378 <xs:enumeration value=
"Pt"/>
379 <xs:enumeration value=
"Px"/>
380 <xs:enumeration value=
"points"/>
384 <xs:simpleType name=
"print_ordering">
385 <xs:restriction base=
"xs:string">
386 <!-- right, then down -->
387 <xs:enumeration value=
"r_then_d"/>
388 <!-- down, then right -->
389 <xs:enumeration value=
"d_then_r"/>
393 <xs:simpleType name=
"print_orientation">
394 <xs:restriction base=
"xs:string">
395 <xs:enumeration value=
"landscape"/>
396 <xs:enumeration value=
"portrait"/>
400 <xs:complexType name=
"Styles">
402 <xs:element name=
"StyleRegion" minOccurs=
"0" maxOccurs=
"unbounded">
405 <xs:element name=
"Style" type=
"gnm:Style" minOccurs=
"1" maxOccurs=
"1"/>
407 <xs:attribute name=
"startCol" type=
"xs:nonNegativeInteger" use=
"required"/>
408 <xs:attribute name=
"startRow" type=
"xs:nonNegativeInteger" use=
"required"/>
409 <xs:attribute name=
"endCol" type=
"xs:nonNegativeInteger" use=
"required"/>
410 <xs:attribute name=
"endRow" type=
"xs:nonNegativeInteger" use=
"required"/>
411 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
417 <xs:complexType name=
"Style">
419 <xs:element name=
"Font" minOccurs=
"0" maxOccurs=
"1">
422 <xs:extension base=
"xs:string">
423 <xs:attribute name=
"Unit" type=
"xs:double" use=
"required"/>
424 <xs:attribute name=
"Bold" type=
"xs:boolean" use=
"required"/>
425 <xs:attribute name=
"Italic" type=
"xs:boolean" use=
"required"/>
426 <xs:attribute name=
"Underline" type=
"gnm:underline" use=
"required"/>
427 <xs:attribute name=
"StrikeThrough" type=
"xs:boolean" use=
"required"/>
428 <xs:attribute name=
"Script" type=
"gnm:script" use=
"required"/>
429 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
434 <xs:element name=
"HyperLink" minOccurs=
"0" maxOccurs=
"1">
436 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
437 <xs:attribute name=
"target" type=
"xs:string" use=
"optional"/>
438 <xs:attribute name=
"tip" type=
"xs:string" use=
"optional"/>
439 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
442 <xs:element name=
"StyleBorder" minOccurs=
"0" maxOccurs=
"1">
445 <xs:element name=
"Top" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
446 <xs:element name=
"Bottom" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
447 <xs:element name=
"Left" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
448 <xs:element name=
"Right" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
449 <xs:element name=
"Diagonal" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
450 <xs:element name=
"Rev-Diagonal" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
454 <xs:element name=
"Validation" minOccurs=
"0" maxOccurs=
"1">
457 <xs:element name=
"Expression0" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
458 <xs:element name=
"Expression1" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
460 <xs:attribute name=
"Style" type=
"xs:integer" use=
"required"/>
461 <xs:attribute name=
"Type" type=
"xs:integer" use=
"required"/>
462 <xs:attribute name=
"Operator" type=
"xs:integer" use=
"optional"/>
463 <xs:attribute name=
"AllowBlank" type=
"xs:boolean" use=
"optional"/>
464 <xs:attribute name=
"UseDropdown" type=
"xs:boolean" use=
"optional"/>
465 <xs:attribute name=
"Title" type=
"xs:string" use=
"optional"/>
466 <xs:attribute name=
"Message" type=
"xs:string" use=
"optional"/>
467 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
471 <xs:element name=
"InputMessage" minOccurs=
"0" maxOccurs=
"1">
473 <xs:attribute name=
"Title" type=
"xs:string" use=
"optional"/>
474 <xs:attribute name=
"Message" type=
"xs:string" use=
"optional"/>
475 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
478 <xs:element name=
"Condition" minOccurs=
"0" maxOccurs=
"unbounded">
481 <xs:element name=
"Expression0" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
482 <xs:element name=
"Expression1" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
483 <xs:element name=
"Style" type=
"gnm:Style" minOccurs=
"1" maxOccurs=
"1"/>
485 <xs:attribute name=
"Operator" type=
"gnm:CondOp" use=
"required"/>
486 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
490 <xs:attribute name=
"HAlign" type=
"gnm:horizontal_alignment"/>
491 <xs:attribute name=
"VAlign" type=
"gnm:vertical_alignment"/>
492 <xs:attribute name=
"WrapText" type=
"xs:boolean" />
494 <!-- should be bool, but some files have odd truth values -->
495 <xs:attribute name=
"ShrinkToFit" type=
"xs:integer" />
497 <xs:attribute name=
"Rotation" type=
"xs:integer" use=
"optional"/>
498 <xs:attribute name=
"Orient" type=
"xs:integer" use=
"optional"/>
499 <xs:attribute name=
"Shade" type=
"gnm:Stipple" use=
"optional"/>
500 <xs:attribute name=
"Indent" type=
"xs:integer" use=
"optional"/>
501 <xs:attribute name=
"Locked" type=
"xs:boolean" use=
"optional"/>
502 <xs:attribute name=
"Hidden" type=
"xs:boolean" use=
"optional"/>
503 <xs:attribute name=
"Fore" type=
"gnm:color" use=
"optional"/>
504 <xs:attribute name=
"Back" type=
"gnm:color" use=
"optional"/>
505 <xs:attribute name=
"PatternColor" type=
"gnm:color" use=
"optional"/>
506 <xs:attribute name=
"Format" type=
"xs:string" use=
"optional"/>
507 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
510 <xs:complexType name=
"StyleBorderElement">
511 <xs:attribute name=
"Style" type=
"gnm:border_style" use=
"required"/>
512 <!-- Color is present when Style is not 0 -->
513 <xs:attribute name=
"Color" type=
"gnm:color" use=
"optional"/>
514 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
517 <xs:simpleType name=
"border_style">
518 <xs:restriction base=
"xs:integer">
531 12 = MEDIUM_DASH_DOT_DOT
532 13 = SLANTED_DASH_DOT
534 <xs:minInclusive value=
"0"/>
535 <xs:maxInclusive value=
"13"/>
539 <xs:simpleType name=
"underline">
540 <xs:restriction base=
"xs:integer">
545 <xs:minInclusive value=
"0"/>
546 <xs:maxInclusive value=
"2"/>
550 <xs:simpleType name=
"script">
551 <xs:restriction base=
"xs:integer">
552 <!-- GO_FONT_SCRIPT_SUB = -1,
553 GO_FONT_SCRIPT_STANDARD = 0,
554 GO_FONT_SCRIPT_SUPER = 1
556 <xs:minInclusive value=
"-1"/>
557 <xs:maxInclusive value=
"1"/>
561 <xs:simpleType name=
"horizontal_alignment">
562 <xs:restriction base=
"xs:integer">
563 <!-- this is a bit map as follows:
570 64 = CENTER ACROSS SELECTION
573 <xs:minInclusive value=
"1"/>
574 <xs:maxInclusive value=
"128"/>
578 <xs:simpleType name=
"vertical_alignment">
579 <xs:restriction base=
"xs:integer">
580 <!-- this is a bit map as follows:
587 <xs:minInclusive value=
"1"/>
588 <xs:maxInclusive value=
"16"/>
592 <xs:simpleType name=
"Stipple">
593 <xs:restriction base=
"xs:integer">
594 <!-- the values are defined as follows:
602 7 = Horizontal Stripe
604 9 = Reverse Diagonal Stripe
606 11 = Diagonal Crosshatch
607 12 = Thick Diagonal Crosshatch
608 13 = Thin Horizontal Stripe
609 14 = Thin Vertical Stripe
610 15 = Thin Reverse Diagonal Stripe
611 16 = Thin Diagonal Stripe
613 18 = Thin Diagonal Crosshatch
614 19 = Applix small circle
615 20 = Applix semicircle
616 21 = Applix small thatch
617 22 = Applix round thatch
622 <xs:minInclusive value=
"0"/>
623 <xs:maxInclusive value=
"25"/>
627 <xs:simpleType name=
"color">
628 <xs:restriction base=
"xs:string">
629 <!-- colors in hex, 16 bits red, green, then blue -->
630 <xs:pattern value=
"[0-9A-F]{1,4}:[0-9A-F]{1,4}:[0-9A-F]{1,4}"/>
634 <xs:complexType name=
"Col_Row">
635 <!-- column/row number -->
636 <xs:attribute name=
"No" type=
"xs:nonNegativeInteger" use=
"required"/>
637 <!-- size in points -->
638 <xs:attribute name=
"Unit" type=
"xs:double" use=
"required"/>
639 <!-- DEPRECATED in 1.7.1 : top/left margin (no unit it does not scale) -->
640 <xs:attribute name=
"MarginA" type=
"gnm:col_row_margin" use=
"optional"/>
641 <!-- DEPRECATED in 1.7.1 : botton/right margin (no unit it does not scale) -->
642 <xs:attribute name=
"MarginB" type=
"gnm:col_row_margin" use=
"optional"/>
643 <!-- true if size is explicitly set -->
644 <xs:attribute name=
"HardSize" type=
"xs:boolean" use=
"optional" default=
"0"/>
645 <xs:attribute name=
"Hidden" type=
"xs:boolean" use=
"optional" default=
"0"/>
646 <xs:attribute name=
"Collapsed" type=
"xs:boolean" use=
"optional" default=
"0"/>
647 <xs:attribute name=
"OutlineLevel" type=
"xs:integer" use=
"optional" default=
"0"/>
648 <!-- The number of consequitive identically sized cols/rows -->
649 <xs:attribute name=
"Count" type=
"xs:integer" use=
"optional" default=
"1"/>
650 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
653 <xs:simpleType name=
"col_row_margin">
654 <xs:restriction base=
"xs:integer">
655 <xs:minInclusive value=
"0"/>
656 <xs:maxInclusive value=
"7"/>
660 <xs:complexType name=
"Selections">
662 <xs:element name=
"Selection" minOccurs=
"0" maxOccurs=
"unbounded">
664 <xs:attribute name=
"startCol" type=
"xs:nonNegativeInteger" use=
"required"/>
665 <xs:attribute name=
"startRow" type=
"xs:nonNegativeInteger" use=
"required"/>
666 <xs:attribute name=
"endCol" type=
"xs:nonNegativeInteger" use=
"required"/>
667 <xs:attribute name=
"endRow" type=
"xs:nonNegativeInteger" use=
"required"/>
668 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
672 <xs:attribute name=
"CursorCol" type=
"xs:nonNegativeInteger" use=
"required"/>
673 <xs:attribute name=
"CursorRow" type=
"xs:nonNegativeInteger" use=
"required"/>
674 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
677 <xs:attributeGroup name=
"ObjectAnchor">
678 <xs:attribute name=
"ObjectBound" type=
"xs:string" use=
"required"/>
679 <xs:attribute name=
"ObjectOffset" type=
"gnm:offsets" use=
"required"/>
680 <xs:attribute name=
"ObjectAnchorType" type=
"gnm:anchor_type" use=
"optional"/>
681 <xs:attribute name=
"Direction" type=
"gnm:direction" use=
"required"/>
682 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
685 <xs:attributeGroup name=
"ObjectAdjustmentProps">
686 <xs:attribute name=
"Min" type=
"xs:double" use=
"required"/>
687 <xs:attribute name=
"Max" type=
"xs:double" use=
"required"/>
688 <xs:attribute name=
"Inc" type=
"xs:double" use=
"required"/>
689 <xs:attribute name=
"Page" type=
"xs:double" use=
"required"/>
690 <xs:attribute name=
"Value" type=
"xs:double" use=
"required"/>
691 <xs:attribute name=
"Input" type=
"xs:string" use=
"required"/>
692 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
695 <xs:complexType name=
"Objects">
696 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
697 <xs:element name=
"CellComment">
699 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
700 <xs:attribute name=
"Author" type=
"xs:string" use=
"required"/>
701 <xs:attribute name=
"Text" type=
"xs:string" use=
"required"/>
702 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
705 <xs:element name=
"SheetObjectFilled">
707 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
708 <xs:attribute name=
"OutlineColor" type=
"gnm:color" use=
"required"/>
709 <xs:attribute name=
"FillColor" type=
"gnm:color" use=
"required"/>
710 <xs:attribute name=
"Type" type=
"gnm:objectfilled" use=
"required"/>
711 <xs:attribute name=
"Width" type=
"xs:positiveInteger" use=
"required"/>
712 <!-- the arrow shape attributes are only used if the type is
715 <xs:attribute name=
"ArrowShapeA" type=
"xs:double" use=
"optional"/>
716 <xs:attribute name=
"ArrowShapeB" type=
"xs:double" use=
"optional"/>
717 <xs:attribute name=
"ArrowShapeC" type=
"xs:double" use=
"optional"/>
718 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
723 <xs:element name=
"SheetWidgetButton">
725 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
726 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
727 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
730 <xs:element name=
"SheetWidgetCheckbox">
732 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
733 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
734 <xs:attribute name=
"Value" type=
"xs:integer" use=
"required"/>
735 <xs:attribute name=
"Input" type=
"xs:string" use=
"required"/>
736 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
739 <xs:element name=
"SheetWidgetToggleButton" minOccurs=
"0" maxOccurs=
"unbounded">
741 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
742 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
743 <xs:attribute name=
"Value" type=
"xs:integer" use=
"required"/>
744 <xs:attribute name=
"Input" type=
"xs:string" use=
"required"/>
745 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
749 <xs:element name=
"SheetWidgetScrollbar">
751 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
752 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
753 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
756 <xs:element name=
"SheetWidgetSpinbutton">
758 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
759 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
760 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
763 <xs:element name=
"SheetWidgetSlider" minOccurs=
"0" maxOccurs=
"unbounded">
765 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
766 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
767 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
771 <xs:element name=
"SheetObjectImage">
774 <xs:element name=
"Content" form=
"unqualified">
775 <xs:complexType mixed=
"true">
776 <xs:attribute name=
"image-type" type=
"xs:string" use=
"required"/>
777 <xs:attribute name=
"size-bytes" type=
"xs:int" use=
"optional"/>
778 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
782 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
783 <xs:attribute name=
"crop-top" type=
"xs:double" use=
"required"/>
784 <xs:attribute name=
"crop-bottom" type=
"xs:double" use=
"required"/>
785 <xs:attribute name=
"crop-left" type=
"xs:double" use=
"required"/>
786 <xs:attribute name=
"crop-right" type=
"xs:double" use=
"required"/>
787 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
790 <xs:element name=
"SheetObjectGraph">
792 <xs:choice minOccurs=
"1" maxOccurs=
"1">
793 <xs:element name=
"GogObject" type=
"gnm:GogObject"/>
794 <xs:element name=
"GogObject" type=
"gnm:GogObject" form=
"unqualified"/>
796 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
797 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
800 <xs:element name=
"SheetWidgetFrame">
802 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
803 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
806 <xs:element name=
"SheetWidgetLabel">
808 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
809 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
813 <!-- no longer supported -->
814 <xs:element name=
"SheetObjectBonobo">
816 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
822 <xs:complexType name=
"GogObject">
823 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
824 <xs:element name=
"property" type=
"gnm:GogProperty"/>
825 <xs:element name=
"property" type=
"gnm:GogProperty" form=
"unqualified"/>
826 <xs:element name=
"data" type=
"gnm:GOData"/>
827 <xs:element name=
"data" type=
"gnm:GOData" form=
"unqualified"/>
828 <xs:element name=
"GogObject" type=
"gnm:GogObject"/>
829 <xs:element name=
"GogObject" type=
"gnm:GogObject" form=
"unqualified"/>
831 <xs:attribute name=
"type" type=
"xs:string" use=
"optional"/>
832 <xs:attribute name=
"role" type=
"xs:string" use=
"optional"/>
835 <xs:complexType name=
"GogProperty" mixed=
"true">
837 <!-- children are unstructured -->
838 <xs:any minOccurs=
"0" maxOccurs=
"unbounded" processContents=
"lax"/>
840 <xs:attribute name=
"name" type=
"xs:string" use=
"required"/>
841 <xs:attribute name=
"type" type=
"xs:string" use=
"optional"/>
844 <xs:complexType name=
"GOData">
845 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
846 <xs:element name=
"dimension" type=
"gnm:GODimension"/>
847 <xs:element name=
"dimension" type=
"gnm:GODimension" form=
"unqualified"/>
850 <xs:complexType name=
"GODimension">
852 <xs:extension base=
"xs:string">
853 <xs:attribute name=
"id" type=
"xs:integer" use=
"required"/>
854 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
859 <xs:simpleType name=
"offsets">
860 <xs:restriction base=
"xs:string">
861 <!-- if this seems hard to read, it purportedly describes 4
862 space-separated doubles
864 <xs:pattern value=
"[+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)?"/>
868 <!-- As of 1.7.7 this is deprecated -->
869 <xs:simpleType name=
"anchor_type">
870 <xs:restriction base=
"xs:string">
871 <!-- if this seems hard to read, it purportedly describes 4
872 space-separated positive numbers
874 each number needs to be one of the following:
876 16 = PERCENTAGE_FROM_COLROW_START
877 32 = PTS_FROM_COLROW_START
878 33 = PTS_FROM_COLROW_END
881 <xs:pattern value=
"\d+ \d+ \d+ \d+"/>
885 <xs:simpleType name=
"direction">
886 <xs:restriction base=
"xs:string">
887 <xs:enumeration value=
"-1"/> <!-- unknown -->
888 <xs:enumeration value=
"0"/> <!-- up right -->
889 <xs:enumeration value=
"1"/> <!-- up left -->
890 <xs:enumeration value=
"16"/> <!-- down right -->
891 <xs:enumeration value=
"17"/> <!-- down left -->
892 <xs:enumeration value=
"255"/> <!-- unknown -->
896 <xs:simpleType name=
"objectfilled">
897 <xs:restriction base=
"xs:string">
898 <xs:enumeration value=
"1"/> <!-- line -->
899 <xs:enumeration value=
"2"/> <!-- arrow -->
900 <xs:enumeration value=
"101"/> <!-- box -->
901 <xs:enumeration value=
"102"/> <!-- oval -->
905 <xs:complexType name=
"Cells">
907 <xs:element name=
"Cell" minOccurs=
"0" maxOccurs=
"unbounded">
908 <!-- expressions are stored as entered, with a leading '='.
909 Once a shared expression has been defined, subsequent
910 Cell elements using that same shared expression simply
911 use the "ExprID" attribute to indicate which shared
912 expression is used, and no Content element is included
914 <xs:complexType mixed=
"true">
915 <!-- Compatibility for ancient 0.x format -->
917 <xs:element name=
"Content" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
920 <!-- Col and Row are sufficient for a cell that is an element of
921 an array of cells as long as it's not the top left cell -->
922 <xs:attribute name=
"Col" type=
"xs:nonNegativeInteger" use=
"required"/>
923 <xs:attribute name=
"Row" type=
"xs:nonNegativeInteger" use=
"required"/>
924 <!-- ExprID is only used to refer to a shared expression -->
925 <xs:attribute name=
"ExprID" type=
"xs:nonNegativeInteger" use=
"optional"/>
926 <!-- ValueType is not used if the cell contains an expression -->
927 <xs:attribute name=
"ValueType" type=
"gnm:ValueType" use=
"optional"/>
928 <!-- ValueFormat is apparently used only for cell-by-cell format overrides -->
929 <xs:attribute name=
"ValueFormat" type=
"xs:string" use=
"optional"/>
930 <!-- Cols and Rows are used to define an array of cells -->
931 <xs:attribute name=
"Cols" type=
"xs:positiveInteger" use=
"optional"/>
932 <xs:attribute name=
"Rows" type=
"xs:positiveInteger" use=
"optional"/>
933 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
939 <xs:simpleType name=
"ValueType">
940 <xs:restriction base=
"xs:string">
941 <xs:enumeration value=
"10"/> <!-- empty -->
942 <xs:enumeration value=
"20"/> <!-- boolean -->
943 <xs:enumeration value=
"30"/> <!-- integer -->
944 <xs:enumeration value=
"40"/> <!-- float -->
945 <xs:enumeration value=
"50"/> <!-- error -->
946 <xs:enumeration value=
"60"/> <!-- string -->
947 <xs:enumeration value=
"70"/> <!-- cellrange -->
948 <xs:enumeration value=
"80"/> <!-- array -->
952 <xs:simpleType name=
"CondOp">
953 <xs:restriction base=
"xs:nonNegativeInteger">
954 <xs:enumeration value=
"0"/> <!-- GNM_STYLE_COND_BETWEEN -->
955 <xs:enumeration value=
"1"/> <!-- GNM_STYLE_COND_NOT_BETWEEN -->
956 <xs:enumeration value=
"2"/> <!-- GNM_STYLE_COND_EQUAL -->
957 <xs:enumeration value=
"3"/> <!-- GNM_STYLE_COND_NOT_EQUAL -->
958 <xs:enumeration value=
"4"/> <!-- GNM_STYLE_COND_GT -->
959 <xs:enumeration value=
"5"/> <!-- GNM_STYLE_COND_LT -->
960 <xs:enumeration value=
"6"/> <!-- GNM_STYLE_COND_GTE -->
961 <xs:enumeration value=
"7"/> <!-- GNM_STYLE_COND_LTE -->
963 <!-- Arbitrary expr evaluated at EvalPos -->
964 <xs:enumeration value=
"8"/> <!-- GNM_STYLE_COND_CUSTOM -->
966 <!-- New in Gnumeric 1.8 -->
967 <xs:enumeration value=
"16"/> <!-- GNM_STYLE_COND_CONTAINS_STR -->
968 <xs:enumeration value=
"17"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_STR -->
969 <xs:enumeration value=
"18"/> <!-- GNM_STYLE_COND_BEGINS_WITH_STR -->
970 <xs:enumeration value=
"19"/> <!-- GNM_STYLE_COND_NOT_BEGINS_WITH_STR -->
971 <xs:enumeration value=
"20"/> <!-- GNM_STYLE_COND_ENDS_WITH_STR -->
972 <xs:enumeration value=
"21"/> <!-- GNM_STYLE_COND_NOT_ENDS_WITH_STR -->
974 <xs:enumeration value=
"22"/> <!-- GNM_STYLE_COND_CONTAINS_ERR -->
975 <xs:enumeration value=
"23"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_ERR -->
977 <xs:enumeration value=
"24"/> <!-- GNM_STYLE_COND_CONTAINS_BLANKS -->
978 <xs:enumeration value=
"25"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_BLANK -->
981 <xs:simpleType name=
"FilterFieldType">
982 <xs:restriction base=
"xs:string">
983 <xs:enumeration value=
"expr"/>
984 <xs:enumeration value=
"blanks"/>
985 <xs:enumeration value=
"nonblanks"/>
986 <xs:enumeration value=
"bucket"/>
989 <xs:simpleType name=
"FilterFieldOp">
990 <xs:restriction base=
"xs:string">
991 <xs:enumeration value=
"eq"/>
992 <xs:enumeration value=
"gt"/>
993 <xs:enumeration value=
"lt"/>
994 <xs:enumeration value=
"gte"/>
995 <xs:enumeration value=
"lte"/>
996 <xs:enumeration value=
"ne"/>
1000 <xs:complexType name=
"FilterField">
1001 <xs:attribute name=
"Index" type=
"xs:nonNegativeInteger" use=
"required"/>
1002 <xs:attribute name=
"Type" type=
"gnm:FilterFieldType" use=
"required"/>
1004 <!-- WARNING WARNING WARNING
1005 Value and ValueType have their senses
1006 reversed due to an old typo -->
1007 <!-- Only valid for Type=expr -->
1008 <xs:attribute name=
"Value0" type=
"gnm:ValueType" use=
"optional"/>
1009 <xs:attribute name=
"ValueType0" type=
"xs:string" use=
"optional"/>
1010 <xs:attribute name=
"Op0" type=
"gnm:FilterFieldOp" use=
"optional"/>
1011 <xs:attribute name=
"Value1" type=
"gnm:ValueType" use=
"optional"/>
1012 <xs:attribute name=
"ValueType1" type=
"xs:string" use=
"optional"/>
1013 <xs:attribute name=
"Op1" type=
"gnm:FilterFieldOp" use=
"optional"/>
1015 <!-- Only valid for Type=bucket -->
1016 <xs:attribute name=
"top" type=
"xs:boolean" use=
"optional"/> <!-- top vs bottom -->
1017 <xs:attribute name=
"items" type=
"xs:boolean" use=
"optional"/> <!-- top n vs top n% -->
1018 <xs:attribute name=
"count" type=
"xs:double" use=
"optional"/> <!-- top COUNT -->
1020 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1023 <xs:complexType name=
"Filters">
1025 <xs:element name=
"Filter" minOccurs=
"0" maxOccurs=
"unbounded">
1028 <xs:element name=
"Field" type=
"gnm:FilterField" minOccurs=
"0" maxOccurs=
"unbounded"/>
1030 <xs:attribute name=
"Area" type=
"xs:string" use=
"required"/>
1036 <xs:complexType name=
"MergedRegions">
1038 <xs:element name=
"Merge" type=
"xs:string" minOccurs=
"0" maxOccurs=
"unbounded"/>
1040 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1043 <xs:complexType name=
"Solver">
1045 <xs:element name=
"Constr" minOccurs=
"0" maxOccurs=
"unbounded">
1047 <xs:attribute name=
"Lcol" type=
"xs:nonNegativeInteger" use=
"required"/>
1048 <xs:attribute name=
"Lrow" type=
"xs:nonNegativeInteger" use=
"required"/>
1049 <xs:attribute name=
"Rcol" type=
"xs:nonNegativeInteger" use=
"required"/>
1050 <xs:attribute name=
"Rrow" type=
"xs:nonNegativeInteger" use=
"required"/>
1051 <xs:attribute name=
"Cols" type=
"xs:nonNegativeInteger" use=
"required"/>
1052 <xs:attribute name=
"Rows" type=
"xs:nonNegativeInteger" use=
"required"/>
1053 <xs:attribute name=
"Type" type=
"gnm:solver_constraint_t" use=
"required"/>
1054 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1058 <xs:attribute name=
"TargetCol" type=
"xs:integer" use=
"optional"/>
1059 <xs:attribute name=
"TargetRow" type=
"xs:integer" use=
"optional"/>
1060 <xs:attribute name=
"ProblemType" type=
"gnm:solver_problem_t" use=
"required"/>
1061 <xs:attribute name=
"Inputs" type=
"xs:string" use=
"required"/>
1062 <xs:attribute name=
"MaxTime" type=
"xs:integer" use=
"required"/>
1063 <xs:attribute name=
"MaxIter" type=
"xs:integer" use=
"required"/>
1064 <xs:attribute name=
"NonNeg" type=
"xs:boolean" use=
"required"/>
1065 <xs:attribute name=
"Discr" type=
"xs:boolean" use=
"required"/>
1066 <xs:attribute name=
"AutoScale" type=
"xs:boolean" use=
"required"/>
1067 <xs:attribute name=
"ShowIter" type=
"xs:boolean" use=
"required"/>
1068 <xs:attribute name=
"AnswerR" type=
"xs:boolean" use=
"required"/>
1069 <xs:attribute name=
"SensitivityR" type=
"xs:boolean" use=
"required"/>
1070 <xs:attribute name=
"LimitsR" type=
"xs:boolean" use=
"required"/>
1071 <xs:attribute name=
"PerformR" type=
"xs:boolean" use=
"required"/>
1072 <xs:attribute name=
"ProgramR" type=
"xs:boolean" use=
"required"/>
1073 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1076 <xs:simpleType name=
"solver_constraint_t">
1077 <xs:restriction base=
"xs:integer">
1078 <xs:enumeration value=
"0" /> <!-- none -->
1079 <xs:enumeration value=
"1" /> <!-- <= -->
1080 <xs:enumeration value=
"2" /> <!-- >= -->
1081 <xs:enumeration value=
"4" /> <!-- = -->
1082 <xs:enumeration value=
"8" /> <!-- Int -->
1083 <xs:enumeration value=
"16"/> <!-- boolean -->
1087 <xs:simpleType name=
"solver_problem_t">
1088 <xs:restriction base=
"xs:integer">
1089 <xs:enumeration value=
"0" /> <!-- SolverMinimize -->
1090 <xs:enumeration value=
"1" /> <!-- SolverMaximize -->
1091 <xs:enumeration value=
"2" /> <!-- SolverEqualTo -->
1094 <xs:simpleType name=
"SheetVisibility">
1095 <xs:restriction base=
"xs:string">
1096 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_VISIBLE"/>
1097 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_HIDDEN"/>
1098 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_VERY_HIDDEN"/>
1102 <xs:complexType name=
"Scenarios">
1104 <xs:element name=
"Scenario" minOccurs=
"0" maxOccurs=
"unbounded">
1107 <xs:element name=
"Name" type=
"xs:string"/>
1108 <xs:element name=
"Comment" type=
"xs:string"/>
1109 <xs:element name=
"CellsStr" type=
"xs:string"/>
1116 <xs:complexType name=
"SheetLayout">
1118 <xs:element name=
"FreezePanes" minOccurs=
"0" maxOccurs=
"1">
1120 <xs:attribute name=
"FrozenTopLeft" type=
"xs:string" use=
"required"/>
1121 <xs:attribute name=
"UnfrozenTopLeft" type=
"xs:string" use=
"required"/>
1125 <xs:attribute name=
"TopLeft" type=
"xs:string" use=
"required"/>
1126 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>