metanorma-standoc 1.10.3.1 → 1.10.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/lib/asciidoctor/standoc/converter.rb +2 -0
- data/lib/asciidoctor/standoc/reqt.rb +39 -27
- data/lib/asciidoctor/standoc/reqt.rng +7 -0
- data/lib/asciidoctor/standoc/validate_section.rb +2 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/spec/asciidoctor/blocks_spec.rb +43 -23
- data/spec/asciidoctor/macros_spec.rb +109 -0
- data/spec/fixtures/datamodel_description_sections_tree.xml +327 -0
- data/spec/fixtures/test.xmi +9250 -0
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +50 -50
- data/spec/vcr_cassettes/isobib_get_123.yml +11 -11
- data/spec/vcr_cassettes/isobib_get_123_1.yml +23 -23
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +35 -35
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
- data/spec/vcr_cassettes/isobib_get_124.yml +11 -11
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69e06ff811f3411ddd5ddccb1bfd52b82c92b49e1458d781fcfffac4397c1062
|
4
|
+
data.tar.gz: c600a5d9e17f3f271d176cefb5c6d3f860d887369efac0f2ad03ec5bf78b01a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 785c49c3ef49c5bdc393f1f10f44fb2cf3a59e10583b08f1b40ecf282ebe015b1b98a0c9d8f3c796c81d2495e7e1273ba28d15b5a6ad4c6b543dbbe42dbae47f
|
7
|
+
data.tar.gz: a55c32649ba87a57dd417802ea70f91efbbae57dc786b294cc08704fbfce0b2ecf03a90827578a7bcc7c138402f0cb87992309fe3aa6397702a400a426cb5640
|
@@ -27,6 +27,7 @@ module Asciidoctor
|
|
27
27
|
preprocessor Metanorma::Plugin::Datastruct::Yaml2TextPreprocessor
|
28
28
|
preprocessor Metanorma::Plugin::Lutaml::LutamlPreprocessor
|
29
29
|
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlAttributesTablePreprocessor
|
30
|
+
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlDatamodelDescriptionPreprocessor
|
30
31
|
inline_macro Asciidoctor::Standoc::AltTermInlineMacro
|
31
32
|
inline_macro Asciidoctor::Standoc::DeprecatedTermInlineMacro
|
32
33
|
inline_macro Asciidoctor::Standoc::DomainTermInlineMacro
|
@@ -48,6 +49,7 @@ module Asciidoctor
|
|
48
49
|
inline_macro Asciidoctor::Standoc::FormSelectMacro
|
49
50
|
inline_macro Asciidoctor::Standoc::FormOptionMacro
|
50
51
|
inline_macro Asciidoctor::Standoc::ToCInlineMacro
|
52
|
+
inline_macro Metanorma::Plugin::Lutaml::LutamlFigureInlineMacro
|
51
53
|
block_macro Metanorma::Plugin::Lutaml::LutamlDiagramBlockMacro
|
52
54
|
block Asciidoctor::Standoc::ToDoAdmonitionBlock
|
53
55
|
treeprocessor Asciidoctor::Standoc::ToDoInlineAdmonitionBlock
|
@@ -6,20 +6,23 @@ require "base64"
|
|
6
6
|
module Asciidoctor
|
7
7
|
module Standoc
|
8
8
|
module Blocks
|
9
|
-
def reqt_subpart(
|
9
|
+
def reqt_subpart(name)
|
10
10
|
%w(specification measurement-target verification import label
|
11
|
-
|
11
|
+
component subject inherit classification title).include? name
|
12
12
|
end
|
13
13
|
|
14
|
-
def reqt_subpart_attrs(node)
|
15
|
-
|
16
|
-
|
14
|
+
def reqt_subpart_attrs(node, name)
|
15
|
+
klass = node.attr("class") || "component"
|
16
|
+
attr_code(keep_attrs(node)
|
17
|
+
.merge(exclude: node.option?("exclude"),
|
18
|
+
type: node.attr("type"),
|
19
|
+
class: name == "component" ? klass : nil))
|
17
20
|
end
|
18
21
|
|
19
22
|
def requirement_subpart(node)
|
20
23
|
name = node.role || node.attr("style")
|
21
24
|
noko do |xml|
|
22
|
-
xml.send name, **reqt_subpart_attrs(node) do |o|
|
25
|
+
xml.send name, **reqt_subpart_attrs(node, name) do |o|
|
23
26
|
o << node.content
|
24
27
|
end
|
25
28
|
end
|
@@ -30,14 +33,15 @@ module Asciidoctor
|
|
30
33
|
HTMLEntities.new.decode(classif).split(/;\s*/).each do |c|
|
31
34
|
c1 = c.split(/:\s*/)
|
32
35
|
next unless c1.size == 2
|
33
|
-
|
36
|
+
|
37
|
+
c1[1].split(/,\s*/).each { |v| ret << [c1[0], v] }
|
34
38
|
end
|
35
39
|
ret
|
36
40
|
end
|
37
41
|
|
38
|
-
def requirement_classification(classif,
|
42
|
+
def requirement_classification(classif, out)
|
39
43
|
req_classif_parse(classif).each do |r|
|
40
|
-
|
44
|
+
out.classification do |c|
|
41
45
|
c.tag { |t| t << r[0] }
|
42
46
|
c.value { |v| v << r[1] }
|
43
47
|
end
|
@@ -46,29 +50,37 @@ module Asciidoctor
|
|
46
50
|
|
47
51
|
def reqt_attrs(node)
|
48
52
|
attr_code(keep_attrs(node).merge(id_unnum_attrs(node)).merge(
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
id: Metanorma::Utils::anchor_or_uuid(node),
|
54
|
+
unnumbered: node.option?("unnumbered") ? "true" : nil,
|
55
|
+
number: node.attr("number"),
|
56
|
+
subsequence: node.attr("subsequence"),
|
57
|
+
obligation: node.attr("obligation"),
|
58
|
+
filename: node.attr("filename"),
|
59
|
+
type: node.attr("type"),
|
60
|
+
model: node.attr("model"),
|
61
|
+
))
|
62
|
+
end
|
63
|
+
|
64
|
+
def requirement_elems(node, out)
|
65
|
+
node.title and out.title { |t| t << node.title }
|
66
|
+
a = node.attr("label") and out.label do |l|
|
67
|
+
l << a
|
68
|
+
end
|
69
|
+
a = node.attr("subject") and csv_split(a)&.each do |subj|
|
70
|
+
out.subject { |s| s << subj }
|
71
|
+
end
|
72
|
+
a = HTMLEntities.new.decode(node.attr("inherit")) and
|
73
|
+
csv_split(a)&.each do |i|
|
74
|
+
out.inherit { |inh| inh << i }
|
75
|
+
end
|
76
|
+
classif = node.attr("classification") and
|
77
|
+
requirement_classification(classif, out)
|
58
78
|
end
|
59
79
|
|
60
80
|
def requirement(node, obligation)
|
61
|
-
classif = node.attr("classification")
|
62
81
|
noko do |xml|
|
63
82
|
xml.send obligation, **reqt_attrs(node) do |ex|
|
64
|
-
node
|
65
|
-
node.attr("label") and ex.label { |l| l << node.attr("label") }
|
66
|
-
node.attr("subject") and ex.subject { |s| s << node.attr("subject") }
|
67
|
-
i = HTMLEntities.new.decode(node.attr("inherit"))
|
68
|
-
i&.split(/;\s*/)&.each do |i|
|
69
|
-
ex.inherit { |inh| inh << i }
|
70
|
-
end
|
71
|
-
requirement_classification(classif, ex) if classif
|
83
|
+
requirement_elems(node, ex)
|
72
84
|
wrap_in_para(node, ex)
|
73
85
|
end
|
74
86
|
end.join("\n")
|
@@ -80,6 +80,7 @@
|
|
80
80
|
<ref name="verification"/>
|
81
81
|
<ref name="import"/>
|
82
82
|
<ref name="description"/>
|
83
|
+
<ref name="component"/>
|
83
84
|
</choice>
|
84
85
|
</zeroOrMore>
|
85
86
|
<optional>
|
@@ -138,6 +139,12 @@
|
|
138
139
|
<ref name="RequirementSubpart"/>
|
139
140
|
</element>
|
140
141
|
</define>
|
142
|
+
<define name="component">
|
143
|
+
<element name="component">
|
144
|
+
<attribute name="class"/>
|
145
|
+
<ref name="RequirementSubpart"/>
|
146
|
+
</element>
|
147
|
+
</define>
|
141
148
|
<define name="reqt_references">
|
142
149
|
<element name="references">
|
143
150
|
<oneOrMore>
|
@@ -42,7 +42,8 @@ module Asciidoctor
|
|
42
42
|
root.xpath("//clause | //annex | //foreword | //introduction | "\
|
43
43
|
"//acknowledgements").each do |c|
|
44
44
|
next unless c.at("./clause")
|
45
|
-
next if c.elements.
|
45
|
+
next if c.elements.reject { |n| %w(clause title).include? n.name }.empty?
|
46
|
+
|
46
47
|
style_warning(c, "Hanging paragraph in clause")
|
47
48
|
end
|
48
49
|
end
|
@@ -264,6 +264,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
264
264
|
</sections>
|
265
265
|
</standard-document>
|
266
266
|
OUTPUT
|
267
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
268
|
+
.to be_equivalent_to xmlpp(output)
|
267
269
|
end
|
268
270
|
|
269
271
|
it "processes review blocks if document is in draft mode" do
|
@@ -1173,7 +1175,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1173
1175
|
it "processes recommendation" do
|
1174
1176
|
input = <<~"INPUT"
|
1175
1177
|
#{ASCIIDOC_BLANK_HDR}
|
1176
|
-
[.recommendation,label="/ogc/recommendation/wfs/2",subject="user",inherit="/ss/584/2015/level/1; /ss/584/2015/level/2",options="unnumbered",type=verification,model=ogc]
|
1178
|
+
[.recommendation,label="/ogc/recommendation/wfs/2",subject="user;developer, implementer",inherit="/ss/584/2015/level/1; /ss/584/2015/level/2",options="unnumbered",type=verification,model=ogc]
|
1177
1179
|
====
|
1178
1180
|
I recommend this
|
1179
1181
|
====
|
@@ -1184,6 +1186,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1184
1186
|
<recommendation id="_" unnumbered="true" type="verification" model="ogc">
|
1185
1187
|
<label>/ogc/recommendation/wfs/2</label>
|
1186
1188
|
<subject>user</subject>
|
1189
|
+
<subject>developer, implementer</subject>
|
1187
1190
|
<inherit>/ss/584/2015/level/1</inherit>
|
1188
1191
|
<inherit>/ss/584/2015/level/2</inherit>
|
1189
1192
|
<description><p id="_">I recommend this</p></description>
|
@@ -1330,31 +1333,48 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1330
1333
|
success-response()
|
1331
1334
|
----
|
1332
1335
|
--
|
1336
|
+
|
1337
|
+
[.component]
|
1338
|
+
--
|
1339
|
+
Hello
|
1340
|
+
--
|
1341
|
+
|
1342
|
+
[.component,class=condition]
|
1343
|
+
--
|
1344
|
+
If this be thus
|
1345
|
+
--
|
1333
1346
|
====
|
1334
1347
|
INPUT
|
1335
1348
|
output = <<~"OUTPUT"
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1349
|
+
#{BLANK_HDR}
|
1350
|
+
<sections>
|
1351
|
+
<recommendation id="ABC" obligation="permission,recommendation" filename="reqt1.rq"><label>/ogc/recommendation/wfs/2</label><subject>user</subject>
|
1352
|
+
<classification><tag>control-class</tag><value>Technical</value></classification><classification><tag>priority</tag><value>P0</value></classification><classification><tag>family</tag><value>System & Communications Protection</value></classification><classification><tag>family</tag><value>System and Communications Protocols</value></classification>
|
1353
|
+
<description><p id="_">I recommend <em>this</em>.</p>
|
1354
|
+
</description><specification exclude="false" type="tabular" keep-with-next="true" keep-lines-together="true"><p id="_">This is the object of the recommendation:</p><table id="_"> <tbody> <tr> <td valign="top" align="left">Object</td> <td valign="top" align="left">Value</td> </tr> <tr> <td valign="top" align="left">Mission</td> <td valign="top" align="left">Accomplished</td> </tr> </tbody></table></specification><description>
|
1355
|
+
<p id="_">As for the measurement targets,</p>
|
1356
|
+
</description><measurement-target exclude="false"><p id="_">The measurement target shall be measured as:</p><formula id="_"> <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac>
|
1357
|
+
<mrow>
|
1358
|
+
<mi>r</mi>
|
1359
|
+
</mrow>
|
1360
|
+
<mrow>
|
1361
|
+
<mn>1</mn>
|
1362
|
+
</mrow>
|
1363
|
+
</mfrac><mo>=</mo><mn>0</mn></math></stem></formula></measurement-target>
|
1364
|
+
<verification exclude="false"><p id="_">The following code will be run for verification:</p><sourcecode lang="CoreRoot" id="_">CoreRoot(success): HttpResponse
|
1365
|
+
if (success)
|
1366
|
+
recommendation(label: success-response)
|
1367
|
+
end</sourcecode></verification>
|
1368
|
+
<import exclude="true"> <sourcecode lang="CoreRoot" id="_">success-response()</sourcecode></import>
|
1369
|
+
<component exclude='false' class='component'>
|
1370
|
+
<p id='_'>Hello</p>
|
1371
|
+
</component>
|
1372
|
+
<component exclude='false' class='condition'>
|
1373
|
+
<p id='_'>If this be thus</p>
|
1374
|
+
</component>
|
1375
|
+
</recommendation>
|
1376
|
+
</sections>
|
1377
|
+
</standard-document>
|
1358
1378
|
OUTPUT
|
1359
1379
|
|
1360
1380
|
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
@@ -1541,4 +1541,113 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1541
1541
|
end
|
1542
1542
|
end
|
1543
1543
|
end
|
1544
|
+
|
1545
|
+
describe "lutaml_figure macro" do
|
1546
|
+
let(:example_file) { fixtures_path("test.xmi") }
|
1547
|
+
let(:input) do
|
1548
|
+
<<~TEXT
|
1549
|
+
= Document title
|
1550
|
+
Author
|
1551
|
+
:docfile: test.adoc
|
1552
|
+
:nodoc:
|
1553
|
+
:novalid:
|
1554
|
+
:no-isobib:
|
1555
|
+
:imagesdir: spec/assets
|
1556
|
+
|
1557
|
+
[lutaml_uml_datamodel_description,#{example_file}]
|
1558
|
+
--
|
1559
|
+
--
|
1560
|
+
|
1561
|
+
This is lutaml_figure::[package="Wrapper root package", name="Fig B1 Full model"] figure
|
1562
|
+
TEXT
|
1563
|
+
end
|
1564
|
+
let(:output) do
|
1565
|
+
'<xref target="figure-EAID_0E029ABF_C35A_49e3_9EEA_FFD4F32780A8">'
|
1566
|
+
end
|
1567
|
+
|
1568
|
+
it "correctly renders input" do
|
1569
|
+
expect(strip_src(xml_string_conent(metanorma_process(input))))
|
1570
|
+
.to(include(output))
|
1571
|
+
end
|
1572
|
+
end
|
1573
|
+
|
1574
|
+
describe "lutaml_uml_datamodel_description macro" do
|
1575
|
+
subject(:convert) do
|
1576
|
+
xmlpp(
|
1577
|
+
strip_guid(
|
1578
|
+
Asciidoctor.convert(
|
1579
|
+
input, *OPTIONS
|
1580
|
+
),
|
1581
|
+
),
|
1582
|
+
)
|
1583
|
+
end
|
1584
|
+
|
1585
|
+
let(:example_file) { fixtures_path("test.xmi") }
|
1586
|
+
let(:input) do
|
1587
|
+
<<~TEXT
|
1588
|
+
= Document title
|
1589
|
+
Author
|
1590
|
+
:docfile: test.adoc
|
1591
|
+
:nodoc:
|
1592
|
+
:novalid:
|
1593
|
+
:no-isobib:
|
1594
|
+
:imagesdir: spec/assets
|
1595
|
+
|
1596
|
+
[lutaml_uml_datamodel_description,#{example_file}]
|
1597
|
+
--
|
1598
|
+
[.diagram_include_block, base_path="requirements/"]
|
1599
|
+
...
|
1600
|
+
Diagram text
|
1601
|
+
...
|
1602
|
+
|
1603
|
+
[.include_block, package="Another", base_path="spec/fixtures/"]
|
1604
|
+
...
|
1605
|
+
my text
|
1606
|
+
...
|
1607
|
+
|
1608
|
+
[.include_block, base_path="spec/fixtures/"]
|
1609
|
+
...
|
1610
|
+
my text
|
1611
|
+
...
|
1612
|
+
|
1613
|
+
[.before]
|
1614
|
+
...
|
1615
|
+
mine text
|
1616
|
+
...
|
1617
|
+
|
1618
|
+
[.before, package="Another"]
|
1619
|
+
...
|
1620
|
+
text before Another package
|
1621
|
+
...
|
1622
|
+
|
1623
|
+
[.after, package="Another"]
|
1624
|
+
...
|
1625
|
+
text after Another package
|
1626
|
+
...
|
1627
|
+
|
1628
|
+
[.after, package="CityGML"]
|
1629
|
+
...
|
1630
|
+
text after CityGML package
|
1631
|
+
...
|
1632
|
+
|
1633
|
+
[.after]
|
1634
|
+
...
|
1635
|
+
footer text
|
1636
|
+
...
|
1637
|
+
--
|
1638
|
+
TEXT
|
1639
|
+
end
|
1640
|
+
let(:output) do
|
1641
|
+
<<~TEXT
|
1642
|
+
#{BLANK_HDR}
|
1643
|
+
#{File.read(fixtures_path('datamodel_description_sections_tree.xml'))}
|
1644
|
+
</standard-document>
|
1645
|
+
TEXT
|
1646
|
+
end
|
1647
|
+
|
1648
|
+
it "correctly renders input" do
|
1649
|
+
expect(convert)
|
1650
|
+
.to(be_equivalent_to(xmlpp(output)))
|
1651
|
+
end
|
1652
|
+
end
|
1544
1653
|
end
|
@@ -0,0 +1,327 @@
|
|
1
|
+
<preface>
|
2
|
+
<foreword id='_' obligation='informative'>
|
3
|
+
<title>Foreword</title>
|
4
|
+
<p id='_'>mine text</p>
|
5
|
+
</foreword>
|
6
|
+
</preface>
|
7
|
+
<sections>
|
8
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
9
|
+
<title>Wrapper nested package package</title>
|
10
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
11
|
+
<title>Wrapper nested package overview</title>
|
12
|
+
<p id='_'>Diagram text</p>
|
13
|
+
<figure id='figure-EAID_0E029ABF_C35A_49e3_9EEA_FFD4F32780A8'>
|
14
|
+
<name>Fig B1 Full model</name>
|
15
|
+
<image src='spec/assets/requirements//EAID_0E029ABF_C35A_49e3_9EEA_FFD4F32780A8.png' id='_' mimetype='image/png' height='auto' width='auto'/>
|
16
|
+
</figure>
|
17
|
+
<p id='_'>The Wrapper nested package package is organized into 1 packages:</p>
|
18
|
+
<ol id='_' type='arabic'>
|
19
|
+
<li>
|
20
|
+
<p id='_'>ISO 19135 Procedures for item registration XML package</p>
|
21
|
+
</li>
|
22
|
+
</ol>
|
23
|
+
<p id='_'>mine text</p>
|
24
|
+
</clause>
|
25
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
26
|
+
<title>ISO 19135 Procedures for item registration XML package</title>
|
27
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
28
|
+
<title>ISO 19135 Procedures for item registration XML overview</title>
|
29
|
+
<p id='_'>Diagram text</p>
|
30
|
+
<figure id='figure-EAID_0E029ABF_C35A_49e3_9EEA_FFD4F32780A8'>
|
31
|
+
<name>Fig B1 Full model</name>
|
32
|
+
<image src='spec/assets/requirements//EAID_0E029ABF_C35A_49e3_9EEA_FFD4F32780A8.png' id='_' mimetype='image/png' height='auto' width='auto'/>
|
33
|
+
</figure>
|
34
|
+
</clause>
|
35
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
36
|
+
<title>Defining tables</title>
|
37
|
+
<table id='tab-P-iso_19135_procedures_for_item_registration_xml-C-re_register' width='100%'>
|
38
|
+
<name>Elements of ISO 19135 Procedures for item registration XML::RE_Register</name>
|
39
|
+
<tbody>
|
40
|
+
<tr>
|
41
|
+
<th valign='top' align='left'>Name:</th>
|
42
|
+
<td colspan='7' valign='top' align='left'>
|
43
|
+
<p id='_'>RE_Register</p>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
<tr>
|
47
|
+
<th valign='top' align='left'>Definition:</th>
|
48
|
+
<td colspan='7' valign='top' align='left'>
|
49
|
+
<p id='_'>
|
50
|
+
The class “RE_Register” specifies information
|
51
|
+
about the register itself. It is a subtype of the Register
|
52
|
+
class in the core profile.
|
53
|
+
</p>
|
54
|
+
</td>
|
55
|
+
</tr>
|
56
|
+
<tr>
|
57
|
+
<th valign='top' align='left'>Stereotype:</th>
|
58
|
+
<td colspan='7' valign='top' align='left'>
|
59
|
+
<p id='_'>interface</p>
|
60
|
+
</td>
|
61
|
+
</tr>
|
62
|
+
<tr>
|
63
|
+
<th valign='top' align='left'>Inheritance from:</th>
|
64
|
+
<td colspan='7' valign='top' align='left'>
|
65
|
+
<p id='_'>Register</p>
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<th valign='top' align='left'>Generalization of:</th>
|
70
|
+
<td colspan='7' valign='top' align='left'>
|
71
|
+
<p id='_'>TermRegister, CL_ClassificationRegister, LC_LCMLRegister</p>
|
72
|
+
</td>
|
73
|
+
</tr>
|
74
|
+
<tr>
|
75
|
+
<th valign='top' align='left'>Abstract:</th>
|
76
|
+
<td colspan='7' valign='top' align='left'>
|
77
|
+
<p id='_'>false</p>
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
<tr>
|
81
|
+
<th valign='top' rowspan='2' align='left'>Associations:</th>
|
82
|
+
<td colspan='4' valign='top' align='left'>
|
83
|
+
<p id='_'>
|
84
|
+
<em>Association with:</em>
|
85
|
+
</p>
|
86
|
+
</td>
|
87
|
+
<td valign='top' align='left'>
|
88
|
+
<p id='_'>
|
89
|
+
<em>Obligation</em>
|
90
|
+
</p>
|
91
|
+
</td>
|
92
|
+
<td valign='top' align='left'>
|
93
|
+
<p id='_'>
|
94
|
+
<em>Maximum occurrence</em>
|
95
|
+
</p>
|
96
|
+
</td>
|
97
|
+
<td valign='top' align='left'>
|
98
|
+
<p id='_'>
|
99
|
+
<em>Provides:</em>
|
100
|
+
</p>
|
101
|
+
</td>
|
102
|
+
</tr>
|
103
|
+
<tr>
|
104
|
+
<td colspan='4' valign='top' align='left'>
|
105
|
+
<p id='_'>RE_ReferenceSource</p>
|
106
|
+
</td>
|
107
|
+
<td valign='top' align='left'>
|
108
|
+
<p id='_'>C</p>
|
109
|
+
</td>
|
110
|
+
<td valign='top' align='left'>
|
111
|
+
<p id='_'>*</p>
|
112
|
+
</td>
|
113
|
+
<td valign='top' align='left'>
|
114
|
+
<p id='_'>citation</p>
|
115
|
+
</td>
|
116
|
+
</tr>
|
117
|
+
<tr>
|
118
|
+
<th valign='top' rowspan='6' align='left'>Public attributes:</th>
|
119
|
+
<td valign='top' align='left'>
|
120
|
+
<p id='_'>
|
121
|
+
<em>Name</em>
|
122
|
+
</p>
|
123
|
+
</td>
|
124
|
+
<td colspan='2' valign='top' align='left'>
|
125
|
+
<p id='_'>
|
126
|
+
<em>Definition</em>
|
127
|
+
</p>
|
128
|
+
</td>
|
129
|
+
<td valign='top' align='left'>
|
130
|
+
<p id='_'>
|
131
|
+
<em>Derived</em>
|
132
|
+
</p>
|
133
|
+
</td>
|
134
|
+
<td valign='top' align='left'>
|
135
|
+
<p id='_'>
|
136
|
+
<em>Obligation</em>
|
137
|
+
</p>
|
138
|
+
</td>
|
139
|
+
<td valign='top' align='left'>
|
140
|
+
<p id='_'>
|
141
|
+
<em>Maximum occurrence</em>
|
142
|
+
</p>
|
143
|
+
</td>
|
144
|
+
<td valign='top' align='left'>
|
145
|
+
<p id='_'>
|
146
|
+
<em>Data type</em>
|
147
|
+
</p>
|
148
|
+
</td>
|
149
|
+
</tr>
|
150
|
+
<tr>
|
151
|
+
<td valign='top' align='left'>
|
152
|
+
<p id='_'>alternativeLanguages</p>
|
153
|
+
</td>
|
154
|
+
<td colspan='2' valign='top' align='left'>
|
155
|
+
<p id='_'>
|
156
|
+
The attribute “alternativeLanguages” supports
|
157
|
+
cultural and linguistic adaptability, individual items in a
|
158
|
+
register may provide elements of information in additional
|
159
|
+
languages other than the operating language of the register.
|
160
|
+
The attribute
|
161
|
+
<em>alternativeLanguages</em>
|
162
|
+
shall be represented as a set of instances of RE_Locale,
|
163
|
+
each specifying an additional unique locale used by items in
|
164
|
+
the register. Every member of the set shall be used by at
|
165
|
+
least one item in the register. The
|
166
|
+
<em>locale</em>
|
167
|
+
of every
|
168
|
+
<em>alternativeExpression</em>
|
169
|
+
used by any item in the register shall be included in this
|
170
|
+
set of RE_Locales. This attribute provides a summary of
|
171
|
+
alternative locales used by items in a register. Register
|
172
|
+
owners shall specify and publish their policy as to whether
|
173
|
+
all or only some of the items in a register shall have
|
174
|
+
alternative expressions.
|
175
|
+
</p>
|
176
|
+
</td>
|
177
|
+
<td valign='top' align='left'/>
|
178
|
+
<td valign='top' align='left'>
|
179
|
+
<p id='_'>C</p>
|
180
|
+
</td>
|
181
|
+
<td valign='top' align='left'>
|
182
|
+
<p id='_'>1</p>
|
183
|
+
</td>
|
184
|
+
<td valign='top' align='left'>
|
185
|
+
<p id='_'>Set<RE_Locale></p>
|
186
|
+
</td>
|
187
|
+
</tr>
|
188
|
+
<tr>
|
189
|
+
<td valign='top' align='left'>
|
190
|
+
<p id='_'>contentSummary</p>
|
191
|
+
</td>
|
192
|
+
<td colspan='2' valign='top' align='left'>
|
193
|
+
<p id='_'>
|
194
|
+
The attribute “contentSummary” is be represented
|
195
|
+
as a CharacterString containing a general statement of the
|
196
|
+
purpose for which items in the register are made available
|
197
|
+
to potential users. It should also specify any limits to the
|
198
|
+
scope of the register and identify the types of applications
|
199
|
+
for which the items are intended. NOTE The scope of a
|
200
|
+
register could be limited by theme, by region, by language
|
201
|
+
or other criteria. EXAMPLE The scope of a terminology
|
202
|
+
register could be limited to Spanish terms used to describe
|
203
|
+
landforms in Latin America.
|
204
|
+
</p>
|
205
|
+
</td>
|
206
|
+
<td valign='top' align='left'/>
|
207
|
+
<td valign='top' align='left'>
|
208
|
+
<p id='_'>M</p>
|
209
|
+
</td>
|
210
|
+
<td valign='top' align='left'>
|
211
|
+
<p id='_'>1</p>
|
212
|
+
</td>
|
213
|
+
<td valign='top' align='left'>
|
214
|
+
<p id='_'>CharacterString</p>
|
215
|
+
</td>
|
216
|
+
</tr>
|
217
|
+
<tr>
|
218
|
+
<td valign='top' align='left'>
|
219
|
+
<p id='_'>name</p>
|
220
|
+
</td>
|
221
|
+
<td colspan='2' valign='top' align='left'>
|
222
|
+
<p id='_'>
|
223
|
+
The attribute “name” is be represented as a
|
224
|
+
CharacterString containing a compact and human-readable
|
225
|
+
designator that is used to uniquely denote that register
|
226
|
+
within the set of registers maintained by the register
|
227
|
+
owner. In the case of a hierarchical register, the “
|
228
|
+
<em>name”</em>
|
229
|
+
of a subregister shall uniquely identify that subregister
|
230
|
+
within the scope EXAMPLE �ISO/TC 211
|
231
|
+
Register of Feature Data Dictionaries and Feature
|
232
|
+
Catalogues� might be the name of the
|
233
|
+
principal register of of all registers established by the
|
234
|
+
owner of the principal register. a hierarchical register.
|
235
|
+
�DGIWG FACC Data
|
236
|
+
Dictionary� and �IHO S-57
|
237
|
+
Object Dictionary� might be the names of
|
238
|
+
subregisters within the hierarchy.
|
239
|
+
</p>
|
240
|
+
</td>
|
241
|
+
<td valign='top' align='left'/>
|
242
|
+
<td valign='top' align='left'>
|
243
|
+
<p id='_'>M</p>
|
244
|
+
</td>
|
245
|
+
<td valign='top' align='left'>
|
246
|
+
<p id='_'>1</p>
|
247
|
+
</td>
|
248
|
+
<td valign='top' align='left'>
|
249
|
+
<p id='_'>CharacterString</p>
|
250
|
+
</td>
|
251
|
+
</tr>
|
252
|
+
<tr>
|
253
|
+
<td valign='top' align='left'>
|
254
|
+
<p id='_'>operatingLanguage</p>
|
255
|
+
</td>
|
256
|
+
<td colspan='2' valign='top' align='left'>
|
257
|
+
<p id='_'>
|
258
|
+
The attribute “operatingLanguage” is represented
|
259
|
+
as an instance of class RE_Locale that is used to specify
|
260
|
+
language, country information and character encoding for the
|
261
|
+
proper interpretation of the content of character strings in
|
262
|
+
the register. The values of all character strings in the
|
263
|
+
register shall be in accordance with the value of
|
264
|
+
“operatingLanguage”, unless otherwise stated.
|
265
|
+
</p>
|
266
|
+
</td>
|
267
|
+
<td valign='top' align='left'/>
|
268
|
+
<td valign='top' align='left'>
|
269
|
+
<p id='_'>M</p>
|
270
|
+
</td>
|
271
|
+
<td valign='top' align='left'>
|
272
|
+
<p id='_'>1</p>
|
273
|
+
</td>
|
274
|
+
<td valign='top' align='left'>
|
275
|
+
<p id='_'>EAID_3996125E_4828_4f3c_93BD_605E9059DE05</p>
|
276
|
+
</td>
|
277
|
+
</tr>
|
278
|
+
<tr>
|
279
|
+
<td valign='top' align='left'>
|
280
|
+
<p id='_'>uniformResourceIdentifier</p>
|
281
|
+
</td>
|
282
|
+
<td colspan='2' valign='top' align='left'>
|
283
|
+
<p id='_'>
|
284
|
+
The attribute “uniformResourceIdentifier” takes
|
285
|
+
as its value a set of URI’s, each referencing
|
286
|
+
information about online resources associated with the
|
287
|
+
register. EXAMPLE
|
288
|
+
�http://www.digest.org/Navigate2.htm� and �http://www.epa.gov/opppmsd1/PPISdata/index.html� are sample valuescorresponding value of the attribute
|
289
|
+
<em>OnLineResource.linkage</em>
|
290
|
+
specifies a resource providing access to the complete
|
291
|
+
content of the register. EXAMPLE
|
292
|
+
�http://www.digest.org/Navigate2.htm� and �http://www.epa.gov/opppmsd1/PPISdata/index.html� are sample values of
|
293
|
+
<em>OnLineResource.linkage</em>
|
294
|
+
.
|
295
|
+
</p>
|
296
|
+
</td>
|
297
|
+
<td valign='top' align='left'/>
|
298
|
+
<td valign='top' align='left'>
|
299
|
+
<p id='_'>M</p>
|
300
|
+
</td>
|
301
|
+
<td valign='top' align='left'>
|
302
|
+
<p id='_'>*</p>
|
303
|
+
</td>
|
304
|
+
<td valign='top' align='left'>
|
305
|
+
<p id='_'>URI</p>
|
306
|
+
</td>
|
307
|
+
</tr>
|
308
|
+
<tr>
|
309
|
+
<td valign='top' align='left'>
|
310
|
+
<p id='_'>
|
311
|
+
<strong>Constraints:</strong>
|
312
|
+
</p>
|
313
|
+
</td>
|
314
|
+
<td colspan='7' valign='top' align='left'>
|
315
|
+
<p id='_'>
|
316
|
+
<tt>count(self.version +self.dateOfLastChange) >= 1</tt>
|
317
|
+
</p>
|
318
|
+
</td>
|
319
|
+
</tr>
|
320
|
+
</tbody>
|
321
|
+
</table>
|
322
|
+
<p id='_'>footer text</p>
|
323
|
+
<p id='_'>footer text</p>
|
324
|
+
</clause>
|
325
|
+
</clause>
|
326
|
+
</clause>
|
327
|
+
</sections>
|