metaschema 0.1.2 → 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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +19 -1
  3. data/.rubocop_todo.yml +60 -8
  4. data/CLAUDE.md +78 -0
  5. data/Rakefile +3 -3
  6. data/exe/metaschema +1 -2
  7. data/lib/metaschema/allowed_value_type.rb +17 -24
  8. data/lib/metaschema/allowed_values_type.rb +15 -22
  9. data/lib/metaschema/anchor_type.rb +14 -19
  10. data/lib/metaschema/any_type.rb +2 -4
  11. data/lib/metaschema/assembly.rb +18 -27
  12. data/lib/metaschema/assembly_model_type.rb +10 -19
  13. data/lib/metaschema/assembly_reference_type.rb +16 -24
  14. data/lib/metaschema/block_quote_type.rb +17 -25
  15. data/lib/metaschema/choice_type.rb +6 -13
  16. data/lib/metaschema/code_type.rb +16 -22
  17. data/lib/metaschema/constraint_let_type.rb +5 -9
  18. data/lib/metaschema/define_assembly_constraints_type.rb +17 -26
  19. data/lib/metaschema/define_field_constraints_type.rb +13 -19
  20. data/lib/metaschema/define_flag_constraints_type.rb +9 -17
  21. data/lib/metaschema/example_type.rb +6 -11
  22. data/lib/metaschema/expect_constraint_type.rb +12 -18
  23. data/lib/metaschema/field.rb +13 -20
  24. data/lib/metaschema/field_reference_type.rb +19 -27
  25. data/lib/metaschema/flag.rb +9 -18
  26. data/lib/metaschema/flag_reference_type.rb +14 -21
  27. data/lib/metaschema/formal_name.rb +9 -0
  28. data/lib/metaschema/global_assembly_definition_type.rb +21 -34
  29. data/lib/metaschema/global_field_definition_type.rb +26 -39
  30. data/lib/metaschema/global_flag_definition_type.rb +18 -27
  31. data/lib/metaschema/group_as_type.rb +7 -9
  32. data/lib/metaschema/grouped_assembly_reference_type.rb +11 -18
  33. data/lib/metaschema/grouped_choice_type.rb +16 -24
  34. data/lib/metaschema/grouped_field_reference_type.rb +11 -18
  35. data/lib/metaschema/grouped_inline_assembly_definition_type.rb +17 -29
  36. data/lib/metaschema/grouped_inline_field_definition_type.rb +26 -37
  37. data/lib/metaschema/image_type.rb +5 -7
  38. data/lib/metaschema/import.rb +3 -5
  39. data/lib/metaschema/index_has_key_constraint_type.rb +12 -19
  40. data/lib/metaschema/inline_assembly_definition_type.rb +25 -38
  41. data/lib/metaschema/inline_field_definition_type.rb +31 -43
  42. data/lib/metaschema/inline_flag_definition_type.rb +17 -25
  43. data/lib/metaschema/inline_markup_type.rb +16 -21
  44. data/lib/metaschema/insert_type.rb +4 -6
  45. data/lib/metaschema/json_base_uri.rb +9 -0
  46. data/lib/metaschema/json_key_type.rb +3 -5
  47. data/lib/metaschema/json_value_key.rb +9 -0
  48. data/lib/metaschema/json_value_key_flag_type.rb +3 -5
  49. data/lib/metaschema/key_field.rb +5 -9
  50. data/lib/metaschema/list_item_type.rb +28 -38
  51. data/lib/metaschema/list_type.rb +3 -7
  52. data/lib/metaschema/markup_line_datatype.rb +15 -22
  53. data/lib/metaschema/matches_constraint_type.rb +12 -18
  54. data/lib/metaschema/metaschema_constraints.rb +24 -0
  55. data/lib/metaschema/metaschema_import_type.rb +3 -5
  56. data/lib/metaschema/namespace.rb +8 -0
  57. data/lib/metaschema/namespace_binding_type.rb +4 -6
  58. data/lib/metaschema/namespace_value.rb +9 -0
  59. data/lib/metaschema/ordered_list_type.rb +4 -8
  60. data/lib/metaschema/preformatted_type.rb +15 -22
  61. data/lib/metaschema/property_type.rb +6 -8
  62. data/lib/metaschema/remarks_type.rb +18 -27
  63. data/lib/metaschema/root.rb +21 -31
  64. data/lib/metaschema/root_name.rb +3 -5
  65. data/lib/metaschema/schema_version.rb +9 -0
  66. data/lib/metaschema/scope.rb +7 -13
  67. data/lib/metaschema/short_name.rb +9 -0
  68. data/lib/metaschema/table_cell_type.rb +17 -24
  69. data/lib/metaschema/table_row_type.rb +4 -8
  70. data/lib/metaschema/table_type.rb +3 -7
  71. data/lib/metaschema/targeted_allowed_values_constraint_type.rb +16 -23
  72. data/lib/metaschema/targeted_expect_constraint_type.rb +13 -19
  73. data/lib/metaschema/targeted_has_cardinality_constraint_type.rb +13 -19
  74. data/lib/metaschema/targeted_index_constraint_type.rb +13 -20
  75. data/lib/metaschema/targeted_index_has_key_constraint_type.rb +13 -20
  76. data/lib/metaschema/targeted_key_constraint_type.rb +12 -19
  77. data/lib/metaschema/targeted_matches_constraint_type.rb +13 -19
  78. data/lib/metaschema/use_name_type.rb +3 -5
  79. data/lib/metaschema/version.rb +1 -1
  80. data/lib/metaschema.rb +89 -9
  81. metadata +20 -95
  82. data/lib/metaschema/metaschemaconstraints.rb +0 -31
