relaton-iec 1.7.4 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +46 -0
- data/README.adoc +230 -1
- data/bin/rspec +29 -0
- data/grammars/basicdoc.rng +165 -20
- data/grammars/biblio.rng +4 -6
- data/grammars/iec.rng +92 -1
- data/grammars/isodoc.rng +460 -6
- data/grammars/isostandard.rng +42 -104
- data/grammars/reqt.rng +31 -2
- data/lib/relaton_iec.rb +71 -7
- data/lib/relaton_iec/basic_block/alignment.rb +30 -0
- data/lib/relaton_iec/basic_block/basic_block.rb +15 -0
- data/lib/relaton_iec/basic_block/citation_type.rb +32 -0
- data/lib/relaton_iec/basic_block/dl.rb +60 -0
- data/lib/relaton_iec/basic_block/eref.rb +10 -0
- data/lib/relaton_iec/basic_block/eref_type.rb +39 -0
- data/lib/relaton_iec/basic_block/formula.rb +34 -0
- data/lib/relaton_iec/basic_block/image.rb +41 -0
- data/lib/relaton_iec/basic_block/index.rb +27 -0
- data/lib/relaton_iec/basic_block/index_xref.rb +31 -0
- data/lib/relaton_iec/basic_block/note.rb +21 -0
- data/lib/relaton_iec/basic_block/paragraph.rb +27 -0
- data/lib/relaton_iec/basic_block/paragraph_with_footnote.rb +29 -0
- data/lib/relaton_iec/basic_block/reference_format.rb +38 -0
- data/lib/relaton_iec/basic_block/stem.rb +30 -0
- data/lib/relaton_iec/basic_block/table.rb +115 -0
- data/lib/relaton_iec/basic_block/text_element.rb +27 -0
- data/lib/relaton_iec/hash_converter.rb +1 -1
- data/lib/relaton_iec/hit.rb +4 -0
- data/lib/relaton_iec/hit_collection.rb +31 -12
- data/lib/relaton_iec/iec_bibliographic_item.rb +92 -0
- data/lib/relaton_iec/iec_bibliography.rb +82 -49
- data/lib/relaton_iec/processor.rb +7 -2
- data/lib/relaton_iec/scrapper.rb +12 -40
- data/lib/relaton_iec/statuses.yml +84 -17
- data/lib/relaton_iec/tc_sc_officers_note.rb +24 -0
- data/lib/relaton_iec/version.rb +1 -1
- data/lib/relaton_iec/xml_parser.rb +21 -1
- data/relaton_iec.gemspec +3 -3
- metadata +25 -36
- data/.github/workflows/macos.yml +0 -34
- data/.github/workflows/ubuntu.yml +0 -33
- data/.github/workflows/windows.yml +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7427ca1b33596a9bec83d8f3abc0710879b3daf6c194521dadc222b782ce5107
|
4
|
+
data.tar.gz: 1d5fcf9d30f78f44bfc50c54981923327df06d197dc53c746438201dacd701ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c777d27e4cda11e19603f55351fb881f92ae68d370385e806de2f379f4f696b400b23256a270afb131913ac6d8dc1c46cf9e2a0789b2316e89f9c8fb6d3f1b9c
|
7
|
+
data.tar.gz: ac81157fe613cf6af53b0ed92f7dc5f189d7fa9535f5f614e0497f2e478750d1da11e7971b33cc8c03d318fedeb03acef9ce378fcc1afe37679d4bbfa1487ada
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
|
+
name: rake
|
4
|
+
|
5
|
+
on:
|
6
|
+
push:
|
7
|
+
branches: [ master, main ]
|
8
|
+
tags: [ v* ]
|
9
|
+
pull_request:
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
rake:
|
13
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
14
|
+
runs-on: ${{ matrix.os }}
|
15
|
+
continue-on-error: ${{ matrix.experimental }}
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
ruby: [ '2.7', '2.6', '2.5', '2.4' ]
|
20
|
+
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
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
|
+
steps:
|
33
|
+
- uses: actions/checkout@v2
|
34
|
+
with:
|
35
|
+
submodules: true
|
36
|
+
|
37
|
+
# https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
|
38
|
+
- if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
|
39
|
+
run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
|
40
|
+
|
41
|
+
- uses: ruby/setup-ruby@v1
|
42
|
+
with:
|
43
|
+
ruby-version: ${{ matrix.ruby }}
|
44
|
+
bundler-cache: true
|
45
|
+
|
46
|
+
- run: bundle exec rake
|
data/README.adoc
CHANGED
@@ -31,7 +31,236 @@ Or install it yourself as:
|
|
31
31
|
|
32
32
|
== Usage
|
33
33
|
|
34
|
-
|
34
|
+
=== Search for a standard using keywords
|
35
|
+
|
36
|
+
`RelatonIec::IecBibliography.search(ref, year)` method returns hits collection. Each hit can be used to fetch a document.
|
37
|
+
|
38
|
+
- `ref` - reference to search document
|
39
|
+
- `year` - filter by year (optional)
|
40
|
+
|
41
|
+
[source,ruby]
|
42
|
+
----
|
43
|
+
require 'relaton_iec'
|
44
|
+
=> true
|
45
|
+
|
46
|
+
hit_collection = RelatonIec::IecBibliography.search("60050")
|
47
|
+
=> <RelatonIec::HitCollection:0x007fe0d7126f28 @ref=60050 @fetched=false>
|
48
|
+
|
49
|
+
hit_collection.first
|
50
|
+
=> <RelatonIec::Hit:0x007fe1068b4d10 @text="60050" @fetched="false" @fullIdentifier="" @title="IEC 60050-102:2007">
|
51
|
+
|
52
|
+
item = hit_collection[2].fetch
|
53
|
+
=> #<RelatonIec::IecBibliographicItem:0x007fe1171a06f8
|
54
|
+
...
|
55
|
+
|
56
|
+
item.docidentifier
|
57
|
+
=> [#<RelatonBib::DocumentIdentifier:0x007fe1171bb930 @id="IEC 60050-112:2010", @scope=nil, @type="IEC">,
|
58
|
+
#<RelatonBib::DocumentIdentifier:0x007fe1171bb728 @id="urn:iec:std:iec:60050-112:2010:::en", @scope=nil, @type="URN">]
|
59
|
+
|
60
|
+
item.docidentifier.detect { |di| di.type == "URN" }.id
|
61
|
+
=> "urn:iec:std:iec:60050-112:2010:::en"
|
62
|
+
----
|
63
|
+
|
64
|
+
=== Fetch documen by keywords
|
65
|
+
|
66
|
+
`RelatonIec::IecBibliography.get(ref, year, opts)` method returns document.
|
67
|
+
|
68
|
+
- `ref` - reference to search document
|
69
|
+
- `year` - filter by year (optional)
|
70
|
+
- `opts` - hash of options (optional). Supported options are `:all_parts` (boolean), `:keep_year` (boolean).
|
71
|
+
|
72
|
+
[source,ruby]
|
73
|
+
----
|
74
|
+
item = RelatonIec::IecBibliography.get("IEC 60050-112:2010")
|
75
|
+
[relaton-iec] ("IEC 60050-112") fetching...
|
76
|
+
[relaton-iec] ("IEC 60050-112") found IEC 60050-112:2010
|
77
|
+
=> #<RelatonIec::IecBibliographicItem:0x007fa64e874f78
|
78
|
+
|
79
|
+
item = RelatonIec::IecBibliography.get("IEC 60050-112", "2010", all_parts: true)
|
80
|
+
[relaton-iec] ("IEC 60050-112") fetching...
|
81
|
+
[relaton-iec] ("IEC 60050-112") found IEC 60050 (all parts)
|
82
|
+
=> #<RelatonIec::IecBibliographicItem:0x007fa69e9b3948
|
83
|
+
|
84
|
+
item.docidentifier.first
|
85
|
+
=> #<RelatonBib::DocumentIdentifier:0x007fa69e9abd10 @id="IEC 60050 (all parts)", @scope=nil, @type="IEC">
|
86
|
+
|
87
|
+
item = RelatonIec::IecBibliography.get("IEC 60050-112", "2010")
|
88
|
+
[relaton-iec] ("IEC 60050-112") fetching...
|
89
|
+
[relaton-iec] ("IEC 60050-112") found IEC 60050-112:2010
|
90
|
+
=> #<RelatonIec::IecBibliographicItem:0x007fa69f296da8
|
91
|
+
|
92
|
+
item.docidentifier.first
|
93
|
+
=> #<RelatonBib::DocumentIdentifier:0x007fa69f2a65f0 @id="IEC 60050-112:2010", @scope=nil, @type="IEC">
|
94
|
+
----
|
95
|
+
|
96
|
+
=== Search for ISO/IEC Directives
|
97
|
+
|
98
|
+
The ISO/IEC Derectives are stored in a static cache in a relaton gem. It needs to use the relaton gem to fetch the ISO/IEC Directives. Folloving reaferences are allowed to fetch:
|
99
|
+
|
100
|
+
- ISO/IEC DIR 1 - Procedures for the technical work
|
101
|
+
- ISO/IEC DIR 1 IEC SUP - Procedures for the technical work – Procedures specific to IEC
|
102
|
+
- ISO/IEC DIR 1 ISO SUP - Consolidated ISO Supplement -- Procedures specific to ISO
|
103
|
+
- ISO/IEC DIR 2 IEC - Principles and rules for the structure and drafting of ISO and IEC documents
|
104
|
+
- ISO/IEC DIR 2 ISO - Principles and rules for the structure and drafting of ISO and IEC documents
|
105
|
+
- ISO/IEC DIR IEC SUP - Procedures specific to IEC
|
106
|
+
- ISO/IEC DIR JTC 1 SUP - Procedures specific to JTC 1
|
107
|
+
|
108
|
+
=== XML serialization
|
109
|
+
|
110
|
+
Possible options:
|
111
|
+
|
112
|
+
- *bibdata* - If true then wrapp item with _bibdata_ element and add _ext_ element.
|
113
|
+
- *note* - Array of hashes `{ text: "Note", type: "note" }`. These notes will be added to XML.
|
114
|
+
|
115
|
+
[source,ruby]
|
116
|
+
----
|
117
|
+
item.to_xml
|
118
|
+
=> "<bibitem id="IEC60050-112-2010" type="standard">
|
119
|
+
<fetched>2021-01-28</fetched>
|
120
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
|
121
|
+
<title type="title-part" format="text/plain" language="en" script="Latn">Part 112: Quantities and units</title>
|
122
|
+
<title type="main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV) - Part 112: Quantities and units</title>
|
123
|
+
<uri type="src">https://webstore.iec.ch/publication/162</uri>
|
124
|
+
<uri type="obp">/preview/info_iec60050-112%7Bed1.0%7Db.pdf</uri>
|
125
|
+
<docidentifier type="IEC">IEC 60050-112:2010</docidentifier>
|
126
|
+
<docidentifier type="URN">urn:iec:std:iec:60050-112:2010:::en</docidentifier>
|
127
|
+
<date type="published">
|
128
|
+
<on>2010-01-27</on>
|
129
|
+
</date>
|
130
|
+
<contributor>
|
131
|
+
<role type="publisher"/>
|
132
|
+
<organization>
|
133
|
+
<name>International Electrotechnical Commission</name>
|
134
|
+
<abbreviation>IEC</abbreviation>
|
135
|
+
<uri>www.iec.ch</uri>
|
136
|
+
</organization>
|
137
|
+
</contributor>
|
138
|
+
<edition>1.0</edition>
|
139
|
+
<language>en</language>
|
140
|
+
<script>Latn</script>
|
141
|
+
<abstract format="text/plain" language="en" script="Latn">
|
142
|
+
IEC 60050-112:2010 gives the general terminology concerning quantities and units, the terminology of SI, terms used in names and definitions of quantities, and some basic concepts in metrology. It cancels and replaces Sections 111-11 and 111-12 of International Standard IEC 60050-111:1996. It has the status of a horizontal standard in accordance with IEC Guide 108.
|
143
|
+
</abstract>
|
144
|
+
<status>
|
145
|
+
<stage>60</stage>
|
146
|
+
<substage>60</substage>
|
147
|
+
</status>
|
148
|
+
<copyright>
|
149
|
+
<from>2010</from>
|
150
|
+
<owner>
|
151
|
+
<organization>
|
152
|
+
<name>International Electrotechnical Commission</name>
|
153
|
+
<abbreviation>IEC</abbreviation>
|
154
|
+
<uri>www.iec.ch</uri>
|
155
|
+
</organization>
|
156
|
+
</owner>
|
157
|
+
</copyright>
|
158
|
+
<place>Geneva</place>
|
159
|
+
</bibitem>"
|
160
|
+
|
161
|
+
item.to_xml bibdata: true
|
162
|
+
=> "<bibdata type="standard">
|
163
|
+
<fetched>2021-01-28</fetched>
|
164
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
|
165
|
+
<title type="title-part" format="text/plain" language="en" script="Latn">Part 112: Quantities and units</title>
|
166
|
+
<title type="main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV) - Part 112: Quantities and units</title>
|
167
|
+
<uri type="src">https://webstore.iec.ch/publication/162</uri>
|
168
|
+
<uri type="obp">/preview/info_iec60050-112%7Bed1.0%7Db.pdf</uri>
|
169
|
+
<docidentifier type="IEC">IEC 60050-112:2010</docidentifier>
|
170
|
+
<docidentifier type="URN">urn:iec:std:iec:60050-112:2010:::en</docidentifier>
|
171
|
+
...
|
172
|
+
<ext>
|
173
|
+
<doctype>international-standard</doctype>
|
174
|
+
<editorialgroup>
|
175
|
+
<technical-committee number="1" type="technicalCommittee">TC 1 - Terminology</technical-committee>
|
176
|
+
</editorialgroup>
|
177
|
+
<ics>
|
178
|
+
<code>01.040.01</code>
|
179
|
+
<text>Generalities. Terminology. Standardization. Documentation (Vocabularies)</text>
|
180
|
+
</ics>
|
181
|
+
<ics>
|
182
|
+
<code>01.060</code>
|
183
|
+
<text>Quantities and units</text>
|
184
|
+
</ics>
|
185
|
+
<structuredidentifier type="IEC">
|
186
|
+
<project-number>60050</project-number>
|
187
|
+
</structuredidentifier>
|
188
|
+
</ext>
|
189
|
+
</bibdata>"
|
190
|
+
|
191
|
+
item.to_xml note: [{ text: "Note", type: "note" }]
|
192
|
+
=> "<bibitem id="IEC60050-112-2010" type="standard">
|
193
|
+
...
|
194
|
+
<note format="text/plain" type="note">Note</note>
|
195
|
+
...
|
196
|
+
</bibitem>"
|
197
|
+
----
|
198
|
+
|
199
|
+
=== Create bibliography item from hash
|
200
|
+
|
201
|
+
[source,ruby]
|
202
|
+
----
|
203
|
+
hash = YAML.load_file "spec/examples/hit.yaml"
|
204
|
+
=> {"id"=>"IEC61058-2-4-1995+AMD1-2003CSV",
|
205
|
+
...
|
206
|
+
|
207
|
+
RelatonIec::IecBibliographicItem.from_hash hash
|
208
|
+
=> #<RelatonIec::IecBibliographicItem:0x00007fe16f032d40
|
209
|
+
...
|
210
|
+
----
|
211
|
+
|
212
|
+
=== Converting reference to URN
|
213
|
+
|
214
|
+
URN is document a identifier format. It has fields delimited by colon. If any field is absent then it's place is empty. All values are in lower-case.
|
215
|
+
|
216
|
+
URN structure: +
|
217
|
+
`urn:sdo_namespace:content_type_namespace:header:project_number:date:type:deliverable:language:relation:adjunct_type:adjunct_number:date[#/=]component_or_related_asset`
|
218
|
+
|
219
|
+
* prefix
|
220
|
+
- `urn` - value: urn
|
221
|
+
- `sdo_namespace` - value: iec
|
222
|
+
- `content_type_namespace` - value: std
|
223
|
+
* base document information
|
224
|
+
- `header` - possible values are: iec, iso, iec-iso, iec-ieee, iec-itu, iec-astm
|
225
|
+
- `project_number` - number and partnumber. For example 67654, 60601-1, 61076-7-101
|
226
|
+
- `date` - document date (optional). Examples: 2010-03, 2010, 2010-10-11 etc.
|
227
|
+
- `type` - documant type (optional). Possible values: ts, tr, pas, guide, is, ser.
|
228
|
+
- `deliverable` - (optional) possible values: prv, csv, exv, rlv, cmv
|
229
|
+
- `language` - (optional) examples: en, fr, ru, en-fr, en-fr-ru etc.
|
230
|
+
* adjunct document information (optional)
|
231
|
+
- `relation` - "plus" for consolidations of ajancts with a base document or "/" for ajancts itself
|
232
|
+
- `adjunct_type` - possible values: amd, cor, ish
|
233
|
+
- `adjunct_number` - adjunct number. Examples: 1, 2, 3, etc.
|
234
|
+
- `date` - adjanct date. Example: 2009
|
235
|
+
* component or related asset information (optional)
|
236
|
+
- `component_or_related_asset` - # or = followed by component id or related asset. Exammples: #fig-1, #sec-1, =forum
|
237
|
+
|
238
|
+
For more information see https://github.com/relaton/relaton-iec/issues/22
|
239
|
+
|
240
|
+
The method `RelatonIec.code_to_urn(code, lang)` converts document identifier to URN.
|
241
|
+
|
242
|
+
* `code` is a document identifier
|
243
|
+
* `lang` is a laguage code (optional). Examples: en, fr, en-fr etc.
|
244
|
+
|
245
|
+
[source,ruby]
|
246
|
+
----
|
247
|
+
RelatonIec.code_to_urn "IEC 60050-102:2007/AMD1:2017"
|
248
|
+
=> "urn:iec:std:iec:60050-102:2007:::::amd:1:2017"
|
249
|
+
|
250
|
+
RelatonIec.code_to_urn "IEC 60034-1:1969+AMD1:1977+AMD2:1979+AMD3:1980 CSV", "en-fr"
|
251
|
+
=> "urn:iec:std:iec:60034-1:1969::csv:en-fr:plus:amd:1:1977:plus:amd:2:1979:plus:amd:3:1980"
|
252
|
+
----
|
253
|
+
|
254
|
+
The method `RelatonIec.urn_to_code(urn)` converts URN to document identifier.
|
255
|
+
|
256
|
+
[source,ruby]
|
257
|
+
----
|
258
|
+
RelatonIec.urn_to_code "urn:iec:std:iec:60050-102:2007:::::amd:1:2017"
|
259
|
+
=> ["IEC 60050-102:2007/AMD1:2017", ""]
|
260
|
+
|
261
|
+
RelatonIec.urn_to_code "urn:iec:std:iec:60034-1:1969::csv:en-fr:plus:amd:1:1977:plus:amd:2:1979:plus:amd:3:1980"
|
262
|
+
=> ["IEC 60034-1:1969+AMD1:1977+AMD2:1979+AMD3:1980 CSV", "en-fr"]
|
263
|
+
----
|
35
264
|
|
36
265
|
== Development
|
37
266
|
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/grammars/basicdoc.rng
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
|
-
<include href="biblio.rng"
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
<include href="biblio.rng">
|
4
|
+
<start>
|
5
|
+
<ref name="document"/>
|
6
|
+
</start>
|
7
|
+
</include>
|
7
8
|
<define name="document">
|
8
9
|
<element name="document">
|
9
10
|
<optional>
|
@@ -43,13 +44,16 @@
|
|
43
44
|
</attribute>
|
44
45
|
</optional>
|
45
46
|
<optional>
|
46
|
-
<
|
47
|
+
<attribute name="language"/>
|
47
48
|
</optional>
|
48
49
|
<optional>
|
49
|
-
<
|
50
|
+
<attribute name="script"/>
|
51
|
+
</optional>
|
52
|
+
<optional>
|
53
|
+
<ref name="section-title"/>
|
50
54
|
</optional>
|
51
55
|
<zeroOrMore>
|
52
|
-
<ref name="
|
56
|
+
<ref name="BasicBlock"/>
|
53
57
|
</zeroOrMore>
|
54
58
|
</define>
|
55
59
|
<define name="references">
|
@@ -92,6 +96,10 @@
|
|
92
96
|
<ref name="example"/>
|
93
97
|
<ref name="review"/>
|
94
98
|
<ref name="pre"/>
|
99
|
+
<ref name="note"/>
|
100
|
+
<ref name="pagebreak"/>
|
101
|
+
<ref name="hr"/>
|
102
|
+
<ref name="bookmark"/>
|
95
103
|
</choice>
|
96
104
|
</define>
|
97
105
|
<define name="paragraph">
|
@@ -188,6 +196,14 @@
|
|
188
196
|
<data type="boolean"/>
|
189
197
|
</attribute>
|
190
198
|
</optional>
|
199
|
+
<optional>
|
200
|
+
<attribute name="subsequence"/>
|
201
|
+
</optional>
|
202
|
+
<optional>
|
203
|
+
<attribute name="inequality">
|
204
|
+
<data type="boolean"/>
|
205
|
+
</attribute>
|
206
|
+
</optional>
|
191
207
|
<ref name="stem"/>
|
192
208
|
<optional>
|
193
209
|
<ref name="dl"/>
|
@@ -241,6 +257,9 @@
|
|
241
257
|
<data type="boolean"/>
|
242
258
|
</attribute>
|
243
259
|
</optional>
|
260
|
+
<optional>
|
261
|
+
<attribute name="subsequence"/>
|
262
|
+
</optional>
|
244
263
|
<optional>
|
245
264
|
<attribute name="lang"/>
|
246
265
|
</optional>
|
@@ -266,6 +285,9 @@
|
|
266
285
|
<attribute name="id">
|
267
286
|
<data type="ID"/>
|
268
287
|
</attribute>
|
288
|
+
<optional>
|
289
|
+
<attribute name="alt"/>
|
290
|
+
</optional>
|
269
291
|
<optional>
|
270
292
|
<ref name="tname"/>
|
271
293
|
</optional>
|
@@ -285,9 +307,15 @@
|
|
285
307
|
<data type="boolean"/>
|
286
308
|
</attribute>
|
287
309
|
</optional>
|
310
|
+
<optional>
|
311
|
+
<attribute name="subsequence"/>
|
312
|
+
</optional>
|
288
313
|
<optional>
|
289
314
|
<attribute name="alt"/>
|
290
315
|
</optional>
|
316
|
+
<optional>
|
317
|
+
<attribute name="summary"/>
|
318
|
+
</optional>
|
291
319
|
<optional>
|
292
320
|
<attribute name="uri">
|
293
321
|
<data type="anyURI"/>
|
@@ -313,12 +341,16 @@
|
|
313
341
|
</define>
|
314
342
|
<define name="tname">
|
315
343
|
<element name="name">
|
316
|
-
<
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
344
|
+
<oneOrMore>
|
345
|
+
<choice>
|
346
|
+
<ref name="PureTextElement"/>
|
347
|
+
<ref name="eref"/>
|
348
|
+
<ref name="stem"/>
|
349
|
+
<ref name="keyword"/>
|
350
|
+
<ref name="xref"/>
|
351
|
+
<ref name="hyperlink"/>
|
352
|
+
</choice>
|
353
|
+
</oneOrMore>
|
322
354
|
</element>
|
323
355
|
</define>
|
324
356
|
<define name="thead">
|
@@ -370,6 +402,16 @@
|
|
370
402
|
</choice>
|
371
403
|
</attribute>
|
372
404
|
</optional>
|
405
|
+
<optional>
|
406
|
+
<attribute name="valign">
|
407
|
+
<choice>
|
408
|
+
<value>top</value>
|
409
|
+
<value>middle</value>
|
410
|
+
<value>bottom</value>
|
411
|
+
<value>baseline</value>
|
412
|
+
</choice>
|
413
|
+
</attribute>
|
414
|
+
</optional>
|
373
415
|
<choice>
|
374
416
|
<zeroOrMore>
|
375
417
|
<ref name="TextElement"/>
|
@@ -397,6 +439,16 @@
|
|
397
439
|
</choice>
|
398
440
|
</attribute>
|
399
441
|
</optional>
|
442
|
+
<optional>
|
443
|
+
<attribute name="valign">
|
444
|
+
<choice>
|
445
|
+
<value>top</value>
|
446
|
+
<value>middle</value>
|
447
|
+
<value>bottom</value>
|
448
|
+
<value>baseline</value>
|
449
|
+
</choice>
|
450
|
+
</attribute>
|
451
|
+
</optional>
|
400
452
|
<choice>
|
401
453
|
<zeroOrMore>
|
402
454
|
<ref name="TextElement"/>
|
@@ -417,6 +469,12 @@
|
|
417
469
|
<data type="boolean"/>
|
418
470
|
</attribute>
|
419
471
|
</optional>
|
472
|
+
<optional>
|
473
|
+
<attribute name="subsequence"/>
|
474
|
+
</optional>
|
475
|
+
<optional>
|
476
|
+
<ref name="tname"/>
|
477
|
+
</optional>
|
420
478
|
<oneOrMore>
|
421
479
|
<choice>
|
422
480
|
<ref name="formula"/>
|
@@ -481,17 +539,25 @@
|
|
481
539
|
</attribute>
|
482
540
|
</optional>
|
483
541
|
<optional>
|
484
|
-
<
|
542
|
+
<attribute name="subsequence"/>
|
485
543
|
</optional>
|
486
544
|
<optional>
|
487
|
-
<
|
545
|
+
<attribute name="class"/>
|
488
546
|
</optional>
|
489
547
|
<optional>
|
490
|
-
<ref name="
|
548
|
+
<ref name="source"/>
|
549
|
+
</optional>
|
550
|
+
<optional>
|
551
|
+
<ref name="tname"/>
|
491
552
|
</optional>
|
492
553
|
<choice>
|
493
554
|
<ref name="image"/>
|
555
|
+
<ref name="video"/>
|
556
|
+
<ref name="audio"/>
|
494
557
|
<ref name="pre"/>
|
558
|
+
<oneOrMore>
|
559
|
+
<ref name="paragraph-with-footnote"/>
|
560
|
+
</oneOrMore>
|
495
561
|
<zeroOrMore>
|
496
562
|
<ref name="figure"/>
|
497
563
|
</zeroOrMore>
|
@@ -529,6 +595,8 @@
|
|
529
595
|
<ref name="pagebreak"/>
|
530
596
|
<ref name="bookmark"/>
|
531
597
|
<ref name="image"/>
|
598
|
+
<ref name="index"/>
|
599
|
+
<ref name="index-xref"/>
|
532
600
|
</choice>
|
533
601
|
</define>
|
534
602
|
<define name="PureTextElement">
|
@@ -553,14 +621,20 @@
|
|
553
621
|
<define name="em">
|
554
622
|
<element name="em">
|
555
623
|
<zeroOrMore>
|
556
|
-
<
|
624
|
+
<choice>
|
625
|
+
<ref name="PureTextElement"/>
|
626
|
+
<ref name="stem"/>
|
627
|
+
</choice>
|
557
628
|
</zeroOrMore>
|
558
629
|
</element>
|
559
630
|
</define>
|
560
631
|
<define name="strong">
|
561
632
|
<element name="strong">
|
562
633
|
<zeroOrMore>
|
563
|
-
<
|
634
|
+
<choice>
|
635
|
+
<ref name="PureTextElement"/>
|
636
|
+
<ref name="stem"/>
|
637
|
+
</choice>
|
564
638
|
</zeroOrMore>
|
565
639
|
</element>
|
566
640
|
</define>
|
@@ -653,6 +727,65 @@
|
|
653
727
|
<empty/>
|
654
728
|
</element>
|
655
729
|
</define>
|
730
|
+
<define name="index">
|
731
|
+
<element name="index">
|
732
|
+
<optional>
|
733
|
+
<attribute name="to">
|
734
|
+
<data type="IDREF"/>
|
735
|
+
</attribute>
|
736
|
+
</optional>
|
737
|
+
<element name="primary">
|
738
|
+
<oneOrMore>
|
739
|
+
<ref name="PureTextElement"/>
|
740
|
+
</oneOrMore>
|
741
|
+
</element>
|
742
|
+
<optional>
|
743
|
+
<element name="secondary">
|
744
|
+
<oneOrMore>
|
745
|
+
<ref name="PureTextElement"/>
|
746
|
+
</oneOrMore>
|
747
|
+
</element>
|
748
|
+
</optional>
|
749
|
+
<optional>
|
750
|
+
<element name="tertiary">
|
751
|
+
<oneOrMore>
|
752
|
+
<ref name="PureTextElement"/>
|
753
|
+
</oneOrMore>
|
754
|
+
</element>
|
755
|
+
</optional>
|
756
|
+
</element>
|
757
|
+
</define>
|
758
|
+
<define name="index-xref">
|
759
|
+
<element name="index-xref">
|
760
|
+
<attribute name="also">
|
761
|
+
<data type="boolean"/>
|
762
|
+
</attribute>
|
763
|
+
<element name="primary">
|
764
|
+
<oneOrMore>
|
765
|
+
<ref name="PureTextElement"/>
|
766
|
+
</oneOrMore>
|
767
|
+
</element>
|
768
|
+
<optional>
|
769
|
+
<element name="secondary">
|
770
|
+
<oneOrMore>
|
771
|
+
<ref name="PureTextElement"/>
|
772
|
+
</oneOrMore>
|
773
|
+
</element>
|
774
|
+
</optional>
|
775
|
+
<optional>
|
776
|
+
<element name="tertiary">
|
777
|
+
<oneOrMore>
|
778
|
+
<ref name="PureTextElement"/>
|
779
|
+
</oneOrMore>
|
780
|
+
</element>
|
781
|
+
</optional>
|
782
|
+
<element name="target">
|
783
|
+
<oneOrMore>
|
784
|
+
<ref name="PureTextElement"/>
|
785
|
+
</oneOrMore>
|
786
|
+
</element>
|
787
|
+
</element>
|
788
|
+
</define>
|
656
789
|
<!-- bare ID element, used for referencing arbitrary spans of text -->
|
657
790
|
<define name="bookmark">
|
658
791
|
<element name="bookmark">
|
@@ -778,6 +911,9 @@
|
|
778
911
|
<optional>
|
779
912
|
<attribute name="alt"/>
|
780
913
|
</optional>
|
914
|
+
<optional>
|
915
|
+
<attribute name="title"/>
|
916
|
+
</optional>
|
781
917
|
<optional>
|
782
918
|
<attribute name="longdesc">
|
783
919
|
<data type="anyURI"/>
|
@@ -786,7 +922,7 @@
|
|
786
922
|
</element>
|
787
923
|
</define>
|
788
924
|
<define name="video">
|
789
|
-
<element name="
|
925
|
+
<element name="video">
|
790
926
|
<attribute name="id">
|
791
927
|
<data type="ID"/>
|
792
928
|
</attribute>
|
@@ -816,6 +952,9 @@
|
|
816
952
|
<optional>
|
817
953
|
<attribute name="alt"/>
|
818
954
|
</optional>
|
955
|
+
<optional>
|
956
|
+
<attribute name="title"/>
|
957
|
+
</optional>
|
819
958
|
<optional>
|
820
959
|
<attribute name="longdesc">
|
821
960
|
<data type="anyURI"/>
|
@@ -827,7 +966,7 @@
|
|
827
966
|
</element>
|
828
967
|
</define>
|
829
968
|
<define name="audio">
|
830
|
-
<element name="
|
969
|
+
<element name="audio">
|
831
970
|
<attribute name="id">
|
832
971
|
<data type="ID"/>
|
833
972
|
</attribute>
|
@@ -841,6 +980,9 @@
|
|
841
980
|
<optional>
|
842
981
|
<attribute name="alt"/>
|
843
982
|
</optional>
|
983
|
+
<optional>
|
984
|
+
<attribute name="title"/>
|
985
|
+
</optional>
|
844
986
|
<optional>
|
845
987
|
<attribute name="longdesc">
|
846
988
|
<data type="anyURI"/>
|
@@ -925,6 +1067,9 @@
|
|
925
1067
|
<value>alphabet_upper</value>
|
926
1068
|
</choice>
|
927
1069
|
</attribute>
|
1070
|
+
<optional>
|
1071
|
+
<attribute name="start"/>
|
1072
|
+
</optional>
|
928
1073
|
<oneOrMore>
|
929
1074
|
<ref name="li"/>
|
930
1075
|
</oneOrMore>
|