metanorma-standoc 1.10.3.1 → 1.10.4
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|