metanorma-standoc 1.10.2 → 1.10.4.1
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/base.rb +13 -5
- data/lib/asciidoctor/standoc/blocks.rb +35 -31
- data/lib/asciidoctor/standoc/cleanup.rb +61 -0
- data/lib/asciidoctor/standoc/cleanup_block.rb +6 -3
- data/lib/asciidoctor/standoc/cleanup_reqt.rb +59 -14
- data/lib/asciidoctor/standoc/converter.rb +4 -0
- data/lib/asciidoctor/standoc/datamodel/diagram_preprocessor.rb +22 -21
- data/lib/asciidoctor/standoc/isodoc.rng +12 -0
- data/lib/asciidoctor/standoc/lists.rb +9 -6
- data/lib/asciidoctor/standoc/macros.rb +18 -0
- data/lib/asciidoctor/standoc/ref.rb +60 -56
- data/lib/asciidoctor/standoc/reqt.rb +39 -27
- data/lib/asciidoctor/standoc/reqt.rng +15 -4
- data/lib/asciidoctor/standoc/validate_section.rb +2 -1
- data/lib/isodoc/base.standard.xsl +6003 -0
- data/lib/isodoc/pdf_convert.rb +20 -0
- data/lib/metanorma-standoc.rb +1 -0
- data/lib/metanorma/standoc/processor.rb +5 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +1 -1
- data/spec/asciidoctor/base_spec.rb +6 -0
- data/spec/asciidoctor/blocks_spec.rb +45 -25
- data/spec/asciidoctor/cleanup_sections_spec.rb +899 -864
- data/spec/asciidoctor/cleanup_spec.rb +136 -2
- data/spec/asciidoctor/macros_plantuml_spec.rb +165 -104
- data/spec/asciidoctor/macros_spec.rb +208 -0
- data/spec/asciidoctor/validate_spec.rb +4 -0
- data/spec/examples/datamodel/address_class_profile.adoc +1 -0
- data/spec/examples/datamodel/address_component_profile.adoc +1 -0
- data/spec/examples/datamodel/blank_definition_profile.adoc +1 -0
- data/spec/examples/datamodel/common_models_diagram.adoc +2 -1
- data/spec/examples/datamodel/top_down_diagram.adoc +2 -1
- data/spec/fixtures/datamodel_description_sections_tree.xml +327 -0
- data/spec/fixtures/test.xmi +9250 -0
- data/spec/metanorma/processor_spec.rb +50 -50
- data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +34 -34
- 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 +8 -4
@@ -1131,6 +1131,105 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1131
1131
|
.to be_equivalent_to xmlpp(output)
|
1132
1132
|
end
|
1133
1133
|
|
1134
|
+
it "processes ToC form macros" do
|
1135
|
+
input = <<~INPUT
|
1136
|
+
#{ASCIIDOC_BLANK_HDR}
|
1137
|
+
|
1138
|
+
[[clause1]]
|
1139
|
+
== Clause 1
|
1140
|
+
|
1141
|
+
[[clause1A]]
|
1142
|
+
=== Clause 1A
|
1143
|
+
|
1144
|
+
[[clause1Aa]]
|
1145
|
+
==== Clause 1Aa
|
1146
|
+
|
1147
|
+
[[clause1Ab]]
|
1148
|
+
==== Clause 1Ab
|
1149
|
+
|
1150
|
+
[[clause1B]]
|
1151
|
+
=== Clause 1B
|
1152
|
+
|
1153
|
+
[[clause1Ba]]
|
1154
|
+
==== Clause 1Ba
|
1155
|
+
|
1156
|
+
[[clause2]]
|
1157
|
+
== Clause 2
|
1158
|
+
|
1159
|
+
And introducing:
|
1160
|
+
toc:["//clause[@id = 'clause1'\\]/clause/title","//clause[@id = 'clause1'\\]/clause/clause/title:2"]
|
1161
|
+
|
1162
|
+
toc:["//clause[@id = 'clause1'\\]/clause/title"]
|
1163
|
+
INPUT
|
1164
|
+
output = <<~OUTPUT
|
1165
|
+
#{BLANK_HDR}
|
1166
|
+
<sections>
|
1167
|
+
<clause id='clause1' inline-header='false' obligation='normative'>
|
1168
|
+
<title>Clause 1</title>
|
1169
|
+
<clause id='clause1A' inline-header='false' obligation='normative'>
|
1170
|
+
<title>Clause 1A</title>
|
1171
|
+
<clause id='clause1Aa' inline-header='false' obligation='normative'>
|
1172
|
+
<title>Clause 1Aa</title>
|
1173
|
+
</clause>
|
1174
|
+
<clause id='clause1Ab' inline-header='false' obligation='normative'>
|
1175
|
+
<title>Clause 1Ab</title>
|
1176
|
+
</clause>
|
1177
|
+
</clause>
|
1178
|
+
<clause id='clause1B' inline-header='false' obligation='normative'>
|
1179
|
+
<title>Clause 1B</title>
|
1180
|
+
<clause id='clause1Ba' inline-header='false' obligation='normative'>
|
1181
|
+
<title>Clause 1Ba</title>
|
1182
|
+
</clause>
|
1183
|
+
</clause>
|
1184
|
+
</clause>
|
1185
|
+
<clause id='clause2' inline-header='false' obligation='normative'>
|
1186
|
+
<title>Clause 2</title>
|
1187
|
+
<p id='_'>And introducing: </p>
|
1188
|
+
<toc>
|
1189
|
+
<ul id='_'>
|
1190
|
+
<li>
|
1191
|
+
<xref target='clause1A'>Clause 1A</xref>
|
1192
|
+
</li>
|
1193
|
+
<li>
|
1194
|
+
<ul id='_'>
|
1195
|
+
<li>
|
1196
|
+
<xref target='clause1Aa'>Clause 1Aa</xref>
|
1197
|
+
</li>
|
1198
|
+
<li>
|
1199
|
+
<xref target='clause1Ab'>Clause 1Ab</xref>
|
1200
|
+
</li>
|
1201
|
+
</ul>
|
1202
|
+
</li>
|
1203
|
+
<li>
|
1204
|
+
<xref target='clause1B'>Clause 1B</xref>
|
1205
|
+
</li>
|
1206
|
+
<li>
|
1207
|
+
<ul id='_'>
|
1208
|
+
<li>
|
1209
|
+
<xref target='clause1Ba'>Clause 1Ba</xref>
|
1210
|
+
</li>
|
1211
|
+
</ul>
|
1212
|
+
</li>
|
1213
|
+
</ul>
|
1214
|
+
</toc>
|
1215
|
+
<toc>
|
1216
|
+
<ul id='_'>
|
1217
|
+
<li>
|
1218
|
+
<xref target='clause1A'>Clause 1A</xref>
|
1219
|
+
</li>
|
1220
|
+
<li>
|
1221
|
+
<xref target='clause1B'>Clause 1B</xref>
|
1222
|
+
</li>
|
1223
|
+
</ul>
|
1224
|
+
</toc>
|
1225
|
+
</clause>
|
1226
|
+
</sections>
|
1227
|
+
</standard-document>
|
1228
|
+
OUTPUT
|
1229
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1230
|
+
.to be_equivalent_to xmlpp(output)
|
1231
|
+
end
|
1232
|
+
|
1134
1233
|
describe "term inline macros" do
|
1135
1234
|
subject(:convert) do
|
1136
1235
|
xmlpp(
|
@@ -1442,4 +1541,113 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1442
1541
|
end
|
1443
1542
|
end
|
1444
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
|
1445
1653
|
end
|
@@ -22,6 +22,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
22
22
|
Author
|
23
23
|
:docfile: test.adoc
|
24
24
|
:nodoc:
|
25
|
+
:no-pdf:
|
25
26
|
|
26
27
|
[[abc]]
|
27
28
|
== Clause 1
|
@@ -258,6 +259,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
258
259
|
= Document title
|
259
260
|
Author
|
260
261
|
:docfile: test.adoc
|
262
|
+
:no-pdf:
|
261
263
|
|
262
264
|
[bibliography]
|
263
265
|
== Normative References
|
@@ -285,6 +287,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
285
287
|
= Document title
|
286
288
|
Author
|
287
289
|
:docfile: test.adoc
|
290
|
+
:no-pdf:
|
288
291
|
|
289
292
|
[bibliography]
|
290
293
|
== Normative References
|
@@ -443,6 +446,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
443
446
|
= Document title
|
444
447
|
Author
|
445
448
|
:docfile: test.adoc
|
449
|
+
:no-pdf:
|
446
450
|
|
447
451
|
footnoteblock:[id1]
|
448
452
|
|
@@ -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>
|