metaschema 0.1.2 → 0.2.1

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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +19 -1
  3. data/.rubocop_todo.yml +558 -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 +18 -25
  8. data/lib/metaschema/allowed_values_type.rb +15 -22
  9. data/lib/metaschema/anchor_type.rb +15 -20
  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/augment_type.rb +39 -0
  15. data/lib/metaschema/block_quote_type.rb +17 -25
  16. data/lib/metaschema/choice_type.rb +6 -13
  17. data/lib/metaschema/code_type.rb +17 -23
  18. data/lib/metaschema/constraint_let_type.rb +5 -9
  19. data/lib/metaschema/constraint_validator.rb +483 -0
  20. data/lib/metaschema/define_assembly_constraints_type.rb +17 -26
  21. data/lib/metaschema/define_field_constraints_type.rb +13 -19
  22. data/lib/metaschema/define_flag_constraints_type.rb +9 -17
  23. data/lib/metaschema/example_type.rb +6 -11
  24. data/lib/metaschema/expect_constraint_type.rb +12 -18
  25. data/lib/metaschema/field.rb +13 -20
  26. data/lib/metaschema/field_reference_type.rb +19 -27
  27. data/lib/metaschema/flag.rb +9 -18
  28. data/lib/metaschema/flag_reference_type.rb +14 -21
  29. data/lib/metaschema/formal_name.rb +9 -0
  30. data/lib/metaschema/global_assembly_definition_type.rb +21 -34
  31. data/lib/metaschema/global_field_definition_type.rb +26 -39
  32. data/lib/metaschema/global_flag_definition_type.rb +18 -27
  33. data/lib/metaschema/group_as_type.rb +7 -9
  34. data/lib/metaschema/grouped_assembly_reference_type.rb +11 -18
  35. data/lib/metaschema/grouped_choice_type.rb +16 -24
  36. data/lib/metaschema/grouped_field_reference_type.rb +11 -18
  37. data/lib/metaschema/grouped_inline_assembly_definition_type.rb +17 -29
  38. data/lib/metaschema/grouped_inline_field_definition_type.rb +26 -37
  39. data/lib/metaschema/image_type.rb +5 -7
  40. data/lib/metaschema/import.rb +3 -5
  41. data/lib/metaschema/index_has_key_constraint_type.rb +12 -19
  42. data/lib/metaschema/inline_assembly_definition_type.rb +25 -38
  43. data/lib/metaschema/inline_field_definition_type.rb +31 -43
  44. data/lib/metaschema/inline_flag_definition_type.rb +17 -25
  45. data/lib/metaschema/inline_markup_type.rb +17 -22
  46. data/lib/metaschema/insert_type.rb +4 -6
  47. data/lib/metaschema/json_base_uri.rb +9 -0
  48. data/lib/metaschema/json_key_type.rb +3 -5
  49. data/lib/metaschema/json_schema_generator.rb +456 -0
  50. data/lib/metaschema/json_value_key.rb +9 -0
  51. data/lib/metaschema/json_value_key_flag_type.rb +3 -5
  52. data/lib/metaschema/key_field.rb +5 -9
  53. data/lib/metaschema/list_item_type.rb +29 -39
  54. data/lib/metaschema/list_type.rb +3 -7
  55. data/lib/metaschema/markdown_doc_generator.rb +354 -0
  56. data/lib/metaschema/markup_line_datatype.rb +16 -23
  57. data/lib/metaschema/matches_constraint_type.rb +12 -18
  58. data/lib/metaschema/metapath_evaluator.rb +385 -0
  59. data/lib/metaschema/metaschema_constraints.rb +24 -0
  60. data/lib/metaschema/metaschema_import_type.rb +3 -5
  61. data/lib/metaschema/model_generator.rb +2175 -0
  62. data/lib/metaschema/namespace.rb +8 -0
  63. data/lib/metaschema/namespace_binding_type.rb +4 -6
  64. data/lib/metaschema/namespace_value.rb +9 -0
  65. data/lib/metaschema/ordered_list_type.rb +4 -8
  66. data/lib/metaschema/preformatted_type.rb +16 -23
  67. data/lib/metaschema/property_type.rb +6 -8
  68. data/lib/metaschema/remarks_type.rb +18 -27
  69. data/lib/metaschema/root.rb +23 -31
  70. data/lib/metaschema/root_name.rb +3 -5
  71. data/lib/metaschema/ruby_source_emitter.rb +869 -0
  72. data/lib/metaschema/schema_version.rb +9 -0
  73. data/lib/metaschema/scope.rb +7 -13
  74. data/lib/metaschema/short_name.rb +9 -0
  75. data/lib/metaschema/table_cell_type.rb +18 -25
  76. data/lib/metaschema/table_row_type.rb +4 -8
  77. data/lib/metaschema/table_type.rb +3 -7
  78. data/lib/metaschema/targeted_allowed_values_constraint_type.rb +16 -23
  79. data/lib/metaschema/targeted_expect_constraint_type.rb +13 -19
  80. data/lib/metaschema/targeted_has_cardinality_constraint_type.rb +13 -19
  81. data/lib/metaschema/targeted_index_constraint_type.rb +13 -20
  82. data/lib/metaschema/targeted_index_has_key_constraint_type.rb +13 -20
  83. data/lib/metaschema/targeted_key_constraint_type.rb +12 -19
  84. data/lib/metaschema/targeted_matches_constraint_type.rb +13 -19
  85. data/lib/metaschema/type_mapper.rb +82 -0
  86. data/lib/metaschema/use_name_type.rb +3 -5
  87. data/lib/metaschema/version.rb +1 -1
  88. data/lib/metaschema.rb +97 -9
  89. metadata +28 -95
  90. data/lib/metaschema/metaschemaconstraints.rb +0 -31