@@ -1,16 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class MetaschemaImportType < Lutaml::Model::Serializable
7
5
  attribute :href, :string
8
6
 
9
7
  xml do
10
- root 'MetaschemaImportType'
11
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
8
+ element "MetaschemaImportType"
9
+ namespace ::Metaschema::Namespace
12
10
 
13
- map_attribute 'href', to: :href
11
+ map_attribute "href", to: :href
14
12
  end
15
13
  end
16
14
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class Namespace < Lutaml::Xml::Namespace
5
+ uri "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
6
+ prefix_default "m"
7
+ end
8
+ end
@@ -1,18 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class NamespaceBindingType < Lutaml::Model::Serializable
7
5
  attribute :prefix, :string
8
6
  attribute :uri, :string
9
7
 
10
8
  xml do
11
- root 'NamespaceBindingType'
12
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
9
+ element "NamespaceBindingType"
10
+ namespace ::Metaschema::Namespace
13
11
 
14
- map_attribute 'prefix', to: :prefix
15
- map_attribute 'uri', to: :uri
12
+ map_attribute "prefix", to: :prefix
13
+ map_attribute "uri", to: :uri
16
14
  end
17
15
  end
18
16
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class NamespaceValue < Lutaml::Model::Type::String
5
+ xml do
6
+ namespace ::Metaschema::Namespace
7
+ end
8
+ end
9
+ end
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- # require_relative "list_item_type"
6
-
7
3
  module Metaschema
8
4
  class ListItemType < Lutaml::Model::Serializable; end
9
5
 
@@ -12,11 +8,11 @@ module Metaschema
12
8
  attribute :li, ListItemType, collection: true
13
9
 
14
10
  xml do
15
- root 'orderedListType'
16
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
11
+ element "orderedListType"
12
+ namespace ::Metaschema::Namespace
17
13
 
18
- map_attribute 'start', to: :start
19
- map_element 'li', to: :li
14
+ map_attribute "start", to: :start
15
+ map_element "li", to: :li
20
16
  end
21
17
  end
22
18
  end
@@ -1,13 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'anchor_type'
6
- require_relative 'code_type'
7
- require_relative 'image_type'
8
- require_relative 'inline_markup_type'
9
- require_relative 'insert_type'
10
-
11
3
  module Metaschema
12
4
  class PreformattedType < Lutaml::Model::Serializable
13
5
  attribute :content, :string
@@ -25,22 +17,23 @@ module Metaschema
25
17
  attribute :img, ImageType, collection: true
26
18
 
27
19
  xml do
28
- root 'preformattedType', mixed: true
29
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
20
+ element "preformattedType"
21
+ mixed_content
22
+ namespace ::Metaschema::Namespace
30
23
 
31
24
  map_content to: :content
