sisu 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/sisu +367 -0
- data/bin/sisugem +367 -0
- data/data/sisu/image/arrow_next_red.png +0 -0
- data/data/sisu/image/arrow_prev_red.png +0 -0
- data/data/sisu/image/arrow_up_red.png +0 -0
- data/data/sisu/image/b_bluebell.png +0 -0
- data/data/sisu/image/b_doc.png +0 -0
- data/data/sisu/image/b_epub.png +0 -0
- data/data/sisu/image/b_home.png +0 -0
- data/data/sisu/image/b_info.png +0 -0
- data/data/sisu/image/b_odf.png +0 -0
- data/data/sisu/image/b_pdf.png +0 -0
- data/data/sisu/image/b_search.png +0 -0
- data/data/sisu/image/b_toc.png +0 -0
- data/data/sisu/image/bullet_08.png +0 -0
- data/data/sisu/image/bullet_09.png +0 -0
- data/data/sisu/image/bullet_10.png +0 -0
- data/data/sisu/image/bullet_11.png +0 -0
- data/data/sisu/image/bullet_12.png +0 -0
- data/data/sisu/image/bullet_doc.png +0 -0
- data/data/sisu/image/bullet_red.png +0 -0
- data/data/sisu/image/dot_clear.png +0 -0
- data/data/sisu/image/dot_white.png +0 -0
- data/data/sisu/image/gplv3.png +0 -0
- data/data/sisu/image/gplv3_free_software.png +0 -0
- data/data/sisu/image/next.png +0 -0
- data/data/sisu/image/previous.png +0 -0
- data/data/sisu/image/rb7.ico +0 -0
- data/data/sisu/image/sisu.png +0 -0
- data/data/sisu/image/toctoc.png +0 -0
- data/data/sisu/version.yml +5 -0
- data/lib/sisu.rb +94 -0
- data/lib/sisu/air.rb +80 -0
- data/lib/sisu/ao.rb +590 -0
- data/lib/sisu/ao_character_check.rb +102 -0
- data/lib/sisu/ao_composite.rb +286 -0
- data/lib/sisu/ao_doc_objects.rb +565 -0
- data/lib/sisu/ao_doc_str.rb +2269 -0
- data/lib/sisu/ao_endnotes.rb +136 -0
- data/lib/sisu/ao_expand_insertions.rb +514 -0
- data/lib/sisu/ao_hash_digest.rb +174 -0
- data/lib/sisu/ao_idx.rb +422 -0
- data/lib/sisu/ao_images.rb +187 -0
- data/lib/sisu/ao_metadata.rb +86 -0
- data/lib/sisu/ao_misc_arrange.rb +207 -0
- data/lib/sisu/ao_numbering.rb +720 -0
- data/lib/sisu/ao_persist.rb +194 -0
- data/lib/sisu/ao_references.rb +502 -0
- data/lib/sisu/ao_syntax.rb +640 -0
- data/lib/sisu/cgi.rb +84 -0
- data/lib/sisu/cgi_pgsql.rb +270 -0
- data/lib/sisu/cgi_sql_common.rb +986 -0
- data/lib/sisu/cgi_sqlite.rb +244 -0
- data/lib/sisu/conf.rb +287 -0
- data/lib/sisu/constants.rb +388 -0
- data/lib/sisu/css.rb +3484 -0
- data/lib/sisu/db_columns.rb +1997 -0
- data/lib/sisu/db_create.rb +689 -0
- data/lib/sisu/db_dbi.rb +90 -0
- data/lib/sisu/db_drop.rb +207 -0
- data/lib/sisu/db_import.rb +877 -0
- data/lib/sisu/db_indexes.rb +146 -0
- data/lib/sisu/db_load_tuple.rb +323 -0
- data/lib/sisu/db_remove.rb +182 -0
- data/lib/sisu/db_select.rb +230 -0
- data/lib/sisu/db_sqltxt.rb +173 -0
- data/lib/sisu/db_tests.rb +114 -0
- data/lib/sisu/dbi.rb +166 -0
- data/lib/sisu/dbi_discrete.rb +206 -0
- data/lib/sisu/digests.rb +306 -0
- data/lib/sisu/dp.rb +1606 -0
- data/lib/sisu/dp_identify_markup.rb +161 -0
- data/lib/sisu/dp_make.rb +668 -0
- data/lib/sisu/embedded.rb +149 -0
- data/lib/sisu/errors.rb +84 -0
- data/lib/sisu/generic_parts.rb +131 -0
- data/lib/sisu/git.rb +277 -0
- data/lib/sisu/html.rb +775 -0
- data/lib/sisu/html_concordance.rb +391 -0
- data/lib/sisu/html_format.rb +1348 -0
- data/lib/sisu/html_harvest.rb +109 -0
- data/lib/sisu/html_harvest_author_format.rb +111 -0
- data/lib/sisu/html_harvest_authors.rb +466 -0
- data/lib/sisu/html_harvest_topics.rb +893 -0
- data/lib/sisu/html_lite_shared.rb +324 -0
- data/lib/sisu/html_manifest.rb +1032 -0
- data/lib/sisu/html_minitoc.rb +230 -0
- data/lib/sisu/html_parts.rb +437 -0
- data/lib/sisu/html_persist.rb +237 -0
- data/lib/sisu/html_promo.rb +440 -0
- data/lib/sisu/html_scroll.rb +235 -0
- data/lib/sisu/html_segments.rb +716 -0
- data/lib/sisu/html_shared.rb +62 -0
- data/lib/sisu/html_table.rb +64 -0
- data/lib/sisu/html_tune.rb +301 -0
- data/lib/sisu/hub.rb +277 -0
- data/lib/sisu/hub_actions.rb +1122 -0
- data/lib/sisu/hub_loop_markup_files.rb +170 -0
- data/lib/sisu/hub_options.rb +1695 -0
- data/lib/sisu/i18n.rb +702 -0
- data/lib/sisu/manpage.rb +377 -0
- data/lib/sisu/manpage_format.rb +85 -0
- data/lib/sisu/object_munge.rb +307 -0
- data/lib/sisu/prog_text_translation.rb +1702 -0
- data/lib/sisu/qrcode.rb +754 -0
- data/lib/sisu/relaxng.rb +1153 -0
- data/lib/sisu/remote.rb +246 -0
- data/lib/sisu/rexml.rb +148 -0
- data/lib/sisu/se.rb +158 -0
- data/lib/sisu/se_cleanoutput.rb +145 -0
- data/lib/sisu/se_clear.rb +105 -0
- data/lib/sisu/se_createsite.rb +273 -0
- data/lib/sisu/se_css.rb +221 -0
- data/lib/sisu/se_date.rb +92 -0
- data/lib/sisu/se_db.rb +214 -0
- data/lib/sisu/se_envcall.rb +326 -0
- data/lib/sisu/se_file_op.rb +2758 -0
- data/lib/sisu/se_filemap.rb +247 -0
- data/lib/sisu/se_get_init.rb +238 -0
- data/lib/sisu/se_hub_particulars.rb +234 -0
- data/lib/sisu/se_info_env.rb +2179 -0
- data/lib/sisu/se_info_port.rb +70 -0
- data/lib/sisu/se_info_system.rb +202 -0
- data/lib/sisu/se_load.rb +108 -0
- data/lib/sisu/se_processing.rb +659 -0
- data/lib/sisu/se_programs.rb +394 -0
- data/lib/sisu/se_remotes.rb +553 -0
- data/lib/sisu/se_standardise_lang.rb +176 -0
- data/lib/sisu/se_version.rb +174 -0
- data/lib/sisu/shared_images.rb +137 -0
- data/lib/sisu/shared_markup_alt.rb +336 -0
- data/lib/sisu/shared_metadata.rb +1361 -0
- data/lib/sisu/shared_sem.rb +156 -0
- data/lib/sisu/sisu_thor_lib.rb +407 -0
- data/lib/sisu/sitemaps.rb +224 -0
- data/lib/sisu/src_kdissert_share.rb +102 -0
- data/lib/sisu/src_po4a_share.rb +309 -0
- data/lib/sisu/src_po4a_shelf.rb +1217 -0
- data/lib/sisu/src_po4a_shelf_set.rb +297 -0
- data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
- data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
- data/lib/sisu/src_po4a_sstm.rb +135 -0
- data/lib/sisu/src_shared.rb +347 -0
- data/lib/sisu/src_sisupod_make.rb +171 -0
- data/lib/sisu/src_sisupod_sstm.rb +109 -0
- data/lib/sisu/sst_convert_markup.rb +323 -0
- data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
- data/lib/sisu/sst_from_xml.rb +178 -0
- data/lib/sisu/sst_identify_markup.rb +482 -0
- data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
- data/lib/sisu/termsheet.rb +163 -0
- data/lib/sisu/texinfo.rb +430 -0
- data/lib/sisu/texinfo_format.rb +541 -0
- data/lib/sisu/texpdf.rb +1162 -0
- data/lib/sisu/texpdf_format.rb +1689 -0
- data/lib/sisu/texpdf_parts.rb +235 -0
- data/lib/sisu/txt_asciidoc.rb +354 -0
- data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
- data/lib/sisu/txt_markdown.rb +389 -0
- data/lib/sisu/txt_markdown_decorate.rb +207 -0
- data/lib/sisu/txt_orgmode.rb +376 -0
- data/lib/sisu/txt_orgmode_decorate.rb +186 -0
- data/lib/sisu/txt_output.rb +86 -0
- data/lib/sisu/txt_plain.rb +410 -0
- data/lib/sisu/txt_plain_decorate.rb +189 -0
- data/lib/sisu/txt_read.rb +109 -0
- data/lib/sisu/txt_rst.rb +371 -0
- data/lib/sisu/txt_rst_decorate.rb +186 -0
- data/lib/sisu/txt_shared.rb +241 -0
- data/lib/sisu/txt_textile.rb +367 -0
- data/lib/sisu/txt_textile_decorate.rb +186 -0
- data/lib/sisu/update.rb +141 -0
- data/lib/sisu/urls.rb +696 -0
- data/lib/sisu/utils.rb +232 -0
- data/lib/sisu/utils_composite.rb +115 -0
- data/lib/sisu/utils_response.rb +114 -0
- data/lib/sisu/utils_screen_text_color.rb +472 -0
- data/lib/sisu/utils_spell.rb +99 -0
- data/lib/sisu/webrick.rb +191 -0
- data/lib/sisu/wikispeak.rb +375 -0
- data/lib/sisu/xhtml.rb +472 -0
- data/lib/sisu/xhtml_epub2.rb +890 -0
- data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
- data/lib/sisu/xhtml_epub2_format.rb +2272 -0
- data/lib/sisu/xhtml_epub2_persist.rb +278 -0
- data/lib/sisu/xhtml_epub2_segments.rb +599 -0
- data/lib/sisu/xhtml_epub2_tune.rb +330 -0
- data/lib/sisu/xhtml_parts.rb +183 -0
- data/lib/sisu/xhtml_shared.rb +62 -0
- data/lib/sisu/xhtml_table.rb +97 -0
- data/lib/sisu/xml_docbook5.rb +376 -0
- data/lib/sisu/xml_dom.rb +624 -0
- data/lib/sisu/xml_fictionbook2.rb +389 -0
- data/lib/sisu/xml_format.rb +865 -0
- data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
- data/lib/sisu/xml_odf_odt.rb +887 -0
- data/lib/sisu/xml_odf_odt_format.rb +674 -0
- data/lib/sisu/xml_parts.rb +191 -0
- data/lib/sisu/xml_persist.rb +126 -0
- data/lib/sisu/xml_sax.rb +521 -0
- data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
- data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
- data/lib/sisu/xml_shared.rb +665 -0
- data/lib/sisu/xml_tables.rb +261 -0
- data/lib/sisu/zap.rb +90 -0
- metadata +251 -0
data/lib/sisu/relaxng.rb
ADDED
|
@@ -0,0 +1,1153 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** relaxng flow/logic
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
53
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/relaxng.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_Relaxng
|
|
58
|
+
require_relative 'se' # se.rb
|
|
59
|
+
class RelaxNG
|
|
60
|
+
def gpl3_or_later
|
|
61
|
+
@gpl3_or_later =<<RELAXNG
|
|
62
|
+
=begin
|
|
63
|
+
|
|
64
|
+
* Name: SiSU generated relaxng
|
|
65
|
+
|
|
66
|
+
* Description: generated relaxng for SiSU
|
|
67
|
+
(SiSU is a framework for document structuring, publishing and search)
|
|
68
|
+
|
|
69
|
+
* Author: Ralph Amissah
|
|
70
|
+
|
|
71
|
+
* Copyright: (C) 1997 - 2013 Ralph Amissah All Rights Reserved.
|
|
72
|
+
|
|
73
|
+
* License: GPL 3 or later:
|
|
74
|
+
|
|
75
|
+
SiSU, a framework for document structuring, publishing and search
|
|
76
|
+
|
|
77
|
+
Copyright: (C) 1997 - 2013 Ralph Amissah
|
|
78
|
+
|
|
79
|
+
This program is free software: you can redistribute it and/or modify it
|
|
80
|
+
under the terms of the GNU General Public License as published by the Free
|
|
81
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
82
|
+
any later version.
|
|
83
|
+
|
|
84
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
85
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
86
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
87
|
+
more details.
|
|
88
|
+
|
|
89
|
+
You should have received a copy of the GNU General Public License along with
|
|
90
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
91
|
+
|
|
92
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
93
|
+
available at these locations:
|
|
94
|
+
<http://www.fsf.org/licenses/gpl.html>
|
|
95
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
96
|
+
<http://www.jus.uio.no/sisu/gpl.fsf>
|
|
97
|
+
|
|
98
|
+
* SiSU uses:
|
|
99
|
+
* Standard SiSU markup syntax,
|
|
100
|
+
* Standard SiSU meta-markup syntax, and the
|
|
101
|
+
* Standard SiSU object citation numbering and system
|
|
102
|
+
|
|
103
|
+
* Hompages:
|
|
104
|
+
<http://www.jus.uio.no/sisu>
|
|
105
|
+
<http://www.sisudoc.org>
|
|
106
|
+
|
|
107
|
+
* Ralph Amissah
|
|
108
|
+
<ralph@amissah.com>
|
|
109
|
+
<ralph.amissah@gmail.com>
|
|
110
|
+
|
|
111
|
+
=end
|
|
112
|
+
RELAXNG
|
|
113
|
+
end
|
|
114
|
+
def rnc_name
|
|
115
|
+
def output_sax
|
|
116
|
+
'sisu_sax.rnc'
|
|
117
|
+
end
|
|
118
|
+
def output_dom
|
|
119
|
+
'sisu_dom.rnc'
|
|
120
|
+
end
|
|
121
|
+
def output_xhtml
|
|
122
|
+
'sisu_xhtml.rnc'
|
|
123
|
+
end
|
|
124
|
+
def input_sax
|
|
125
|
+
'sisu_sax.rnc'
|
|
126
|
+
end
|
|
127
|
+
def input_dom
|
|
128
|
+
'sisu_dom.rnc'
|
|
129
|
+
end
|
|
130
|
+
def input_node
|
|
131
|
+
'sisu_node.rnc'
|
|
132
|
+
end
|
|
133
|
+
self
|
|
134
|
+
end
|
|
135
|
+
def rng_name
|
|
136
|
+
def output_sax
|
|
137
|
+
'sisu_sax.rng'
|
|
138
|
+
end
|
|
139
|
+
def output_dom
|
|
140
|
+
'sisu_dom.rng'
|
|
141
|
+
end
|
|
142
|
+
def output_xhtml
|
|
143
|
+
'sisu_xhtml.rng'
|
|
144
|
+
end
|
|
145
|
+
def input_sax
|
|
146
|
+
'sisu_sax.rng'
|
|
147
|
+
end
|
|
148
|
+
def input_dom
|
|
149
|
+
'sisu_dom.rng'
|
|
150
|
+
end
|
|
151
|
+
def input_node
|
|
152
|
+
'sisu_node.rng'
|
|
153
|
+
end
|
|
154
|
+
self
|
|
155
|
+
end
|
|
156
|
+
def xsd_name
|
|
157
|
+
def output_sax
|
|
158
|
+
'sisu_sax.xsd'
|
|
159
|
+
end
|
|
160
|
+
def output_dom
|
|
161
|
+
'sisu_dom.xsd'
|
|
162
|
+
end
|
|
163
|
+
def output_xhtml
|
|
164
|
+
'sisu_xhtml.xsd'
|
|
165
|
+
end
|
|
166
|
+
def input_sax
|
|
167
|
+
'sisu_sax.xsd'
|
|
168
|
+
end
|
|
169
|
+
def input_dom
|
|
170
|
+
'sisu_dom.xsd'
|
|
171
|
+
end
|
|
172
|
+
def input_node
|
|
173
|
+
'sisu_node.xsd'
|
|
174
|
+
end
|
|
175
|
+
self
|
|
176
|
+
end
|
|
177
|
+
def rnc_sisu_object_input
|
|
178
|
+
@relaxng =<<RELAXNG
|
|
179
|
+
#%% sisu object model: input
|
|
180
|
+
#{gpl3_or_later}
|
|
181
|
+
#%% definitions
|
|
182
|
+
# dublin core:
|
|
183
|
+
element-semantic =
|
|
184
|
+
element semantic {
|
|
185
|
+
# dublin core:
|
|
186
|
+
element title { text }
|
|
187
|
+
& element creator { text }?
|
|
188
|
+
& element subject { text }?
|
|
189
|
+
& element description { text }?
|
|
190
|
+
& element publisher { text }?
|
|
191
|
+
& element contributor { text }?
|
|
192
|
+
& element date { text }?
|
|
193
|
+
& element date.created { text }?
|
|
194
|
+
& element date.issued { text }?
|
|
195
|
+
& element date.available { text }?
|
|
196
|
+
& element date.valid { text }?
|
|
197
|
+
& element date.modified { text }?
|
|
198
|
+
& element type { text }?
|
|
199
|
+
& element format { text }?
|
|
200
|
+
& element identifier { text }?
|
|
201
|
+
& element source { text }?
|
|
202
|
+
& element relation { text }?
|
|
203
|
+
& element coverage { text }?
|
|
204
|
+
& element rights { text }?
|
|
205
|
+
& element keywords { text }?
|
|
206
|
+
# extended semantic metadata:
|
|
207
|
+
& attribute subtitle { text }?
|
|
208
|
+
& attribute illustrator { text }?
|
|
209
|
+
& attribute translator { text }?
|
|
210
|
+
& attribute prepared_by { text }?
|
|
211
|
+
& attribute digitized_by { text }?
|
|
212
|
+
& attribute language { text }?
|
|
213
|
+
& attribute language.original { text }?
|
|
214
|
+
& attribute classify.pg { text }?
|
|
215
|
+
& attribute classify.isbn { text }?
|
|
216
|
+
& attribute classify.dewey { text }?
|
|
217
|
+
& attribute classify.loc { text }?
|
|
218
|
+
& attribute prefix.a { text }?
|
|
219
|
+
& attribute prefix.b { text }?
|
|
220
|
+
& attribute suffix { text }?
|
|
221
|
+
& attribute comments { text }?
|
|
222
|
+
& attribute abstract { text }?
|
|
223
|
+
# & attribute information { text }?
|
|
224
|
+
& attribute contact { text }?
|
|
225
|
+
& attribute links { text }?
|
|
226
|
+
}
|
|
227
|
+
element-processing =
|
|
228
|
+
element processing {
|
|
229
|
+
attribute structure { text }?
|
|
230
|
+
& attribute level { text }?
|
|
231
|
+
& attribute markup { text }?
|
|
232
|
+
& attribute bold { text }?
|
|
233
|
+
& attribute italics { text }?
|
|
234
|
+
& attribute papersize { text }?
|
|
235
|
+
& attribute vocabulary { text }?
|
|
236
|
+
& element date_scheme { text }?
|
|
237
|
+
& element date.issued.scheme { text }?
|
|
238
|
+
& element date.available.scheme { text }?
|
|
239
|
+
& element date.valid.scheme { text }?
|
|
240
|
+
& element date.modified.scheme { text }?
|
|
241
|
+
}?
|
|
242
|
+
element-head =
|
|
243
|
+
element head {
|
|
244
|
+
# processing instructions, and semantic data, distinguish?:
|
|
245
|
+
element metadata {
|
|
246
|
+
element title { text },
|
|
247
|
+
element file { text },
|
|
248
|
+
element generator { text },
|
|
249
|
+
element-semantic,
|
|
250
|
+
element-processing
|
|
251
|
+
}+
|
|
252
|
+
}
|
|
253
|
+
# body text/contents
|
|
254
|
+
# includes <b> <i> <u> <del> <ins> <indent1> <bullet> etc.
|
|
255
|
+
element-txt =
|
|
256
|
+
element txt {
|
|
257
|
+
text*
|
|
258
|
+
& element b { text }*
|
|
259
|
+
& element i { text }*
|
|
260
|
+
& element u { text }*
|
|
261
|
+
& element ins { text }*
|
|
262
|
+
& element del { text }*
|
|
263
|
+
}
|
|
264
|
+
element-endnote =
|
|
265
|
+
element endnote {
|
|
266
|
+
element number { text },
|
|
267
|
+
element note { element-txt }+
|
|
268
|
+
}+
|
|
269
|
+
element-para =
|
|
270
|
+
element para {
|
|
271
|
+
# attribute paragraph_format { text },
|
|
272
|
+
element-txt+
|
|
273
|
+
& element-endnote?
|
|
274
|
+
}
|
|
275
|
+
element-external_space =
|
|
276
|
+
element external_space {
|
|
277
|
+
# ignored by sisu, provide program needs
|
|
278
|
+
element program {
|
|
279
|
+
# e.g. kdissert
|
|
280
|
+
element name { text },
|
|
281
|
+
element xpos { text },
|
|
282
|
+
element ypos { text },
|
|
283
|
+
element font { text },
|
|
284
|
+
element outline_color { text },
|
|
285
|
+
element text_color { text },
|
|
286
|
+
element comment { text }
|
|
287
|
+
}*
|
|
288
|
+
}*,
|
|
289
|
+
#%% structure
|
|
290
|
+
element document {
|
|
291
|
+
# document head:
|
|
292
|
+
element-head,
|
|
293
|
+
# document body:
|
|
294
|
+
element body {
|
|
295
|
+
# object, a unit of text, usually a paragraph with any associated endnotes
|
|
296
|
+
element node {
|
|
297
|
+
element structure {
|
|
298
|
+
# structure document using either node:heading levels or node:heading relationships:
|
|
299
|
+
# (i) sisu default uses node:heading levels (1-6 or A-C,1-3) to build document structure
|
|
300
|
+
element level { text }?,
|
|
301
|
+
# (ii) sisu alternatively could use node:heading relationship information to build document structure
|
|
302
|
+
element node.id { text },
|
|
303
|
+
element node.parent { text },
|
|
304
|
+
element node.child { text }*
|
|
305
|
+
},
|
|
306
|
+
element node.objects {
|
|
307
|
+
element object.heading {
|
|
308
|
+
# nametag used only in headings, especially important for segmented html
|
|
309
|
+
element nametag { text },
|
|
310
|
+
element-para
|
|
311
|
+
},
|
|
312
|
+
element object.para {
|
|
313
|
+
element-para
|
|
314
|
+
}*
|
|
315
|
+
}+,
|
|
316
|
+
element-external_space
|
|
317
|
+
}+
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
RELAXNG
|
|
321
|
+
end
|
|
322
|
+
def rnc_sisu_object_ao
|
|
323
|
+
@relaxng =<<RELAXNG
|
|
324
|
+
#%% sisu object model: ao
|
|
325
|
+
#{gpl3_or_later}
|
|
326
|
+
#%% definitions
|
|
327
|
+
# dublin core:
|
|
328
|
+
element-semantic =
|
|
329
|
+
element semantic {
|
|
330
|
+
# dublin core:
|
|
331
|
+
element title { text }
|
|
332
|
+
& element creator { text }?
|
|
333
|
+
& element subject { text }?
|
|
334
|
+
& element description { text }?
|
|
335
|
+
& element publisher { text }?
|
|
336
|
+
& element contributor { text }?
|
|
337
|
+
& element date { text }?
|
|
338
|
+
& element date.created { text }?
|
|
339
|
+
& element date.issued { text }?
|
|
340
|
+
& element date.available { text }?
|
|
341
|
+
& element date.valid { text }?
|
|
342
|
+
& element date.modified { text }?
|
|
343
|
+
& element type { text }?
|
|
344
|
+
& element format { text }?
|
|
345
|
+
& element identifier { text }?
|
|
346
|
+
& element source { text }?
|
|
347
|
+
& element relation { text }?
|
|
348
|
+
& element coverage { text }?
|
|
349
|
+
& element rights { text }?
|
|
350
|
+
& element keywords { text }?
|
|
351
|
+
# extended semantic metadata:
|
|
352
|
+
& attribute subtitle { text }?
|
|
353
|
+
& attribute illustrator { text }?
|
|
354
|
+
& attribute translator { text }?
|
|
355
|
+
& attribute prepared_by { text }?
|
|
356
|
+
& attribute digitized_by { text }?
|
|
357
|
+
& attribute language { text }?
|
|
358
|
+
& attribute language.original { text }?
|
|
359
|
+
& attribute classify.pg { text }?
|
|
360
|
+
& attribute classify.isbn { text }?
|
|
361
|
+
& attribute classify.dewey { text }?
|
|
362
|
+
& attribute classify.loc { text }?
|
|
363
|
+
& attribute prefix.a { text }?
|
|
364
|
+
& attribute prefix.b { text }?
|
|
365
|
+
& attribute suffix { text }?
|
|
366
|
+
& attribute comments { text }?
|
|
367
|
+
& attribute abstract { text }?
|
|
368
|
+
# & attribute information { text }?
|
|
369
|
+
& attribute contact { text }?
|
|
370
|
+
& attribute links { text }?
|
|
371
|
+
}
|
|
372
|
+
element-processing =
|
|
373
|
+
element processing {
|
|
374
|
+
attribute structure { text }?
|
|
375
|
+
& attribute level { text }?
|
|
376
|
+
& attribute markup { text }?
|
|
377
|
+
& attribute bold { text }?
|
|
378
|
+
& attribute italics { text }?
|
|
379
|
+
& attribute papersize { text }?
|
|
380
|
+
& attribute vocabulary { text }?
|
|
381
|
+
& element date_scheme { text }?
|
|
382
|
+
& element date.issued.scheme { text }?
|
|
383
|
+
& element date.available.scheme { text }?
|
|
384
|
+
& element date.valid.scheme { text }?
|
|
385
|
+
& element date.modified.scheme { text }?
|
|
386
|
+
}?
|
|
387
|
+
element-head =
|
|
388
|
+
element head {
|
|
389
|
+
# processing instructions, and semantic data, distinguish?:
|
|
390
|
+
element metadata {
|
|
391
|
+
element title { text },
|
|
392
|
+
element file { text },
|
|
393
|
+
element generator { text },
|
|
394
|
+
element-semantic,
|
|
395
|
+
element-processing
|
|
396
|
+
}+
|
|
397
|
+
}
|
|
398
|
+
# body text/contents
|
|
399
|
+
# includes <b> <i> <u> <del> <ins> <indent1> <bullet> etc.
|
|
400
|
+
element-txt =
|
|
401
|
+
element txt {
|
|
402
|
+
text*
|
|
403
|
+
& element b { text }*
|
|
404
|
+
& element i { text }*
|
|
405
|
+
& element u { text }*
|
|
406
|
+
& element ins { text }*
|
|
407
|
+
& element del { text }*
|
|
408
|
+
}
|
|
409
|
+
element-checksum.endnote = element checksum.clean { text }
|
|
410
|
+
element-endnote =
|
|
411
|
+
element endnote {
|
|
412
|
+
element number { text },
|
|
413
|
+
element note { element-txt }+,
|
|
414
|
+
element-checksum.endnote
|
|
415
|
+
}+
|
|
416
|
+
element-checksum.para =
|
|
417
|
+
element checksum.para {
|
|
418
|
+
element checksum.clean { text },
|
|
419
|
+
element checksum.marked { text }
|
|
420
|
+
}
|
|
421
|
+
element-para =
|
|
422
|
+
element para {
|
|
423
|
+
# attribute paragraph_format { text },
|
|
424
|
+
element-txt+
|
|
425
|
+
& element-endnote?
|
|
426
|
+
}
|
|
427
|
+
element-object =
|
|
428
|
+
element object {
|
|
429
|
+
element-para,
|
|
430
|
+
element-checksum.para
|
|
431
|
+
}
|
|
432
|
+
# object citation number, unique sequential number for objects:
|
|
433
|
+
element-ocn = element ocn { text }
|
|
434
|
+
element-object_structure_summary =
|
|
435
|
+
element-ocn,
|
|
436
|
+
# type: heading level value 1 -6, or normal text
|
|
437
|
+
element type { text },
|
|
438
|
+
# type number: sequential number for designated type
|
|
439
|
+
element type_number { text },
|
|
440
|
+
# type category: sequential number for designated category, e.g. sequentially counting all headers
|
|
441
|
+
element category_number { text }
|
|
442
|
+
element-external_space =
|
|
443
|
+
element external_space {
|
|
444
|
+
# ignored by sisu, provide program needs
|
|
445
|
+
element program {
|
|
446
|
+
# e.g. kdissert
|
|
447
|
+
element name { text },
|
|
448
|
+
element xpos { text },
|
|
449
|
+
element ypos { text },
|
|
450
|
+
element font { text },
|
|
451
|
+
element outline_color { text },
|
|
452
|
+
element text_color { text },
|
|
453
|
+
element comment { text }
|
|
454
|
+
}*
|
|
455
|
+
}*,
|
|
456
|
+
#%% structure
|
|
457
|
+
element document {
|
|
458
|
+
# document head:
|
|
459
|
+
element-head,
|
|
460
|
+
# document body:
|
|
461
|
+
element body {
|
|
462
|
+
# object, a unit of text, usually a paragraph with any associated endnotes
|
|
463
|
+
element node {
|
|
464
|
+
element structure {
|
|
465
|
+
# structure document using either node:heading levels or node:heading relationships:
|
|
466
|
+
# (i) sisu default uses node:heading levels (1-6 or A-C,1-3) to build document structure
|
|
467
|
+
element level { text }?,
|
|
468
|
+
# (ii) sisu alternatively could use node:heading relationship information to build document structure
|
|
469
|
+
element node.id { text },
|
|
470
|
+
element node.parent { text },
|
|
471
|
+
element node.child { text }*
|
|
472
|
+
},
|
|
473
|
+
element node.objects {
|
|
474
|
+
element object.heading {
|
|
475
|
+
element-object_structure_summary,
|
|
476
|
+
# nametag used only in headings, especially important for segmented html
|
|
477
|
+
element nametag { text },
|
|
478
|
+
element-object
|
|
479
|
+
},
|
|
480
|
+
element object.para {
|
|
481
|
+
element-object_structure_summary,
|
|
482
|
+
element-object
|
|
483
|
+
}*
|
|
484
|
+
}+,
|
|
485
|
+
element-external_space
|
|
486
|
+
}+
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
RELAXNG
|
|
490
|
+
end
|
|
491
|
+
def rnc_model_output_sax
|
|
492
|
+
@relaxng =<<RELAXNG
|
|
493
|
+
#% sax output model, part of SiSU and distributed under the same license
|
|
494
|
+
default namespace = ""
|
|
495
|
+
namespace xl = "http://www.w3.org/1999/xlink"
|
|
496
|
+
start =
|
|
497
|
+
element document {
|
|
498
|
+
element head {
|
|
499
|
+
(br
|
|
500
|
+
| meta
|
|
501
|
+
| element creator {
|
|
502
|
+
attribute class { xsd:NCName },
|
|
503
|
+
(text
|
|
504
|
+
| element link {
|
|
505
|
+
attribute xl:href { xsd:anyURI },
|
|
506
|
+
attribute xl:type { xsd:NCName },
|
|
507
|
+
xsd:anyURI
|
|
508
|
+
})+
|
|
509
|
+
}
|
|
510
|
+
| element date {
|
|
511
|
+
attribute class { xsd:NCName },
|
|
512
|
+
xsd:NMTOKEN
|
|
513
|
+
}
|
|
514
|
+
| element date_available {
|
|
515
|
+
attribute class { xsd:NCName },
|
|
516
|
+
xsd:NMTOKEN
|
|
517
|
+
}
|
|
518
|
+
| element date_created {
|
|
519
|
+
attribute class { xsd:NCName },
|
|
520
|
+
xsd:NMTOKEN
|
|
521
|
+
}
|
|
522
|
+
| element date_issued {
|
|
523
|
+
attribute class { xsd:NCName },
|
|
524
|
+
xsd:NMTOKEN
|
|
525
|
+
}
|
|
526
|
+
| element date_modified {
|
|
527
|
+
attribute class { xsd:NCName },
|
|
528
|
+
xsd:NMTOKEN
|
|
529
|
+
}
|
|
530
|
+
| element date_valid {
|
|
531
|
+
attribute class { xsd:NCName },
|
|
532
|
+
xsd:NMTOKEN
|
|
533
|
+
}
|
|
534
|
+
| element keywords {
|
|
535
|
+
attribute class { xsd:NCName },
|
|
536
|
+
text
|
|
537
|
+
}
|
|
538
|
+
| element language {
|
|
539
|
+
attribute class { xsd:NCName },
|
|
540
|
+
xsd:NCName
|
|
541
|
+
}
|
|
542
|
+
| element meta { xsd:NMTOKEN }
|
|
543
|
+
| element rights {
|
|
544
|
+
attribute class { xsd:NCName },
|
|
545
|
+
(text | link)+
|
|
546
|
+
}
|
|
547
|
+
| element source {
|
|
548
|
+
attribute class { xsd:NCName },
|
|
549
|
+
text
|
|
550
|
+
}
|
|
551
|
+
| element structure {
|
|
552
|
+
attribute class { xsd:NCName },
|
|
553
|
+
text
|
|
554
|
+
}
|
|
555
|
+
| element subject {
|
|
556
|
+
attribute class { xsd:NCName },
|
|
557
|
+
text
|
|
558
|
+
}
|
|
559
|
+
| element title {
|
|
560
|
+
attribute class { xsd:NCName },
|
|
561
|
+
text
|
|
562
|
+
}
|
|
563
|
+
| element type {
|
|
564
|
+
attribute class { xsd:NCName },
|
|
565
|
+
text
|
|
566
|
+
}
|
|
567
|
+
| element source_control {
|
|
568
|
+
(br
|
|
569
|
+
| meta
|
|
570
|
+
| element sc {
|
|
571
|
+
attribute class { xsd:NCName },
|
|
572
|
+
text
|
|
573
|
+
})+
|
|
574
|
+
})+
|
|
575
|
+
},
|
|
576
|
+
element body {
|
|
577
|
+
element object {
|
|
578
|
+
attribute id { text },
|
|
579
|
+
element ocn {
|
|
580
|
+
text
|
|
581
|
+
},
|
|
582
|
+
element text {
|
|
583
|
+
attribute class { xsd:NCName },
|
|
584
|
+
(text
|
|
585
|
+
| b
|
|
586
|
+
| br
|
|
587
|
+
| del
|
|
588
|
+
| en
|
|
589
|
+
| i
|
|
590
|
+
| link
|
|
591
|
+
| sub
|
|
592
|
+
| sup
|
|
593
|
+
| u
|
|
594
|
+
| element image {
|
|
595
|
+
attribute alt { text }?,
|
|
596
|
+
attribute height { xsd:integer }?,
|
|
597
|
+
attribute width { xsd:integer }?,
|
|
598
|
+
attribute xl:actuate { xsd:NCName },
|
|
599
|
+
attribute xl:href { text },
|
|
600
|
+
attribute xl:show { xsd:NCName },
|
|
601
|
+
attribute xl:type { xsd:NCName }
|
|
602
|
+
})+
|
|
603
|
+
}?,
|
|
604
|
+
element table {
|
|
605
|
+
attribute align { xsd:NCName },
|
|
606
|
+
attribute bgcolor { xsd:NCName },
|
|
607
|
+
attribute border { xsd:integer },
|
|
608
|
+
attribute cellpadding { xsd:integer },
|
|
609
|
+
attribute summary { text },
|
|
610
|
+
attribute width { text },
|
|
611
|
+
element tr {
|
|
612
|
+
element td {
|
|
613
|
+
attribute valign { xsd:NCName },
|
|
614
|
+
attribute width { text },
|
|
615
|
+
(text | b | i)+
|
|
616
|
+
}+
|
|
617
|
+
}+
|
|
618
|
+
}?,
|
|
619
|
+
element endnote {
|
|
620
|
+
attribute notenumber { xsd:integer }?,
|
|
621
|
+
attribute symbol { text }?,
|
|
622
|
+
(element number { xsd:integer }
|
|
623
|
+
| element symbol { text }),
|
|
624
|
+
element note {
|
|
625
|
+
(text
|
|
626
|
+
| b
|
|
627
|
+
| br
|
|
628
|
+
| del
|
|
629
|
+
| i
|
|
630
|
+
| link
|
|
631
|
+
| sup
|
|
632
|
+
| u
|
|
633
|
+
| element em { xsd:NCName }
|
|
634
|
+
| element sub { xsd:NCName })+
|
|
635
|
+
}
|
|
636
|
+
}*
|
|
637
|
+
}+
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
meta = element meta { text }
|
|
641
|
+
br = element br { empty }
|
|
642
|
+
b = element b { (text | en | i | link | sup)+ }
|
|
643
|
+
i = element i { (text | b | br | sup)+ }
|
|
644
|
+
en = element en { text }
|
|
645
|
+
sub = element sub { xsd:NCName }
|
|
646
|
+
sup = element sup { xsd:NCName }
|
|
647
|
+
link =
|
|
648
|
+
element link {
|
|
649
|
+
attribute xl:href { xsd:anyURI },
|
|
650
|
+
attribute xl:type { xsd:NCName },
|
|
651
|
+
(xsd:anyURI | text | b | i | sup)+
|
|
652
|
+
}
|
|
653
|
+
u = element u { (text | b | i)+ }
|
|
654
|
+
del = element del { (text | b | i | link)+ }
|
|
655
|
+
RELAXNG
|
|
656
|
+
end
|
|
657
|
+
def rnc_model_output_dom
|
|
658
|
+
@relaxng =<<RELAXNG
|
|
659
|
+
#% dom output model, part of SiSU and distributed under the same license
|
|
660
|
+
default namespace = ""
|
|
661
|
+
namespace xl = "http://www.w3.org/1999/xlink"
|
|
662
|
+
start =
|
|
663
|
+
element document {
|
|
664
|
+
element head {
|
|
665
|
+
element header {
|
|
666
|
+
meta,
|
|
667
|
+
(element creator { text }
|
|
668
|
+
| element date { xsd:NMTOKEN }
|
|
669
|
+
| element date_available { xsd:NMTOKEN }
|
|
670
|
+
| element date_created { xsd:NMTOKEN }
|
|
671
|
+
| element date_issued { xsd:NMTOKEN }
|
|
672
|
+
| element date_modified { xsd:NMTOKEN }
|
|
673
|
+
| element date_valid { xsd:NMTOKEN }
|
|
674
|
+
| element keywords { text }
|
|
675
|
+
| element language { xsd:NCName }
|
|
676
|
+
| element rights { (text | link)+ }
|
|
677
|
+
| element source { text }
|
|
678
|
+
| element structure { text }
|
|
679
|
+
| element subject { text }
|
|
680
|
+
| element title { text }
|
|
681
|
+
| element type { text }
|
|
682
|
+
| element source_control {
|
|
683
|
+
(br
|
|
684
|
+
| meta
|
|
685
|
+
| element sc {
|
|
686
|
+
attribute class { xsd:NCName },
|
|
687
|
+
text
|
|
688
|
+
})+
|
|
689
|
+
})
|
|
690
|
+
}+
|
|
691
|
+
},
|
|
692
|
+
element body {
|
|
693
|
+
element heading1 {
|
|
694
|
+
heading,
|
|
695
|
+
contents1*,
|
|
696
|
+
element heading2 {
|
|
697
|
+
heading,
|
|
698
|
+
contents1*,
|
|
699
|
+
element heading3 {
|
|
700
|
+
heading,
|
|
701
|
+
element contents1 {
|
|
702
|
+
heading,
|
|
703
|
+
content,
|
|
704
|
+
element contents2 {
|
|
705
|
+
heading,
|
|
706
|
+
content,
|
|
707
|
+
element contents3 { heading, content }*
|
|
708
|
+
}*
|
|
709
|
+
}+
|
|
710
|
+
}*
|
|
711
|
+
}*
|
|
712
|
+
}+
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
meta = element meta { text }
|
|
716
|
+
br = element br { empty }
|
|
717
|
+
heading = element heading { object }
|
|
718
|
+
contents1 =
|
|
719
|
+
element contents1 {
|
|
720
|
+
heading,
|
|
721
|
+
content,
|
|
722
|
+
element contents2 {
|
|
723
|
+
heading,
|
|
724
|
+
content,
|
|
725
|
+
element contents3 { heading, content }*
|
|
726
|
+
}*
|
|
727
|
+
}
|
|
728
|
+
content = element content { object* }
|
|
729
|
+
object =
|
|
730
|
+
element object {
|
|
731
|
+
attribute id { xsd:integer },
|
|
732
|
+
element ocn { text },
|
|
733
|
+
element nametag { text }?,
|
|
734
|
+
(element table {
|
|
735
|
+
attribute align { xsd:NCName },
|
|
736
|
+
attribute bgcolor { xsd:NCName },
|
|
737
|
+
attribute border { xsd:integer },
|
|
738
|
+
attribute cellpadding { xsd:integer },
|
|
739
|
+
attribute summary { text },
|
|
740
|
+
attribute width { text },
|
|
741
|
+
element tr {
|
|
742
|
+
element td {
|
|
743
|
+
attribute valign { xsd:NCName },
|
|
744
|
+
attribute width { text },
|
|
745
|
+
(text | b | i)+
|
|
746
|
+
}+
|
|
747
|
+
}+
|
|
748
|
+
}
|
|
749
|
+
| element text {
|
|
750
|
+
attribute class { xsd:NCName }?,
|
|
751
|
+
(text
|
|
752
|
+
| b
|
|
753
|
+
| del
|
|
754
|
+
| endnote
|
|
755
|
+
| i
|
|
756
|
+
| link
|
|
757
|
+
| element br { empty }
|
|
758
|
+
| element endnote {
|
|
759
|
+
element number { xsd:integer },
|
|
760
|
+
element note { (text | i | link)+ }
|
|
761
|
+
}
|
|
762
|
+
| element image {
|
|
763
|
+
attribute height { xsd:integer },
|
|
764
|
+
attribute width { xsd:integer },
|
|
765
|
+
attribute xl:actuate { xsd:NCName },
|
|
766
|
+
attribute xl:href { text },
|
|
767
|
+
attribute xl:show { xsd:NCName },
|
|
768
|
+
attribute xl:type { xsd:NCName }
|
|
769
|
+
}
|
|
770
|
+
| element sub { text })+
|
|
771
|
+
})
|
|
772
|
+
}
|
|
773
|
+
i = element i { text }
|
|
774
|
+
b = element i { text }
|
|
775
|
+
u = element u { (text | b | i)+ }
|
|
776
|
+
sub = element sub { xsd:NCName }
|
|
777
|
+
sup = element sup { xsd:NCName }
|
|
778
|
+
del = element del { (text | b | i | link)+ }
|
|
779
|
+
link =
|
|
780
|
+
element link {
|
|
781
|
+
attribute xl:href { xsd:anyURI },
|
|
782
|
+
attribute xl:type { xsd:NCName },
|
|
783
|
+
xsd:anyURI
|
|
784
|
+
}
|
|
785
|
+
endnote =
|
|
786
|
+
element endnote {
|
|
787
|
+
(element number { xsd:integer }
|
|
788
|
+
| element symbol { text }),
|
|
789
|
+
element note {
|
|
790
|
+
(text
|
|
791
|
+
| b
|
|
792
|
+
| br
|
|
793
|
+
| del
|
|
794
|
+
| i
|
|
795
|
+
| link
|
|
796
|
+
| sub
|
|
797
|
+
| sup
|
|
798
|
+
| u
|
|
799
|
+
| element em { xsd:NCName }
|
|
800
|
+
| element sub { xsd:NCName })+
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
RELAXNG
|
|
804
|
+
end
|
|
805
|
+
def rnc_model_output_xhtml #not done
|
|
806
|
+
@relaxng =<<RELAXNG
|
|
807
|
+
#% xhtml output model, part of SiSU and distributed under the same license
|
|
808
|
+
default namespace = ""
|
|
809
|
+
namespace xl = "http://www.w3.org/1999/xlink"
|
|
810
|
+
start =
|
|
811
|
+
element document {
|
|
812
|
+
element head {
|
|
813
|
+
(br
|
|
814
|
+
| element creator {
|
|
815
|
+
attribute class { xsd:NCName },
|
|
816
|
+
(text
|
|
817
|
+
| element link {
|
|
818
|
+
attribute xl:href { xsd:anyURI },
|
|
819
|
+
attribute xl:type { xsd:NCName },
|
|
820
|
+
xsd:anyURI
|
|
821
|
+
})+
|
|
822
|
+
}
|
|
823
|
+
| element date {
|
|
824
|
+
attribute class { xsd:NCName },
|
|
825
|
+
xsd:NMTOKEN
|
|
826
|
+
}
|
|
827
|
+
| element date_available {
|
|
828
|
+
attribute class { xsd:NCName },
|
|
829
|
+
xsd:NMTOKEN
|
|
830
|
+
}
|
|
831
|
+
| element date_created {
|
|
832
|
+
attribute class { xsd:NCName },
|
|
833
|
+
xsd:NMTOKEN
|
|
834
|
+
}
|
|
835
|
+
| element date_issued {
|
|
836
|
+
attribute class { xsd:NCName },
|
|
837
|
+
xsd:NMTOKEN
|
|
838
|
+
}
|
|
839
|
+
| element date_modified {
|
|
840
|
+
attribute class { xsd:NCName },
|
|
841
|
+
xsd:NMTOKEN
|
|
842
|
+
}
|
|
843
|
+
| element date_valid {
|
|
844
|
+
attribute class { xsd:NCName },
|
|
845
|
+
xsd:NMTOKEN
|
|
846
|
+
}
|
|
847
|
+
| element language {
|
|
848
|
+
attribute class { xsd:NCName },
|
|
849
|
+
xsd:NCName
|
|
850
|
+
}
|
|
851
|
+
| element keywords {
|
|
852
|
+
attribute class { xsd:NCName },
|
|
853
|
+
text
|
|
854
|
+
}
|
|
855
|
+
| element meta {
|
|
856
|
+
attribute content { text }?,
|
|
857
|
+
attribute http-equiv { xsd:NCName }?,
|
|
858
|
+
text
|
|
859
|
+
}
|
|
860
|
+
| element rights {
|
|
861
|
+
attribute class { xsd:NCName },
|
|
862
|
+
(text | link)+
|
|
863
|
+
}
|
|
864
|
+
| element source {
|
|
865
|
+
attribute class { xsd:NCName },
|
|
866
|
+
text
|
|
867
|
+
}
|
|
868
|
+
| element structure {
|
|
869
|
+
attribute class { xsd:NCName },
|
|
870
|
+
text
|
|
871
|
+
}
|
|
872
|
+
| element subject {
|
|
873
|
+
attribute class { xsd:NCName },
|
|
874
|
+
text
|
|
875
|
+
}
|
|
876
|
+
| element title {
|
|
877
|
+
attribute class { xsd:NCName },
|
|
878
|
+
text
|
|
879
|
+
}
|
|
880
|
+
| element type {
|
|
881
|
+
attribute class { xsd:NCName },
|
|
882
|
+
xsd:NCName
|
|
883
|
+
})+
|
|
884
|
+
},
|
|
885
|
+
element body {
|
|
886
|
+
element object {
|
|
887
|
+
attribute id { xsd:integer },
|
|
888
|
+
(element endnote {
|
|
889
|
+
attribute notenumber { xsd:integer }?,
|
|
890
|
+
attribute symbol { text }?,
|
|
891
|
+
(text
|
|
892
|
+
| b
|
|
893
|
+
| br
|
|
894
|
+
| del
|
|
895
|
+
| i
|
|
896
|
+
| link
|
|
897
|
+
| sup
|
|
898
|
+
| u
|
|
899
|
+
| element em { xsd:NCName }
|
|
900
|
+
| element sub { xsd:NCName })+
|
|
901
|
+
}
|
|
902
|
+
| element ocn { text }
|
|
903
|
+
| element text {
|
|
904
|
+
attribute class { xsd:NCName },
|
|
905
|
+
(text
|
|
906
|
+
| b
|
|
907
|
+
| br
|
|
908
|
+
| del
|
|
909
|
+
| en
|
|
910
|
+
| i
|
|
911
|
+
| link
|
|
912
|
+
| sup
|
|
913
|
+
| u
|
|
914
|
+
| element image {
|
|
915
|
+
attribute alt { text }?,
|
|
916
|
+
attribute height { xsd:integer }?,
|
|
917
|
+
attribute width { xsd:integer }?,
|
|
918
|
+
attribute xl:actuate { xsd:NCName },
|
|
919
|
+
attribute xl:href { text },
|
|
920
|
+
attribute xl:show { xsd:NCName },
|
|
921
|
+
attribute xl:type { xsd:NCName }
|
|
922
|
+
}
|
|
923
|
+
| element sub { text })+
|
|
924
|
+
})+,
|
|
925
|
+
element table {
|
|
926
|
+
attribute align { xsd:NCName },
|
|
927
|
+
attribute bgcolor { xsd:NCName },
|
|
928
|
+
attribute border { xsd:integer },
|
|
929
|
+
attribute cellpadding { xsd:integer },
|
|
930
|
+
attribute summary { text },
|
|
931
|
+
attribute width { text },
|
|
932
|
+
element tr {
|
|
933
|
+
element td {
|
|
934
|
+
attribute valign { xsd:NCName },
|
|
935
|
+
attribute width { text },
|
|
936
|
+
(text | b | i)+
|
|
937
|
+
}+
|
|
938
|
+
}+
|
|
939
|
+
}?
|
|
940
|
+
}+
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
br = element br { empty }
|
|
944
|
+
en = element en { text }
|
|
945
|
+
sup = element sup { xsd:NCName }
|
|
946
|
+
i = element i { (text | b | br | sup)+ }
|
|
947
|
+
link =
|
|
948
|
+
element link {
|
|
949
|
+
attribute xl:href { xsd:anyURI },
|
|
950
|
+
attribute xl:type { xsd:NCName },
|
|
951
|
+
(text | b | i | sup)+
|
|
952
|
+
}
|
|
953
|
+
b = element b { (text | en | i | link | sup)+ }
|
|
954
|
+
u = element u { (text | b | i)+ }
|
|
955
|
+
del = element del { (text | b | i | link)+ }
|
|
956
|
+
RELAXNG
|
|
957
|
+
end
|
|
958
|
+
def rnc_model_input_sax
|
|
959
|
+
@relaxng =<<RELAXNG
|
|
960
|
+
#% sax input model, part of SiSU and distributed under the same license
|
|
961
|
+
default namespace = ""
|
|
962
|
+
start =
|
|
963
|
+
element document {
|
|
964
|
+
element head {
|
|
965
|
+
element header {
|
|
966
|
+
attribute class { xsd:NCName },
|
|
967
|
+
(element creator { text }
|
|
968
|
+
| element date { xsd:NMTOKEN }
|
|
969
|
+
| element date.available { xsd:NMTOKEN }
|
|
970
|
+
| element date.created { xsd:NMTOKEN }
|
|
971
|
+
| element date.issued { xsd:NMTOKEN }
|
|
972
|
+
| element date.modified { xsd:NMTOKEN }
|
|
973
|
+
| element date.valid { xsd:NMTOKEN }
|
|
974
|
+
| element italicize { text }
|
|
975
|
+
| element language { xsd:NCName }
|
|
976
|
+
| element links { text }
|
|
977
|
+
| element markup { text }
|
|
978
|
+
| element rights { text }
|
|
979
|
+
| element subject { text }
|
|
980
|
+
| element title { text }
|
|
981
|
+
| element type { xsd:NCName }
|
|
982
|
+
| element vocabulary { xsd:NCName })
|
|
983
|
+
}+
|
|
984
|
+
},
|
|
985
|
+
element body {
|
|
986
|
+
element object {
|
|
987
|
+
element text {
|
|
988
|
+
attribute class { xsd:NCName },
|
|
989
|
+
(text
|
|
990
|
+
| b
|
|
991
|
+
| i
|
|
992
|
+
| element endnote {
|
|
993
|
+
attribute symbol { xsd:NCName },
|
|
994
|
+
(text
|
|
995
|
+
| i
|
|
996
|
+
| element br { empty })+
|
|
997
|
+
}
|
|
998
|
+
| element u { i }
|
|
999
|
+
| element image.path { text })+
|
|
1000
|
+
}?
|
|
1001
|
+
}+
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
i = element i { text }
|
|
1005
|
+
b = element b { text }
|
|
1006
|
+
RELAXNG
|
|
1007
|
+
end
|
|
1008
|
+
def rnc_model_input_dom
|
|
1009
|
+
@relaxng =<<RELAXNG
|
|
1010
|
+
#% dom input model, part of SiSU and distributed under the same license
|
|
1011
|
+
default namespace = ""
|
|
1012
|
+
start =
|
|
1013
|
+
element document {
|
|
1014
|
+
element head {
|
|
1015
|
+
element header {
|
|
1016
|
+
attribute class { xsd:NCName },
|
|
1017
|
+
(element creator { text }
|
|
1018
|
+
| element date { xsd:NMTOKEN }
|
|
1019
|
+
| element date.available { xsd:NMTOKEN }
|
|
1020
|
+
| element date.created { xsd:NMTOKEN }
|
|
1021
|
+
| element date.issued { xsd:NMTOKEN }
|
|
1022
|
+
| element date.modified { xsd:NMTOKEN }
|
|
1023
|
+
| element date.valid { xsd:NMTOKEN }
|
|
1024
|
+
| element italicize { text }
|
|
1025
|
+
| element language { xsd:NCName }
|
|
1026
|
+
| element links { text }
|
|
1027
|
+
| element markup { text }
|
|
1028
|
+
| element rights { text }
|
|
1029
|
+
| element subject { text }
|
|
1030
|
+
| element title { text }
|
|
1031
|
+
| element type { xsd:NCName }
|
|
1032
|
+
| element vocabulary { xsd:NCName })
|
|
1033
|
+
}+
|
|
1034
|
+
},
|
|
1035
|
+
element body {
|
|
1036
|
+
element heading1 {
|
|
1037
|
+
heading,
|
|
1038
|
+
element heading2 {
|
|
1039
|
+
heading,
|
|
1040
|
+
contents1+,
|
|
1041
|
+
element heading3 { heading, contents1+ }+
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
heading = element heading { object }
|
|
1047
|
+
contents1 =
|
|
1048
|
+
element contents1 {
|
|
1049
|
+
heading,
|
|
1050
|
+
content,
|
|
1051
|
+
element contents2 {
|
|
1052
|
+
heading,
|
|
1053
|
+
content,
|
|
1054
|
+
element contents3 { heading, content }*
|
|
1055
|
+
}*
|
|
1056
|
+
}
|
|
1057
|
+
object =
|
|
1058
|
+
element object {
|
|
1059
|
+
element text {
|
|
1060
|
+
(text
|
|
1061
|
+
| italic
|
|
1062
|
+
| element bold { xsd:NMTOKEN }
|
|
1063
|
+
| element endnote {
|
|
1064
|
+
element symbol { text }?,
|
|
1065
|
+
element note {
|
|
1066
|
+
(text
|
|
1067
|
+
| italic
|
|
1068
|
+
| element br { empty })+
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
| element underscore { italic }
|
|
1072
|
+
| element image.path { text }
|
|
1073
|
+
| element italic { text })+
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
italic = element italic { text }
|
|
1077
|
+
content = element content { object+ }
|
|
1078
|
+
RELAXNG
|
|
1079
|
+
end
|
|
1080
|
+
def rnc_model_input_node
|
|
1081
|
+
@relaxng =<<RELAXNG
|
|
1082
|
+
#% node input model, part of SiSU and distributed under the same license
|
|
1083
|
+
default namespace = ""
|
|
1084
|
+
start =
|
|
1085
|
+
element document {
|
|
1086
|
+
element head {
|
|
1087
|
+
element header {
|
|
1088
|
+
attribute class { xsd:NCName },
|
|
1089
|
+
(element creator { text }
|
|
1090
|
+
| element date { xsd:NMTOKEN }
|
|
1091
|
+
| element date.available { xsd:NMTOKEN }
|
|
1092
|
+
| element date.created { xsd:NMTOKEN }
|
|
1093
|
+
| element date.issued { xsd:NMTOKEN }
|
|
1094
|
+
| element date.modified { xsd:NMTOKEN }
|
|
1095
|
+
| element date.valid { xsd:NMTOKEN }
|
|
1096
|
+
| element italicize { (text | i)+ }
|
|
1097
|
+
| element language { xsd:NCName }
|
|
1098
|
+
| element links { text }
|
|
1099
|
+
| element markup { text }
|
|
1100
|
+
| element rights { text }
|
|
1101
|
+
| element subject { text }
|
|
1102
|
+
| element title { text }
|
|
1103
|
+
| element type { xsd:NCName }
|
|
1104
|
+
| element vocabulary { xsd:NCName })
|
|
1105
|
+
}+
|
|
1106
|
+
},
|
|
1107
|
+
element body {
|
|
1108
|
+
element object {
|
|
1109
|
+
(element text {
|
|
1110
|
+
attribute class { xsd:NCName },
|
|
1111
|
+
(text
|
|
1112
|
+
| b
|
|
1113
|
+
| i
|
|
1114
|
+
| element br { empty }
|
|
1115
|
+
| element endnote {
|
|
1116
|
+
attribute symbol { xsd:NCName },
|
|
1117
|
+
(text | i)+
|
|
1118
|
+
}
|
|
1119
|
+
| element image.path { text }
|
|
1120
|
+
| element sub { text })+
|
|
1121
|
+
}
|
|
1122
|
+
| (element ocn { empty },
|
|
1123
|
+
element table {
|
|
1124
|
+
attribute align { xsd:NCName },
|
|
1125
|
+
attribute bgcolor { xsd:NCName },
|
|
1126
|
+
attribute border { xsd:integer },
|
|
1127
|
+
attribute cellpadding { xsd:integer },
|
|
1128
|
+
attribute summary { text },
|
|
1129
|
+
attribute width { text },
|
|
1130
|
+
element tr {
|
|
1131
|
+
element td {
|
|
1132
|
+
attribute valign { xsd:NCName },
|
|
1133
|
+
attribute width { text },
|
|
1134
|
+
(text | b)+
|
|
1135
|
+
}+
|
|
1136
|
+
}+
|
|
1137
|
+
})),
|
|
1138
|
+
element node {
|
|
1139
|
+
element id { xsd:integer },
|
|
1140
|
+
element parent { xsd:integer },
|
|
1141
|
+
element offspring { text }?
|
|
1142
|
+
}
|
|
1143
|
+
}+
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
b = element b { text }
|
|
1147
|
+
i = element i { text }
|
|
1148
|
+
RELAXNG
|
|
1149
|
+
end
|
|
1150
|
+
end
|
|
1151
|
+
end
|
|
1152
|
+
__END__
|
|
1153
|
+
needs updating
|