@@ -1,17 +1,10 @@
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 GroupedFieldReferenceType < Lutaml::Model::Serializable
12
5
  attribute :ref, :string
13
6
  attribute :deprecated, :string
14
- attribute :formal_name, :string
7
+ attribute :formal_name, FormalName
15
8
  attribute :description, MarkupLineDatatype
16
9
  attribute :prop, PropertyType, collection: true
17
10
  attribute :use_name, UseNameType
@@ -19,17 +12,17 @@ module Metaschema
19
12
  attribute :remarks, RemarksType
20
13
 
21
14
  xml do
22
- root 'GroupedFieldReferenceType'
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
15
+ element "GroupedFieldReferenceType"
16
+ namespace ::Metaschema::Namespace
24
17
 
25
- map_attribute 'ref', to: :ref
26
- map_attribute 'deprecated', to: :deprecated
27
- map_element 'formal-name', to: :formal_name
28
- map_element 'description', to: :description
29
- map_element 'prop', to: :prop
30
- map_element 'use-name', to: :use_name
31
- map_element 'discriminator-value', to: :discriminator_value
32
- map_element 'remarks', to: :remarks
18
+ map_attribute "ref", to: :ref
19
+ map_attribute "deprecated", to: :deprecated
20
+ map_element "formal-name", to: :formal_name
21
+ map_element "description", to: :description
22
+ map_element "prop", to: :prop
23
+ map_element "use-name", to: :use_name
24
+ map_element "discriminator-value", to: :discriminator_value
25
+ map_element "remarks", to: :remarks
33
26
  end
34
27
  end
35
28
  end
@@ -1,23 +1,11 @@
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 'markup_line_datatype'
11
- require_relative 'property_type'
12
- require_relative 'remarks_type'
13
- require_relative 'use_name_type'
14
-
15
3
  module Metaschema
16
4
  class GroupedInlineAssemblyDefinitionType < Lutaml::Model::Serializable
17
5
  attribute :name, :string
18
6
  attribute :index, :integer
19
7
  attribute :deprecated, :string
20
- attribute :formal_name, :string
8
+ attribute :formal_name, FormalName
21
9
  attribute :description, MarkupLineDatatype
22
10
  attribute :prop, PropertyType, collection: true
23
11
  attribute :use_name, UseNameType
@@ -30,23 +18,23 @@ module Metaschema
30
18
  attribute :example, ExampleType, collection: true
31
19
 
32
20
  xml do