32
- map_element 'a', to: :a
33
- map_element 'insert', to: :insert
34
- map_element 'br', to: :br
35
- map_element 'code', to: :code
36
- map_element 'em', to: :em
37
- map_element 'i', to: :i
38
- map_element 'b', to: :b
39
- map_element 'strong', to: :strong
40
- map_element 'sub', to: :sub
41
- map_element 'sup', to: :sup
42
- map_element 'q', to: :q
43
- map_element 'img', to: :img
25
+ map_element "a", to: :a
26
+ map_element "insert", to: :insert
27
+ map_element "br", to: :br
28
+ map_element "code", to: :code
29
+ map_element "em", to: :em
30
+ map_element "i", to: :i
31
+ map_element "b", to: :b
32
+ map_element "strong", to: :strong
33
+ map_element "sub", to: :sub
34
+ map_element "sup", to: :sup
35
+ map_element "q", to: :q
36
+ map_element "img", to: :img
44
37
  end
45
38
  end
46
39
  end
@@ -1,20 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class PropertyType < Lutaml::Model::Serializable
7
- attribute :namespace, :string, default: -> { 'http://csrc.nist.gov/ns/oscal/metaschema/1.0' }
5
+ attribute :namespace, :string, default: -> { "http://csrc.nist.gov/ns/oscal/metaschema/1.0" }
8
6
  attribute :name, :string
9
7
  attribute :value, :string
10
8
 
11
9
  xml do
12
- root 'PropertyType'
13
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
10
+ element "PropertyType"
11
+ namespace ::Metaschema::Namespace
14
12
 
15
- map_attribute 'namespace', to: :namespace
16
- map_attribute 'name', to: :name
17
- map_attribute 'value', to: :value
13
+ map_attribute "namespace", to: :namespace
14
+ map_attribute "name", to: :name
15
+ map_attribute "value", to: :value
18
16
  end
19
17
  end
20
18
  end
@@ -1,15 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'block_quote_type'
6
- require_relative 'image_type'
7
- require_relative 'inline_markup_type'
8
- require_relative 'list_type'
9
- require_relative 'ordered_list_type'
10
- require_relative 'preformatted_type'
11
- require_relative 'table_type'
12
-
13
3
  module Metaschema
14
4
  class RemarksType < Lutaml::Model::Serializable
15
5
  attribute :klass, :string
@@ -29,24 +19,25 @@ module Metaschema
29
19
  attribute :img, ImageType, collection: true
30
20
 
31
21
  xml do
32
- root 'RemarksType', mixed: true
33
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
22
+ element "RemarksType"
23
+ mixed_content
24
+ namespace ::Metaschema::Namespace
34
25
 
35
- map_attribute 'class', to: :klass
36
- map_element 'h1', to: :h1
37
- map_element 'h2', to: :h2
38
- map_element 'h3', to: :h3
39
- map_element 'h4', to: :h4
40
- map_element 'h5', to: :h5
41
- map_element 'h6', to: :h6
42
- map_element 'ul', to: :ul
43
- map_element 'ol', to: :ol
44
- map_element 'pre', to: :pre
45
- map_element 'hr', to: :hr
46
- map_element 'blockquote', to: :blockquote
47
- map_element 'p', to: :p
48
- map_element 'table', to: :table
49
- map_element 'img', to: :img
26
+ map_attribute "class", to: :klass
27
+ map_element "h1", to: :h1
28
+ map_element "h2", to: :h2
29
+ map_element "h3", to: :h3
30
+ map_element "h4", to: :h4
31
+ map_element "h5", to: :h5
32
+ map_element "h6", to: :h6
33
+ map_element "ul", to: :ul
34
+ map_element "ol", to: :ol
35
+ map_element "pre", to: :pre
36
+ map_element "hr", to: :hr
37
+ map_element "blockquote", to: :blockquote
38
+ map_element "p", to: :p
39
+ map_element "table", to: :table
40
+ map_element "img", to: :img
50
41
  end
51
42
  end
52
43
  end
@@ -1,24 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'global_assembly_definition_type'
6
- require_relative 'global_field_definition_type'
7
- require_relative 'global_flag_definition_type'
8
- require_relative 'markup_line_datatype'
9
- require_relative 'metaschema_import_type'
10
- require_relative 'namespace_binding_type'
11
- require_relative 'property_type'
12
- require_relative 'remarks_type'
13
-
14
3
  module Metaschema
15
4
  class Root < Lutaml::Model::Serializable
16
- attribute :abstract, :string, default: -> { 'no' }
5
+ attribute :abstract, :string, default: -> { "no" }
17
6
  attribute :schema_name, MarkupLineDatatype
