metaschema 0.1.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 (73) hide show
  1. checksums.yaml +7 -0
  2. data/README.adoc +128 -0
  3. data/Rakefile +12 -0
  4. data/exe/metaschema +7 -0
  5. data/lib/metaschema/allowed_value_type.rb +48 -0
  6. data/lib/metaschema/allowed_values_type.rb +35 -0
  7. data/lib/metaschema/anchor_type.rb +40 -0
  8. data/lib/metaschema/any_type.rb +10 -0
  9. data/lib/metaschema/assembly.rb +42 -0
  10. data/lib/metaschema/assembly_model_type.rb +34 -0
  11. data/lib/metaschema/assembly_reference_type.rb +40 -0
  12. data/lib/metaschema/block_quote_type.rb +47 -0
  13. data/lib/metaschema/choice_type.rb +25 -0
  14. data/lib/metaschema/code_type.rb +45 -0
  15. data/lib/metaschema/constraint_let_type.rb +20 -0
  16. data/lib/metaschema/define_assembly_constraints_type.rb +40 -0
  17. data/lib/metaschema/define_field_constraints_type.rb +31 -0
  18. data/lib/metaschema/define_flag_constraints_type.rb +31 -0
  19. data/lib/metaschema/example_type.rb +23 -0
  20. data/lib/metaschema/expect_constraint_type.rb +32 -0
  21. data/lib/metaschema/field.rb +33 -0
  22. data/lib/metaschema/field_reference_type.rb +44 -0
  23. data/lib/metaschema/flag.rb +33 -0
  24. data/lib/metaschema/flag_reference_type.rb +37 -0
  25. data/lib/metaschema/global_assembly_definition_type.rb +56 -0
  26. data/lib/metaschema/global_field_definition_type.rb +59 -0
  27. data/lib/metaschema/global_flag_definition_type.rb +45 -0
  28. data/lib/metaschema/group_as_type.rb +18 -0
  29. data/lib/metaschema/grouped_assembly_reference_type.rb +33 -0
  30. data/lib/metaschema/grouped_choice_type.rb +37 -0
  31. data/lib/metaschema/grouped_field_reference_type.rb +33 -0
  32. data/lib/metaschema/grouped_inline_assembly_definition_type.rb +50 -0
  33. data/lib/metaschema/grouped_inline_field_definition_type.rb +58 -0
  34. data/lib/metaschema/image_type.rb +18 -0
  35. data/lib/metaschema/import.rb +14 -0
  36. data/lib/metaschema/index_has_key_constraint_type.rb +33 -0
  37. data/lib/metaschema/inline_assembly_definition_type.rb +62 -0
  38. data/lib/metaschema/inline_field_definition_type.rb +65 -0
  39. data/lib/metaschema/inline_flag_definition_type.rb +42 -0
  40. data/lib/metaschema/inline_markup_type.rb +49 -0
  41. data/lib/metaschema/insert_type.rb +16 -0
  42. data/lib/metaschema/json_key_type.rb +14 -0
  43. data/lib/metaschema/json_value_key_flag_type.rb +14 -0
  44. data/lib/metaschema/key_field.rb +20 -0
  45. data/lib/metaschema/list_item_type.rb +75 -0
  46. data/lib/metaschema/list_type.rb +16 -0
  47. data/lib/metaschema/markup_line_datatype.rb +44 -0
  48. data/lib/metaschema/matches_constraint_type.rb +32 -0
  49. data/lib/metaschema/metaschema_import_type.rb +14 -0
  50. data/lib/metaschema/metaschemaconstraints.rb +29 -0
  51. data/lib/metaschema/namespace_binding_type.rb +16 -0
  52. data/lib/metaschema/ordered_list_type.rb +20 -0
  53. data/lib/metaschema/preformatted_type.rb +44 -0
  54. data/lib/metaschema/property_type.rb +18 -0
  55. data/lib/metaschema/remarks_type.rb +50 -0
  56. data/lib/metaschema/root.rb +47 -0
  57. data/lib/metaschema/root_name.rb +16 -0
  58. data/lib/metaschema/scope.rb +26 -0
  59. data/lib/metaschema/table_cell_type.rb +46 -0
  60. data/lib/metaschema/table_row_type.rb +18 -0
  61. data/lib/metaschema/table_type.rb +16 -0
  62. data/lib/metaschema/targeted_allowed_values_constraint_type.rb +37 -0
  63. data/lib/metaschema/targeted_expect_constraint_type.rb +34 -0
  64. data/lib/metaschema/targeted_has_cardinality_constraint_type.rb +34 -0
  65. data/lib/metaschema/targeted_index_constraint_type.rb +35 -0
  66. data/lib/metaschema/targeted_index_has_key_constraint_type.rb +35 -0
  67. data/lib/metaschema/targeted_key_constraint_type.rb +33 -0
  68. data/lib/metaschema/targeted_matches_constraint_type.rb +34 -0
  69. data/lib/metaschema/use_name_type.rb +16 -0
  70. data/lib/metaschema/version.rb +5 -0
  71. data/lib/metaschema.rb +20 -0
  72. data/sig/metaschema.rbs +4 -0
  73. metadata +243 -0