33
- root 'GroupedInlineAssemblyDefinitionType'
34
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
21
+ element "GroupedInlineAssemblyDefinitionType"
22
+ namespace ::Metaschema::Namespace
35
23
 
36
- map_attribute 'name', to: :name
37
- map_attribute 'index', to: :index
38
- map_attribute 'deprecated', to: :deprecated
39
- map_element 'formal-name', to: :formal_name
40
- map_element 'description', to: :description
41
- map_element 'prop', to: :prop
42
- map_element 'use-name', to: :use_name
43
- map_element 'discriminator-value', to: :discriminator_value
44
- map_element 'flag', to: :flag
45
- map_element 'define-flag', to: :define_flag
46
- map_element 'model', to: :model
47
- map_element 'constraint', to: :constraint
48
- map_element 'remarks', to: :remarks
49
- map_element 'example', to: :example
24
+ map_attribute "name", to: :name
25
+ map_attribute "index", to: :index
26
+ map_attribute "deprecated", to: :deprecated
27
+ map_element "formal-name", to: :formal_name
28
+ map_element "description", to: :description
29
+ map_element "prop", to: :prop
30
+ map_element "use-name", to: :use_name
31
+ map_element "discriminator-value", to: :discriminator_value
32
+ map_element "flag", to: :flag
33
+ map_element "define-flag", to: :define_flag
34
+ map_element "model", to: :model
35
+ map_element "constraint", to: :constraint
36
+ map_element "remarks", to: :remarks
37
+ map_element "example", to: :example
50
38
  end
51
39
  end
52
40
  end
@@ -1,31 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'define_field_constraints_type'
6
- require_relative 'example_type'
7
- require_relative 'flag_reference_type'
8
- require_relative 'inline_flag_definition_type'
9
- require_relative 'json_value_key_flag_type'
10
- require_relative 'markup_line_datatype'
11
- require_relative 'property_type'
12
- require_relative 'remarks_type'
13
- require_relative 'use_name_type'
14
-
15
3
  module Metaschema
16
4
  class GroupedInlineFieldDefinitionType < Lutaml::Model::Serializable
17
- attribute :as_type, :string, default: -> { 'string' }
18
- attribute :collapsible, :string, default: -> { 'no' }
5
+ attribute :as_type, :string, default: -> { "string" }
6
+ attribute :collapsible, :string, default: -> { "no" }
19
7
  attribute :name, :string
20
8
  attribute :index, :integer
21
- attribute :in_xml, :string, default: -> { 'WRAPPED' }
9
+ attribute :in_xml, :string, default: -> { "WRAPPED" }
22
10
  attribute :deprecated, :string
23
- attribute :formal_name, :string
11
+ attribute :formal_name, FormalName
24
12
  attribute :description, MarkupLineDatatype
25
13
  attribute :prop, PropertyType, collection: true
26
14
  attribute :use_name, UseNameType
27
15
  attribute :discriminator_value, :string
28
- attribute :json_value_key, :string
16
+ attribute :json_value_key, JsonValueKey
17
+
29
18
  attribute :json_value_key_flag, JsonValueKeyFlagType
30
19
  attribute :flag, FlagReferenceType, collection: true
31
20
  attribute :define_flag, InlineFlagDefinitionType, collection: true
@@ -34,27 +23,27 @@ module Metaschema
34
23
  attribute :example, ExampleType, collection: true
35
24
 
36
25
  xml do
37
- root 'GroupedInlineFieldDefinitionType'
38
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
26
+ element "GroupedInlineFieldDefinitionType"
27
+ namespace ::Metaschema::Namespace
39
28
 
