rng 0.1.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/docs.yml +63 -0
- data/.github/workflows/release.yml +8 -3
- data/.gitignore +11 -0
- data/.rubocop.yml +10 -7
- data/.rubocop_todo.yml +229 -23
- data/CHANGELOG.md +317 -0
- data/CLAUDE.md +139 -0
- data/Gemfile +11 -12
- data/README.adoc +1538 -11
- data/Rakefile +11 -3
- data/docs/Gemfile +8 -0
- data/docs/_config.yml +23 -0
- data/docs/getting-started/index.adoc +75 -0
- data/docs/guides/error-handling.adoc +137 -0
- data/docs/guides/external-references.adoc +128 -0
- data/docs/guides/index.adoc +24 -0
- data/docs/guides/parsing-rnc.adoc +141 -0
- data/docs/guides/parsing-rng-xml.adoc +81 -0
- data/docs/guides/rng-to-rnc.adoc +101 -0
- data/docs/guides/validation.adoc +85 -0
- data/docs/index.adoc +52 -0
- data/docs/reference/api.adoc +126 -0
- data/docs/reference/cli.adoc +182 -0
- data/docs/understanding/architecture.adoc +58 -0
- data/docs/understanding/rng-vs-rnc.adoc +118 -0
- data/exe/rng +5 -0
- data/lib/rng/any_name.rb +10 -8
- data/lib/rng/attribute.rb +28 -26
- data/lib/rng/choice.rb +24 -24
- data/lib/rng/cli.rb +607 -0
- data/lib/rng/data.rb +10 -10
- data/lib/rng/datatype_declaration.rb +26 -0
- data/lib/rng/define.rb +44 -41
- data/lib/rng/div.rb +36 -0
- data/lib/rng/documentation.rb +9 -0
- data/lib/rng/element.rb +39 -37
- data/lib/rng/empty.rb +7 -7
- data/lib/rng/except.rb +25 -25
- data/lib/rng/external_ref.rb +8 -8
- data/lib/rng/external_ref_resolver.rb +582 -0
- data/lib/rng/foreign_attribute.rb +26 -0
- data/lib/rng/foreign_element.rb +33 -0
- data/lib/rng/grammar.rb +14 -12
- data/lib/rng/group.rb +26 -24
- data/lib/rng/include.rb +5 -6
- data/lib/rng/include_processor.rb +461 -0
- data/lib/rng/interleave.rb +23 -23
- data/lib/rng/list.rb +22 -22
- data/lib/rng/mixed.rb +23 -23
- data/lib/rng/name.rb +7 -7
- data/lib/rng/namespace_declaration.rb +47 -0
- data/lib/rng/namespaces.rb +15 -0
- data/lib/rng/not_allowed.rb +7 -7
- data/lib/rng/ns_name.rb +9 -9
- data/lib/rng/one_or_more.rb +23 -23
- data/lib/rng/optional.rb +23 -23
- data/lib/rng/param.rb +8 -8
- data/lib/rng/parent_ref.rb +8 -8
- data/lib/rng/parse_tree_processor.rb +695 -0
- data/lib/rng/pattern.rb +7 -7
- data/lib/rng/ref.rb +8 -8
- data/lib/rng/rnc_builder.rb +927 -0
- data/lib/rng/rnc_parser.rb +605 -305
- data/lib/rng/rnc_to_rng_converter.rb +1408 -0
- data/lib/rng/schema_preamble.rb +73 -0
- data/lib/rng/schema_validator.rb +1622 -0
- data/lib/rng/start.rb +27 -25
- data/lib/rng/test_suite_parser.rb +168 -0
- data/lib/rng/text.rb +11 -8
- data/lib/rng/to_rnc.rb +4 -35
- data/lib/rng/value.rb +6 -7
- data/lib/rng/version.rb +1 -1
- data/lib/rng/zero_or_more.rb +23 -23
- data/lib/rng.rb +68 -17
- data/rng.gemspec +18 -19
- data/scripts/extract_spectest_resources.rb +96 -0
- data/spec/fixtures/compacttest.xml +2511 -0
- data/spec/fixtures/external/circular_a.rng +7 -0
- data/spec/fixtures/external/circular_b.rng +7 -0
- data/spec/fixtures/external/circular_main.rng +7 -0
- data/spec/fixtures/external/external_ref_lib.rng +7 -0
- data/spec/fixtures/external/external_ref_main.rng +7 -0
- data/spec/fixtures/external/include_lib.rng +7 -0
- data/spec/fixtures/external/include_main.rng +3 -0
- data/spec/fixtures/external/nested_chain.rng +6 -0
- data/spec/fixtures/external/nested_leaf.rng +7 -0
- data/spec/fixtures/external/nested_mid.rng +8 -0
- data/spec/fixtures/metanorma/3gpp.rnc +35 -0
- data/spec/fixtures/metanorma/3gpp.rng +105 -0
- data/spec/fixtures/metanorma/basicdoc.rnc +11 -0
- data/spec/fixtures/metanorma/bipm.rnc +148 -0
- data/spec/fixtures/metanorma/bipm.rng +376 -0
- data/spec/fixtures/metanorma/bsi.rnc +104 -0
- data/spec/fixtures/metanorma/bsi.rng +332 -0
- data/spec/fixtures/metanorma/csa.rnc +45 -0
- data/spec/fixtures/metanorma/csa.rng +131 -0
- data/spec/fixtures/metanorma/csd.rnc +43 -0
- data/spec/fixtures/metanorma/csd.rng +132 -0
- data/spec/fixtures/metanorma/gbstandard.rnc +99 -0
- data/spec/fixtures/metanorma/gbstandard.rng +316 -0
- data/spec/fixtures/metanorma/iec.rnc +49 -0
- data/spec/fixtures/metanorma/iec.rng +193 -0
- data/spec/fixtures/metanorma/ietf.rnc +275 -0
- data/spec/fixtures/metanorma/ietf.rng +925 -0
- data/spec/fixtures/metanorma/iho.rnc +58 -0
- data/spec/fixtures/metanorma/iho.rng +179 -0
- data/spec/fixtures/metanorma/isodoc.rnc +873 -0
- data/spec/fixtures/metanorma/isodoc.rng +2704 -0
- data/spec/fixtures/metanorma/isostandard-amd.rnc +43 -0
- data/spec/fixtures/metanorma/isostandard-amd.rng +108 -0
- data/spec/fixtures/metanorma/isostandard.rnc +166 -0
- data/spec/fixtures/metanorma/isostandard.rng +494 -0
- data/spec/fixtures/metanorma/itu.rnc +122 -0
- data/spec/fixtures/metanorma/itu.rng +377 -0
- data/spec/fixtures/metanorma/m3d.rnc +41 -0
- data/spec/fixtures/metanorma/m3d.rng +122 -0
- data/spec/fixtures/metanorma/mpfd.rnc +36 -0
- data/spec/fixtures/metanorma/mpfd.rng +95 -0
- data/spec/fixtures/metanorma/nist.rnc +77 -0
- data/spec/fixtures/metanorma/nist.rng +216 -0
- data/spec/fixtures/metanorma/ogc.rnc +51 -0
- data/spec/fixtures/metanorma/ogc.rng +151 -0
- data/spec/fixtures/metanorma/reqt.rnc +6 -0
- data/spec/fixtures/metanorma/rsd.rnc +36 -0
- data/spec/fixtures/metanorma/rsd.rng +95 -0
- data/spec/fixtures/metanorma/un.rnc +103 -0
- data/spec/fixtures/metanorma/un.rng +367 -0
- data/spec/fixtures/rnc/base.rnc +4 -0
- data/spec/fixtures/rnc/grammar_with_trailing.rnc +8 -0
- data/spec/fixtures/rnc/main_include_trailing.rnc +3 -0
- data/spec/fixtures/rnc/main_with_include.rnc +5 -0
- data/spec/fixtures/rnc/test_augment.rnc +10 -0
- data/spec/fixtures/rnc/test_isodoc_simple.rnc +9 -0
- data/spec/fixtures/rnc/top_level_include.rnc +8 -0
- data/spec/fixtures/spectest_external/case_10_4.7/x +3 -0
- data/spec/fixtures/spectest_external/case_10_4.7/y +7 -0
- data/spec/fixtures/spectest_external/case_11_4.7/x +3 -0
- data/spec/fixtures/spectest_external/case_12_4.7/x +3 -0
- data/spec/fixtures/spectest_external/case_13_4.7/x +3 -0
- data/spec/fixtures/spectest_external/case_13_4.7/y +3 -0
- data/spec/fixtures/spectest_external/case_14_4.7/x +7 -0
- data/spec/fixtures/spectest_external/case_15_4.7/x +7 -0
- data/spec/fixtures/spectest_external/case_16_4.7/x +5 -0
- data/spec/fixtures/spectest_external/case_17_4.7/x +5 -0
- data/spec/fixtures/spectest_external/case_18_4.7/x +7 -0
- data/spec/fixtures/spectest_external/case_19_4.7/level1.rng +9 -0
- data/spec/fixtures/spectest_external/case_19_4.7/level2.rng +7 -0
- data/spec/fixtures/spectest_external/case_1_4.5/sub1/x +3 -0
- data/spec/fixtures/spectest_external/case_1_4.5/sub3/x +3 -0
- data/spec/fixtures/spectest_external/case_1_4.5/x +3 -0
- data/spec/fixtures/spectest_external/case_20_4.6/x +3 -0
- data/spec/fixtures/spectest_external/case_2_4.5/x +3 -0
- data/spec/fixtures/spectest_external/case_3_4.6/x +3 -0
- data/spec/fixtures/spectest_external/case_4_4.6/x +3 -0
- data/spec/fixtures/spectest_external/case_5_4.6/x +1 -0
- data/spec/fixtures/spectest_external/case_6_4.6/x +5 -0
- data/spec/fixtures/spectest_external/case_7_4.6/x +1 -0
- data/spec/fixtures/spectest_external/case_7_4.6/y +1 -0
- data/spec/fixtures/spectest_external/case_8_4.7/x +7 -0
- data/spec/fixtures/spectest_external/case_9_4.7/x +7 -0
- data/spec/fixtures/spectest_external/resources.json +149 -0
- data/spec/rng/advanced_rnc_spec.rb +101 -0
- data/spec/rng/compacttest_spec.rb +197 -0
- data/spec/rng/datatype_declaration_spec.rb +28 -0
- data/spec/rng/div_spec.rb +207 -0
- data/spec/rng/external_ref_resolver_spec.rb +122 -0
- data/spec/rng/metanorma_conversion_spec.rb +159 -0
- data/spec/rng/namespace_declaration_spec.rb +60 -0
- data/spec/rng/namespace_support_spec.rb +199 -0
- data/spec/rng/rnc_parser_spec.rb +498 -22
- data/spec/rng/rnc_roundtrip_spec.rb +96 -82
- data/spec/rng/rng_generation_spec.rb +288 -0
- data/spec/rng/roundtrip_spec.rb +342 -0
- data/spec/rng/schema_preamble_spec.rb +145 -0
- data/spec/rng/schema_spec.rb +68 -64
- data/spec/rng/spectest_spec.rb +168 -90
- data/spec/rng_spec.rb +2 -2
- data/spec/spec_helper.rb +7 -42
- metadata +141 -8
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#default namespace isostandard = "https://www.metanorma.com/ns/iso"
|
|
2
|
+
|
|
3
|
+
include "isostandard.rnc" {
|
|
4
|
+
|
|
5
|
+
start = iso-standard
|
|
6
|
+
|
|
7
|
+
sections =
|
|
8
|
+
element sections {
|
|
9
|
+
clause+
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
clause =
|
|
13
|
+
element clause {
|
|
14
|
+
attribute change { "add" | "delete" | "modify" }?,
|
|
15
|
+
attribute locality { text }?,
|
|
16
|
+
Clause-Section
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
iso-standard =
|
|
20
|
+
element iso-standard {
|
|
21
|
+
attribute version { text },
|
|
22
|
+
attribute type { "semantic" | "presentation" },
|
|
23
|
+
bibdata, misccontainer?, boilerplate?, preface, sections+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
documentnumber =
|
|
27
|
+
element project-number {
|
|
28
|
+
attribute part { xsd:int }?,
|
|
29
|
+
attribute subpart { xsd:int }?,
|
|
30
|
+
attribute amendment { xsd:int }?,
|
|
31
|
+
attribute corrigendum { xsd:int }?,
|
|
32
|
+
attribute origyr { ISO8601Date }?,
|
|
33
|
+
text
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
BibDataExtensionType =
|
|
37
|
+
doctype, docsubtype?, editorialgroup, ics*, structuredidentifier, stagename?, updates_document_type?
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# end overrides
|
|
41
|
+
|
|
42
|
+
updates_document_type = element updates-document-type { DocumentType }
|
|
43
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
3
|
+
<!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
|
|
4
|
+
<include href="isostandard.rng">
|
|
5
|
+
<start>
|
|
6
|
+
<ref name="iso-standard"/>
|
|
7
|
+
</start>
|
|
8
|
+
<define name="sections">
|
|
9
|
+
<element name="sections">
|
|
10
|
+
<oneOrMore>
|
|
11
|
+
<ref name="clause"/>
|
|
12
|
+
</oneOrMore>
|
|
13
|
+
</element>
|
|
14
|
+
</define>
|
|
15
|
+
<define name="clause">
|
|
16
|
+
<element name="clause">
|
|
17
|
+
<optional>
|
|
18
|
+
<attribute name="change">
|
|
19
|
+
<choice>
|
|
20
|
+
<value>add</value>
|
|
21
|
+
<value>delete</value>
|
|
22
|
+
<value>modify</value>
|
|
23
|
+
</choice>
|
|
24
|
+
</attribute>
|
|
25
|
+
</optional>
|
|
26
|
+
<optional>
|
|
27
|
+
<attribute name="locality"/>
|
|
28
|
+
</optional>
|
|
29
|
+
<ref name="Clause-Section"/>
|
|
30
|
+
</element>
|
|
31
|
+
</define>
|
|
32
|
+
<define name="iso-standard">
|
|
33
|
+
<element name="iso-standard">
|
|
34
|
+
<attribute name="version"/>
|
|
35
|
+
<attribute name="type">
|
|
36
|
+
<choice>
|
|
37
|
+
<value>semantic</value>
|
|
38
|
+
<value>presentation</value>
|
|
39
|
+
</choice>
|
|
40
|
+
</attribute>
|
|
41
|
+
<ref name="bibdata"/>
|
|
42
|
+
<optional>
|
|
43
|
+
<ref name="misccontainer"/>
|
|
44
|
+
</optional>
|
|
45
|
+
<optional>
|
|
46
|
+
<ref name="boilerplate"/>
|
|
47
|
+
</optional>
|
|
48
|
+
<ref name="preface"/>
|
|
49
|
+
<oneOrMore>
|
|
50
|
+
<ref name="sections"/>
|
|
51
|
+
</oneOrMore>
|
|
52
|
+
</element>
|
|
53
|
+
</define>
|
|
54
|
+
<define name="documentnumber">
|
|
55
|
+
<element name="project-number">
|
|
56
|
+
<optional>
|
|
57
|
+
<attribute name="part">
|
|
58
|
+
<data type="int"/>
|
|
59
|
+
</attribute>
|
|
60
|
+
</optional>
|
|
61
|
+
<optional>
|
|
62
|
+
<attribute name="subpart">
|
|
63
|
+
<data type="int"/>
|
|
64
|
+
</attribute>
|
|
65
|
+
</optional>
|
|
66
|
+
<optional>
|
|
67
|
+
<attribute name="amendment">
|
|
68
|
+
<data type="int"/>
|
|
69
|
+
</attribute>
|
|
70
|
+
</optional>
|
|
71
|
+
<optional>
|
|
72
|
+
<attribute name="corrigendum">
|
|
73
|
+
<data type="int"/>
|
|
74
|
+
</attribute>
|
|
75
|
+
</optional>
|
|
76
|
+
<optional>
|
|
77
|
+
<attribute name="origyr">
|
|
78
|
+
<ref name="ISO8601Date"/>
|
|
79
|
+
</attribute>
|
|
80
|
+
</optional>
|
|
81
|
+
<text/>
|
|
82
|
+
</element>
|
|
83
|
+
</define>
|
|
84
|
+
<define name="BibDataExtensionType">
|
|
85
|
+
<ref name="doctype"/>
|
|
86
|
+
<optional>
|
|
87
|
+
<ref name="docsubtype"/>
|
|
88
|
+
</optional>
|
|
89
|
+
<ref name="editorialgroup"/>
|
|
90
|
+
<zeroOrMore>
|
|
91
|
+
<ref name="ics"/>
|
|
92
|
+
</zeroOrMore>
|
|
93
|
+
<ref name="structuredidentifier"/>
|
|
94
|
+
<optional>
|
|
95
|
+
<ref name="stagename"/>
|
|
96
|
+
</optional>
|
|
97
|
+
<optional>
|
|
98
|
+
<ref name="updates_document_type"/>
|
|
99
|
+
</optional>
|
|
100
|
+
</define>
|
|
101
|
+
</include>
|
|
102
|
+
<!-- end overrides -->
|
|
103
|
+
<define name="updates_document_type">
|
|
104
|
+
<element name="updates-document-type">
|
|
105
|
+
<ref name="DocumentType"/>
|
|
106
|
+
</element>
|
|
107
|
+
</define>
|
|
108
|
+
</grammar>
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#default namespace isostandard = "https://www.metanorma.com/ns/iso"
|
|
2
|
+
|
|
3
|
+
include "isodoc.rnc" {
|
|
4
|
+
|
|
5
|
+
start = iso-standard
|
|
6
|
+
|
|
7
|
+
organization =
|
|
8
|
+
element organization {
|
|
9
|
+
orgname+, abbreviation?, uri?, org-identifier*, contact*,
|
|
10
|
+
technical-committee?, subcommittee?, workgroup?, secretariat?
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
BibDataExtensionType =
|
|
14
|
+
doctype, docsubtype?, horizontal?, editorialgroup, ics*, structuredidentifier, stagename?
|
|
15
|
+
|
|
16
|
+
bdate = element date {
|
|
17
|
+
attribute type { ( BibliographicDateType | text ) },
|
|
18
|
+
(
|
|
19
|
+
(
|
|
20
|
+
element from { ISO8601Date },
|
|
21
|
+
element to { ISO8601Date }?
|
|
22
|
+
) |
|
|
23
|
+
element on { ISO8601Date | "--" | "–" }
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
sections =
|
|
29
|
+
element sections {
|
|
30
|
+
(note | admonition)*, clause, (term-clause | terms)?, definitions?, (clause | term-clause | terms)+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Clause-Section =
|
|
34
|
+
attribute id { xsd:ID }?,
|
|
35
|
+
attribute language { text }?,
|
|
36
|
+
attribute script { text }?,
|
|
37
|
+
attribute inline-header { xsd:boolean }?,
|
|
38
|
+
attribute obligation { "normative" | "informative" }?,
|
|
39
|
+
attribute type { text }?,
|
|
40
|
+
section-title?,
|
|
41
|
+
(
|
|
42
|
+
( ( BasicBlock+ ) | amend) | clause-subsection+
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
term =
|
|
46
|
+
element term {
|
|
47
|
+
attribute id { xsd:ID }?,
|
|
48
|
+
attribute language { text }?,
|
|
49
|
+
attribute script { text }?,
|
|
50
|
+
attribute tag { text }?,
|
|
51
|
+
attribute multilingual-rendering { MultilingualRenderingType }?,
|
|
52
|
+
preferred, admitted*, deprecates*,
|
|
53
|
+
termdomain?, termdefinition, termnote*, termexample*, termsource*,
|
|
54
|
+
term*
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
annex =
|
|
58
|
+
element annex {
|
|
59
|
+
attribute id { xsd:ID }?,
|
|
60
|
+
attribute language { text }?,
|
|
61
|
+
attribute script { text }?,
|
|
62
|
+
attribute inline-header { xsd:boolean }?,
|
|
63
|
+
attribute obligation { "normative" | "informative" }?,
|
|
64
|
+
section-title?,
|
|
65
|
+
# allow hanging paragraps in annexes: they introduce lists
|
|
66
|
+
#( paragraph-with-footnote | table | note | formula | admonition | ol | ul | dl | figure | quote | sourcecode | review | example )*,
|
|
67
|
+
BasicBlock*,
|
|
68
|
+
clause-hanging-paragraph-with-footnote*,
|
|
69
|
+
annex-appendix*
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
AdmonitionType =
|
|
73
|
+
( "danger" | "caution" | "warning" | "important" | "safety precautions" )
|
|
74
|
+
|
|
75
|
+
preface =
|
|
76
|
+
element preface {
|
|
77
|
+
abstract?, foreword, introduction?
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
DocumentType =
|
|
81
|
+
"international-standard" | "technical-specification" |
|
|
82
|
+
"technical-report" | "publicly-available-specification" |
|
|
83
|
+
"international-workshop-agreement" | "guide" |
|
|
84
|
+
"amendment" | "technical-corrigendum" | "directive"
|
|
85
|
+
|
|
86
|
+
DocumentSubtype = "specification" | "method-of-test" | "vocabulary" | "code-of-practice"
|
|
87
|
+
|
|
88
|
+
structuredidentifier =
|
|
89
|
+
element structuredidentifier {
|
|
90
|
+
attribute type { text }?,
|
|
91
|
+
(documentnumber, tc-documentnumber? )
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
foreword = element foreword { Basic-Section }
|
|
95
|
+
introduction = element introduction { Content-Section }
|
|
96
|
+
|
|
97
|
+
editorialgroup = element editorialgroup {
|
|
98
|
+
technical-committee+, subcommittee*, workgroup*, secretariat?
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
Content-Section =
|
|
102
|
+
attribute id { xsd:ID }?,
|
|
103
|
+
attribute language { text }?,
|
|
104
|
+
attribute script { text }?,
|
|
105
|
+
attribute inline-header { xsd:boolean }?,
|
|
106
|
+
attribute obligation { "normative" | "informative" }?,
|
|
107
|
+
attribute number { text }?,
|
|
108
|
+
attribute type { text }?,
|
|
109
|
+
section-title?,
|
|
110
|
+
( (BasicBlock*) |
|
|
111
|
+
content-subsection+ )
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
# end overrides
|
|
116
|
+
|
|
117
|
+
# We display the Normative References between scope and terms; but to keep the
|
|
118
|
+
# grammar simple, we keep the references together
|
|
119
|
+
iso-standard =
|
|
120
|
+
element iso-standard {
|
|
121
|
+
attribute version { text },
|
|
122
|
+
attribute type { "semantic" | "presentation" },
|
|
123
|
+
bibdata, termdocsource*, misccontainer?, boilerplate?, preface, sections+, annex*, bibliography, indexsect*
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
horizontal = element horizontal { xsd:boolean }
|
|
127
|
+
|
|
128
|
+
documentnumber =
|
|
129
|
+
element project-number {
|
|
130
|
+
attribute part { xsd:int }?,
|
|
131
|
+
attribute subpart { xsd:int }?,
|
|
132
|
+
text
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
tc-documentnumber =
|
|
136
|
+
element tc-document-number {
|
|
137
|
+
xsd:int
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
subcommittee =
|
|
141
|
+
element subcommittee { IsoWorkgroup }
|
|
142
|
+
|
|
143
|
+
workgroup =
|
|
144
|
+
element workgroup { IsoWorkgroup }
|
|
145
|
+
|
|
146
|
+
secretariat =
|
|
147
|
+
element secretariat { text }
|
|
148
|
+
|
|
149
|
+
clause-hanging-paragraph-with-footnote =
|
|
150
|
+
element clause {
|
|
151
|
+
attribute id { xsd:ID }?,
|
|
152
|
+
attribute language { text }?,
|
|
153
|
+
attribute script { text }?,
|
|
154
|
+
attribute inline-header { xsd:boolean } ? ,
|
|
155
|
+
attribute obligation { "normative" | "informative" }?,
|
|
156
|
+
section-title?,
|
|
157
|
+
# allow hanging paragraphs in annexes: they introduce lists
|
|
158
|
+
BasicBlock*,
|
|
159
|
+
clause-hanging-paragraph-with-footnote*
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
annex-appendix =
|
|
163
|
+
element appendix { Clause-Section }
|
|
164
|
+
|
|
165
|
+
stagename = element stagename { text }
|
|
166
|
+
|