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,12 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'anchor_type'
6
- require_relative 'image_type'
7
- require_relative 'inline_markup_type'
8
- require_relative 'insert_type'
9
-
10
3
  module Metaschema
11
4
  class CodeType < Lutaml::Model::Serializable
12
5
  attribute :content, :string
@@ -25,23 +18,24 @@ module Metaschema
25
18
  attribute :img, ImageType, collection: true
26
19
 
27
20
  xml do
28
- root 'codeType', mixed: true
29
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
21
+ element "codeType"
22
+ namespace ::Metaschema::Namespace
23
+ mixed_content
30
24
 
31
25
  map_content to: :content
32
- map_attribute 'class', to: :klass
33
- map_element 'a', to: :a
34
- map_element 'insert', to: :insert
35
- map_element 'br', to: :br
36
- map_element 'code', to: :code
37
- map_element 'em', to: :em
38
- map_element 'i', to: :i
39
- map_element 'b', to: :b
40
- map_element 'strong', to: :strong
41
- map_element 'sub', to: :sub
42
- map_element 'sup', to: :sup
43
- map_element 'q', to: :q
44
- map_element 'img', to: :img
26
+ map_attribute "class", to: :klass
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
45
39
  end
46
40
  end
47
41
  end
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'remarks_type'
6
-
7
3
  module Metaschema
8
4
  class ConstraintLetType < Lutaml::Model::Serializable
9
5
  attribute :var, :string
@@ -11,12 +7,12 @@ module Metaschema
11
7
  attribute :remarks, RemarksType
12
8
 
13
9
  xml do
14
- root 'ConstraintLetType'
15
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
10
+ element "ConstraintLetType"
11
+ namespace ::Metaschema::Namespace
16
12
 
17
- map_attribute 'var', to: :var
18
- map_attribute 'expression', to: :expression
19
- map_element 'remarks', to: :remarks
13
+ map_attribute "var", to: :var
14
+ map_attribute "expression", to: :expression
15
+ map_element "remarks", to: :remarks
20
16
  end
21
17
  end
22
18
  end
@@ -1,42 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'constraint_let_type'
6
- require_relative 'remarks_type'
7
- require_relative 'targeted_allowed_values_constraint_type'
8
- require_relative 'targeted_expect_constraint_type'
9
- require_relative 'targeted_has_cardinality_constraint_type'
10
- require_relative 'targeted_index_constraint_type'
11
- require_relative 'targeted_index_has_key_constraint_type'
12
- require_relative 'targeted_key_constraint_type'
13
- require_relative 'targeted_matches_constraint_type'
14
-
15
3
  module Metaschema
16
4
  class DefineAssemblyConstraintsType < Lutaml::Model::Serializable
17
5
  attribute :let, ConstraintLetType, collection: true
18
- attribute :allowed_values, TargetedAllowedValuesConstraintType, collection: true
6
+ attribute :allowed_values, TargetedAllowedValuesConstraintType,
7
+ collection: true
19
8
  attribute :matches, TargetedMatchesConstraintType, collection: true
20
- attribute :index_has_key, TargetedIndexHasKeyConstraintType, collection: true
9
+ attribute :index_has_key, TargetedIndexHasKeyConstraintType,
10
+ collection: true
21
11
  attribute :expect, TargetedExpectConstraintType, collection: true
22
12
  attribute :index, TargetedIndexConstraintType, collection: true
23
13
  attribute :is_unique, TargetedKeyConstraintType, collection: true
24
- attribute :has_cardinality, TargetedHasCardinalityConstraintType, collection: true
14
+ attribute :has_cardinality, TargetedHasCardinalityConstraintType,
15
+ collection: true
25
16
  attribute :remarks, RemarksType
26
17
 
27
18
  xml do
28
- root 'DefineAssemblyConstraintsType'
29
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
19
+ element "DefineAssemblyConstraintsType"
20
+ namespace ::Metaschema::Namespace
30
21
 