18
- attribute :schema_version, :string
19
- attribute :short_name, :string
20
- attribute :namespace, :string
21
- attribute :json_base_uri, :string
7
+ attribute :schema_version, SchemaVersion
8
+ attribute :short_name, ShortName
9
+ attribute :namespace, NamespaceValue
10
+ attribute :json_base_uri, JsonBaseUri
22
11
  attribute :prop, PropertyType, collection: true
23
12
  attribute :remarks, RemarksType
24
13
  attribute :import, MetaschemaImportType, collection: true
@@ -28,22 +17,23 @@ module Metaschema
28
17
  attribute :define_flag, GlobalFlagDefinitionType, collection: true
29
18
 
30
19
  xml do
31
- root 'METASCHEMA', ordered: true
32
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
20
+ element "METASCHEMA"
21
+ ordered
22
+ namespace ::Metaschema::Namespace
33
23
 
34
- map_attribute 'abstract', to: :abstract
35
- map_element 'schema-name', to: :schema_name
36
- map_element 'schema-version', to: :schema_version
37
- map_element 'short-name', to: :short_name
38
- map_element 'namespace', to: :namespace
39
- map_element 'json-base-uri', to: :json_base_uri
40
- map_element 'prop', to: :prop
41
- map_element 'remarks', to: :remarks
42
- map_element 'import', to: :import
43
- map_element 'namespace-binding', to: :namespace_binding
44
- map_element 'define-assembly', to: :define_assembly
45
- map_element 'define-field', to: :define_field
46
- map_element 'define-flag', to: :define_flag
24
+ map_attribute "abstract", to: :abstract
25
+ map_element "schema-name", to: :schema_name
26
+ map_element "schema-version", to: :schema_version
27
+ map_element "short-name", to: :short_name
28
+ map_element "namespace", to: :namespace
29
+ map_element "json-base-uri", to: :json_base_uri
30
+ map_element "prop", to: :prop
31
+ map_element "remarks", to: :remarks
32
+ map_element "import", to: :import
33
+ map_element "namespace-binding", to: :namespace_binding
34
+ map_element "define-assembly", to: :define_assembly
35
+ map_element "define-field", to: :define_field
36
+ map_element "define-flag", to: :define_flag
47
37
  end
48
38
  end
49
39
  end
@@ -1,18 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class RootName < Lutaml::Model::Serializable
7
5
  attribute :content, :string
8
6
  attribute :index, :integer
9
7
 
10
8
  xml do
11
- root 'root-name'
12
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
9
+ element "root-name"
10
+ namespace ::Metaschema::Namespace
13
11
 
14
12
  map_content to: :content
15
- map_attribute 'index', to: :index
13
+ map_attribute "index", to: :index
16
14
  end
17
15
  end
18
16
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class SchemaVersion < Lutaml::Model::Type::String
5
+ xml do
6
+ namespace ::Metaschema::Namespace
7
+ end
8
+ end
9
+ end
@@ -1,11 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'assembly'
6
- require_relative 'field'
7
- require_relative 'flag'
8
-
9
3
  module Metaschema
10
4
  class Scope < Lutaml::Model::Serializable
11
5
  attribute :metaschema_namespace, :string
@@ -15,14 +9,14 @@ module Metaschema
15
9
  attribute :flag, Flag, collection: true
16
10
 
17
11
  xml do
18
- root 'scope'
19
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
12
+ element "scope"
13
+ namespace ::Metaschema::Namespace
20
14
 
21
- map_attribute 'metaschema-namespace', to: :metaschema_namespace
22
- map_attribute 'metaschema-short-name', to: :metaschema_short_name
23
- map_element 'field', to: :field
24
- map_element 'assembly', to: :assembly
25
- map_element 'flag', to: :flag
15
+ map_attribute "metaschema-namespace", to: :metaschema_namespace
16
+ map_attribute "metaschema-short-name", to: :metaschema_short_name
17
+ map_element "field", to: :field
18
+ map_element "assembly", to: :assembly
19
+ map_element "flag", to: :flag
26
20
  end
27
21
  end
28
22
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class ShortName < Lutaml::Model::Type::String
5
+ xml do
6
+ namespace ::Metaschema::Namespace
7
+ end
8
+ end
9
+ end
@@ -1,17 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'anchor_type'
6
- require_relative 'code_type'
7
- require_relative 'image_type'
8
- require_relative 'inline_markup_type'
9
- require_relative 'insert_type'
10
-
11
3
  module Metaschema
12
4
  class TableCellType < Lutaml::Model::Serializable
13
5
  attribute :content, :string
