metanorma-bipm 1.0.7 → 1.1.4
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 +4 -4
- data/.github/workflows/rake.yml +12 -11
- data/.gitignore +4 -1
- data/.hound.yml +5 -0
- data/.rubocop.yml +4 -8
- data/Gemfile +2 -2
- data/Rakefile +2 -2
- data/lib/asciidoctor/bipm/biblio.rng +1 -0
- data/lib/asciidoctor/bipm/bipm.rng +3 -0
- data/lib/asciidoctor/bipm/converter.rb +72 -33
- data/lib/asciidoctor/bipm/isodoc.rng +321 -4
- data/lib/isodoc/bipm/base_convert.rb +25 -11
- data/lib/isodoc/bipm/bipm.brochure.xsl +674 -85
- data/lib/isodoc/bipm/bipm.guide.xsl +674 -85
- data/lib/isodoc/bipm/bipm.mise-en-pratique.xsl +674 -85
- data/lib/isodoc/bipm/bipm.rapport.xsl +674 -85
- data/lib/isodoc/bipm/html/html_bipm_titlepage.html +2 -0
- data/lib/isodoc/bipm/html/htmlstyle.css +7 -0
- data/lib/isodoc/bipm/i18n-en.yaml +11 -0
- data/lib/isodoc/bipm/i18n-fr.yaml +8 -0
- data/lib/isodoc/bipm/index.rb +30 -19
- data/lib/isodoc/bipm/init.rb +1 -2
- data/lib/isodoc/bipm/jcgm.standard.xsl +713 -129
- data/lib/isodoc/bipm/metadata.rb +15 -7
- data/lib/isodoc/bipm/pdf_convert.rb +12 -9
- data/lib/isodoc/bipm/presentation_xml_convert.rb +149 -48
- data/lib/isodoc/bipm/xref.rb +122 -51
- data/lib/metanorma-bipm.rb +4 -4
- data/lib/metanorma/bipm/version.rb +1 -1
- data/metanorma-bipm.gemspec +5 -4
- metadata +29 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf1b38fcb74e9bae79ffb3ebb3d6cb878d65f233f5cd50b6ca766028f273ed04
|
4
|
+
data.tar.gz: a34688db4dc19969f3749c84eb1c1055210e0791e836618de89ba82c9a80a2bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a41a0b7673959052e0dd0f1b8e6873018b0e1ee4846939ea74bf489c586b8cd387cf683b870bbd230d5b5d267babd0b3a603f2d2168a5c93c62aa0fc90a21ce0
|
7
|
+
data.tar.gz: 7a276e2c67a62742d61df4c3e85158123ff63d1bbbeaeea55945076a1f384a96794aeb8d60eeee3e37a242ab1436bdb5ee9b8386ee2d8036b7c4cefa320cfd45
|
data/.github/workflows/rake.yml
CHANGED
@@ -16,19 +16,9 @@ jobs:
|
|
16
16
|
strategy:
|
17
17
|
fail-fast: false
|
18
18
|
matrix:
|
19
|
-
ruby: [ '2.7', '2.6', '2.5', '2.4' ]
|
19
|
+
ruby: [ '3.0', '2.7', '2.6', '2.5', '2.4' ]
|
20
20
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
21
21
|
experimental: [ false ]
|
22
|
-
include:
|
23
|
-
- ruby: '3.0'
|
24
|
-
os: 'ubuntu-latest'
|
25
|
-
experimental: true
|
26
|
-
- ruby: '3.0'
|
27
|
-
os: 'windows-latest'
|
28
|
-
experimental: true
|
29
|
-
- ruby: '3.0'
|
30
|
-
os: 'macos-latest'
|
31
|
-
experimental: true
|
32
22
|
steps:
|
33
23
|
- uses: actions/checkout@v2
|
34
24
|
with:
|
@@ -40,3 +30,14 @@ jobs:
|
|
40
30
|
bundler-cache: true
|
41
31
|
|
42
32
|
- run: bundle exec rake
|
33
|
+
|
34
|
+
tests-passed:
|
35
|
+
needs: rake
|
36
|
+
runs-on: ubuntu-latest
|
37
|
+
steps:
|
38
|
+
- uses: peter-evans/repository-dispatch@v1
|
39
|
+
with:
|
40
|
+
token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
|
41
|
+
repository: ${{ github.repository }}
|
42
|
+
event-type: tests-passed
|
43
|
+
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
|
data/.gitignore
CHANGED
data/.hound.yml
ADDED
data/.rubocop.yml
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
#
|
2
|
-
# https://github.com/
|
3
|
-
# All project-specific additions and overrides should be specified in this file.
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
4
3
|
inherit_from:
|
5
4
|
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
6
5
|
|
7
6
|
# local repo-specific modifications
|
7
|
+
# ...
|
8
8
|
|
9
9
|
AllCops:
|
10
|
-
|
11
|
-
StyleGuideCopsOnly: false
|
12
|
-
TargetRubyVersion: 2.4
|
13
|
-
Rails:
|
14
|
-
Enabled: true
|
10
|
+
TargetRubyVersion: 2.5
|
data/Gemfile
CHANGED
@@ -6,6 +6,6 @@ git_source(:github) { |repo| "https://github.com/#{repo}" }
|
|
6
6
|
|
7
7
|
gemspec
|
8
8
|
|
9
|
-
if File.exist?
|
10
|
-
eval File.read(
|
9
|
+
if File.exist? "Gemfile.devel"
|
10
|
+
eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
|
11
11
|
end
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "asciidoctor/standoc/converter"
|
2
|
-
require
|
2
|
+
require "asciidoctor/generic/converter"
|
3
3
|
|
4
4
|
module Asciidoctor
|
5
5
|
module BIPM
|
@@ -19,20 +19,26 @@ module Asciidoctor
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def org_abbrev
|
22
|
-
|
22
|
+
{ org_name_long => configuration.organization_name_short }
|
23
23
|
end
|
24
24
|
|
25
25
|
def metadata_committee(node, xml)
|
26
26
|
return unless node.attr("committee-en") || node.attr("committee-fr")
|
27
|
+
|
27
28
|
xml.editorialgroup do |a|
|
28
29
|
metadata_committee1(node, a)
|
29
|
-
|
30
|
+
i = 2
|
31
|
+
while node.attr("committee-en_#{i}") || node.attr("committee-fr_#{i}")
|
32
|
+
metadata_committee2(node, a, i)
|
33
|
+
i += 1
|
34
|
+
end
|
30
35
|
metadata_workgroup(node, a)
|
31
36
|
end
|
32
37
|
end
|
33
38
|
|
34
|
-
def metadata_committee1(node,
|
35
|
-
|
39
|
+
def metadata_committee1(node, xml)
|
40
|
+
xml.committee **attr_code(acronym:
|
41
|
+
node.attr("committee-acronym")) do |c|
|
36
42
|
e = node.attr("committee-en") and
|
37
43
|
c.variant e, language: "en", script: "Latn"
|
38
44
|
e = node.attr("committee-fr") and
|
@@ -40,24 +46,25 @@ module Asciidoctor
|
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
43
|
-
def metadata_committee2(node,
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
e = node.attr("committee
|
48
|
-
|
49
|
+
def metadata_committee2(node, xml, num)
|
50
|
+
xml.committee **attr_code(acronym:
|
51
|
+
node.attr("committee-acronym_#{num}")) do |c|
|
52
|
+
%w(en fr).each do |lg|
|
53
|
+
e = node.attr("committee-#{lg}_#{num}") and
|
54
|
+
c.variant e, language: lg, script: "Latn"
|
49
55
|
end
|
50
|
-
i += 1
|
51
56
|
end
|
52
57
|
end
|
53
58
|
|
54
|
-
def metadata_workgroup(node,
|
55
|
-
|
56
|
-
|
59
|
+
def metadata_workgroup(node, xml)
|
60
|
+
xml.workgroup(node.attr("workgroup"),
|
61
|
+
**attr_code(acronym: node.attr("workgroup-acronym")))
|
57
62
|
i = 2
|
58
|
-
while node.attr("workgroup_#{i}")
|
59
|
-
|
63
|
+
while node.attr("workgroup_#{i}")
|
64
|
+
xml.workgroup(
|
65
|
+
node.attr("workgroup_#{i}"),
|
60
66
|
**attr_code(acronym: node.attr("workgroup-acronym_#{i}"))
|
67
|
+
)
|
61
68
|
i += 1
|
62
69
|
end
|
63
70
|
end
|
@@ -76,13 +83,15 @@ module Asciidoctor
|
|
76
83
|
draft = node.attr("supersedes-draft#{suffix}")
|
77
84
|
edition = node.attr("supersedes-edition#{suffix}")
|
78
85
|
return false unless d || draft || edition
|
86
|
+
|
79
87
|
relation_supersedes_self1(xml, d, edition, draft)
|
80
88
|
end
|
81
89
|
|
82
|
-
def relation_supersedes_self1(xml,
|
90
|
+
def relation_supersedes_self1(xml, date, edition, draft)
|
83
91
|
xml.relation **{ type: "supersedes" } do |r|
|
84
92
|
r.bibitem do |b|
|
85
|
-
|
93
|
+
date and b.date(date,
|
94
|
+
**{ type: edition ? "published" : "circulated" })
|
86
95
|
edition and b.edition edition
|
87
96
|
draft and b.version do |v|
|
88
97
|
v.draft draft
|
@@ -91,13 +100,13 @@ module Asciidoctor
|
|
91
100
|
end
|
92
101
|
end
|
93
102
|
|
94
|
-
def personal_role(node,
|
103
|
+
def personal_role(node, xml, suffix)
|
95
104
|
role = node.attr("role#{suffix}") || "author"
|
96
105
|
unless %w(author editor).include?(role.downcase)
|
97
106
|
desc = role
|
98
107
|
role = "editor"
|
99
108
|
end
|
100
|
-
|
109
|
+
xml.role desc, **{ type: role.downcase }
|
101
110
|
end
|
102
111
|
|
103
112
|
def title(node, xml)
|
@@ -106,7 +115,7 @@ module Asciidoctor
|
|
106
115
|
xml.title **attr_code(at.merge(type: "main")) do |t1|
|
107
116
|
t1 << Metanorma::Utils::asciidoc_sub(node.attr("title-#{lang}"))
|
108
117
|
end
|
109
|
-
%w(cover appendix annex part subpart).each do |w|
|
118
|
+
%w(cover appendix annex part subpart provenance).each do |w|
|
110
119
|
typed_title(node, xml, lang, w)
|
111
120
|
end
|
112
121
|
end
|
@@ -115,6 +124,7 @@ module Asciidoctor
|
|
115
124
|
def typed_title(node, xml, lang, type)
|
116
125
|
at = { language: lang, format: "text/plain" }
|
117
126
|
return unless title = node.attr("title-#{type}-#{lang}")
|
127
|
+
|
118
128
|
xml.title **attr_code(at.merge(type: type)) do |t1|
|
119
129
|
t1 << Metanorma::Utils::asciidoc_sub(title)
|
120
130
|
end
|
@@ -122,21 +132,28 @@ module Asciidoctor
|
|
122
132
|
|
123
133
|
def sectiontype_streamline(ret)
|
124
134
|
case ret
|
125
|
-
when "introduction" then "clause"
|
135
|
+
when "introduction" then @jcgm ? "introduction" : "clause"
|
126
136
|
else
|
127
137
|
super
|
128
138
|
end
|
129
139
|
end
|
130
140
|
|
141
|
+
def sectiontype(node, level = true)
|
142
|
+
ret = sectiontype1(node)
|
143
|
+
return ret if ret == "terms and definitions"
|
144
|
+
|
145
|
+
super
|
146
|
+
end
|
147
|
+
|
131
148
|
def inline_anchor_xref_attrs(node)
|
132
149
|
flags = %w(pagenumber nosee nopage).each_with_object({}) do |w, m|
|
133
|
-
if /#{w}%/.match(node.text)
|
150
|
+
if /#{w}%/.match?(node.text)
|
134
151
|
node.text = node.text.sub(/#{w}%/, "")
|
135
152
|
m[w] = true
|
136
153
|
end
|
137
154
|
end
|
138
155
|
ret = super
|
139
|
-
flags.
|
156
|
+
flags.each_key { |k| ret[k.to_sym] = true }
|
140
157
|
ret
|
141
158
|
end
|
142
159
|
|
@@ -154,9 +171,6 @@ module Asciidoctor
|
|
154
171
|
super.merge(attr_code(start: node.attr("start")))
|
155
172
|
end
|
156
173
|
|
157
|
-
def section_names_terms_cleanup(x)
|
158
|
-
end
|
159
|
-
|
160
174
|
def committee_validate(xml)
|
161
175
|
committees = Array(configuration&.committees) || return
|
162
176
|
committees.empty? and return
|
@@ -173,21 +187,45 @@ module Asciidoctor
|
|
173
187
|
end
|
174
188
|
|
175
189
|
def boilerplate_file(xmldoc)
|
176
|
-
return super unless
|
190
|
+
return super unless @jcgm
|
191
|
+
|
177
192
|
File.join(File.dirname(__FILE__), "boilerplate-jcgm-en.xml")
|
178
193
|
end
|
179
194
|
|
195
|
+
def sections_cleanup(xml)
|
196
|
+
super
|
197
|
+
jcgm_untitled_sections_cleanup(xml) if @jcgm
|
198
|
+
end
|
199
|
+
|
200
|
+
def jcgm_untitled_sections_cleanup(xml)
|
201
|
+
xml.xpath("//clause//clause | //annex//clause | //introduction/clause")
|
202
|
+
.each do |c|
|
203
|
+
next if !c&.at("./title")&.text&.empty?
|
204
|
+
|
205
|
+
c["inline-header"] = true
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def section_names_terms_cleanup(xml); end
|
210
|
+
|
211
|
+
def section_names_refs_cleanup(xml); end
|
212
|
+
|
180
213
|
def mathml_mi_italics
|
181
214
|
{ uppergreek: false, upperroman: false,
|
182
215
|
lowergreek: false, lowerroman: true }
|
183
216
|
end
|
184
217
|
|
218
|
+
def document(node)
|
219
|
+
@jcgm = node.attr("committee-acronym") == "JCGM"
|
220
|
+
super
|
221
|
+
end
|
222
|
+
|
185
223
|
def outputs(node, ret)
|
186
|
-
File.open(@filename
|
187
|
-
presentation_xml_converter(node).convert(@filename
|
188
|
-
html_converter(node).convert(@filename
|
224
|
+
File.open("#{@filename}.xml", "w:UTF-8") { |f| f.write(ret) }
|
225
|
+
presentation_xml_converter(node).convert("#{@filename}.xml")
|
226
|
+
html_converter(node).convert("#{@filename}.presentation.xml",
|
189
227
|
nil, false, "#{@filename}.html")
|
190
|
-
pdf_converter(node)&.convert(@filename
|
228
|
+
pdf_converter(node)&.convert("#{@filename}.presentation.xml",
|
191
229
|
nil, false, "#{@filename}.pdf")
|
192
230
|
end
|
193
231
|
|
@@ -201,6 +239,7 @@ module Asciidoctor
|
|
201
239
|
|
202
240
|
def pdf_converter(node)
|
203
241
|
return nil if node.attr("no-pdf")
|
242
|
+
|
204
243
|
IsoDoc::BIPM::PdfConvert.new(doc_extract_attributes(node))
|
205
244
|
end
|
206
245
|
end
|
@@ -45,6 +45,11 @@
|
|
45
45
|
<optional>
|
46
46
|
<attribute name="alt"/>
|
47
47
|
</optional>
|
48
|
+
<optional>
|
49
|
+
<attribute name="updatetype">
|
50
|
+
<data type="boolean"/>
|
51
|
+
</attribute>
|
52
|
+
</optional>
|
48
53
|
<text/>
|
49
54
|
</element>
|
50
55
|
</define>
|
@@ -86,6 +91,35 @@
|
|
86
91
|
<text/>
|
87
92
|
</element>
|
88
93
|
</define>
|
94
|
+
<define name="erefType">
|
95
|
+
<optional>
|
96
|
+
<attribute name="normative">
|
97
|
+
<data type="boolean"/>
|
98
|
+
</attribute>
|
99
|
+
</optional>
|
100
|
+
<attribute name="citeas"/>
|
101
|
+
<attribute name="type">
|
102
|
+
<ref name="ReferenceFormat"/>
|
103
|
+
</attribute>
|
104
|
+
<optional>
|
105
|
+
<attribute name="alt"/>
|
106
|
+
</optional>
|
107
|
+
<optional>
|
108
|
+
<attribute name="case">
|
109
|
+
<choice>
|
110
|
+
<value>capital</value>
|
111
|
+
<value>lowercase</value>
|
112
|
+
</choice>
|
113
|
+
</attribute>
|
114
|
+
</optional>
|
115
|
+
<optional>
|
116
|
+
<attribute name="droploc">
|
117
|
+
<data type="boolean"/>
|
118
|
+
</attribute>
|
119
|
+
</optional>
|
120
|
+
<ref name="CitationType"/>
|
121
|
+
<text/>
|
122
|
+
</define>
|
89
123
|
<define name="ul">
|
90
124
|
<element name="ul">
|
91
125
|
<attribute name="id">
|
@@ -514,6 +548,9 @@
|
|
514
548
|
</define>
|
515
549
|
<define name="BibDataExtensionType">
|
516
550
|
<ref name="doctype"/>
|
551
|
+
<optional>
|
552
|
+
<ref name="docsubtype"/>
|
553
|
+
</optional>
|
517
554
|
<optional>
|
518
555
|
<ref name="editorialgroup"/>
|
519
556
|
</optional>
|
@@ -775,8 +812,100 @@
|
|
775
812
|
<ref name="paragraph"/>
|
776
813
|
</element>
|
777
814
|
</define>
|
815
|
+
<define name="em">
|
816
|
+
<element name="em">
|
817
|
+
<zeroOrMore>
|
818
|
+
<choice>
|
819
|
+
<ref name="PureTextElement"/>
|
820
|
+
<ref name="stem"/>
|
821
|
+
<ref name="index"/>
|
822
|
+
</choice>
|
823
|
+
</zeroOrMore>
|
824
|
+
</element>
|
825
|
+
</define>
|
826
|
+
<define name="strong">
|
827
|
+
<element name="strong">
|
828
|
+
<zeroOrMore>
|
829
|
+
<choice>
|
830
|
+
<ref name="PureTextElement"/>
|
831
|
+
<ref name="stem"/>
|
832
|
+
<ref name="index"/>
|
833
|
+
</choice>
|
834
|
+
</zeroOrMore>
|
835
|
+
</element>
|
836
|
+
</define>
|
837
|
+
<define name="tt">
|
838
|
+
<element name="tt">
|
839
|
+
<zeroOrMore>
|
840
|
+
<choice>
|
841
|
+
<ref name="PureTextElement"/>
|
842
|
+
<ref name="index"/>
|
843
|
+
</choice>
|
844
|
+
</zeroOrMore>
|
845
|
+
</element>
|
846
|
+
</define>
|
847
|
+
<define name="keyword">
|
848
|
+
<element name="keyword">
|
849
|
+
<zeroOrMore>
|
850
|
+
<choice>
|
851
|
+
<ref name="PureTextElement"/>
|
852
|
+
<ref name="index"/>
|
853
|
+
</choice>
|
854
|
+
</zeroOrMore>
|
855
|
+
</element>
|
856
|
+
</define>
|
857
|
+
<define name="strike">
|
858
|
+
<element name="strike">
|
859
|
+
<zeroOrMore>
|
860
|
+
<choice>
|
861
|
+
<ref name="PureTextElement"/>
|
862
|
+
<ref name="index"/>
|
863
|
+
</choice>
|
864
|
+
</zeroOrMore>
|
865
|
+
</element>
|
866
|
+
</define>
|
867
|
+
<define name="underline">
|
868
|
+
<element name="underline">
|
869
|
+
<zeroOrMore>
|
870
|
+
<choice>
|
871
|
+
<ref name="PureTextElement"/>
|
872
|
+
<ref name="index"/>
|
873
|
+
</choice>
|
874
|
+
</zeroOrMore>
|
875
|
+
</element>
|
876
|
+
</define>
|
877
|
+
<define name="smallcap">
|
878
|
+
<element name="smallcap">
|
879
|
+
<zeroOrMore>
|
880
|
+
<choice>
|
881
|
+
<ref name="PureTextElement"/>
|
882
|
+
<ref name="index"/>
|
883
|
+
</choice>
|
884
|
+
</zeroOrMore>
|
885
|
+
</element>
|
886
|
+
</define>
|
887
|
+
<define name="pagebreak">
|
888
|
+
<element name="pagebreak">
|
889
|
+
<optional>
|
890
|
+
<attribute name="orientation">
|
891
|
+
<choice>
|
892
|
+
<value>landscape</value>
|
893
|
+
<value>portrait</value>
|
894
|
+
</choice>
|
895
|
+
</attribute>
|
896
|
+
</optional>
|
897
|
+
</element>
|
898
|
+
</define>
|
778
899
|
</include>
|
779
900
|
<!-- end overrides -->
|
901
|
+
<define name="docsubtype">
|
902
|
+
<element name="docsubtype">
|
903
|
+
<ref name="DocumentSubtype"/>
|
904
|
+
</element>
|
905
|
+
</define>
|
906
|
+
<define name="DocumentSubtype">
|
907
|
+
<text/>
|
908
|
+
</define>
|
780
909
|
<define name="colgroup">
|
781
910
|
<element name="colgroup">
|
782
911
|
<oneOrMore>
|
@@ -793,7 +922,35 @@
|
|
793
922
|
<value>internal</value>
|
794
923
|
</define>
|
795
924
|
<define name="TextElement" combine="choice">
|
796
|
-
<
|
925
|
+
<choice>
|
926
|
+
<ref name="concept"/>
|
927
|
+
<ref name="add"/>
|
928
|
+
<ref name="del"/>
|
929
|
+
</choice>
|
930
|
+
</define>
|
931
|
+
<define name="add">
|
932
|
+
<element name="add">
|
933
|
+
<choice>
|
934
|
+
<ref name="PureTextElement"/>
|
935
|
+
<ref name="eref"/>
|
936
|
+
<ref name="stem"/>
|
937
|
+
<ref name="keyword"/>
|
938
|
+
<ref name="xref"/>
|
939
|
+
<ref name="hyperlink"/>
|
940
|
+
</choice>
|
941
|
+
</element>
|
942
|
+
</define>
|
943
|
+
<define name="del">
|
944
|
+
<element name="del">
|
945
|
+
<choice>
|
946
|
+
<ref name="PureTextElement"/>
|
947
|
+
<ref name="eref"/>
|
948
|
+
<ref name="stem"/>
|
949
|
+
<ref name="keyword"/>
|
950
|
+
<ref name="xref"/>
|
951
|
+
<ref name="hyperlink"/>
|
952
|
+
</choice>
|
953
|
+
</element>
|
797
954
|
</define>
|
798
955
|
<define name="concept">
|
799
956
|
<element name="concept">
|
@@ -814,8 +971,170 @@
|
|
814
971
|
<ref name="permission"/>
|
815
972
|
<ref name="imagemap"/>
|
816
973
|
<ref name="svgmap"/>
|
974
|
+
<ref name="inputform"/>
|
975
|
+
</choice>
|
976
|
+
</define>
|
977
|
+
<define name="inputform">
|
978
|
+
<element name="form">
|
979
|
+
<attribute name="id">
|
980
|
+
<data type="ID"/>
|
981
|
+
</attribute>
|
982
|
+
<attribute name="name"/>
|
983
|
+
<attribute name="action"/>
|
984
|
+
<zeroOrMore>
|
985
|
+
<choice>
|
986
|
+
<ref name="TextElement"/>
|
987
|
+
<ref name="FormInput"/>
|
988
|
+
</choice>
|
989
|
+
</zeroOrMore>
|
990
|
+
</element>
|
991
|
+
</define>
|
992
|
+
<define name="FormInput">
|
993
|
+
<choice>
|
994
|
+
<ref name="input"/>
|
995
|
+
<ref name="formlabel"/>
|
996
|
+
<ref name="select"/>
|
997
|
+
<ref name="textarea"/>
|
998
|
+
</choice>
|
999
|
+
</define>
|
1000
|
+
<define name="InputType">
|
1001
|
+
<choice>
|
1002
|
+
<value>button</value>
|
1003
|
+
<value>checkbox</value>
|
1004
|
+
<value>date</value>
|
1005
|
+
<value>file</value>
|
1006
|
+
<value>password</value>
|
1007
|
+
<value>radio</value>
|
1008
|
+
<value>submit</value>
|
1009
|
+
<value>text</value>
|
817
1010
|
</choice>
|
818
1011
|
</define>
|
1012
|
+
<define name="input">
|
1013
|
+
<element name="input">
|
1014
|
+
<attribute name="type">
|
1015
|
+
<ref name="InputType"/>
|
1016
|
+
</attribute>
|
1017
|
+
<optional>
|
1018
|
+
<attribute name="checked">
|
1019
|
+
<data type="boolean"/>
|
1020
|
+
</attribute>
|
1021
|
+
</optional>
|
1022
|
+
<optional>
|
1023
|
+
<attribute name="disabled">
|
1024
|
+
<data type="boolean"/>
|
1025
|
+
</attribute>
|
1026
|
+
</optional>
|
1027
|
+
<optional>
|
1028
|
+
<attribute name="readonly">
|
1029
|
+
<data type="boolean"/>
|
1030
|
+
</attribute>
|
1031
|
+
</optional>
|
1032
|
+
<optional>
|
1033
|
+
<attribute name="maxlength">
|
1034
|
+
<data type="int"/>
|
1035
|
+
</attribute>
|
1036
|
+
</optional>
|
1037
|
+
<optional>
|
1038
|
+
<attribute name="minlength">
|
1039
|
+
<data type="int"/>
|
1040
|
+
</attribute>
|
1041
|
+
</optional>
|
1042
|
+
<optional>
|
1043
|
+
<attribute name="name"/>
|
1044
|
+
</optional>
|
1045
|
+
<optional>
|
1046
|
+
<attribute name="value"/>
|
1047
|
+
</optional>
|
1048
|
+
<optional>
|
1049
|
+
<attribute name="id">
|
1050
|
+
<data type="ID"/>
|
1051
|
+
</attribute>
|
1052
|
+
</optional>
|
1053
|
+
</element>
|
1054
|
+
</define>
|
1055
|
+
<define name="formlabel">
|
1056
|
+
<element name="label">
|
1057
|
+
<attribute name="for">
|
1058
|
+
<data type="IDREF"/>
|
1059
|
+
</attribute>
|
1060
|
+
<zeroOrMore>
|
1061
|
+
<ref name="PureTextElement"/>
|
1062
|
+
</zeroOrMore>
|
1063
|
+
</element>
|
1064
|
+
</define>
|
1065
|
+
<define name="select">
|
1066
|
+
<element name="select">
|
1067
|
+
<optional>
|
1068
|
+
<attribute name="name"/>
|
1069
|
+
</optional>
|
1070
|
+
<optional>
|
1071
|
+
<attribute name="value"/>
|
1072
|
+
</optional>
|
1073
|
+
<optional>
|
1074
|
+
<attribute name="id">
|
1075
|
+
<data type="ID"/>
|
1076
|
+
</attribute>
|
1077
|
+
</optional>
|
1078
|
+
<optional>
|
1079
|
+
<attribute name="disabled">
|
1080
|
+
<data type="boolean"/>
|
1081
|
+
</attribute>
|
1082
|
+
</optional>
|
1083
|
+
<optional>
|
1084
|
+
<attribute name="multiple">
|
1085
|
+
<data type="boolean"/>
|
1086
|
+
</attribute>
|
1087
|
+
</optional>
|
1088
|
+
<optional>
|
1089
|
+
<attribute name="size">
|
1090
|
+
<data type="int"/>
|
1091
|
+
</attribute>
|
1092
|
+
</optional>
|
1093
|
+
<oneOrMore>
|
1094
|
+
<ref name="option"/>
|
1095
|
+
</oneOrMore>
|
1096
|
+
</element>
|
1097
|
+
</define>
|
1098
|
+
<define name="option">
|
1099
|
+
<element name="option">
|
1100
|
+
<optional>
|
1101
|
+
<attribute name="disabled">
|
1102
|
+
<data type="boolean"/>
|
1103
|
+
</attribute>
|
1104
|
+
</optional>
|
1105
|
+
<optional>
|
1106
|
+
<attribute name="value"/>
|
1107
|
+
</optional>
|
1108
|
+
<zeroOrMore>
|
1109
|
+
<ref name="PureTextElement"/>
|
1110
|
+
</zeroOrMore>
|
1111
|
+
</element>
|
1112
|
+
</define>
|
1113
|
+
<define name="textarea">
|
1114
|
+
<element name="textarea">
|
1115
|
+
<optional>
|
1116
|
+
<attribute name="name"/>
|
1117
|
+
</optional>
|
1118
|
+
<optional>
|
1119
|
+
<attribute name="value"/>
|
1120
|
+
</optional>
|
1121
|
+
<optional>
|
1122
|
+
<attribute name="id">
|
1123
|
+
<data type="ID"/>
|
1124
|
+
</attribute>
|
1125
|
+
</optional>
|
1126
|
+
<optional>
|
1127
|
+
<attribute name="rows">
|
1128
|
+
<data type="int"/>
|
1129
|
+
</attribute>
|
1130
|
+
</optional>
|
1131
|
+
<optional>
|
1132
|
+
<attribute name="cols">
|
1133
|
+
<data type="int"/>
|
1134
|
+
</attribute>
|
1135
|
+
</optional>
|
1136
|
+
</element>
|
1137
|
+
</define>
|
819
1138
|
<define name="bibliography">
|
820
1139
|
<element name="bibliography">
|
821
1140
|
<oneOrMore>
|
@@ -888,9 +1207,7 @@
|
|
888
1207
|
</define>
|
889
1208
|
<define name="IsoWorkgroup">
|
890
1209
|
<optional>
|
891
|
-
<attribute name="number"
|
892
|
-
<data type="int"/>
|
893
|
-
</attribute>
|
1210
|
+
<attribute name="number"/>
|
894
1211
|
</optional>
|
895
1212
|
<optional>
|
896
1213
|
<attribute name="type"/>
|