metanorma-iso 1.8.1 → 1.8.6
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 +3 -13
- data/.hound.yml +3 -1
- data/.rubocop.yml +4 -8
- data/lib/asciidoctor/iso/base.rb +1 -0
- data/lib/asciidoctor/iso/biblio.rng +1 -0
- data/lib/asciidoctor/iso/cleanup.rb +17 -5
- data/lib/asciidoctor/iso/front.rb +3 -1
- data/lib/asciidoctor/iso/front_id.rb +66 -50
- data/lib/asciidoctor/iso/isodoc.rng +209 -4
- data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
- data/lib/asciidoctor/iso/isostandard.rng +12 -0
- data/lib/asciidoctor/iso/section.rb +2 -1
- data/lib/asciidoctor/iso/validate_section.rb +16 -9
- data/lib/isodoc/iso/base_convert.rb +13 -13
- data/lib/isodoc/iso/html/isodoc.css +475 -20
- data/lib/isodoc/iso/html/isodoc.scss +456 -23
- data/lib/isodoc/iso/html/wordstyle.css +202 -31
- data/lib/isodoc/iso/html/wordstyle.scss +194 -32
- data/lib/isodoc/iso/iso.amendment.xsl +679 -473
- data/lib/isodoc/iso/iso.international-standard.xsl +679 -473
- data/lib/isodoc/iso/metadata.rb +3 -2
- data/lib/isodoc/iso/presentation_xml_convert.rb +18 -9
- data/lib/isodoc/iso/sts_convert.rb +10 -13
- data/lib/isodoc/iso/word_convert.rb +153 -39
- data/lib/isodoc/iso/xref.rb +42 -27
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +4 -4
- data/spec/asciidoctor/base_spec.rb +426 -334
- data/spec/asciidoctor/blocks_spec.rb +96 -34
- data/spec/asciidoctor/cleanup_spec.rb +383 -25
- data/spec/asciidoctor/section_spec.rb +0 -14
- data/spec/asciidoctor/validate_spec.rb +119 -39
- data/spec/isodoc/amd_spec.rb +193 -201
- data/spec/isodoc/blocks_spec.rb +100 -88
- data/spec/isodoc/i18n_spec.rb +36 -36
- data/spec/isodoc/inline_spec.rb +282 -2
- data/spec/isodoc/iso_spec.rb +86 -138
- data/spec/isodoc/postproc_spec.rb +492 -442
- data/spec/isodoc/ref_spec.rb +6 -6
- data/spec/isodoc/section_spec.rb +301 -306
- data/spec/isodoc/table_spec.rb +166 -231
- data/spec/isodoc/terms_spec.rb +11 -8
- data/spec/isodoc/xref_spec.rb +147 -118
- data/spec/spec_helper.rb +16 -15
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a0192dfdd4d26ab4c59d50a8b7e91e36ce83a27c9835f01221444e1ecf2c278
|
4
|
+
data.tar.gz: 4f4b37c785f3fe5c58777962943ebe8c27a38415cd178d8abab18dc95cf24192
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91c94f57a7a8437f4c64366aeb1f14a5ede637357fd19485de1311e18d112ec22ff4325e35158c4322fc5a763292add832d4bc02b64c425e59b778e92ca757e8
|
7
|
+
data.tar.gz: 47e01118ffc205d246a082130c25893e6e3c41bc4c2ce171949d5f3e308e30a64c7ce49b903aa9f3434537eac2f275e50443f1887014b8a256a48061e38d3250
|
data/.github/workflows/rake.yml
CHANGED
@@ -4,7 +4,7 @@ name: rake
|
|
4
4
|
|
5
5
|
on:
|
6
6
|
push:
|
7
|
-
branches: [ master, main
|
7
|
+
branches: [ master, main ]
|
8
8
|
tags: [ v* ]
|
9
9
|
pull_request:
|
10
10
|
|
@@ -16,19 +16,9 @@ jobs:
|
|
16
16
|
strategy:
|
17
17
|
fail-fast: false
|
18
18
|
matrix:
|
19
|
-
ruby: [ '
|
19
|
+
ruby: [ '3.0', '2.7', '2.6', '2.5' ]
|
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@master
|
34
24
|
|
@@ -49,5 +39,5 @@ jobs:
|
|
49
39
|
with:
|
50
40
|
token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
|
51
41
|
repository: ${{ github.repository }}
|
52
|
-
event-type:
|
42
|
+
event-type: tests-passed
|
53
43
|
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
|
data/.hound.yml
CHANGED
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/lib/asciidoctor/iso/base.rb
CHANGED
@@ -65,8 +65,12 @@ module Asciidoctor
|
|
65
65
|
super
|
66
66
|
end
|
67
67
|
|
68
|
-
TERM_CLAUSE = "//sections//terms"
|
68
|
+
TERM_CLAUSE = "//sections//terms | "\
|
69
|
+
"//sections//clause[descendant::terms][not(descendant::definitions)]"
|
70
|
+
.freeze
|
71
|
+
|
69
72
|
PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
|
73
|
+
|
70
74
|
OTHERIDS = "@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or "\
|
71
75
|
"@type = 'ISBN'".freeze
|
72
76
|
|
@@ -154,12 +158,20 @@ module Asciidoctor
|
|
154
158
|
|
155
159
|
id = b.at("docidentifier").text
|
156
160
|
b.at("./language | ./script | ./abstract | ./status")
|
157
|
-
.previous =
|
158
|
-
|
159
|
-
<p>#{@i18n.under_preparation.sub(/%/, id)}</p></note>
|
160
|
-
NOTE
|
161
|
+
.previous = %(<note type="Unpublished-Status">
|
162
|
+
<p>#{@i18n.under_preparation.sub(/%/, id)}</p></note>)
|
161
163
|
end
|
162
164
|
end
|
165
|
+
|
166
|
+
def termdef_boilerplate_insert(xmldoc, isodoc, once = false)
|
167
|
+
once = true
|
168
|
+
super
|
169
|
+
end
|
170
|
+
|
171
|
+
def term_defs_boilerplate_cont(src, term, isodoc)
|
172
|
+
@vocab and src.empty? and return
|
173
|
+
super
|
174
|
+
end
|
163
175
|
end
|
164
176
|
end
|
165
177
|
end
|
@@ -115,7 +115,9 @@ module Asciidoctor
|
|
115
115
|
return unless node.attr("title-amendment-#{lang}")
|
116
116
|
|
117
117
|
xml.title(**attr_code(at.merge(type: "title-amd"))) do |t1|
|
118
|
-
t1 << Metanorma::Utils::asciidoc_sub(
|
118
|
+
t1 << Metanorma::Utils::asciidoc_sub(
|
119
|
+
node.attr("title-amendment-#{lang}")
|
120
|
+
)
|
119
121
|
end
|
120
122
|
end
|
121
123
|
|
@@ -35,22 +35,26 @@ module Asciidoctor
|
|
35
35
|
|
36
36
|
def stage_abbr(stage, substage, doctype)
|
37
37
|
return nil if stage.to_i > 60
|
38
|
+
|
38
39
|
ret = STAGE_ABBRS[stage.to_sym]
|
39
40
|
ret = "PRF" if stage == "60" && substage == "00"
|
40
41
|
ret = "AWI" if stage == "10" && substage == "99"
|
41
|
-
if %w(amendment technical-corrigendum technical-report
|
42
|
-
|
42
|
+
if %w(amendment technical-corrigendum technical-report
|
43
|
+
technical-specification).include?(doctype)
|
43
44
|
ret = "D" if stage == "40" && doctype == "amendment"
|
44
|
-
ret = "FD" if stage == "50" && %w(amendment technical-corrigendum)
|
45
|
+
ret = "FD" if stage == "50" && %w(amendment technical-corrigendum)
|
46
|
+
.include?(doctype)
|
45
47
|
end
|
46
48
|
ret
|
47
49
|
end
|
48
50
|
|
49
51
|
def stage_name(stage, substage, doctype, iteration = nil)
|
50
52
|
return "Proof" if stage == "60" && substage == "00"
|
53
|
+
|
51
54
|
ret = STAGE_NAMES[stage.to_sym]
|
52
55
|
if iteration && %w(20 30).include?(stage)
|
53
|
-
prefix = iteration.to_i.localize(@lang.to_sym)
|
56
|
+
prefix = iteration.to_i.localize(@lang.to_sym)
|
57
|
+
.to_rbnf_s("SpelloutRules", "spellout-ordinal")
|
54
58
|
ret = "#{prefix.capitalize} #{ret.downcase}"
|
55
59
|
end
|
56
60
|
ret
|
@@ -65,37 +69,39 @@ module Asciidoctor
|
|
65
69
|
end
|
66
70
|
|
67
71
|
def iso_id(node, xml)
|
68
|
-
|
72
|
+
!@amd && node.attr("docnumber") || @amd && node.attr("updates") or
|
73
|
+
return
|
74
|
+
|
69
75
|
dn = iso_id1(node)
|
70
76
|
dn1 = id_stage_prefix(dn, node, false)
|
71
77
|
dn2 = id_stage_prefix(dn, node, true)
|
72
78
|
xml.docidentifier dn1, **attr_code(type: "ISO")
|
73
|
-
xml.docidentifier
|
74
|
-
|
79
|
+
xml.docidentifier(id_langsuffix(dn1, node),
|
80
|
+
**attr_code(type: "iso-with-lang"))
|
81
|
+
xml.docidentifier(id_langsuffix(dn2, node),
|
82
|
+
**attr_code(type: "iso-reference"))
|
75
83
|
end
|
76
84
|
|
77
85
|
def iso_id1(node)
|
78
86
|
if @amd
|
79
87
|
dn = node.attr("updates")
|
80
|
-
|
88
|
+
add_amd_parts(dn, node)
|
81
89
|
else
|
82
90
|
part, subpart = node&.attr("partnumber")&.split(/-/)
|
83
|
-
|
91
|
+
add_id_parts(node.attr("docnumber"), part, subpart)
|
84
92
|
end
|
85
93
|
end
|
86
94
|
|
87
|
-
def add_amd_parts(
|
88
|
-
a = node.attr("amendment-number")
|
89
|
-
c = node.attr("corrigendum-number")
|
95
|
+
def add_amd_parts(docnum, node)
|
90
96
|
case doctype(node)
|
91
97
|
when "amendment"
|
92
|
-
"#{
|
98
|
+
"#{docnum}/Amd #{node.attr('amendment-number')}"
|
93
99
|
when "technical-corrigendum"
|
94
|
-
"#{
|
100
|
+
"#{docnum}/Cor.#{node.attr('corrigendum-number')}"
|
95
101
|
end
|
96
102
|
end
|
97
103
|
|
98
|
-
def id_langsuffix(
|
104
|
+
def id_langsuffix(docnum, node)
|
99
105
|
lang = node.attr("language") || "en"
|
100
106
|
suffix = case lang
|
101
107
|
when "en" then "(E)"
|
@@ -103,38 +109,43 @@ module Asciidoctor
|
|
103
109
|
else
|
104
110
|
"(X)"
|
105
111
|
end
|
106
|
-
"#{
|
112
|
+
"#{docnum}#{suffix}"
|
107
113
|
end
|
108
114
|
|
109
115
|
def structured_id(node, xml)
|
110
116
|
return unless node.attr("docnumber")
|
117
|
+
|
111
118
|
part, subpart = node&.attr("partnumber")&.split(/-/)
|
112
119
|
xml.structuredidentifier do |i|
|
113
|
-
i.project_number
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
120
|
+
i.project_number(node.attr("docnumber"), **attr_code(
|
121
|
+
part: part, subpart: subpart,
|
122
|
+
amendment: node.attr("amendment-number"),
|
123
|
+
corrigendum: node.attr("corrigendum-number"),
|
124
|
+
origyr: node.attr("created-date")
|
125
|
+
))
|
118
126
|
end
|
119
127
|
end
|
120
128
|
|
121
|
-
def add_id_parts(
|
122
|
-
|
123
|
-
|
124
|
-
|
129
|
+
def add_id_parts(docnum, part, subpart)
|
130
|
+
docnum += "-#{part}" if part
|
131
|
+
docnum += "-#{subpart}" if subpart
|
132
|
+
docnum
|
125
133
|
end
|
126
134
|
|
127
135
|
def id_stage_abbr(stage, substage, node, bare = false)
|
128
|
-
ret = bare
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
136
|
+
ret = if bare
|
137
|
+
IsoDoc::Iso::Metadata.new("en", "Latn", @i18n)
|
138
|
+
.status_abbrev(stage_abbr(stage, substage, doctype(node)),
|
139
|
+
substage, nil, nil, doctype(node))
|
140
|
+
else
|
141
|
+
IsoDoc::Iso::Metadata.new("en", "Latn", @i18n)
|
142
|
+
.status_abbrev(stage_abbr(stage, substage, doctype(node)),
|
143
|
+
substage, node.attr("iteration"),
|
144
|
+
node.attr("draft"), doctype(node))
|
145
|
+
end
|
146
|
+
if %w(amendment technical-corrigendum technical-report
|
147
|
+
technical-specification).include?(doctype(node))
|
148
|
+
ret = "#{ret} " unless %w(D FD).include?(ret)
|
138
149
|
end
|
139
150
|
ret
|
140
151
|
end
|
@@ -143,51 +154,56 @@ module Asciidoctor
|
|
143
154
|
stage = get_stage(node)
|
144
155
|
abbr = id_stage_abbr(get_stage(node), get_substage(node), node, true)
|
145
156
|
typeabbr = get_typeabbr(node, true)
|
146
|
-
|
157
|
+
if stage.to_i > 50 || stage.to_i == 60 && get_substage(node).to_i < 60
|
158
|
+
typeabbr = ""
|
159
|
+
end
|
147
160
|
"#{abbr}#{typeabbr}".strip
|
148
161
|
end
|
149
162
|
|
150
|
-
def id_stage_prefix(
|
163
|
+
def id_stage_prefix(docnum, node, force_year)
|
151
164
|
stage = get_stage(node)
|
152
165
|
typeabbr = get_typeabbr(node)
|
153
166
|
if stage && (stage.to_i < 60)
|
154
|
-
|
155
|
-
elsif typeabbr
|
167
|
+
docnum = unpub_stage_prefix(docnum, stage, typeabbr, node)
|
168
|
+
elsif typeabbr == "DIR " then docnum = "#{typeabbr}#{docnum}"
|
169
|
+
elsif typeabbr && !@amd then docnum = "/#{typeabbr}#{docnum}"
|
156
170
|
end
|
157
171
|
(force_year || !(stage && (stage.to_i < 60))) and
|
158
|
-
|
159
|
-
|
172
|
+
docnum = id_add_year(docnum, node)
|
173
|
+
docnum
|
160
174
|
end
|
161
175
|
|
162
|
-
def unpub_stage_prefix(
|
176
|
+
def unpub_stage_prefix(docnum, stage, typeabbr, node)
|
163
177
|
abbr = id_stage_abbr(stage, get_substage(node), node)
|
164
178
|
%w(40 50).include?(stage) && i = node.attr("iteration") and
|
165
179
|
itersuffix = ".#{i}"
|
166
|
-
return
|
167
|
-
return "/#{abbr}#{typeabbr} #{
|
168
|
-
|
180
|
+
return docnum if abbr.nil? || abbr.empty? # prefixes added in cleanup
|
181
|
+
return "/#{abbr}#{typeabbr} #{docnum}#{itersuffix}" unless @amd
|
182
|
+
|
183
|
+
a = docnum.split(%r{/})
|
169
184
|
a[-1] = "#{abbr}#{a[-1]}#{itersuffix}"
|
170
185
|
a.join("/")
|
171
186
|
end
|
172
187
|
|
173
|
-
def id_add_year(
|
188
|
+
def id_add_year(docnum, node)
|
174
189
|
year = node.attr("copyright-year")
|
175
190
|
@amd and year ||= node.attr("updated-date")&.sub(/-.*$/, "")
|
176
|
-
|
177
|
-
|
191
|
+
docnum += ":#{year}" if year
|
192
|
+
docnum
|
178
193
|
end
|
179
194
|
|
180
195
|
def get_stage(node)
|
181
|
-
|
196
|
+
node.attr("status") || node.attr("docstage") || "60"
|
182
197
|
end
|
183
198
|
|
184
199
|
def get_substage(node)
|
185
200
|
stage = get_stage(node)
|
186
|
-
node.attr("docsubstage") || (
|
201
|
+
node.attr("docsubstage") || (stage == "60" ? "60" : "00")
|
187
202
|
end
|
188
203
|
|
189
204
|
def get_typeabbr(node, amd = false)
|
190
205
|
case doctype(node)
|
206
|
+
when "directive" then "DIR "
|
191
207
|
when "technical-report" then "TR "
|
192
208
|
when "technical-specification" then "TS "
|
193
209
|
when "amendment" then (amd ? "Amd " : "")
|
@@ -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>
|
@@ -543,6 +548,9 @@
|
|
543
548
|
</define>
|
544
549
|
<define name="BibDataExtensionType">
|
545
550
|
<ref name="doctype"/>
|
551
|
+
<optional>
|
552
|
+
<ref name="docsubtype"/>
|
553
|
+
</optional>
|
546
554
|
<optional>
|
547
555
|
<ref name="editorialgroup"/>
|
548
556
|
</optional>
|
@@ -876,8 +884,28 @@
|
|
876
884
|
</zeroOrMore>
|
877
885
|
</element>
|
878
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>
|
879
899
|
</include>
|
880
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>
|
881
909
|
<define name="colgroup">
|
882
910
|
<element name="colgroup">
|
883
911
|
<oneOrMore>
|
@@ -927,7 +955,24 @@
|
|
927
955
|
<define name="concept">
|
928
956
|
<element name="concept">
|
929
957
|
<optional>
|
930
|
-
<
|
958
|
+
<element name="refterm">
|
959
|
+
<zeroOrMore>
|
960
|
+
<choice>
|
961
|
+
<ref name="PureTextElement"/>
|
962
|
+
<ref name="stem"/>
|
963
|
+
</choice>
|
964
|
+
</zeroOrMore>
|
965
|
+
</element>
|
966
|
+
</optional>
|
967
|
+
<optional>
|
968
|
+
<element name="renderterm">
|
969
|
+
<zeroOrMore>
|
970
|
+
<choice>
|
971
|
+
<ref name="PureTextElement"/>
|
972
|
+
<ref name="stem"/>
|
973
|
+
</choice>
|
974
|
+
</zeroOrMore>
|
975
|
+
</element>
|
931
976
|
</optional>
|
932
977
|
<choice>
|
933
978
|
<ref name="eref"/>
|
@@ -943,8 +988,170 @@
|
|
943
988
|
<ref name="permission"/>
|
944
989
|
<ref name="imagemap"/>
|
945
990
|
<ref name="svgmap"/>
|
991
|
+
<ref name="inputform"/>
|
992
|
+
</choice>
|
993
|
+
</define>
|
994
|
+
<define name="inputform">
|
995
|
+
<element name="form">
|
996
|
+
<attribute name="id">
|
997
|
+
<data type="ID"/>
|
998
|
+
</attribute>
|
999
|
+
<attribute name="name"/>
|
1000
|
+
<attribute name="action"/>
|
1001
|
+
<zeroOrMore>
|
1002
|
+
<choice>
|
1003
|
+
<ref name="TextElement"/>
|
1004
|
+
<ref name="FormInput"/>
|
1005
|
+
</choice>
|
1006
|
+
</zeroOrMore>
|
1007
|
+
</element>
|
1008
|
+
</define>
|
1009
|
+
<define name="FormInput">
|
1010
|
+
<choice>
|
1011
|
+
<ref name="input"/>
|
1012
|
+
<ref name="formlabel"/>
|
1013
|
+
<ref name="select"/>
|
1014
|
+
<ref name="textarea"/>
|
946
1015
|
</choice>
|
947
1016
|
</define>
|
1017
|
+
<define name="InputType">
|
1018
|
+
<choice>
|
1019
|
+
<value>button</value>
|
1020
|
+
<value>checkbox</value>
|
1021
|
+
<value>date</value>
|
1022
|
+
<value>file</value>
|
1023
|
+
<value>password</value>
|
1024
|
+
<value>radio</value>
|
1025
|
+
<value>submit</value>
|
1026
|
+
<value>text</value>
|
1027
|
+
</choice>
|
1028
|
+
</define>
|
1029
|
+
<define name="input">
|
1030
|
+
<element name="input">
|
1031
|
+
<attribute name="type">
|
1032
|
+
<ref name="InputType"/>
|
1033
|
+
</attribute>
|
1034
|
+
<optional>
|
1035
|
+
<attribute name="checked">
|
1036
|
+
<data type="boolean"/>
|
1037
|
+
</attribute>
|
1038
|
+
</optional>
|
1039
|
+
<optional>
|
1040
|
+
<attribute name="disabled">
|
1041
|
+
<data type="boolean"/>
|
1042
|
+
</attribute>
|
1043
|
+
</optional>
|
1044
|
+
<optional>
|
1045
|
+
<attribute name="readonly">
|
1046
|
+
<data type="boolean"/>
|
1047
|
+
</attribute>
|
1048
|
+
</optional>
|
1049
|
+
<optional>
|
1050
|
+
<attribute name="maxlength">
|
1051
|
+
<data type="int"/>
|
1052
|
+
</attribute>
|
1053
|
+
</optional>
|
1054
|
+
<optional>
|
1055
|
+
<attribute name="minlength">
|
1056
|
+
<data type="int"/>
|
1057
|
+
</attribute>
|
1058
|
+
</optional>
|
1059
|
+
<optional>
|
1060
|
+
<attribute name="name"/>
|
1061
|
+
</optional>
|
1062
|
+
<optional>
|
1063
|
+
<attribute name="value"/>
|
1064
|
+
</optional>
|
1065
|
+
<optional>
|
1066
|
+
<attribute name="id">
|
1067
|
+
<data type="ID"/>
|
1068
|
+
</attribute>
|
1069
|
+
</optional>
|
1070
|
+
</element>
|
1071
|
+
</define>
|
1072
|
+
<define name="formlabel">
|
1073
|
+
<element name="label">
|
1074
|
+
<attribute name="for">
|
1075
|
+
<data type="IDREF"/>
|
1076
|
+
</attribute>
|
1077
|
+
<zeroOrMore>
|
1078
|
+
<ref name="PureTextElement"/>
|
1079
|
+
</zeroOrMore>
|
1080
|
+
</element>
|
1081
|
+
</define>
|
1082
|
+
<define name="select">
|
1083
|
+
<element name="select">
|
1084
|
+
<optional>
|
1085
|
+
<attribute name="name"/>
|
1086
|
+
</optional>
|
1087
|
+
<optional>
|
1088
|
+
<attribute name="value"/>
|
1089
|
+
</optional>
|
1090
|
+
<optional>
|
1091
|
+
<attribute name="id">
|
1092
|
+
<data type="ID"/>
|
1093
|
+
</attribute>
|
1094
|
+
</optional>
|
1095
|
+
<optional>
|
1096
|
+
<attribute name="disabled">
|
1097
|
+
<data type="boolean"/>
|
1098
|
+
</attribute>
|
1099
|
+
</optional>
|
1100
|
+
<optional>
|
1101
|
+
<attribute name="multiple">
|
1102
|
+
<data type="boolean"/>
|
1103
|
+
</attribute>
|
1104
|
+
</optional>
|
1105
|
+
<optional>
|
1106
|
+
<attribute name="size">
|
1107
|
+
<data type="int"/>
|
1108
|
+
</attribute>
|
1109
|
+
</optional>
|
1110
|
+
<oneOrMore>
|
1111
|
+
<ref name="option"/>
|
1112
|
+
</oneOrMore>
|
1113
|
+
</element>
|
1114
|
+
</define>
|
1115
|
+
<define name="option">
|
1116
|
+
<element name="option">
|
1117
|
+
<optional>
|
1118
|
+
<attribute name="disabled">
|
1119
|
+
<data type="boolean"/>
|
1120
|
+
</attribute>
|
1121
|
+
</optional>
|
1122
|
+
<optional>
|
1123
|
+
<attribute name="value"/>
|
1124
|
+
</optional>
|
1125
|
+
<zeroOrMore>
|
1126
|
+
<ref name="PureTextElement"/>
|
1127
|
+
</zeroOrMore>
|
1128
|
+
</element>
|
1129
|
+
</define>
|
1130
|
+
<define name="textarea">
|
1131
|
+
<element name="textarea">
|
1132
|
+
<optional>
|
1133
|
+
<attribute name="name"/>
|
1134
|
+
</optional>
|
1135
|
+
<optional>
|
1136
|
+
<attribute name="value"/>
|
1137
|
+
</optional>
|
1138
|
+
<optional>
|
1139
|
+
<attribute name="id">
|
1140
|
+
<data type="ID"/>
|
1141
|
+
</attribute>
|
1142
|
+
</optional>
|
1143
|
+
<optional>
|
1144
|
+
<attribute name="rows">
|
1145
|
+
<data type="int"/>
|
1146
|
+
</attribute>
|
1147
|
+
</optional>
|
1148
|
+
<optional>
|
1149
|
+
<attribute name="cols">
|
1150
|
+
<data type="int"/>
|
1151
|
+
</attribute>
|
1152
|
+
</optional>
|
1153
|
+
</element>
|
1154
|
+
</define>
|
948
1155
|
<define name="bibliography">
|
949
1156
|
<element name="bibliography">
|
950
1157
|
<oneOrMore>
|
@@ -1017,9 +1224,7 @@
|
|
1017
1224
|
</define>
|
1018
1225
|
<define name="IsoWorkgroup">
|
1019
1226
|
<optional>
|
1020
|
-
<attribute name="number"
|
1021
|
-
<data type="int"/>
|
1022
|
-
</attribute>
|
1227
|
+
<attribute name="number"/>
|
1023
1228
|
</optional>
|
1024
1229
|
<optional>
|
1025
1230
|
<attribute name="type"/>
|