14
- attribute :align, :string, default: -> { 'left' }
6
+ attribute :align, :string, default: -> { "left" }
15
7
  attribute :a, AnchorType, collection: true
16
8
  attribute :insert, InsertType, collection: true
17
9
  attribute :br, :string, collection: true
@@ -26,23 +18,24 @@ module Metaschema
26
18
  attribute :img, ImageType, collection: true
27
19
 
28
20
  xml do
29
- root 'tableCellType', mixed: true
30
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
21
+ element "tableCellType"
22
+ mixed_content
23
+ namespace ::Metaschema::Namespace
31
24
 
32
25
  map_content to: :content
33
- map_attribute 'align', to: :align
34
- map_element 'a', to: :a
35
- map_element 'insert', to: :insert
36
- map_element 'br', to: :br
37
- map_element 'code', to: :code
38
- map_element 'em', to: :em
39
- map_element 'i', to: :i
40
- map_element 'b', to: :b
41
- map_element 'strong', to: :strong
42
- map_element 'sub', to: :sub
43
- map_element 'sup', to: :sup
44
- map_element 'q', to: :q
45
- map_element 'img', to: :img
26
+ map_attribute "align", to: :align
27
+ map_element "a", to: :a
28
+ map_element "insert", to: :insert
29
+ map_element "br", to: :br
30
+ map_element "code", to: :code
31
+ map_element "em", to: :em
32
+ map_element "i", to: :i
33
+ map_element "b", to: :b
34
+ map_element "strong", to: :strong
35
+ map_element "sub", to: :sub
36
+ map_element "sup", to: :sup
37
+ map_element "q", to: :q
38
+ map_element "img", to: :img
46
39
  end
47
40
  end
48
41
  end
@@ -1,20 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'table_cell_type'
6
-
7
3
  module Metaschema
8
4
  class TableRowType < Lutaml::Model::Serializable
9
5
  attribute :td, TableCellType, collection: true
10
6
  attribute :th, TableCellType, collection: true
11
7
 
12
8
  xml do
13
- root 'tableRowType'
14
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
9
+ element "tableRowType"
10
+ namespace ::Metaschema::Namespace
15
11
 
16
- map_element 'td', to: :td
17
- map_element 'th', to: :th
12
+ map_element "td", to: :td
13
+ map_element "th", to: :th
18
14
  end
19
15
  end
20
16
  end
@@ -1,18 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'table_row_type'
6
-
7
3
  module Metaschema
8
4
  class TableType < Lutaml::Model::Serializable
9
5
  attribute :tr, TableRowType, collection: true
10
6
 
11
7
  xml do
12
- root 'tableType'
13
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
8
+ element "tableType"
9
+ namespace ::Metaschema::Namespace
14
10
 
15
- map_element 'tr', to: :tr
11
+ map_element "tr", to: :tr
16
12
  end
17
13
  end
18
14
  end
@@ -1,39 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'allowed_value_type'
6
- require_relative 'markup_line_datatype'
7
- require_relative 'property_type'
8
- require_relative 'remarks_type'
9
-
10
3
  module Metaschema
11
4
  class TargetedAllowedValuesConstraintType < Lutaml::Model::Serializable
12
5
  attribute :id, :string
13
- attribute :level, :string, default: -> { 'ERROR' }
14
- attribute :allow_other, :string, default: -> { 'no' }
15
- attribute :extensible, :string, default: -> { 'external' }
6
+ attribute :level, :string, default: -> { "ERROR" }
7
+ attribute :allow_other, :string, default: -> { "no" }
8
+ attribute :extensible, :string, default: -> { "external" }
16
9
  attribute :target, :string
17
- attribute :formal_name, :string
10
+ attribute :formal_name, FormalName
18
11
  attribute :description, MarkupLineDatatype
19
12
  attribute :prop, PropertyType, collection: true
20
13
  attribute :enum, AllowedValueType, collection: true
21
14
  attribute :remarks, RemarksType
22
15
 
23
16
  xml do
24
- root 'TargetedAllowedValuesConstraintType'
25
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
17
+ element "TargetedAllowedValuesConstraintType"
18
+ namespace ::Metaschema::Namespace
26
19
 
