Add support for reading and writing SPV files.
[pspp] / src / output / spv / structure-xml.grammar
1 heading[root_heading]
2    :creator-version?
3    :creator?
4    :creation-date-time?
5    :lockReader=bool?
6    :schemaLocation?
7 => label pageSetup? (container | heading)*
8
9 heading
10    :creator-version?
11    :commandName?
12    :visibility[heading_visibility]=(collapsed)?
13    :locale?
14    :olang?
15 => label (container | heading)*
16
17 label => TEXT
18
19 container
20    :visibility=(visible | hidden)
21    :page-break-before=(always)?
22    :text-align=(left | center)?
23    :width=dimension
24 => label (table | container_text | graph | model | object | image)
25
26 text[container_text]
27   :type[text_type]=(title | log | text | page-title)
28   :commandName?
29   :creator-version?
30 => html
31
32 html :lang=(en) => TEXT
33
34 table
35    :VDPId?
36    :ViZmlSource?
37    :activePageId=int?
38    :commandName
39    :creator-version?
40    :displayFiltering=bool?
41    :maxNumCells=int?
42    :orphanTolerance=int?
43    :rowBreakNumber=int?
44    :subType
45    :tableId
46    :tableLookId?
47    :type[table_type]=(table | note | warning)
48 => tableProperties? tableStructure
49
50 tableProperties
51 => generalProperties footnoteProperties cellFormatProperties borderProperties printingProperties
52
53 generalProperties
54    :hideEmptyRows=bool?
55    :maximumColumnWidth=dimension?
56    :maximumRowWidth=dimension?
57    :minimumColumnWidth=dimension?
58    :minimumRowWidth=dimension?
59    :rowDimensionLabels=(inCorner | nested)?
60 => EMPTY
61
62 footnoteProperties
63    :markerPosition=(superscript | subscript)?
64    :numberFormat=(alphabetic | numeric)?
65 => EMPTY
66
67 cellFormatProperties => cell_style+
68
69 any[cell_style]
70    :alternatingColor=color?
71    :alternatingTextColor=color?
72 => style
73
74 style
75    :color=color?
76    :color2=color?
77    :font-family?
78    :font-size?
79    :font-style=(regular | italic)?
80    :font-weight=(regular | bold)?
81    :labelLocationVertical=(positive | negative | center)?
82    :margin-bottom=dimension?
83    :margin-left=dimension?
84    :margin-right=dimension?
85    :margin-top=dimension?
86    :textAlignment=(left | right | center | decimal | mixed)?
87    :decimal-offset=dimension?
88 => EMPTY
89
90 borderProperties => border_style+
91
92 any[border_style]
93    :borderStyleType=(none | solid | dashed | thick | thin | double)?
94    :color=color?
95 => EMPTY
96
97 printingProperties
98    :printAllLayers=bool?
99    :rescaleLongTableToFitPage=bool?
100    :rescaleWideTableToFitPage=bool?
101    :windowOrphanLines=int?
102    :continuationText?
103    :continuationTextAtBottom=bool?
104    :continuationTextAtTop=bool?
105    :printEachLayerOnSeparatePage=bool?
106 => EMPTY
107
108 tableStructure => path? dataPath
109
110 graph
111    :VDPId?
112    :ViZmlSource?
113    :commandName?
114    :creator-version?
115    :dataMapId?
116    :dataMapURI?
117    :editor?
118    :refMapId?
119    :refMapURI?
120 => dataPath? path
121
122 model
123    :PMMLContainerId
124    :PMMLId
125    :StatXMLContainerId
126    :VDPId
127    :auxiliaryViewName
128    :commandName
129    :creator-version
130    :mainViewName
131 => ViZml? path | pmmlContainerPath statsContainerPath
132
133 pmmlContainerPath => TEXT
134
135 statsContainerPath => TEXT
136
137 ViZml :viewName? => TEXT
138
139 dataPath => TEXT
140
141 path => TEXT
142
143 pageSetup
144    :initial-page-number=int?
145    :chart-size=(as-is | full-height | half-height | quarter-height | OTHER)?
146    :margin-left=dimension?
147    :margin-right=dimension?
148    :margin-top=dimension?
149    :margin-bottom=dimension?
150    :paper-height=dimension?
151    :paper-width=dimension?
152    :reference-orientation?
153    :space-after=dimension?
154 => pageHeader pageFooter
155
156 pageHeader => pageParagraph?
157
158 pageFooter => pageParagraph?
159
160 pageParagraph => pageParagraph_text
161
162 text[pageParagraph_text] :type=(title | text) => TEXT
163
164 object :type :uri => EMPTY
165
166 image :VDPId :commandName => dataPath