40
- map_attribute 'as-type', to: :as_type
41
- map_attribute 'collapsible', to: :collapsible
42
- map_attribute 'name', to: :name
43
- map_attribute 'index', to: :index
44
- map_attribute 'in-xml', to: :in_xml
45
- map_attribute 'deprecated', to: :deprecated
46
- map_element 'formal-name', to: :formal_name
47
- map_element 'description', to: :description
48
- map_element 'prop', to: :prop
49
- map_element 'use-name', to: :use_name
50
- map_element 'discriminator-value', to: :discriminator_value
51
- map_element 'json-value-key', to: :json_value_key
52
- map_element 'json-value-key-flag', to: :json_value_key_flag
53
- map_element 'flag', to: :flag
54
- map_element 'define-flag', to: :define_flag
55
- map_element 'constraint', to: :constraint
56
- map_element 'remarks', to: :remarks
57
- map_element 'example', to: :example
29
+ map_attribute "as-type", to: :as_type
30
+ map_attribute "collapsible", to: :collapsible
31
+ map_attribute "name", to: :name
32
+ map_attribute "index", to: :index
33
+ map_attribute "in-xml", to: :in_xml
34
+ map_attribute "deprecated", to: :deprecated
35
+ map_element "formal-name", to: :formal_name
36
+ map_element "description", to: :description
37
+ map_element "prop", to: :prop
38
+ map_element "use-name", to: :use_name
39
+ map_element "discriminator-value", to: :discriminator_value
40
+ map_element "json-value-key", to: :json_value_key
41
+ map_element "json-value-key-flag", to: :json_value_key_flag
42
+ map_element "flag", to: :flag
43
+ map_element "define-flag", to: :define_flag
44
+ map_element "constraint", to: :constraint
45
+ map_element "remarks", to: :remarks
46
+ map_element "example", to: :example
58
47
  end
59
48
  end
60
49
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class ImageType < Lutaml::Model::Serializable
7
5
  attribute :alt, :string
@@ -9,12 +7,12 @@ module Metaschema
9
7
  attribute :title, :string
10
8
 
11
9
  xml do
12
- root 'imageType'
13
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
10
+ element "imageType"
11
+ namespace ::Metaschema::Namespace
14
12
 
15
- map_attribute 'alt', to: :alt
16
- map_attribute 'src', to: :src
17
- map_attribute 'title', to: :title
13
+ map_attribute "alt", to: :alt
14
+ map_attribute "src", to: :src
15
+ map_attribute "title", to: :title
18
16
  end
19
17
  end
20
18
  end
@@ -1,16 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
3
  module Metaschema
6
4
  class Import < Lutaml::Model::Serializable
7
5
  attribute :href, :string
8
6
 
9
7
  xml do
10
- root 'import'
11
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
8
+ element "import"
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
@@ -1,35 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'key_field'
6
- require_relative 'markup_line_datatype'
7
- require_relative 'property_type'
8
- require_relative 'remarks_type'
9
-
10
3
  module Metaschema
11
4
  class IndexHasKeyConstraintType < Lutaml::Model::Serializable
12
5
  attribute :id, :string
13
- attribute :level, :string, default: -> { 'ERROR' }
6
+ attribute :level, :string, default: -> { "ERROR" }
14
7
  attribute :name, :string
15
- attribute :formal_name, :string
8
+ attribute :formal_name, FormalName
16
9
  attribute :description, MarkupLineDatatype
17
10
  attribute :prop, PropertyType, collection: true
18
11
  attribute :key_field, KeyField, collection: true
19
12
  attribute :remarks, RemarksType
20
13
 
21
14
  xml do
22
- root 'IndexHasKeyConstraintType'
23
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
15
+ element "IndexHasKeyConstraintType"
16
+ namespace ::Metaschema::Namespace
24
17
 
25
- map_attribute 'id', to: :id
26
- map_attribute 'level', to: :level
27
- map_attribute 'name', to: :name
28
- map_element 'formal-name', to: :formal_name
29
- map_element 'description', to: :description
30
- map_element 'prop', to: :prop
31
- map_element 'key-field', to: :key_field
32
- map_element 'remarks', to: :remarks
18
+ map_attribute "id", to: :id
19
+ map_attribute "level", to: :level
20
+ map_attribute "name", to: :name
21
+ map_element "formal-name", to: :formal_name
22
+ map_element "description", to: :description
23
+ map_element "prop", to: :prop
24
+ map_element "key-field", to: :key_field
25
+ map_element "remarks", to: :remarks
33
26
  end
34
27
  end
35
28
  end