31
- map_element 'let', to: :let
32
- map_element 'is-unique', to: :is_unique
33
- map_element 'allowed-values', to: :allowed_values
34
- map_element 'matches', to: :matches
35
- map_element 'index-has-key', to: :index_has_key
36
- map_element 'expect', to: :expect
37
- map_element 'index', to: :index
38
- map_element 'has-cardinality', to: :has_cardinality
39
- map_element 'remarks', to: :remarks
22
+ map_element "let", to: :let
23
+ map_element "is-unique", to: :is_unique
24
+ map_element "allowed-values", to: :allowed_values
25
+ map_element "matches", to: :matches
26
+ map_element "index-has-key", to: :index_has_key
27
+ map_element "expect", to: :expect
28
+ map_element "index", to: :index
29
+ map_element "has-cardinality", to: :has_cardinality
30
+ map_element "remarks", to: :remarks
40
31
  end
41
32
  end
42
33
  end
@@ -1,33 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'constraint_let_type'
6
- require_relative 'remarks_type'
7
- require_relative 'targeted_allowed_values_constraint_type'
8
- require_relative 'targeted_expect_constraint_type'
9
- require_relative 'targeted_index_has_key_constraint_type'
10
- require_relative 'targeted_matches_constraint_type'
11
-
12
3
  module Metaschema
13
4
  class DefineFieldConstraintsType < Lutaml::Model::Serializable
14
5
  attribute :let, ConstraintLetType, collection: true
15
- attribute :allowed_values, TargetedAllowedValuesConstraintType, collection: true
6
+ attribute :allowed_values, TargetedAllowedValuesConstraintType,
7
+ collection: true
16
8
  attribute :matches, TargetedMatchesConstraintType, collection: true
17
- attribute :index_has_key, TargetedIndexHasKeyConstraintType, collection: true
9
+ attribute :index_has_key, TargetedIndexHasKeyConstraintType,
10
+ collection: true
18
11
  attribute :expect, TargetedExpectConstraintType, collection: true
19
12
  attribute :remarks, RemarksType
20
13
 
21
14
  xml do
22
- root 'DefineFieldConstraintsType', mixed: true
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
15
+ element "DefineFieldConstraintsType"
16
+ mixed_content
17
+ namespace ::Metaschema::Namespace
24
18
 
25
- map_element 'let', to: :let
26
- map_element 'allowed-values', to: :allowed_values
27
- map_element 'matches', to: :matches
28
- map_element 'index-has-key', to: :index_has_key
29
- map_element 'expect', to: :expect
30
- map_element 'remarks', to: :remarks
19
+ map_element "let", to: :let
20
+ map_element "allowed-values", to: :allowed_values
21
+ map_element "matches", to: :matches
22
+ map_element "index-has-key", to: :index_has_key
23
+ map_element "expect", to: :expect
24
+ map_element "remarks", to: :remarks
31
25
  end
32
26
  end
33
27
  end
@@ -1,14 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'allowed_values_type'
6
- require_relative 'constraint_let_type'
7
- require_relative 'expect_constraint_type'
8
- require_relative 'index_has_key_constraint_type'
9
- require_relative 'matches_constraint_type'
10
- require_relative 'remarks_type'
11
-
12
3
  module Metaschema
13
4
  class DefineFlagConstraintsType < Lutaml::Model::Serializable
14
5
  attribute :let, ConstraintLetType, collection: true
@@ -19,15 +10,16 @@ module Metaschema
19
10
  attribute :remarks, RemarksType
20
11
 
21
12
  xml do
22
- root 'DefineFlagConstraintsType', mixed: true
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
13
+ element "DefineFlagConstraintsType"
14
+ mixed_content
15
+ namespace ::Metaschema::Namespace
24
16
 
25
- map_element 'let', to: :let
26
- map_element 'allowed-values', to: :allowed_values
27
- map_element 'matches', to: :matches
28
- map_element 'index-has-key', to: :index_has_key
29
- map_element 'expect', to: :expect
30
- map_element 'remarks', to: :remarks
17
+ map_element "let", to: :let
18
+ map_element "allowed-values", to: :allowed_values
19
+ map_element "matches", to: :matches
20
+ map_element "index-has-key", to: :index_has_key
21
+ map_element "expect", to: :expect
22
+ map_element "remarks", to: :remarks
31
23
  end
32
24
  end
33
25
  end
@@ -1,10 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'markup_line_datatype'
6
- require_relative 'remarks_type'
7
-
8
3
  module Metaschema
9
4
  class ExampleType < Lutaml::Model::Serializable
10
5
  attribute :href, :string
@@ -13,13 +8,13 @@ module Metaschema
13
8
  attribute :remarks, RemarksType