27
- map_attribute 'id', to: :id
28
- map_attribute 'level', to: :level
29
- map_attribute 'allow-other', to: :allow_other
30
- map_attribute 'extensible', to: :extensible
31
- map_attribute 'target', to: :target
32
- map_element 'formal-name', to: :formal_name
33
- map_element 'description', to: :description
34
- map_element 'prop', to: :prop
35
- map_element 'enum', to: :enum
36
- map_element 'remarks', to: :remarks
20
+ map_attribute "id", to: :id
21
+ map_attribute "level", to: :level
22
+ map_attribute "allow-other", to: :allow_other
23
+ map_attribute "extensible", to: :extensible
24
+ map_attribute "target", to: :target
25
+ map_element "formal-name", to: :formal_name
26
+ map_element "description", to: :description
27
+ map_element "prop", to: :prop
28
+ map_element "enum", to: :enum
29
+ map_element "remarks", to: :remarks
37
30
  end
38
31
  end
39
32
  end
@@ -1,36 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'markup_line_datatype'
6
- require_relative 'property_type'
7
- require_relative 'remarks_type'
8
-
9
3
  module Metaschema
10
4
  class TargetedExpectConstraintType < Lutaml::Model::Serializable
11
5
  attribute :id, :string
12
- attribute :level, :string, default: -> { 'ERROR' }
6
+ attribute :level, :string, default: -> { "ERROR" }
13
7
  attribute :test, :string
14
8
  attribute :target, :string
15
- attribute :formal_name, :string
9
+ attribute :formal_name, FormalName
16
10
  attribute :description, MarkupLineDatatype
17
11
  attribute :prop, PropertyType, collection: true
18
12
  attribute :message, :string
19
13
  attribute :remarks, RemarksType
20
14
 
21
15
  xml do
22
- root 'TargetedExpectConstraintType'
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
16
+ element "TargetedExpectConstraintType"
17
+ namespace ::Metaschema::Namespace
24
18
 
25
- map_attribute 'id', to: :id
26
- map_attribute 'level', to: :level
27
- map_attribute 'test', to: :test
28
- map_attribute 'target', to: :target
29
- map_element 'formal-name', to: :formal_name
30
- map_element 'description', to: :description
31
- map_element 'prop', to: :prop
32
- map_element 'message', to: :message
33
- map_element 'remarks', to: :remarks
19
+ map_attribute "id", to: :id
20
+ map_attribute "level", to: :level
21
+ map_attribute "test", to: :test
22
+ map_attribute "target", to: :target
23
+ map_element "formal-name", to: :formal_name
24
+ map_element "description", to: :description
25
+ map_element "prop", to: :prop
26
+ map_element "message", to: :message
27
+ map_element "remarks", to: :remarks
34
28
  end
35
29
  end
36
30
  end
@@ -1,36 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'markup_line_datatype'
6
- require_relative 'property_type'
7
- require_relative 'remarks_type'
8
-
9
3
  module Metaschema
10
4
  class TargetedHasCardinalityConstraintType < Lutaml::Model::Serializable
11
5
  attribute :id, :string
12
- attribute :level, :string, default: -> { 'ERROR' }
6
+ attribute :level, :string, default: -> { "ERROR" }
13
7
  attribute :target, :string
14
8
  attribute :min_occurs, :integer
15
9
  attribute :max_occurs, :integer
16
- attribute :formal_name, :string
10
+ attribute :formal_name, FormalName
17
11
  attribute :description, MarkupLineDatatype
18
12
  attribute :prop, PropertyType, collection: true
19
13
  attribute :remarks, RemarksType
20
14
 
21
15
  xml do
22
- root 'TargetedHasCardinalityConstraintType'
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
16
+ element "TargetedHasCardinalityConstraintType"
17
+ namespace ::Metaschema::Namespace
24
18
 
25
- map_attribute 'id', to: :id
26
- map_attribute 'level', to: :level
27
- map_attribute 'target', to: :target
28
- map_attribute 'min-occurs', to: :min_occurs
29
- map_attribute 'max-occurs', to: :max_occurs
30
- map_element 'formal-name', to: :formal_name
31
- map_element 'description', to: :description
32
- map_element 'prop', to: :prop
33
- map_element 'remarks', to: :remarks
19
+ map_attribute "id", to: :id
20
+ map_attribute "level", to: :level
21
+ map_attribute "target", to: :target
22
+ map_attribute "min-occurs", to: :min_occurs
23
+ map_attribute "max-occurs", to: :max_occurs
24
+ map_element "formal-name", to: :formal_name
25
+ map_element "description", to: :description
26
+ map_element "prop", to: :prop
27
+ map_element "remarks", to: :remarks
34
28
  end
35
29
  end
36
30
  end