@@ -1,33 +1,20 @@
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 'group_as_type'
10
- require_relative 'inline_flag_definition_type'
11
- require_relative 'json_key_type'
12
- require_relative 'json_value_key_flag_type'
13
- require_relative 'markup_line_datatype'
14
- require_relative 'property_type'
15
- require_relative 'remarks_type'
16
-
17
3
  module Metaschema
18
4
  class AssemblyModelType < Lutaml::Model::Serializable; end
19
5
 
20
6
  class InlineAssemblyDefinitionType < Lutaml::Model::Serializable
21
- attribute :min_occurs, :integer, default: -> { '0' }
22
- attribute :max_occurs, :string, default: -> { '1' }
7
+ attribute :min_occurs, :integer, default: -> { "0" }
8
+ attribute :max_occurs, :string, default: -> { "1" }
23
9
  attribute :name, :string
24
10
  attribute :index, :integer
25
11
  attribute :deprecated, :string
26
- attribute :formal_name, :string
12
+ attribute :formal_name, FormalName
27
13
  attribute :description, MarkupLineDatatype
28
14
  attribute :prop, PropertyType, collection: true
29
15
  attribute :json_key, JsonKeyType
30
- attribute :json_value_key, :string
16
+ attribute :json_value_key, JsonValueKey
17
+
31
18
  attribute :json_value_key_flag, JsonValueKeyFlagType
32
19
  attribute :group_as, GroupAsType
33
20
  attribute :flag, FlagReferenceType, collection: true
@@ -38,27 +25,27 @@ module Metaschema
38
25
  attribute :example, ExampleType, collection: true
39
26
 
40
27
  xml do
41
- root 'InlineAssemblyDefinitionType'
42
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
28
+ element "InlineAssemblyDefinitionType"
29
+ namespace ::Metaschema::Namespace
43
30
 
44
- map_attribute 'min-occurs', to: :min_occurs
45
- map_attribute 'max-occurs', to: :max_occurs
46
- map_attribute 'name', to: :name
47
- map_attribute 'index', to: :index
48
- map_attribute 'deprecated', to: :deprecated
49
- map_element 'formal-name', to: :formal_name
50
- map_element 'description', to: :description
51
- map_element 'prop', to: :prop
52
- map_element 'json-key', to: :json_key
53
- map_element 'json-value-key', to: :json_value_key
54
- map_element 'json-value-key-flag', to: :json_value_key_flag
55
- map_element 'group-as', to: :group_as
56
- map_element 'flag', to: :flag
57
- map_element 'define-flag', to: :define_flag
58
- map_element 'model', to: :model
59
- map_element 'constraint', to: :constraint
60
- map_element 'remarks', to: :remarks
61
- map_element 'example', to: :example
31
+ map_attribute "min-occurs", to: :min_occurs
32
+ map_attribute "max-occurs", to: :max_occurs
33
+ map_attribute "name", to: :name
34
+ map_attribute "index", to: :index
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 "json-key", to: :json_key
40
+ map_element "json-value-key", to: :json_value_key
41
+ map_element "json-value-key-flag", to: :json_value_key_flag
42
+ map_element "group-as", to: :group_as
43
+ map_element "flag", to: :flag
44
+ map_element "define-flag", to: :define_flag
45
+ map_element "model", to: :model
46
+ map_element "constraint", to: :constraint
47
+ map_element "remarks", to: :remarks
48
+ map_element "example", to: :example
62
49
  end
63
50
  end
64
51
  end
@@ -1,34 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'define_field_constraints_type'
6
- require_relative 'example_type'
7
- require_relative 'flag_reference_type'
8
- require_relative 'group_as_type'
9
- require_relative 'inline_flag_definition_type'
10
- require_relative 'json_key_type'
11
- require_relative 'json_value_key_flag_type'
12
- require_relative 'markup_line_datatype'
13
- require_relative 'property_type'
14
- require_relative 'remarks_type'
15
-
16
3
  module Metaschema
17
4
  class InlineFieldDefinitionType < Lutaml::Model::Serializable
18
- attribute :as_type, :string, default: -> { 'string' }
5
+ attribute :as_type, :string, default: -> { "string" }
19
6
  attribute :default, :string
