metaschema 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.adoc +128 -0
- data/Rakefile +12 -0
- data/exe/metaschema +7 -0
- data/lib/metaschema/allowed_value_type.rb +48 -0
- data/lib/metaschema/allowed_values_type.rb +35 -0
- data/lib/metaschema/anchor_type.rb +40 -0
- data/lib/metaschema/any_type.rb +10 -0
- data/lib/metaschema/assembly.rb +42 -0
- data/lib/metaschema/assembly_model_type.rb +34 -0
- data/lib/metaschema/assembly_reference_type.rb +40 -0
- data/lib/metaschema/block_quote_type.rb +47 -0
- data/lib/metaschema/choice_type.rb +25 -0
- data/lib/metaschema/code_type.rb +45 -0
- data/lib/metaschema/constraint_let_type.rb +20 -0
- data/lib/metaschema/define_assembly_constraints_type.rb +40 -0
- data/lib/metaschema/define_field_constraints_type.rb +31 -0
- data/lib/metaschema/define_flag_constraints_type.rb +31 -0
- data/lib/metaschema/example_type.rb +23 -0
- data/lib/metaschema/expect_constraint_type.rb +32 -0
- data/lib/metaschema/field.rb +33 -0
- data/lib/metaschema/field_reference_type.rb +44 -0
- data/lib/metaschema/flag.rb +33 -0
- data/lib/metaschema/flag_reference_type.rb +37 -0
- data/lib/metaschema/global_assembly_definition_type.rb +56 -0
- data/lib/metaschema/global_field_definition_type.rb +59 -0
- data/lib/metaschema/global_flag_definition_type.rb +45 -0
- data/lib/metaschema/group_as_type.rb +18 -0
- data/lib/metaschema/grouped_assembly_reference_type.rb +33 -0
- data/lib/metaschema/grouped_choice_type.rb +37 -0
- data/lib/metaschema/grouped_field_reference_type.rb +33 -0
- data/lib/metaschema/grouped_inline_assembly_definition_type.rb +50 -0
- data/lib/metaschema/grouped_inline_field_definition_type.rb +58 -0
- data/lib/metaschema/image_type.rb +18 -0
- data/lib/metaschema/import.rb +14 -0
- data/lib/metaschema/index_has_key_constraint_type.rb +33 -0
- data/lib/metaschema/inline_assembly_definition_type.rb +62 -0
- data/lib/metaschema/inline_field_definition_type.rb +65 -0
- data/lib/metaschema/inline_flag_definition_type.rb +42 -0
- data/lib/metaschema/inline_markup_type.rb +49 -0
- data/lib/metaschema/insert_type.rb +16 -0
- data/lib/metaschema/json_key_type.rb +14 -0
- data/lib/metaschema/json_value_key_flag_type.rb +14 -0
- data/lib/metaschema/key_field.rb +20 -0
- data/lib/metaschema/list_item_type.rb +75 -0
- data/lib/metaschema/list_type.rb +16 -0
- data/lib/metaschema/markup_line_datatype.rb +44 -0
- data/lib/metaschema/matches_constraint_type.rb +32 -0
- data/lib/metaschema/metaschema_import_type.rb +14 -0
- data/lib/metaschema/metaschemaconstraints.rb +29 -0
- data/lib/metaschema/namespace_binding_type.rb +16 -0
- data/lib/metaschema/ordered_list_type.rb +20 -0
- data/lib/metaschema/preformatted_type.rb +44 -0
- data/lib/metaschema/property_type.rb +18 -0
- data/lib/metaschema/remarks_type.rb +50 -0
- data/lib/metaschema/root.rb +47 -0
- data/lib/metaschema/root_name.rb +16 -0
- data/lib/metaschema/scope.rb +26 -0
- data/lib/metaschema/table_cell_type.rb +46 -0
- data/lib/metaschema/table_row_type.rb +18 -0
- data/lib/metaschema/table_type.rb +16 -0
- data/lib/metaschema/targeted_allowed_values_constraint_type.rb +37 -0
- data/lib/metaschema/targeted_expect_constraint_type.rb +34 -0
- data/lib/metaschema/targeted_has_cardinality_constraint_type.rb +34 -0
- data/lib/metaschema/targeted_index_constraint_type.rb +35 -0
- data/lib/metaschema/targeted_index_has_key_constraint_type.rb +35 -0
- data/lib/metaschema/targeted_key_constraint_type.rb +33 -0
- data/lib/metaschema/targeted_matches_constraint_type.rb +34 -0
- data/lib/metaschema/use_name_type.rb +16 -0
- data/lib/metaschema/version.rb +5 -0
- data/lib/metaschema.rb +20 -0
- data/sig/metaschema.rbs +4 -0
- metadata +243 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "global_assembly_definition_type"
|
4
|
+
require_relative "global_field_definition_type"
|
5
|
+
require_relative "global_flag_definition_type"
|
6
|
+
require_relative "markup_line_datatype"
|
7
|
+
require_relative "metaschema_import_type"
|
8
|
+
require_relative "namespace_binding_type"
|
9
|
+
require_relative "property_type"
|
10
|
+
require_relative "remarks_type"
|
11
|
+
|
12
|
+
module Metaschema
|
13
|
+
class Root < Lutaml::Model::Serializable
|
14
|
+
attribute :abstract, :string, default: -> { "no" }
|
15
|
+
attribute :schema_name, MarkupLineDatatype
|
16
|
+
attribute :schema_version, :string
|
17
|
+
attribute :short_name, :string
|
18
|
+
attribute :namespace, :string
|
19
|
+
attribute :json_base_uri, :string
|
20
|
+
attribute :prop, PropertyType, collection: true
|
21
|
+
attribute :remarks, RemarksType
|
22
|
+
attribute :import, MetaschemaImportType, collection: true
|
23
|
+
attribute :namespace_binding, NamespaceBindingType, collection: true
|
24
|
+
attribute :define_assembly, GlobalAssemblyDefinitionType, collection: true
|
25
|
+
attribute :define_field, GlobalFieldDefinitionType, collection: true
|
26
|
+
attribute :define_flag, GlobalFlagDefinitionType, collection: true
|
27
|
+
|
28
|
+
xml do
|
29
|
+
root "METASCHEMA"
|
30
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
31
|
+
|
32
|
+
map_attribute "abstract", to: :abstract
|
33
|
+
map_element "schema-name", to: :schema_name
|
34
|
+
map_element "schema-version", to: :schema_version
|
35
|
+
map_element "short-name", to: :short_name
|
36
|
+
map_element "namespace", to: :namespace
|
37
|
+
map_element "json-base-uri", to: :json_base_uri
|
38
|
+
map_element "prop", to: :prop
|
39
|
+
map_element "remarks", to: :remarks
|
40
|
+
map_element "import", to: :import
|
41
|
+
map_element "namespace-binding", to: :namespace_binding
|
42
|
+
map_element "define-assembly", to: :define_assembly
|
43
|
+
map_element "define-field", to: :define_field
|
44
|
+
map_element "define-flag", to: :define_flag
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class RootName < Lutaml::Model::Serializable
|
5
|
+
attribute :content, :string
|
6
|
+
attribute :index, :integer
|
7
|
+
|
8
|
+
xml do
|
9
|
+
root "root-name"
|
10
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
11
|
+
|
12
|
+
map_content to: :content
|
13
|
+
map_attribute "index", to: :index
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "assembly"
|
4
|
+
require_relative "field"
|
5
|
+
require_relative "flag"
|
6
|
+
|
7
|
+
module Metaschema
|
8
|
+
class Scope < Lutaml::Model::Serializable
|
9
|
+
attribute :metaschema_namespace, :string
|
10
|
+
attribute :metaschema_short_name, :string
|
11
|
+
attribute :assembly, Assembly, collection: true
|
12
|
+
attribute :field, Field, collection: true
|
13
|
+
attribute :flag, Flag, collection: true
|
14
|
+
|
15
|
+
xml do
|
16
|
+
root "scope"
|
17
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
18
|
+
|
19
|
+
map_attribute "metaschema-namespace", to: :metaschema_namespace
|
20
|
+
map_attribute "metaschema-short-name", to: :metaschema_short_name
|
21
|
+
map_element "assembly", to: :assembly
|
22
|
+
map_element "field", to: :field
|
23
|
+
map_element "flag", to: :flag
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "anchor_type"
|
4
|
+
require_relative "code_type"
|
5
|
+
require_relative "image_type"
|
6
|
+
require_relative "inline_markup_type"
|
7
|
+
require_relative "insert_type"
|
8
|
+
|
9
|
+
module Metaschema
|
10
|
+
class TableCellType < Lutaml::Model::Serializable
|
11
|
+
attribute :content, :string
|
12
|
+
attribute :align, :string, default: -> { "left" }
|
13
|
+
attribute :a, AnchorType, collection: true
|
14
|
+
attribute :insert, InsertType, collection: true
|
15
|
+
attribute :br, :string, collection: true
|
16
|
+
attribute :code, CodeType, collection: true
|
17
|
+
attribute :em, InlineMarkupType, collection: true
|
18
|
+
attribute :i, InlineMarkupType, collection: true
|
19
|
+
attribute :b, InlineMarkupType, collection: true
|
20
|
+
attribute :strong, InlineMarkupType, collection: true
|
21
|
+
attribute :sub, InlineMarkupType, collection: true
|
22
|
+
attribute :sup, InlineMarkupType, collection: true
|
23
|
+
attribute :q, InlineMarkupType, collection: true
|
24
|
+
attribute :img, ImageType, collection: true
|
25
|
+
|
26
|
+
xml do
|
27
|
+
root "tableCellType"
|
28
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
29
|
+
|
30
|
+
map_content to: :content
|
31
|
+
map_attribute "align", to: :align
|
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
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "table_cell_type"
|
4
|
+
|
5
|
+
module Metaschema
|
6
|
+
class TableRowType < Lutaml::Model::Serializable
|
7
|
+
attribute :td, TableCellType, collection: true
|
8
|
+
attribute :th, TableCellType, collection: true
|
9
|
+
|
10
|
+
xml do
|
11
|
+
root "tableRowType"
|
12
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
13
|
+
|
14
|
+
map_element "td", to: :td
|
15
|
+
map_element "th", to: :th
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "table_row_type"
|
4
|
+
|
5
|
+
module Metaschema
|
6
|
+
class TableType < Lutaml::Model::Serializable
|
7
|
+
attribute :tr, TableRowType, collection: true
|
8
|
+
|
9
|
+
xml do
|
10
|
+
root "tableType"
|
11
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
12
|
+
|
13
|
+
map_element "tr", to: :tr
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "allowed_value_type"
|
4
|
+
require_relative "markup_line_datatype"
|
5
|
+
require_relative "property_type"
|
6
|
+
require_relative "remarks_type"
|
7
|
+
|
8
|
+
module Metaschema
|
9
|
+
class TargetedAllowedValuesConstraintType < Lutaml::Model::Serializable
|
10
|
+
attribute :id, :string
|
11
|
+
attribute :level, :string, default: -> { "ERROR" }
|
12
|
+
attribute :allow_other, :string, default: -> { "no" }
|
13
|
+
attribute :extensible, :string, default: -> { "external" }
|
14
|
+
attribute :target, :string
|
15
|
+
attribute :formal_name, :string
|
16
|
+
attribute :description, MarkupLineDatatype
|
17
|
+
attribute :prop, PropertyType, collection: true
|
18
|
+
attribute :enum, AllowedValueType, collection: true
|
19
|
+
attribute :remarks, RemarksType
|
20
|
+
|
21
|
+
xml do
|
22
|
+
root "TargetedAllowedValuesConstraintType"
|
23
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
24
|
+
|
25
|
+
map_attribute "id", to: :id
|
26
|
+
map_attribute "level", to: :level
|
27
|
+
map_attribute "allow-other", to: :allow_other
|
28
|
+
map_attribute "extensible", to: :extensible
|
29
|
+
map_attribute "target", to: :target
|
30
|
+
map_element "formal-name", to: :formal_name
|
31
|
+
map_element "description", to: :description
|
32
|
+
map_element "prop", to: :prop
|
33
|
+
map_element "enum", to: :enum
|
34
|
+
map_element "remarks", to: :remarks
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,34 @@
|
|
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 TargetedExpectConstraintType < Lutaml::Model::Serializable
|
9
|
+
attribute :id, :string
|
10
|
+
attribute :level, :string, default: -> { "ERROR" }
|
11
|
+
attribute :test, :string
|
12
|
+
attribute :target, :string
|
13
|
+
attribute :formal_name, :string
|
14
|
+
attribute :description, MarkupLineDatatype
|
15
|
+
attribute :prop, PropertyType, collection: true
|
16
|
+
attribute :message, :string
|
17
|
+
attribute :remarks, RemarksType
|
18
|
+
|
19
|
+
xml do
|
20
|
+
root "TargetedExpectConstraintType"
|
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 "test", to: :test
|
26
|
+
map_attribute "target", to: :target
|
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
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
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 TargetedHasCardinalityConstraintType < Lutaml::Model::Serializable
|
9
|
+
attribute :id, :string
|
10
|
+
attribute :level, :string, default: -> { "ERROR" }
|
11
|
+
attribute :target, :string
|
12
|
+
attribute :min_occurs, :integer
|
13
|
+
attribute :max_occurs, :integer
|
14
|
+
attribute :formal_name, :string
|
15
|
+
attribute :description, MarkupLineDatatype
|
16
|
+
attribute :prop, PropertyType, collection: true
|
17
|
+
attribute :remarks, RemarksType
|
18
|
+
|
19
|
+
xml do
|
20
|
+
root "TargetedHasCardinalityConstraintType"
|
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 "target", to: :target
|
26
|
+
map_attribute "min-occurs", to: :min_occurs
|
27
|
+
map_attribute "max-occurs", to: :max_occurs
|
28
|
+
map_element "formal-name", to: :formal_name
|
29
|
+
map_element "description", to: :description
|
30
|
+
map_element "prop", to: :prop
|
31
|
+
map_element "remarks", to: :remarks
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,35 @@
|
|
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 TargetedIndexConstraintType < Lutaml::Model::Serializable
|
10
|
+
attribute :id, :string
|
11
|
+
attribute :level, :string, default: -> { "ERROR" }
|
12
|
+
attribute :target, :string
|
13
|
+
attribute :name, :string
|
14
|
+
attribute :formal_name, :string
|
15
|
+
attribute :description, MarkupLineDatatype
|
16
|
+
attribute :prop, PropertyType, collection: true
|
17
|
+
attribute :key_field, KeyField, collection: true
|
18
|
+
attribute :remarks, RemarksType
|
19
|
+
|
20
|
+
xml do
|
21
|
+
root "TargetedIndexConstraintType"
|
22
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
23
|
+
|
24
|
+
map_attribute "id", to: :id
|
25
|
+
map_attribute "level", to: :level
|
26
|
+
map_attribute "target", to: :target
|
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
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,35 @@
|
|
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 TargetedIndexHasKeyConstraintType < Lutaml::Model::Serializable
|
10
|
+
attribute :id, :string
|
11
|
+
attribute :level, :string, default: -> { "ERROR" }
|
12
|
+
attribute :name, :string
|
13
|
+
attribute :target, :string
|
14
|
+
attribute :formal_name, :string
|
15
|
+
attribute :description, MarkupLineDatatype
|
16
|
+
attribute :prop, PropertyType, collection: true
|
17
|
+
attribute :key_field, KeyField, collection: true
|
18
|
+
attribute :remarks, RemarksType
|
19
|
+
|
20
|
+
xml do
|
21
|
+
root "TargetedIndexHasKeyConstraintType"
|
22
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
23
|
+
|
24
|
+
map_attribute "id", to: :id
|
25
|
+
map_attribute "level", to: :level
|
26
|
+
map_attribute "name", to: :name
|
27
|
+
map_attribute "target", to: :target
|
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
|
33
|
+
end
|
34
|
+
end
|
35
|
+
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 TargetedKeyConstraintType < Lutaml::Model::Serializable
|
10
|
+
attribute :id, :string
|
11
|
+
attribute :level, :string, default: -> { "ERROR" }
|
12
|
+
attribute :target, :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 "TargetedKeyConstraintType"
|
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 "target", to: :target
|
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
|
@@ -0,0 +1,34 @@
|
|
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 TargetedMatchesConstraintType < Lutaml::Model::Serializable
|
9
|
+
attribute :id, :string
|
10
|
+
attribute :level, :string, default: -> { "ERROR" }
|
11
|
+
attribute :regex, :string
|
12
|
+
attribute :datatype, :string
|
13
|
+
attribute :target, :string
|
14
|
+
attribute :formal_name, :string
|
15
|
+
attribute :description, MarkupLineDatatype
|
16
|
+
attribute :prop, PropertyType, collection: true
|
17
|
+
attribute :remarks, RemarksType
|
18
|
+
|
19
|
+
xml do
|
20
|
+
root "TargetedMatchesConstraintType"
|
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 "regex", to: :regex
|
26
|
+
map_attribute "datatype", to: :datatype
|
27
|
+
map_attribute "target", to: :target
|
28
|
+
map_element "formal-name", to: :formal_name
|
29
|
+
map_element "description", to: :description
|
30
|
+
map_element "prop", to: :prop
|
31
|
+
map_element "remarks", to: :remarks
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class UseNameType < Lutaml::Model::Serializable
|
5
|
+
attribute :content, :string
|
6
|
+
attribute :index, :integer
|
7
|
+
|
8
|
+
xml do
|
9
|
+
root "UseNameType"
|
10
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
11
|
+
|
12
|
+
map_content to: :content
|
13
|
+
map_attribute "index", to: :index
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/metaschema.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "lutaml/model"
|
4
|
+
|
5
|
+
Lutaml::Model::Config.configure do |config|
|
6
|
+
require "lutaml/model/xml_adapter/nokogiri_adapter"
|
7
|
+
config.xml_adapter = Lutaml::Model::XmlAdapter::NokogiriAdapter
|
8
|
+
end
|
9
|
+
|
10
|
+
require_relative "metaschema/version"
|
11
|
+
require_relative "metaschema/root"
|
12
|
+
|
13
|
+
module Metaschema
|
14
|
+
class Error < StandardError; end
|
15
|
+
|
16
|
+
def self.validate(file_path)
|
17
|
+
root = Root.from_file(file_path)
|
18
|
+
root.validate_verbose
|
19
|
+
end
|
20
|
+
end
|
data/sig/metaschema.rbs
ADDED