rfcxml 0.2.0

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.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +18 -0
  3. data/.github/workflows/release.yml +25 -0
  4. data/.gitignore +11 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +11 -0
  7. data/.rubocop_todo.yml +20 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/Gemfile +12 -0
  10. data/README.adoc +75 -0
  11. data/Rakefile +12 -0
  12. data/bin/console +11 -0
  13. data/bin/setup +8 -0
  14. data/lib/rfcxml/v3/abstract.rb +32 -0
  15. data/lib/rfcxml/v3/address.rb +31 -0
  16. data/lib/rfcxml/v3/annotation.rb +57 -0
  17. data/lib/rfcxml/v3/area.rb +17 -0
  18. data/lib/rfcxml/v3/artset.rb +23 -0
  19. data/lib/rfcxml/v3/artwork.rb +37 -0
  20. data/lib/rfcxml/v3/aside.rb +50 -0
  21. data/lib/rfcxml/v3/author.rb +38 -0
  22. data/lib/rfcxml/v3/back.rb +25 -0
  23. data/lib/rfcxml/v3/bcp14.rb +17 -0
  24. data/lib/rfcxml/v3/blockquote.rb +92 -0
  25. data/lib/rfcxml/v3/boilerplate.rb +19 -0
  26. data/lib/rfcxml/v3/br.rb +13 -0
  27. data/lib/rfcxml/v3/c.rb +33 -0
  28. data/lib/rfcxml/v3/city.rb +19 -0
  29. data/lib/rfcxml/v3/cityarea.rb +19 -0
  30. data/lib/rfcxml/v3/code.rb +19 -0
  31. data/lib/rfcxml/v3/contact.rb +36 -0
  32. data/lib/rfcxml/v3/country.rb +19 -0
  33. data/lib/rfcxml/v3/cref.rb +51 -0
  34. data/lib/rfcxml/v3/date.rb +23 -0
  35. data/lib/rfcxml/v3/dd.rb +92 -0
  36. data/lib/rfcxml/v3/displayreference.rb +19 -0
  37. data/lib/rfcxml/v3/dl.rb +35 -0
  38. data/lib/rfcxml/v3/dt.rb +58 -0
  39. data/lib/rfcxml/v3/em.rb +14 -0
  40. data/lib/rfcxml/v3/email.rb +19 -0
  41. data/lib/rfcxml/v3/eref.rb +21 -0
  42. data/lib/rfcxml/v3/extaddr.rb +19 -0
  43. data/lib/rfcxml/v3/facsimile.rb +17 -0
  44. data/lib/rfcxml/v3/figure.rb +57 -0
  45. data/lib/rfcxml/v3/format.rb +21 -0
  46. data/lib/rfcxml/v3/front.rb +49 -0
  47. data/lib/rfcxml/v3/iref.rb +23 -0
  48. data/lib/rfcxml/v3/keyword.rb +17 -0
  49. data/lib/rfcxml/v3/li.rb +97 -0
  50. data/lib/rfcxml/v3/link.rb +19 -0
  51. data/lib/rfcxml/v3/list.rb +27 -0
  52. data/lib/rfcxml/v3/middle.rb +19 -0
  53. data/lib/rfcxml/v3/name.rb +56 -0
  54. data/lib/rfcxml/v3/note.rb +37 -0
  55. data/lib/rfcxml/v3/ol.rb +33 -0
  56. data/lib/rfcxml/v3/organization.rb +25 -0
  57. data/lib/rfcxml/v3/phone.rb +17 -0
  58. data/lib/rfcxml/v3/pobox.rb +19 -0
  59. data/lib/rfcxml/v3/postal.rb +46 -0
  60. data/lib/rfcxml/v3/postal_line.rb +19 -0
  61. data/lib/rfcxml/v3/postamble.rb +33 -0
  62. data/lib/rfcxml/v3/preamble.rb +57 -0
  63. data/lib/rfcxml/v3/refcontent.rb +28 -0
  64. data/lib/rfcxml/v3/reference.rb +43 -0
  65. data/lib/rfcxml/v3/referencegroup.rb +25 -0
  66. data/lib/rfcxml/v3/references.rb +33 -0
  67. data/lib/rfcxml/v3/region.rb +19 -0
  68. data/lib/rfcxml/v3/relref.rb +29 -0
  69. data/lib/rfcxml/v3/rfc.rb +70 -0
  70. data/lib/rfcxml/v3/section.rb +78 -0
  71. data/lib/rfcxml/v3/series_info.rb +27 -0
  72. data/lib/rfcxml/v3/sortingcode.rb +19 -0
  73. data/lib/rfcxml/v3/sourcecode.rb +31 -0
  74. data/lib/rfcxml/v3/spanx.rb +19 -0
  75. data/lib/rfcxml/v3/street.rb +19 -0
  76. data/lib/rfcxml/v3/strong.rb +43 -0
  77. data/lib/rfcxml/v3/sub.rb +49 -0
  78. data/lib/rfcxml/v3/sup.rb +28 -0
  79. data/lib/rfcxml/v3/table.rb +37 -0
  80. data/lib/rfcxml/v3/tbody.rb +21 -0
  81. data/lib/rfcxml/v3/td.rb +89 -0
  82. data/lib/rfcxml/v3/text.rb +82 -0
  83. data/lib/rfcxml/v3/texttable.rb +41 -0
  84. data/lib/rfcxml/v3/tfoot.rb +21 -0
  85. data/lib/rfcxml/v3/th.rb +14 -0
  86. data/lib/rfcxml/v3/thead.rb +21 -0
  87. data/lib/rfcxml/v3/title.rb +25 -0
  88. data/lib/rfcxml/v3/toc.rb +19 -0
  89. data/lib/rfcxml/v3/tr.rb +24 -0
  90. data/lib/rfcxml/v3/tt.rb +53 -0
  91. data/lib/rfcxml/v3/ttcol.rb +34 -0
  92. data/lib/rfcxml/v3/u.rb +25 -0
  93. data/lib/rfcxml/v3/ul.rb +31 -0
  94. data/lib/rfcxml/v3/uri.rb +17 -0
  95. data/lib/rfcxml/v3/vspace.rb +17 -0
  96. data/lib/rfcxml/v3/workgroup.rb +17 -0
  97. data/lib/rfcxml/v3/xref.rb +41 -0
  98. data/lib/rfcxml/v3/xref_text.rb +30 -0
  99. data/lib/rfcxml/v3.rb +8 -0
  100. data/lib/rfcxml/version.rb +5 -0
  101. data/lib/rfcxml.rb +17 -0
  102. data/reference-docs/v3-modified.rnc +1145 -0
  103. data/reference-docs/v3.rnc +1145 -0
  104. data/reference-docs/v3.xsd +1410 -0
  105. data/reference-docs/xml.xsd +19 -0
  106. data/rfcxml.gemspec +47 -0
  107. data/sig/xml2rfc.rbs +4 -0
  108. metadata +264 -0
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "artset"
6
+ require_relative "artwork"
7
+ require_relative "iref"
8
+ require_relative "name"
9
+ require_relative "postamble"
10
+ require_relative "preamble"
11
+ require_relative "sourcecode"
12
+
13
+ module Rfcxml
14
+ module V3
15
+ class Figure < Lutaml::Model::Serializable
16
+ attribute :anchor, :string
17
+ attribute :pn, :string
18
+ attribute :title, :string, default: -> { "" }
19
+ attribute :suppress_title, :string, default: -> { "false" }
20
+ attribute :src, :string
21
+ attribute :original_src, :string
22
+ attribute :align, :string, default: -> { "left" }
23
+ attribute :alt, :string, default: -> { "" }
24
+ attribute :width, :string, default: -> { "" }
25
+ attribute :height, :string, default: -> { "" }
26
+ attribute :name, Name
27
+ attribute :iref, Iref, collection: true
28
+ attribute :preamble, Preamble
29
+ attribute :artset, Artset, collection: true
30
+ attribute :artwork, Artwork, collection: true
31
+ attribute :sourcecode, Sourcecode, collection: true
32
+ attribute :postamble, Postamble
33
+
34
+ xml do
35
+ root "figure"
36
+
37
+ map_attribute "anchor", to: :anchor
38
+ map_attribute "pn", to: :pn
39
+ map_attribute "title", to: :title
40
+ map_attribute "suppress-title", to: :suppress_title
41
+ map_attribute "src", to: :src
42
+ map_attribute "originalSrc", to: :original_src
43
+ map_attribute "align", to: :align
44
+ map_attribute "alt", to: :alt
45
+ map_attribute "width", to: :width
46
+ map_attribute "height", to: :height
47
+ map_element "name", to: :name
48
+ map_element "iref", to: :iref
49
+ map_element "preamble", to: :preamble
50
+ map_element "artset", to: :artset
51
+ map_element "artwork", to: :artwork
52
+ map_element "sourcecode", to: :sourcecode
53
+ map_element "postamble", to: :postamble
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Format < Lutaml::Model::Serializable
8
+ attribute :target, :string
9
+ attribute :type, :string
10
+ attribute :octets, :string
11
+
12
+ xml do
13
+ root "format"
14
+
15
+ map_attribute "target", to: :target
16
+ map_attribute "type", to: :type
17
+ map_attribute "octets", to: :octets
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "abstract"
6
+ require_relative "area"
7
+ require_relative "author"
8
+ require_relative "boilerplate"
9
+ require_relative "date"
10
+ require_relative "keyword"
11
+ require_relative "note"
12
+ require_relative "series_info"
13
+ require_relative "title"
14
+ require_relative "toc"
15
+ require_relative "workgroup"
16
+
17
+ module Rfcxml
18
+ module V3
19
+ class Front < Lutaml::Model::Serializable
20
+ attribute :title, Title
21
+ attribute :series_info, SeriesInfo, collection: true
22
+ attribute :author, Author, collection: true
23
+ attribute :date, Date
24
+ attribute :area, Area, collection: true
25
+ attribute :workgroup, Workgroup, collection: true
26
+ attribute :keyword, Keyword, collection: true
27
+ attribute :abstract, Abstract
28
+ attribute :note, Note, collection: true
29
+ attribute :boilerplate, Boilerplate
30
+ attribute :toc, Toc
31
+
32
+ xml do
33
+ root "front"
34
+
35
+ map_element "title", to: :title
36
+ map_element "seriesInfo", to: :series_info
37
+ map_element "author", to: :author
38
+ map_element "date", to: :date
39
+ map_element "area", to: :area
40
+ map_element "workgroup", to: :workgroup
41
+ map_element "keyword", to: :keyword
42
+ map_element "abstract", to: :abstract
43
+ map_element "note", to: :note
44
+ map_element "boilerplate", to: :boilerplate
45
+ map_element "toc", to: :toc
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Iref < Lutaml::Model::Serializable
8
+ attribute :item, :string
9
+ attribute :subitem, :string, default: -> { "" }
10
+ attribute :primary, :string, default: -> { "false" }
11
+ attribute :pn, :string
12
+
13
+ xml do
14
+ root "iref"
15
+
16
+ map_attribute "item", to: :item
17
+ map_attribute "subitem", to: :subitem
18
+ map_attribute "primary", to: :primary
19
+ map_attribute "pn", to: :pn
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Keyword < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+
10
+ xml do
11
+ root "keyword"
12
+
13
+ map_content to: :content
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "artset"
6
+ require_relative "artwork"
7
+ require_relative "bcp14"
8
+ require_relative "blockquote"
9
+ require_relative "br"
10
+ require_relative "cref"
11
+ require_relative "dl"
12
+ require_relative "em"
13
+ require_relative "eref"
14
+ require_relative "figure"
15
+ require_relative "iref"
16
+ # require_relative "ol"
17
+ require_relative "relref"
18
+ require_relative "sourcecode"
19
+ require_relative "strong"
20
+ require_relative "sub"
21
+ require_relative "sup"
22
+ require_relative "text"
23
+ require_relative "table"
24
+ require_relative "tt"
25
+ require_relative "u"
26
+ # require_relative "ul"
27
+ require_relative "xref"
28
+
29
+ module Rfcxml
30
+ module V3
31
+ class Ul < Lutaml::Model::Serializable; end
32
+ class Ol < Lutaml::Model::Serializable; end
33
+
34
+ class Li < Lutaml::Model::Serializable
35
+ attribute :content, :string
36
+ attribute :anchor, :string
37
+ attribute :pn, :string
38
+ attribute :artset, Artset, collection: true
39
+ attribute :artwork, Artwork, collection: true
40
+ attribute :dl, Dl, collection: true
41
+ attribute :figure, Figure, collection: true
42
+ attribute :ol, Ol, collection: true
43
+ attribute :sourcecode, Sourcecode, collection: true
44
+ attribute :t, Text, collection: true
45
+ attribute :table, Table, collection: true
46
+ attribute :ul, Ul, collection: true
47
+ attribute :bcp14, Bcp14, collection: true
48
+ attribute :br, Br, collection: true
49
+ attribute :cref, Cref, collection: true
50
+ attribute :em, Em, collection: true
51
+ attribute :eref, Eref, collection: true
52
+ attribute :iref, Iref, collection: true
53
+ attribute :relref, Relref, collection: true
54
+ attribute :strong, Strong, collection: true
55
+ attribute :sub, Sub, collection: true
56
+ attribute :sup, Sup, collection: true
57
+ attribute :tt, Tt, collection: true
58
+ attribute :u, U, collection: true
59
+ attribute :xref, Xref, collection: true
60
+
61
+ attribute :blockquote, Blockquote, collection: true
62
+ attribute :derived_counter, :string
63
+
64
+ xml do
65
+ root "li", mixed: true
66
+
67
+ map_content to: :content
68
+ map_attribute "anchor", to: :anchor
69
+ map_attribute "derivedCounter", to: :derived_counter
70
+ map_attribute "pn", to: :pn
71
+ map_element "artset", to: :artset
72
+ map_element "artwork", to: :artwork
73
+ map_element "blockquote", to: :blockquote
74
+ map_element "dl", to: :dl
75
+ map_element "figure", to: :figure
76
+ map_element "ol", to: :ol
77
+ map_element "sourcecode", to: :sourcecode
78
+ map_element "t", to: :t
79
+ map_element "table", to: :table
80
+ map_element "ul", to: :ul
81
+ map_element "bcp14", to: :bcp14
82
+ map_element "br", to: :br
83
+ map_element "cref", to: :cref
84
+ map_element "em", to: :em
85
+ map_element "eref", to: :eref
86
+ map_element "iref", to: :iref
87
+ map_element "relref", to: :relref
88
+ map_element "strong", to: :strong
89
+ map_element "sub", to: :sub
90
+ map_element "sup", to: :sup
91
+ map_element "tt", to: :tt
92
+ map_element "u", to: :u
93
+ map_element "xref", to: :xref
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Link < Lutaml::Model::Serializable
8
+ attribute :href, :string
9
+ attribute :rel, :string
10
+
11
+ xml do
12
+ root "link"
13
+
14
+ map_attribute "href", to: :href
15
+ map_attribute "rel", to: :rel
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "text"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class List < Lutaml::Model::Serializable
10
+ attribute :style, :string, default: -> { "empty" }
11
+ attribute :hang_indent, :string
12
+ attribute :counter, :string
13
+ attribute :pn, :string
14
+ attribute :text, Text, collection: true
15
+
16
+ xml do
17
+ root "list"
18
+
19
+ map_attribute "style", to: :style
20
+ map_attribute "hangIndent", to: :hang_indent
21
+ map_attribute "counter", to: :counter
22
+ map_attribute "pn", to: :pn
23
+ map_element "t", to: :text
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "section"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Middle < Lutaml::Model::Serializable
10
+ attribute :section, Section, collection: true
11
+
12
+ xml do
13
+ root "middle"
14
+
15
+ map_element "section", to: :section
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "bcp14"
6
+ require_relative "br"
7
+ require_relative "cref"
8
+ require_relative "em"
9
+ require_relative "eref"
10
+ require_relative "iref"
11
+ require_relative "relref"
12
+ require_relative "strong"
13
+ require_relative "sub"
14
+ require_relative "sup"
15
+ require_relative "tt"
16
+ require_relative "xref"
17
+
18
+ module Rfcxml
19
+ module V3
20
+ class Name < Lutaml::Model::Serializable
21
+ attribute :content, :string
22
+ attribute :slugified_name, :string
23
+ attribute :bcp14, Bcp14, collection: true
24
+ attribute :br, Br, collection: true
25
+ attribute :cref, Cref, collection: true
26
+ attribute :em, Em, collection: true
27
+ attribute :eref, Eref, collection: true
28
+ attribute :iref, Iref, collection: true
29
+ attribute :relref, Relref, collection: true
30
+ attribute :strong, Strong, collection: true
31
+ attribute :sub, Sub, collection: true
32
+ attribute :sup, Sup, collection: true
33
+ attribute :tt, Tt, collection: true
34
+ attribute :xref, Xref, collection: true
35
+
36
+ xml do
37
+ root "name"
38
+
39
+ map_content to: :content
40
+ map_attribute "slugifiedName", to: :slugified_name
41
+ map_element "bcp14", to: :bcp14
42
+ map_element "br", to: :br
43
+ map_element "cref", to: :cref
44
+ map_element "em", to: :em
45
+ map_element "eref", to: :eref
46
+ map_element "iref", to: :iref
47
+ map_element "relref", to: :relref
48
+ map_element "strong", to: :strong
49
+ map_element "sub", to: :sub
50
+ map_element "sup", to: :sup
51
+ map_element "tt", to: :tt
52
+ map_element "xref", to: :xref
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "dl"
6
+ require_relative "name"
7
+ require_relative "ol"
8
+ require_relative "text"
9
+ require_relative "ul"
10
+
11
+ module Rfcxml
12
+ module V3
13
+ class Note < Lutaml::Model::Serializable
14
+ attribute :title, :string
15
+ attribute :pn, :string
16
+ attribute :remove_in_rfc, :string, default: -> { "false" }
17
+ attribute :name, Name
18
+ attribute :dl, Dl, collection: true
19
+ attribute :ol, Ol, collection: true
20
+ attribute :t, Text, collection: true
21
+ attribute :ul, Ul, collection: true
22
+
23
+ xml do
24
+ root "note"
25
+
26
+ map_attribute "title", to: :title
27
+ map_attribute "pn", to: :pn
28
+ map_attribute "removeInRFC", to: :remove_in_rfc
29
+ map_element "name", to: :name
30
+ map_element "dl", to: :dl
31
+ map_element "ol", to: :ol
32
+ map_element "t", to: :t
33
+ map_element "ul", to: :ul
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "li"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Ol < Lutaml::Model::Serializable
10
+ attribute :anchor, :string
11
+ attribute :type, :string, default: -> { "1" }
12
+ attribute :start, :string, default: -> { "1" }
13
+ attribute :group, :string
14
+ attribute :spacing, :string, default: -> { "normal" }
15
+ attribute :indent, :string, default: -> { "adaptive" }
16
+ attribute :pn, :string
17
+ attribute :li, Li, collection: true
18
+
19
+ xml do
20
+ root "ol"
21
+
22
+ map_attribute "anchor", to: :anchor
23
+ map_attribute "type", to: :type
24
+ map_attribute "start", to: :start
25
+ map_attribute "group", to: :group
26
+ map_attribute "spacing", to: :spacing
27
+ map_attribute "indent", to: :indent
28
+ map_attribute "pn", to: :pn
29
+ map_element "li", to: :li
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Organization < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+ attribute :abbrev, :string
10
+ attribute :ascii, :string
11
+ attribute :ascii_abbrev, :string
12
+ attribute :show_on_front_page, :string, default: -> { "true" }
13
+
14
+ xml do
15
+ root "organization"
16
+
17
+ map_content to: :content
18
+ map_attribute "abbrev", to: :abbrev
19
+ map_attribute "ascii", to: :ascii
20
+ map_attribute "asciiAbbrev", to: :ascii_abbrev
21
+ map_attribute "showOnFrontPage", to: :show_on_front_page
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Phone < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+
10
+ xml do
11
+ root "phone"
12
+
13
+ map_content to: :content
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Pobox < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+ attribute :ascii, :string
10
+
11
+ xml do
12
+ root "pobox"
13
+
14
+ map_content to: :content
15
+ map_attribute "ascii", to: :ascii
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "city"
6
+ require_relative "cityarea"
7
+ require_relative "code"
8
+ require_relative "country"
9
+ require_relative "extaddr"
10
+ require_relative "pobox"
11
+ require_relative "postal_line"
12
+ require_relative "region"
13
+ require_relative "sortingcode"
14
+ require_relative "street"
15
+
16
+ module Rfcxml
17
+ module V3
18
+ class Postal < Lutaml::Model::Serializable
19
+ attribute :city, City, collection: true
20
+ attribute :cityarea, Cityarea, collection: true
21
+ attribute :code, Code, collection: true
22
+ attribute :country, Country, collection: true
23
+ attribute :extaddr, Extaddr, collection: true
24
+ attribute :pobox, Pobox, collection: true
25
+ attribute :region, Region, collection: true
26
+ attribute :sortingcode, Sortingcode, collection: true
27
+ attribute :street, Street, collection: true
28
+ attribute :postal_line, PostalLine, collection: true
29
+
30
+ xml do
31
+ root "postal"
32
+
33
+ map_element "extaddr", to: :extaddr
34
+ map_element "street", to: :street
35
+ map_element "city", to: :city
36
+ map_element "cityarea", to: :cityarea
37
+ map_element "region", to: :region
38
+ map_element "code", to: :code
39
+ map_element "country", to: :country
40
+ map_element "pobox", to: :pobox
41
+ map_element "sortingcode", to: :sortingcode
42
+ map_element "postalLine", to: :postal_line
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class PostalLine < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+ attribute :ascii, :string
10
+
11
+ xml do
12
+ root "postalLine"
13
+
14
+ map_content to: :content
15
+ map_attribute "ascii", to: :ascii
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "cref"
6
+ require_relative "eref"
7
+ require_relative "iref"
8
+ require_relative "spanx"
9
+ require_relative "xref"
10
+
11
+ module Rfcxml
12
+ module V3
13
+ class Postamble < Lutaml::Model::Serializable
14
+ attribute :content, :string
15
+ attribute :cref, Cref, collection: true
16
+ attribute :eref, Eref, collection: true
17
+ attribute :iref, Iref, collection: true
18
+ attribute :spanx, Spanx, collection: true
19
+ attribute :xref, Xref, collection: true
20
+
21
+ xml do
22
+ root "postamble"
23
+
24
+ map_content to: :content
25
+ map_element "cref", to: :cref
26
+ map_element "eref", to: :eref
27
+ map_element "iref", to: :iref
28
+ map_element "spanx", to: :spanx
29
+ map_element "xref", to: :xref
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "bcp14"
6
+ require_relative "cref"
7
+ require_relative "em"
8
+ require_relative "eref"
9
+ require_relative "iref"
10
+ require_relative "relref"
11
+ require_relative "spanx"
12
+ require_relative "strong"
13
+ require_relative "sub"
14
+ require_relative "sup"
15
+ require_relative "tt"
16
+ require_relative "u"
17
+ require_relative "xref"
18
+
19
+ module Rfcxml
20
+ module V3
21
+ class Preamble < Lutaml::Model::Serializable
22
+ attribute :content, :string
23
+ attribute :bcp14, Bcp14, collection: true
24
+ attribute :cref, Cref, collection: true
25
+ attribute :em, Em, collection: true
26
+ attribute :eref, Eref, collection: true
27
+ attribute :iref, Iref, collection: true
28
+ attribute :relref, Relref, collection: true
29
+ attribute :spanx, Spanx, collection: true
30
+ attribute :strong, Strong, collection: true
31
+ attribute :sub, Sub, collection: true
32
+ attribute :sup, Sup, collection: true
33
+ attribute :tt, Tt, collection: true
34
+ attribute :u, U, collection: true
35
+ attribute :xref, Xref, collection: true
36
+
37
+ xml do
38
+ root "preamble"
39
+
40
+ map_content to: :content
41
+ map_element "bcp14", to: :bcp14
42
+ map_element "cref", to: :cref
43
+ map_element "em", to: :em
44
+ map_element "eref", to: :eref
45
+ map_element "iref", to: :iref
46
+ map_element "relref", to: :relref
47
+ map_element "spanx", to: :spanx
48
+ map_element "strong", to: :strong
49
+ map_element "sub", to: :sub
50
+ map_element "sup", to: :sup
51
+ map_element "tt", to: :tt
52
+ map_element "u", to: :u
53
+ map_element "xref", to: :xref
54
+ end
55
+ end
56
+ end
57
+ end