20
- attribute :collapsible, :string, default: -> { 'no' }
21
- attribute :min_occurs, :integer, default: -> { '0' }
22
- attribute :max_occurs, :string, default: -> { '1' }
7
+ attribute :collapsible, :string, default: -> { "no" }
8
+ attribute :min_occurs, :integer, default: -> { "0" }
9
+ attribute :max_occurs, :string, default: -> { "1" }
23
10
  attribute :name, :string
24
11
  attribute :index, :integer
25
- attribute :in_xml, :string, default: -> { 'WRAPPED' }
12
+ attribute :in_xml, :string, default: -> { "WRAPPED" }
26
13
  attribute :deprecated, :string
27
- attribute :formal_name, :string
14
+ attribute :formal_name, FormalName
28
15
  attribute :description, MarkupLineDatatype
29
16
  attribute :prop, PropertyType, collection: true
30
17
  attribute :json_key, JsonKeyType
31
- attribute :json_value_key, :string
18
+ attribute :json_value_key, JsonValueKey
19
+
32
20
  attribute :json_value_key_flag, JsonValueKeyFlagType
33
21
  attribute :group_as, GroupAsType
34
22
  attribute :flag, FlagReferenceType, collection: true
@@ -38,30 +26,30 @@ module Metaschema
38
26
  attribute :example, ExampleType, collection: true
39
27
 
40
28
  xml do
41
- root 'InlineFieldDefinitionType'
42
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
29
+ element "InlineFieldDefinitionType"
30
+ namespace ::Metaschema::Namespace
43
31
 
44
- map_attribute 'as-type', to: :as_type
45
- map_attribute 'default', to: :default
46
- map_attribute 'collapsible', to: :collapsible
47
- map_attribute 'min-occurs', to: :min_occurs
48
- map_attribute 'max-occurs', to: :max_occurs
49
- map_attribute 'name', to: :name
50
- map_attribute 'index', to: :index
51
- map_attribute 'in-xml', to: :in_xml
52
- map_attribute 'deprecated', to: :deprecated
53
- map_element 'formal-name', to: :formal_name
54
- map_element 'description', to: :description
55
- map_element 'prop', to: :prop
56
- map_element 'json-key', to: :json_key
57
- map_element 'json-value-key', to: :json_value_key
58
- map_element 'json-value-key-flag', to: :json_value_key_flag
59
- map_element 'group-as', to: :group_as
60
- map_element 'flag', to: :flag
61
- map_element 'define-flag', to: :define_flag
62
- map_element 'constraint', to: :constraint
63
- map_element 'remarks', to: :remarks
64
- map_element 'example', to: :example
32
+ map_attribute "as-type", to: :as_type
33
+ map_attribute "default", to: :default
34
+ map_attribute "collapsible", to: :collapsible
35
+ map_attribute "min-occurs", to: :min_occurs
36
+ map_attribute "max-occurs", to: :max_occurs
37
+ map_attribute "name", to: :name
38
+ map_attribute "index", to: :index
39
+ map_attribute "in-xml", to: :in_xml
40
+ map_attribute "deprecated", to: :deprecated
41
+ map_element "formal-name", to: :formal_name
42
+ map_element "description", to: :description
43
+ map_element "prop", to: :prop
44
+ map_element "json-key", to: :json_key
45
+ map_element "json-value-key", to: :json_value_key
46
+ map_element "json-value-key-flag", to: :json_value_key_flag
47
+ map_element "group-as", to: :group_as
48
+ map_element "flag", to: :flag
49
+ map_element "define-flag", to: :define_flag
50
+ map_element "constraint", to: :constraint
51
+ map_element "remarks", to: :remarks
52
+ map_element "example", to: :example
65
53
  end
66
54
  end
67
55
  end
@@ -1,22 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lutaml/model'
4
-
5
- require_relative 'define_flag_constraints_type'
6
- require_relative 'example_type'
7
- require_relative 'markup_line_datatype'
8
- require_relative 'property_type'
9
- require_relative 'remarks_type'
10
-
11
3
  module Metaschema