14
9
 
15
10
  xml do
16
- root 'ExampleType'
17
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
11
+ element "ExampleType"
12
+ namespace ::Metaschema::Namespace
18
13
 
19
- map_attribute 'href', to: :href
20
- map_attribute 'path', to: :path
21
- map_element 'description', to: :description
22
- map_element 'remarks', to: :remarks
14
+ map_attribute "href", to: :href
15
+ map_attribute "path", to: :path
16
+ map_element "description", to: :description
17
+ map_element "remarks", to: :remarks
23
18
  end
24
19
  end
25
20
  end
@@ -1,34 +1,28 @@
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 ExpectConstraintType < 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
- attribute :formal_name, :string
8
+ attribute :formal_name, FormalName
15
9
  attribute :description, MarkupLineDatatype
16
10
  attribute :prop, PropertyType, collection: true
17
11
  attribute :message, :string
18
12
  attribute :remarks, RemarksType
19
13
 
20
14
  xml do
21
- root 'ExpectConstraintType'
22
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
15
+ element "ExpectConstraintType"
16
+ namespace ::Metaschema::Namespace
23
17
 
24
- map_attribute 'id', to: :id
25
- map_attribute 'level', to: :level
26
- map_attribute 'test', to: :test
27
- map_element 'formal-name', to: :formal_name
28
- map_element 'description', to: :description
29
- map_element 'prop', to: :prop
30
- map_element 'message', to: :message
31
- map_element 'remarks', to: :remarks
18
+ map_attribute "id", to: :id
19
+ map_attribute "level", to: :level
20
+ map_attribute "test", to: :test
21
+ map_element "formal-name", to: :formal_name
22
+ map_element "description", to: :description
23
+ map_element "prop", to: :prop
24
+ map_element "message", to: :message
25
+ map_element "remarks", to: :remarks
32
26
  end
33
27
  end
34
28
  end
@@ -1,35 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'constraint_let_type'
6
- require_relative 'remarks_type'
7
- require_relative 'targeted_allowed_values_constraint_type'
8
- require_relative 'targeted_expect_constraint_type'
9
- require_relative 'targeted_index_has_key_constraint_type'
10
- require_relative 'targeted_matches_constraint_type'
11
-
12
3
  module Metaschema
13
4
  class Field < Lutaml::Model::Serializable
14
5
  attribute :target, :string
15
6
  attribute :let, ConstraintLetType, collection: true
16
- attribute :allowed_values, TargetedAllowedValuesConstraintType, collection: true
7
+ attribute :allowed_values, TargetedAllowedValuesConstraintType,
8
+ collection: true
17
9
  attribute :matches, TargetedMatchesConstraintType, collection: true
18
- attribute :index_has_key, TargetedIndexHasKeyConstraintType, collection: true
10
+ attribute :index_has_key, TargetedIndexHasKeyConstraintType,
11
+ collection: true
19
12
  attribute :expect, TargetedExpectConstraintType, collection: true
20
13
  attribute :remarks, RemarksType
21
14
 
22
15
  xml do
23
- root 'field'
24
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
16
+ element "field"
17
+ namespace ::Metaschema::Namespace
25
18
 
26
- map_attribute 'target', to: :target
27
- map_element 'let', to: :let
28
- map_element 'allowed-values', to: :allowed_values
29
- map_element 'matches', to: :matches
30
- map_element 'index-has-key', to: :index_has_key
31
- map_element 'expect', to: :expect
32
- map_element 'remarks', to: :remarks
19
+ map_attribute "target", to: :target
20
+ map_element "let", to: :let
21
+ map_element "allowed-values", to: :allowed_values
22
+ map_element "matches", to: :matches
23
+ map_element "index-has-key", to: :index_has_key
24
+ map_element "expect", to: :expect
25
+ map_element "remarks", to: :remarks
33
26
  end
34
27
  end
35
28
  end
@@ -1,23 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'group_as_type'
6
- require_relative 'markup_line_datatype'
7
- require_relative 'property_type'
8
- require_relative 'remarks_type'
9
- require_relative 'use_name_type'
10
-
11
3
  module Metaschema
12
4
  class FieldReferenceType < Lutaml::Model::Serializable
13
5
  attribute :ref, :string
14
6
  attribute :index, :integer