@@ -0,0 +1,23 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "markup_line_datatype"
4
+ require_relative "remarks_type"
5
+
6
+ module Metaschema
7
+ class ExampleType < Lutaml::Model::Serializable
8
+ attribute :href, :string
9
+ attribute :path, :string
10
+ attribute :description, MarkupLineDatatype
11
+ attribute :remarks, RemarksType
12
+
13
+ xml do
14
+ root "ExampleType"
15
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
16
+
17
+ map_attribute "href", to: :href
18
+ map_attribute "path", to: :path
19
+ map_element "description", to: :description
20
+ map_element "remarks", to: :remarks
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "markup_line_datatype"
4
+ require_relative "property_type"
5
+ require_relative "remarks_type"
6
+
7
+ module Metaschema
8
+ class ExpectConstraintType < Lutaml::Model::Serializable
9
+ attribute :id, :string
10
+ attribute :level, :string, default: -> { "ERROR" }
11
+ attribute :test, :string
12
+ attribute :formal_name, :string
13
+ attribute :description, MarkupLineDatatype
14
+ attribute :prop, PropertyType, collection: true
15
+ attribute :message, :string
16
+ attribute :remarks, RemarksType
17
+
18
+ xml do
19
+ root "ExpectConstraintType"
20
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
21
+
22
+ map_attribute "id", to: :id
23
+ map_attribute "level", to: :level
24
+ map_attribute "test", to: :test
25
+ map_element "formal-name", to: :formal_name
26
+ map_element "description", to: :description
27
+ map_element "prop", to: :prop
28
+ map_element "message", to: :message
29
+ map_element "remarks", to: :remarks
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,33 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "constraint_let_type"
4
+ require_relative "remarks_type"
5
+ require_relative "targeted_allowed_values_constraint_type"
6
+ require_relative "targeted_expect_constraint_type"
7
+ require_relative "targeted_index_has_key_constraint_type"
8
+ require_relative "targeted_matches_constraint_type"
9
+
10
+ module Metaschema
11
+ class Field < Lutaml::Model::Serializable
12
+ attribute :target, :string
13
+ attribute :let, ConstraintLetType, collection: true
14
+ attribute :allowed_values, TargetedAllowedValuesConstraintType, collection: true
15
+ attribute :matches, TargetedMatchesConstraintType, collection: true
16
+ attribute :index_has_key, TargetedIndexHasKeyConstraintType, collection: true
17
+ attribute :expect, TargetedExpectConstraintType, collection: true
18
+ attribute :remarks, RemarksType
19
+
20
+ xml do
21
+ root "field"
22
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
23
+
24
+ map_attribute "target", to: :target
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
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,44 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "group_as_type"
4
+ require_relative "markup_line_datatype"
5
+ require_relative "property_type"
6
+ require_relative "remarks_type"
7
+ require_relative "use_name_type"
8
+
9
+ module Metaschema
10
+ class FieldReferenceType < Lutaml::Model::Serializable
11
+ attribute :ref, :string
12
+ attribute :index, :integer
13
+ attribute :min_occurs, :integer, default: -> { "0" }
14
+ attribute :max_occurs, :string, default: -> { "1" }
15
+ attribute :in_xml, :string, default: -> { "WRAPPED" }
16
+ attribute :default, :string
17
+ attribute :deprecated, :string
18
+ attribute :formal_name, :string
19
+ attribute :description, MarkupLineDatatype
20
+ attribute :prop, PropertyType, collection: true
21
+ attribute :use_name, UseNameType
22
+ attribute :group_as, GroupAsType
23
+ attribute :remarks, RemarksType
24
+
25
+ xml do
26
+ root "FieldReferenceType"
27
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
28
+
29
+ map_attribute "ref", to: :ref
30
+ map_attribute "index", to: :index
31
+ map_attribute "min-occurs", to: :min_occurs
32
+ map_attribute "max-occurs", to: :max_occurs
33
+ map_attribute "in-xml", to: :in_xml
34
+ map_attribute "default", to: :default
35
+ map_attribute "deprecated", to: :deprecated
36
+ map_element "formal-name", to: :formal_name
37
+ map_element "description", to: :description
38
+ map_element "prop", to: :prop
39
+ map_element "use-name", to: :use_name
40
+ map_element "group-as", to: :group_as
41
+ map_element "remarks", to: :remarks
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,33 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "allowed_values_type"
4
+ require_relative "constraint_let_type"
5
+ require_relative "expect_constraint_type"
6
+ require_relative "index_has_key_constraint_type"
7
+ require_relative "matches_constraint_type"
8
+ require_relative "remarks_type"
9
+
10
+ module Metaschema
11
+ class Flag < Lutaml::Model::Serializable
12
+ attribute :target, :string
13
+ attribute :let, ConstraintLetType, collection: true
14
+ attribute :allowed_values, AllowedValuesType, collection: true
15
+ attribute :matches, MatchesConstraintType, collection: true
16
+ attribute :index_has_key, IndexHasKeyConstraintType, collection: true
17
+ attribute :expect, ExpectConstraintType, collection: true
18
+ attribute :remarks, RemarksType
19
+
20
+ xml do
21
+ root "flag"
22
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
23
+
24
+ map_attribute "target", to: :target
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
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "markup_line_datatype"
4
+ require_relative "property_type"
5
+ require_relative "remarks_type"
6
+ require_relative "use_name_type"
7
+
8
+ module Metaschema
9
+ class FlagReferenceType < Lutaml::Model::Serializable
10
+ attribute :ref, :string
11
+ attribute :index, :integer
12
+ attribute :required, :string, default: -> { "no" }
13
+ attribute :default, :string
14
+ attribute :deprecated, :string
15
+ attribute :formal_name, :string
16
+ attribute :description, MarkupLineDatatype
17
+ attribute :prop, PropertyType, collection: true
18
+ attribute :use_name, UseNameType
19
+ attribute :remarks, RemarksType
20
+
21
+ xml do
22
+ root "FlagReferenceType"
23
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
24
+
25
+ map_attribute "ref", to: :ref
26
+ map_attribute "index", to: :index
27
+ map_attribute "required", to: :required
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 "remarks", to: :remarks
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,56 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "assembly_model_type"
4
+ require_relative "define_assembly_constraints_type"
5
+ require_relative "example_type"
6
+ require_relative "flag_reference_type"
7
+ require_relative "inline_flag_definition_type"
8
+ require_relative "json_key_type"
9
+ require_relative "markup_line_datatype"
10
+ require_relative "property_type"
11
+ require_relative "remarks_type"
12
+ require_relative "root_name"
13
+ require_relative "use_name_type"
14
+
15
+ module Metaschema
16
+ class GlobalAssemblyDefinitionType < Lutaml::Model::Serializable
17
+ attribute :name, :string
18
+ attribute :index, :integer
19
+ attribute :scope, :string, default: -> { "global" }
20
+ attribute :deprecated, :string
21
+ attribute :formal_name, :string
22
+ attribute :description, MarkupLineDatatype
23
+ attribute :prop, PropertyType, collection: true
24
+ attribute :root_name, RootName
25
+ attribute :use_name, UseNameType
26
+ attribute :json_key, JsonKeyType
27
+ attribute :flag, FlagReferenceType, collection: true
28
+ attribute :define_flag, InlineFlagDefinitionType, collection: true
29
+ attribute :model, AssemblyModelType
30
+ attribute :constraint, DefineAssemblyConstraintsType
31
+ attribute :remarks, RemarksType
32
+ attribute :example, ExampleType, collection: true
33
+
34
+ xml do
35
+ root "GlobalAssemblyDefinitionType"
36
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
37
+
38
+ map_attribute "name", to: :name
39
+ map_attribute "index", to: :index
40
+ map_attribute "scope", to: :scope
41
+ map_attribute "deprecated", to: :deprecated
42
+ map_element "formal-name", to: :formal_name
43
+ map_element "description", to: :description
44
+ map_element "prop", to: :prop
45
+ map_element "root-name", to: :root_name
46
+ map_element "use-name", to: :use_name
47
+ map_element "json-key", to: :json_key
48
+ map_element "flag", to: :flag
49
+ map_element "define-flag", to: :define_flag
50
+ map_element "model", to: :model
51
+ map_element "constraint", to: :constraint
52
+ map_element "remarks", to: :remarks
53
+ map_element "example", to: :example
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,59 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "define_field_constraints_type"
4
+ require_relative "example_type"
5
+ require_relative "flag_reference_type"
6
+ require_relative "inline_flag_definition_type"
7
+ require_relative "json_key_type"
8
+ require_relative "json_value_key_flag_type"
9
+ require_relative "markup_line_datatype"
10
+ require_relative "property_type"
11
+ require_relative "remarks_type"
12
+ require_relative "use_name_type"
13
+
14
+ module Metaschema
15
+ class GlobalFieldDefinitionType < Lutaml::Model::Serializable
16
+ attribute :as_type, :string, default: -> { "string" }
17
+ attribute :default, :string
18
+ attribute :name, :string
19
+ attribute :index, :integer
20
+ attribute :scope, :string, default: -> { "global" }
21
+ attribute :deprecated, :string
22
+ attribute :formal_name, :string
23
+ attribute :description, MarkupLineDatatype
24
+ attribute :prop, PropertyType, collection: true
25
+ attribute :use_name, UseNameType
26
+ attribute :json_key, JsonKeyType
27
+ attribute :json_value_key, :string
28
+ attribute :json_value_key_flag, JsonValueKeyFlagType
29
+ attribute :flag, FlagReferenceType, collection: true
30
+ attribute :define_flag, InlineFlagDefinitionType, collection: true
31
+ attribute :constraint, DefineFieldConstraintsType
32
+ attribute :remarks, RemarksType
33
+ attribute :example, ExampleType, collection: true
34
+
35
+ xml do
36
+ root "GlobalFieldDefinitionType"
37
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
38
+
39
+ map_attribute "as-type", to: :as_type
40
+ map_attribute "default", to: :default
41
+ map_attribute "name", to: :name
42
+ map_attribute "index", to: :index
43
+ map_attribute "scope", to: :scope
44
+ map_attribute "deprecated", to: :deprecated
45
+ map_element "formal-name", to: :formal_name
46
+ map_element "description", to: :description
47
+ map_element "prop", to: :prop
48
+ map_element "use-name", to: :use_name
49
+ map_element "json-key", to: :json_key
50
+ map_element "json-value-key", to: :json_value_key
51
+ map_element "json-value-key-flag", to: :json_value_key_flag
52
+ map_element "flag", to: :flag
53
+ map_element "define-flag", to: :define_flag
54
+ map_element "constraint", to: :constraint
55
+ map_element "remarks", to: :remarks
56
+ map_element "example", to: :example
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,45 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "define_flag_constraints_type"
4
+ require_relative "example_type"
5
+ require_relative "markup_line_datatype"
6
+ require_relative "property_type"
7
+ require_relative "remarks_type"
8
+ require_relative "use_name_type"
9
+
10
+ module Metaschema
11
+ class GlobalFlagDefinitionType < Lutaml::Model::Serializable
12
+ attribute :name, :string
13
+ attribute :index, :integer
14
+ attribute :as_type, :string, default: -> { "string" }
15
+ attribute :default, :string
16
+ attribute :scope, :string, default: -> { "global" }
17
+ attribute :deprecated, :string
18
+ attribute :formal_name, :string
19
+ attribute :description, MarkupLineDatatype
20
+ attribute :prop, PropertyType, collection: true
21
+ attribute :use_name, UseNameType
22
+ attribute :constraint, DefineFlagConstraintsType
23
+ attribute :remarks, RemarksType
24
+ attribute :example, ExampleType, collection: true
25
+
26
+ xml do
27
+ root "GlobalFlagDefinitionType"
28
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
29
+
30
+ map_attribute "name", to: :name
31
+ map_attribute "index", to: :index
32
+ map_attribute "as-type", to: :as_type
33
+ map_attribute "default", to: :default
34
+ map_attribute "scope", to: :scope
35
+ map_attribute "deprecated", to: :deprecated
36
+ map_element "formal-name", to: :formal_name
37
+ map_element "description", to: :description
38
+ map_element "prop", to: :prop
39
+ map_element "use-name", to: :use_name
40
+ map_element "constraint", to: :constraint
41
+ map_element "remarks", to: :remarks
42
+ map_element "example", to: :example
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,18 @@
1
+ require "lutaml/model"
2
+
3
+ module Metaschema
4
+ class GroupAsType < Lutaml::Model::Serializable
5
+ attribute :name, :string
6
+ attribute :in_json, :string, default: -> { "SINGLETON_OR_ARRAY" }
7
+ attribute :in_xml, :string, default: -> { "UNGROUPED" }
8
+
9
+ xml do
10
+ root "GroupAsType"
11
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
12
+
13
+ map_attribute "name", to: :name
14
+ map_attribute "in-json", to: :in_json
15
+ map_attribute "in-xml", to: :in_xml
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,33 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "markup_line_datatype"
4
+ require_relative "property_type"
5
+ require_relative "remarks_type"
6
+ require_relative "use_name_type"
7
+
8
+ module Metaschema
9
+ class GroupedAssemblyReferenceType < Lutaml::Model::Serializable
10
+ attribute :ref, :string
11
+ attribute :deprecated, :string
12
+ attribute :formal_name, :string
13
+ attribute :description, MarkupLineDatatype
14
+ attribute :prop, PropertyType, collection: true
15
+ attribute :use_name, UseNameType
16
+ attribute :discriminator_value, :string
17
+ attribute :remarks, RemarksType
18
+
19
+ xml do
20
+ root "GroupedAssemblyReferenceType"
21
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
22
+
23
+ map_attribute "ref", to: :ref
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 "discriminator-value", to: :discriminator_value
30
+ map_element "remarks", to: :remarks
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "group_as_type"
4
+ require_relative "grouped_assembly_reference_type"
5
+ require_relative "grouped_field_reference_type"
6
+ require_relative "grouped_inline_assembly_definition_type"
7
+ require_relative "grouped_inline_field_definition_type"
8
+ require_relative "json_key_type"
9
+
10
+ module Metaschema
11
+ class GroupedChoiceType < Lutaml::Model::Serializable
12
+ attribute :min_occurs, :integer, default: -> { "0" }
13
+ attribute :max_occurs, :string, default: -> { "unbounded" }
14
+ attribute :json_key, JsonKeyType
15
+ attribute :group_as, GroupAsType
16
+ attribute :discriminator, :string, default: -> { "object-type" }
17
+ attribute :assembly, GroupedAssemblyReferenceType, collection: true
18
+ attribute :field, GroupedFieldReferenceType, collection: true
19
+ attribute :define_assembly, GroupedInlineAssemblyDefinitionType, collection: true
20
+ attribute :define_field, GroupedInlineFieldDefinitionType, collection: true
21
+
22
+ xml do
23
+ root "GroupedChoiceType"
24
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
25
+
26
+ map_attribute "min-occurs", to: :min_occurs
27
+ map_attribute "max-occurs", to: :max_occurs
28
+ map_element "json-key", to: :json_key
29
+ map_element "group-as", to: :group_as
30
+ map_element "discriminator", to: :discriminator
31
+ map_element "assembly", to: :assembly
32
+ map_element "field", to: :field
33
+ map_element "define-assembly", to: :define_assembly
34
+ map_element "define-field", to: :define_field
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "markup_line_datatype"
4
+ require_relative "property_type"
5
+ require_relative "remarks_type"
6
+ require_relative "use_name_type"
7
+
8
+ module Metaschema
9
+ class GroupedFieldReferenceType < Lutaml::Model::Serializable
10
+ attribute :ref, :string
11
+ attribute :deprecated, :string
12
+ attribute :formal_name, :string
13
+ attribute :description, MarkupLineDatatype
14
+ attribute :prop, PropertyType, collection: true
15
+ attribute :use_name, UseNameType
16
+ attribute :discriminator_value, :string
17
+ attribute :remarks, RemarksType
18
+
19
+ xml do
20
+ root "GroupedFieldReferenceType"
21
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
22
+
23
+ map_attribute "ref", to: :ref
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 "discriminator-value", to: :discriminator_value
30
+ map_element "remarks", to: :remarks
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,50 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "assembly_model_type"
4
+ require_relative "define_assembly_constraints_type"
5
+ require_relative "example_type"
6
+ require_relative "flag_reference_type"
7
+ require_relative "inline_flag_definition_type"
8
+ require_relative "markup_line_datatype"
9
+ require_relative "property_type"
10
+ require_relative "remarks_type"
11
+ require_relative "use_name_type"
12
+
13
+ module Metaschema
14
+ class GroupedInlineAssemblyDefinitionType < Lutaml::Model::Serializable
15
+ attribute :name, :string
16
+ attribute :index, :integer
17
+ attribute :deprecated, :string
18
+ attribute :formal_name, :string
19
+ attribute :description, MarkupLineDatatype
20
+ attribute :prop, PropertyType, collection: true
21
+ attribute :use_name, UseNameType
22
+ attribute :discriminator_value, :string
23
+ attribute :flag, FlagReferenceType, collection: true
24
+ attribute :define_flag, InlineFlagDefinitionType, collection: true
25
+ attribute :model, AssemblyModelType
26
+ attribute :constraint, DefineAssemblyConstraintsType
27
+ attribute :remarks, RemarksType
28
+ attribute :example, ExampleType, collection: true
29
+
30
+ xml do
31
+ root "GroupedInlineAssemblyDefinitionType"
32
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
33
+
34
+ map_attribute "name", to: :name
35
+ map_attribute "index", to: :index
36
+ map_attribute "deprecated", to: :deprecated
37
+ map_element "formal-name", to: :formal_name
38
+ map_element "description", to: :description
39
+ map_element "prop", to: :prop
40
+ map_element "use-name", to: :use_name
41
+ map_element "discriminator-value", to: :discriminator_value
42
+ map_element "flag", to: :flag
43
+ map_element "define-flag", to: :define_flag
44
+ map_element "model", to: :model
45
+ map_element "constraint", to: :constraint
46
+ map_element "remarks", to: :remarks
47
+ map_element "example", to: :example
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,58 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "define_field_constraints_type"
4
+ require_relative "example_type"
5
+ require_relative "flag_reference_type"
6
+ require_relative "inline_flag_definition_type"
7
+ require_relative "json_value_key_flag_type"
8
+ require_relative "markup_line_datatype"
9
+ require_relative "property_type"
10
+ require_relative "remarks_type"
11
+ require_relative "use_name_type"
12
+
13
+ module Metaschema
14
+ class GroupedInlineFieldDefinitionType < Lutaml::Model::Serializable
15
+ attribute :as_type, :string, default: -> { "string" }
16
+ attribute :collapsible, :string, default: -> { "no" }
17
+ attribute :name, :string
18
+ attribute :index, :integer
19
+ attribute :in_xml, :string, default: -> { "WRAPPED" }
20
+ attribute :deprecated, :string
21
+ attribute :formal_name, :string
22
+ attribute :description, MarkupLineDatatype
23
+ attribute :prop, PropertyType, collection: true
24
+ attribute :use_name, UseNameType
25
+ attribute :discriminator_value, :string
26
+ attribute :json_value_key, :string
27
+ attribute :json_value_key_flag, JsonValueKeyFlagType
28
+ attribute :flag, FlagReferenceType, collection: true
29
+ attribute :define_flag, InlineFlagDefinitionType, collection: true
30
+ attribute :constraint, DefineFieldConstraintsType
31
+ attribute :remarks, RemarksType
32
+ attribute :example, ExampleType, collection: true
33
+
34
+ xml do
35
+ root "GroupedInlineFieldDefinitionType"
36
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
37
+
38
+ map_attribute "as-type", to: :as_type
39
+ map_attribute "collapsible", to: :collapsible
40
+ map_attribute "name", to: :name
41
+ map_attribute "index", to: :index
42
+ map_attribute "in-xml", to: :in_xml
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 "use-name", to: :use_name
48
+ map_element "discriminator-value", to: :discriminator_value
49
+ map_element "json-value-key", to: :json_value_key
50
+ map_element "json-value-key-flag", to: :json_value_key_flag
51
+ map_element "flag", to: :flag
52
+ map_element "define-flag", to: :define_flag
53
+ map_element "constraint", to: :constraint
54
+ map_element "remarks", to: :remarks
55
+ map_element "example", to: :example
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,18 @@
1
+ require "lutaml/model"
2
+
3
+ module Metaschema
4
+ class ImageType < Lutaml::Model::Serializable
5
+ attribute :alt, :string
6
+ attribute :src, :string
7
+ attribute :title, :string
8
+
9
+ xml do
10
+ root "imageType"
11
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
12
+
13
+ map_attribute "alt", to: :alt
14
+ map_attribute "src", to: :src
15
+ map_attribute "title", to: :title
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ require "lutaml/model"
2
+
3
+ module Metaschema
4
+ class Import < Lutaml::Model::Serializable
5
+ attribute :href, :string
6
+
7
+ xml do
8
+ root "import"
9
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
10
+
11
+ map_attribute "href", to: :href
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,33 @@
1
+ require "lutaml/model"
2
+
3
+ require_relative "key_field"
4
+ require_relative "markup_line_datatype"
5
+ require_relative "property_type"
6
+ require_relative "remarks_type"
7
+
8
+ module Metaschema
9
+ class IndexHasKeyConstraintType < Lutaml::Model::Serializable
10
+ attribute :id, :string
11
+ attribute :level, :string, default: -> { "ERROR" }
12
+ attribute :name, :string
13
+ attribute :formal_name, :string
14
+ attribute :description, MarkupLineDatatype
15
+ attribute :prop, PropertyType, collection: true
16
+ attribute :key_field, KeyField, collection: true
17
+ attribute :remarks, RemarksType
18
+
19
+ xml do
20
+ root "IndexHasKeyConstraintType"
21
+ namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
22
+
23
+ map_attribute "id", to: :id
24
+ map_attribute "level", to: :level
25
+ map_attribute "name", to: :name
26
+ map_element "formal-name", to: :formal_name
27
+ map_element "description", to: :description
28
+ map_element "prop", to: :prop
29
+ map_element "key-field", to: :key_field
30
+ map_element "remarks", to: :remarks
31
+ end
32
+ end
33
+ end