12
4
  class InlineFlagDefinitionType < Lutaml::Model::Serializable
13
5
  attribute :name, :string
14
6
  attribute :index, :integer
15
- attribute :as_type, :string, default: -> { 'string' }
7
+ attribute :as_type, :string, default: -> { "string" }
16
8
  attribute :default, :string
17
- attribute :required, :string, default: -> { 'no' }
9
+ attribute :required, :string, default: -> { "no" }
18
10
  attribute :deprecated, :string
19
- attribute :formal_name, :string
11
+ attribute :formal_name, FormalName
20
12
  attribute :description, MarkupLineDatatype
21
13
  attribute :prop, PropertyType, collection: true
22
14
  attribute :constraint, DefineFlagConstraintsType
@@ -24,21 +16,21 @@ module Metaschema
24
16
  attribute :example, ExampleType, collection: true
25
17
 
26
18
  xml do
27
- root 'InlineFlagDefinitionType'
28
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
19
+ element "InlineFlagDefinitionType"
20
+ namespace ::Metaschema::Namespace
29
21
 
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 'required', to: :required
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 'constraint', to: :constraint
40
- map_element 'remarks', to: :remarks
41
- map_element 'example', to: :example
22
+ map_attribute "name", to: :name
23
+ map_attribute "index", to: :index
24
+ map_attribute "as-type", to: :as_type
25
+ map_attribute "default", to: :default
26
+ map_attribute "required", to: :required
27
+ map_attribute "deprecated", to: :deprecated
28
+ map_element "formal-name", to: :formal_name
29
+ map_element "description", to: :description
30
+ map_element "prop", to: :prop
31
+ map_element "constraint", to: :constraint
32
+ map_element "remarks", to: :remarks
33
+ map_element "example", to: :example
42
34
  end
43
35
  end
44
36
  end
@@ -1,12 +1,6 @@
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 'insert_type'
9
-
3
+ # #
10
4
  module Metaschema
11
5
  class AnchorType < Lutaml::Model::Serializable
12
6
  end
@@ -15,7 +9,7 @@ module Metaschema
15
9
  end
16
10
 
17
11
  class InlineMarkupType < Lutaml::Model::Serializable
18
- attribute :content, :string
12
+ attribute :content, :string, collection: true
19
13
  attribute :a, AnchorType, collection: true
20
14
  attribute :insert, InsertType, collection: true
21
15
  attribute :br, :string, collection: true
@@ -30,22 +24,23 @@ module Metaschema
30
24
  attribute :img, ImageType, collection: true
31
25
 
32
26
  xml do
33
- root 'inlineMarkupType', mixed: true
34
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
27
+ element "inlineMarkupType"
28
+ mixed_content
29
+ namespace ::Metaschema::Namespace
35
30
 
36
31
  map_content to: :content
37
- map_element 'a', to: :a
38
- map_element 'insert', to: :insert
39
- map_element 'br', to: :br
40
- map_element 'code', to: :code
41
- map_element 'em', to: :em
42
- map_element 'i', to: :i
43
- map_element 'b', to: :b
44
- map_element 'strong', to: :strong
45
- map_element 'sub', to: :sub
46
- map_element 'sup', to: :sup
47
- map_element 'q', to: :q
48
- map_element 'img', to: :img
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
49
44
  end
50
45
  end
51
46
  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 InsertType < Lutaml::Model::Serializable
7
5
  attribute :type, :string
8
6
  attribute :id_ref, :string
9
7
 
10
8
  xml do
11
- root 'insertType'
12
- namespace 'http://csrc.nist.gov/ns/oscal/metaschema/1.0'
9
+ element "insertType"
10
+ namespace ::Metaschema::Namespace
13
11
 
14
- map_attribute 'type', to: :type
15
- map_attribute 'id-ref', to: :id_ref
12
+ map_attribute "type", to: :type
13
+ map_attribute "id-ref", to: :id_ref
16
14
  end
17
15
  end
18
16
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metaschema
4
+ class JsonBaseUri < Lutaml::Model::Type::String
5
+ xml do
6
+ namespace ::Metaschema::Namespace
7
+ end
8
+ end
9
+ end