15
- attribute :min_occurs, :integer, default: -> { '0' }
16
- attribute :max_occurs, :string, default: -> { '1' }
17
- attribute :in_xml, :string, default: -> { 'WRAPPED' }
7
+ attribute :min_occurs, :integer, default: -> { "0" }
8
+ attribute :max_occurs, :string, default: -> { "1" }
9
+ attribute :in_xml, :string, default: -> { "WRAPPED" }
18
10
  attribute :default, :string
19
11
  attribute :deprecated, :string
20
- attribute :formal_name, :string
12
+ attribute :formal_name, FormalName
21
13
  attribute :description, MarkupLineDatatype
22
14
  attribute :prop, PropertyType, collection: true
23
15
  attribute :use_name, UseNameType
@@ -25,22 +17,22 @@ module Metaschema
25
17
  attribute :remarks, RemarksType
26
18
 
27
19
  xml do
28
- root 'FieldReferenceType'
29
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
20
+ element "FieldReferenceType"
21
+ namespace ::Metaschema::Namespace
30
22
 
31
- map_attribute 'ref', to: :ref
32
- map_attribute 'index', to: :index
33
- map_attribute 'min-occurs', to: :min_occurs
34
- map_attribute 'max-occurs', to: :max_occurs
35
- map_attribute 'in-xml', to: :in_xml
36
- map_attribute 'default', to: :default
37
- map_attribute 'deprecated', to: :deprecated
38
- map_element 'formal-name', to: :formal_name
39
- map_element 'description', to: :description
40
- map_element 'prop', to: :prop
41
- map_element 'use-name', to: :use_name
42
- map_element 'group-as', to: :group_as
43
- map_element 'remarks', to: :remarks
23
+ map_attribute "ref", to: :ref
24
+ map_attribute "index", to: :index
25
+ map_attribute "min-occurs", to: :min_occurs
26
+ map_attribute "max-occurs", to: :max_occurs
27
+ map_attribute "in-xml", to: :in_xml
28
+ map_attribute "default", to: :default
29
+ map_attribute "deprecated", to: :deprecated
30
+ map_element "formal-name", to: :formal_name
31
+ map_element "description", to: :description
32
+ map_element "prop", to: :prop
33
+ map_element "use-name", to: :use_name
34
+ map_element "group-as", to: :group_as
35
+ map_element "remarks", to: :remarks
44
36
  end
45
37
  end
46
38
  end
@@ -1,14 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'allowed_values_type'
6
- require_relative 'constraint_let_type'
7
- require_relative 'expect_constraint_type'
8
- require_relative 'index_has_key_constraint_type'
9
- require_relative 'matches_constraint_type'
10
- require_relative 'remarks_type'
11
-
12
3
  module Metaschema
13
4
  class Flag < Lutaml::Model::Serializable
14
5
  attribute :target, :string
@@ -20,16 +11,16 @@ module Metaschema
20
11
  attribute :remarks, RemarksType
21
12
 
22
13
  xml do
23
- root 'flag'
24
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
14
+ element "flag"
15
+ namespace ::Metaschema::Namespace
25
16
 
26
- map_attribute 'target', to: :target
27
- map_element 'let', to: :let
28
- map_element 'allowed-values', to: :allowed_values
29
- map_element 'matches', to: :matches
30
- map_element 'index-has-key', to: :index_has_key
31
- map_element 'expect', to: :expect
32
- map_element 'remarks', to: :remarks
17
+ map_attribute "target", to: :target
18
+ map_element "let", to: :let
19
+ map_element "allowed-values", to: :allowed_values
20
+ map_element "matches", to: :matches
21
+ map_element "index-has-key", to: :index_has_key
22
+ map_element "expect", to: :expect
23
+ map_element "remarks", to: :remarks
33
24
  end
34
25
  end
35
26
  end
@@ -1,39 +1,32 @@
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
- require_relative 'use_name_type'
9
-
10
3
  module Metaschema
11
4
  class FlagReferenceType < Lutaml::Model::Serializable
12
5
  attribute :ref, :string
13
6
  attribute :index, :integer
14
- attribute :required, :string, default: -> { 'no' }
7
+ attribute :required, :string, default: -> { "no" }
15
8
  attribute :default, :string
16
9
  attribute :deprecated, :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 :use_name, UseNameType
21
14
  attribute :remarks, RemarksType
22
15
 
23
16
  xml do
24
- root 'FlagReferenceType'
25
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
17
+ element "FlagReferenceType"
18
+ namespace ::Metaschema::Namespace
26
19
 
27
- map_attribute 'ref', to: :ref
28
- map_attribute 'index', to: :index
29
- map_attribute 'required', to: :required
30
- map_attribute 'default', to: :default
31
- map_attribute 'deprecated', to: :deprecated
32
- map_element 'formal-name', to: :formal_name
33
- map_element 'description', to: :description
34
- map_element 'prop', to: :prop
35
- map_element 'use-name', to: :use_name
36
- map_element 'remarks', to: :remarks
20
+ map_attribute "ref", to: :ref
21
+ map_attribute "index", to: :index
22
+ map_attribute "required", to: :required
23
+ map_attribute "default", to: :default
24
+ map_attribute "deprecated", to: :deprecated
25
+ map_element "formal-name", to: :formal_name
26
+ map_element "description", to: :description
27
+ map_element "prop", to: :prop
28
+ map_element "use-name", to: :use_name
29
+ map_element "remarks", to: :remarks
37
30
  end
38
31
  end
39
32
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class FormalName < Lutaml::Model::Type::String
5
+ xml do
6
+ namespace ::Metaschema::Namespace
7
+ end
8
+ end
9
+ end
@@ -1,26 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'assembly_model_type'
6
- require_relative 'define_assembly_constraints_type'
7
- require_relative 'example_type'
8
- require_relative 'flag_reference_type'
9
- require_relative 'inline_flag_definition_type'
10
- require_relative 'json_key_type'
11
- require_relative 'markup_line_datatype'
12
- require_relative 'property_type'
13
- require_relative 'remarks_type'
14
- require_relative 'root_name'
15
- require_relative 'use_name_type'
16
-
17
3
  module Metaschema
18
4
  class GlobalAssemblyDefinitionType < Lutaml::Model::Serializable
19
5
  attribute :name, :string
20
6
  attribute :index, :integer
21
- attribute :scope, :string, default: -> { 'global' }
7
+ attribute :scope, :string, default: -> { "global" }
22
8
  attribute :deprecated, :string
23
- attribute :formal_name, :string
9
+ attribute :formal_name, FormalName
24
10
  attribute :description, MarkupLineDatatype
25
11
  attribute :prop, PropertyType, collection: true
26
12
  attribute :root_name, RootName
@@ -34,25 +20,26 @@ module Metaschema
34
20
  attribute :example, ExampleType, collection: true
35
21
 
36
22
  xml do
37
- root 'GlobalAssemblyDefinitionType', ordered: true
38
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
23
+ element "GlobalAssemblyDefinitionType"
24
+ ordered
25
+ namespace ::Metaschema::Namespace
39
26
 
40
- map_attribute 'name', to: :name
41
- map_attribute 'index', to: :index
42
- map_attribute 'scope', to: :scope
43
- map_attribute 'deprecated', to: :deprecated
44
- map_element 'formal-name', to: :formal_name
45
- map_element 'description', to: :description
46
- map_element 'prop', to: :prop
47
- map_element 'root-name', to: :root_name
48
- map_element 'use-name', to: :use_name
49
- map_element 'json-key', to: :json_key
50
- map_element 'flag', to: :flag
51
- map_element 'define-flag', to: :define_flag
52
- map_element 'model', to: :model
53
- map_element 'constraint', to: :constraint
54
- map_element 'remarks', to: :remarks
55
- map_element 'example', to: :example
27
+ map_attribute "name", to: :name
28
+ map_attribute "index", to: :index
29
+ map_attribute "scope", to: :scope
30
+ map_attribute "deprecated", to: :deprecated
31
+ map_element "formal-name", to: :formal_name
32
+ map_element "description", to: :description
33
+ map_element "prop", to: :prop
34
+ map_element "root-name", to: :root_name
35
+ map_element "use-name", to: :use_name
36
+ map_element "json-key", to: :json_key
37
+ map_element "flag", to: :flag
38
+ map_element "define-flag", to: :define_flag
39
+ map_element "model", to: :model
40
+ map_element "constraint", to: :constraint
41
+ map_element "remarks", to: :remarks
42
+ map_element "example", to: :example
56
43
  end
57
44
  end
58
45
  end