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,62 @@
|
|
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 "group_as_type"
|
8
|
+
require_relative "inline_flag_definition_type"
|
9
|
+
require_relative "json_key_type"
|
10
|
+
require_relative "json_value_key_flag_type"
|
11
|
+
require_relative "markup_line_datatype"
|
12
|
+
require_relative "property_type"
|
13
|
+
require_relative "remarks_type"
|
14
|
+
|
15
|
+
module Metaschema
|
16
|
+
class AssemblyModelType < Lutaml::Model::Serializable; end
|
17
|
+
|
18
|
+
class InlineAssemblyDefinitionType < Lutaml::Model::Serializable
|
19
|
+
attribute :min_occurs, :integer, default: -> { "0" }
|
20
|
+
attribute :max_occurs, :string, default: -> { "1" }
|
21
|
+
attribute :name, :string
|
22
|
+
attribute :index, :integer
|
23
|
+
attribute :deprecated, :string
|
24
|
+
attribute :formal_name, :string
|
25
|
+
attribute :description, MarkupLineDatatype
|
26
|
+
attribute :prop, PropertyType, collection: true
|
27
|
+
attribute :json_key, JsonKeyType
|
28
|
+
attribute :json_value_key, :string
|
29
|
+
attribute :json_value_key_flag, JsonValueKeyFlagType
|
30
|
+
attribute :group_as, GroupAsType
|
31
|
+
attribute :flag, FlagReferenceType, collection: true
|
32
|
+
attribute :define_flag, InlineFlagDefinitionType, collection: true
|
33
|
+
attribute :model, AssemblyModelType
|
34
|
+
attribute :constraint, DefineAssemblyConstraintsType
|
35
|
+
attribute :remarks, RemarksType
|
36
|
+
attribute :example, ExampleType, collection: true
|
37
|
+
|
38
|
+
xml do
|
39
|
+
root "InlineAssemblyDefinitionType"
|
40
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
41
|
+
|
42
|
+
map_attribute "min-occurs", to: :min_occurs
|
43
|
+
map_attribute "max-occurs", to: :max_occurs
|
44
|
+
map_attribute "name", to: :name
|
45
|
+
map_attribute "index", to: :index
|
46
|
+
map_attribute "deprecated", to: :deprecated
|
47
|
+
map_element "formal-name", to: :formal_name
|
48
|
+
map_element "description", to: :description
|
49
|
+
map_element "prop", to: :prop
|
50
|
+
map_element "json-key", to: :json_key
|
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 "group-as", to: :group_as
|
54
|
+
map_element "flag", to: :flag
|
55
|
+
map_element "define-flag", to: :define_flag
|
56
|
+
map_element "model", to: :model
|
57
|
+
map_element "constraint", to: :constraint
|
58
|
+
map_element "remarks", to: :remarks
|
59
|
+
map_element "example", to: :example
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,65 @@
|
|
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 "group_as_type"
|
7
|
+
require_relative "inline_flag_definition_type"
|
8
|
+
require_relative "json_key_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
|
+
|
14
|
+
module Metaschema
|
15
|
+
class InlineFieldDefinitionType < Lutaml::Model::Serializable
|
16
|
+
attribute :as_type, :string, default: -> { "string" }
|
17
|
+
attribute :default, :string
|
18
|
+
attribute :collapsible, :string, default: -> { "no" }
|
19
|
+
attribute :min_occurs, :integer, default: -> { "0" }
|
20
|
+
attribute :max_occurs, :string, default: -> { "1" }
|
21
|
+
attribute :name, :string
|
22
|
+
attribute :index, :integer
|
23
|
+
attribute :in_xml, :string, default: -> { "WRAPPED" }
|
24
|
+
attribute :deprecated, :string
|
25
|
+
attribute :formal_name, :string
|
26
|
+
attribute :description, MarkupLineDatatype
|
27
|
+
attribute :prop, PropertyType, collection: true
|
28
|
+
attribute :json_key, JsonKeyType
|
29
|
+
attribute :json_value_key, :string
|
30
|
+
attribute :json_value_key_flag, JsonValueKeyFlagType
|
31
|
+
attribute :group_as, GroupAsType
|
32
|
+
attribute :flag, FlagReferenceType, collection: true
|
33
|
+
attribute :define_flag, InlineFlagDefinitionType, collection: true
|
34
|
+
attribute :constraint, DefineFieldConstraintsType
|
35
|
+
attribute :remarks, RemarksType
|
36
|
+
attribute :example, ExampleType, collection: true
|
37
|
+
|
38
|
+
xml do
|
39
|
+
root "InlineFieldDefinitionType"
|
40
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
41
|
+
|
42
|
+
map_attribute "as-type", to: :as_type
|
43
|
+
map_attribute "default", to: :default
|
44
|
+
map_attribute "collapsible", to: :collapsible
|
45
|
+
map_attribute "min-occurs", to: :min_occurs
|
46
|
+
map_attribute "max-occurs", to: :max_occurs
|
47
|
+
map_attribute "name", to: :name
|
48
|
+
map_attribute "index", to: :index
|
49
|
+
map_attribute "in-xml", to: :in_xml
|
50
|
+
map_attribute "deprecated", to: :deprecated
|
51
|
+
map_element "formal-name", to: :formal_name
|
52
|
+
map_element "description", to: :description
|
53
|
+
map_element "prop", to: :prop
|
54
|
+
map_element "json-key", to: :json_key
|
55
|
+
map_element "json-value-key", to: :json_value_key
|
56
|
+
map_element "json-value-key-flag", to: :json_value_key_flag
|
57
|
+
map_element "group-as", to: :group_as
|
58
|
+
map_element "flag", to: :flag
|
59
|
+
map_element "define-flag", to: :define_flag
|
60
|
+
map_element "constraint", to: :constraint
|
61
|
+
map_element "remarks", to: :remarks
|
62
|
+
map_element "example", to: :example
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,42 @@
|
|
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
|
+
|
9
|
+
module Metaschema
|
10
|
+
class InlineFlagDefinitionType < Lutaml::Model::Serializable
|
11
|
+
attribute :name, :string
|
12
|
+
attribute :index, :integer
|
13
|
+
attribute :as_type, :string, default: -> { "string" }
|
14
|
+
attribute :default, :string
|
15
|
+
attribute :required, :string, default: -> { "no" }
|
16
|
+
attribute :deprecated, :string
|
17
|
+
attribute :formal_name, :string
|
18
|
+
attribute :description, MarkupLineDatatype
|
19
|
+
attribute :prop, PropertyType, collection: true
|
20
|
+
attribute :constraint, DefineFlagConstraintsType
|
21
|
+
attribute :remarks, RemarksType
|
22
|
+
attribute :example, ExampleType, collection: true
|
23
|
+
|
24
|
+
xml do
|
25
|
+
root "InlineFlagDefinitionType"
|
26
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
27
|
+
|
28
|
+
map_attribute "name", to: :name
|
29
|
+
map_attribute "index", to: :index
|
30
|
+
map_attribute "as-type", to: :as_type
|
31
|
+
map_attribute "default", to: :default
|
32
|
+
map_attribute "required", to: :required
|
33
|
+
map_attribute "deprecated", to: :deprecated
|
34
|
+
map_element "formal-name", to: :formal_name
|
35
|
+
map_element "description", to: :description
|
36
|
+
map_element "prop", to: :prop
|
37
|
+
map_element "constraint", to: :constraint
|
38
|
+
map_element "remarks", to: :remarks
|
39
|
+
map_element "example", to: :example
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
# require_relative "anchor_type"
|
4
|
+
# require_relative "code_type"
|
5
|
+
require_relative "image_type"
|
6
|
+
require_relative "insert_type"
|
7
|
+
|
8
|
+
module Metaschema
|
9
|
+
class AnchorType < Lutaml::Model::Serializable
|
10
|
+
end
|
11
|
+
|
12
|
+
class CodeType < Lutaml::Model::Serializable
|
13
|
+
end
|
14
|
+
|
15
|
+
class InlineMarkupType < Lutaml::Model::Serializable
|
16
|
+
attribute :content, :string
|
17
|
+
attribute :a, AnchorType, collection: true
|
18
|
+
attribute :insert, InsertType, collection: true
|
19
|
+
attribute :br, :string, collection: true
|
20
|
+
attribute :code, CodeType, collection: true
|
21
|
+
attribute :em, InlineMarkupType, collection: true
|
22
|
+
attribute :i, InlineMarkupType, collection: true
|
23
|
+
attribute :b, InlineMarkupType, collection: true
|
24
|
+
attribute :strong, InlineMarkupType, collection: true
|
25
|
+
attribute :sub, InlineMarkupType, collection: true
|
26
|
+
attribute :sup, InlineMarkupType, collection: true
|
27
|
+
attribute :q, InlineMarkupType, collection: true
|
28
|
+
attribute :img, ImageType, collection: true
|
29
|
+
|
30
|
+
xml do
|
31
|
+
root "inlineMarkupType"
|
32
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
33
|
+
|
34
|
+
map_content to: :content
|
35
|
+
map_element "a", to: :a
|
36
|
+
map_element "insert", to: :insert
|
37
|
+
map_element "br", to: :br
|
38
|
+
map_element "code", to: :code
|
39
|
+
map_element "em", to: :em
|
40
|
+
map_element "i", to: :i
|
41
|
+
map_element "b", to: :b
|
42
|
+
map_element "strong", to: :strong
|
43
|
+
map_element "sub", to: :sub
|
44
|
+
map_element "sup", to: :sup
|
45
|
+
map_element "q", to: :q
|
46
|
+
map_element "img", to: :img
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class InsertType < Lutaml::Model::Serializable
|
5
|
+
attribute :type, :string
|
6
|
+
attribute :id_ref, :string
|
7
|
+
|
8
|
+
xml do
|
9
|
+
root "insertType"
|
10
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
11
|
+
|
12
|
+
map_attribute "type", to: :type
|
13
|
+
map_attribute "id-ref", to: :id_ref
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class JsonKeyType < Lutaml::Model::Serializable
|
5
|
+
attribute :flag_ref, :string
|
6
|
+
|
7
|
+
xml do
|
8
|
+
root "JsonKeyType"
|
9
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
10
|
+
|
11
|
+
map_attribute "flag-ref", to: :flag_ref
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class JsonValueKeyFlagType < Lutaml::Model::Serializable
|
5
|
+
attribute :flag_ref, :string
|
6
|
+
|
7
|
+
xml do
|
8
|
+
root "JsonValueKeyFlagType"
|
9
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
10
|
+
|
11
|
+
map_attribute "flag-ref", to: :flag_ref
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "remarks_type"
|
4
|
+
|
5
|
+
module Metaschema
|
6
|
+
class KeyField < Lutaml::Model::Serializable
|
7
|
+
attribute :target, :string
|
8
|
+
attribute :pattern, :string
|
9
|
+
attribute :remarks, RemarksType
|
10
|
+
|
11
|
+
xml do
|
12
|
+
root "key-field"
|
13
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
14
|
+
|
15
|
+
map_attribute "target", to: :target
|
16
|
+
map_attribute "pattern", to: :pattern
|
17
|
+
map_element "remarks", to: :remarks
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "anchor_type"
|
4
|
+
# require_relative "block_quote_type"
|
5
|
+
require_relative "code_type"
|
6
|
+
require_relative "image_type"
|
7
|
+
require_relative "inline_markup_type"
|
8
|
+
require_relative "insert_type"
|
9
|
+
# require_relative "list_type"
|
10
|
+
require_relative "ordered_list_type"
|
11
|
+
require_relative "preformatted_type"
|
12
|
+
|
13
|
+
module Metaschema
|
14
|
+
class ListType < Lutaml::Model::Serializable; end
|
15
|
+
class BlockQuoteType < Lutaml::Model::Serializable; end
|
16
|
+
|
17
|
+
class ListItemType < Lutaml::Model::Serializable
|
18
|
+
attribute :content, :string
|
19
|
+
attribute :a, AnchorType, collection: true
|
20
|
+
attribute :insert, InsertType, collection: true
|
21
|
+
attribute :br, :string, collection: true
|
22
|
+
attribute :code, CodeType, collection: true
|
23
|
+
attribute :em, InlineMarkupType, collection: true
|
24
|
+
attribute :i, InlineMarkupType, collection: true
|
25
|
+
attribute :b, InlineMarkupType, collection: true
|
26
|
+
attribute :strong, InlineMarkupType, collection: true
|
27
|
+
attribute :sub, InlineMarkupType, collection: true
|
28
|
+
attribute :sup, InlineMarkupType, collection: true
|
29
|
+
attribute :q, InlineMarkupType, collection: true
|
30
|
+
attribute :img, ImageType, collection: true
|
31
|
+
attribute :ul, ListType, collection: true
|
32
|
+
attribute :ol, OrderedListType, collection: true
|
33
|
+
attribute :pre, PreformattedType, collection: true
|
34
|
+
attribute :hr, :string, collection: true
|
35
|
+
attribute :blockquote, BlockQuoteType, collection: true
|
36
|
+
attribute :h1, InlineMarkupType, collection: true
|
37
|
+
attribute :h2, InlineMarkupType, collection: true
|
38
|
+
attribute :h3, InlineMarkupType, collection: true
|
39
|
+
attribute :h4, InlineMarkupType, collection: true
|
40
|
+
attribute :h5, InlineMarkupType, collection: true
|
41
|
+
attribute :h6, InlineMarkupType, collection: true
|
42
|
+
attribute :p, InlineMarkupType, collection: true
|
43
|
+
|
44
|
+
xml do
|
45
|
+
root "listItemType"
|
46
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
47
|
+
|
48
|
+
map_content to: :content
|
49
|
+
map_element "a", to: :a
|
50
|
+
map_element "insert", to: :insert
|
51
|
+
map_element "br", to: :br
|
52
|
+
map_element "code", to: :code
|
53
|
+
map_element "em", to: :em
|
54
|
+
map_element "i", to: :i
|
55
|
+
map_element "b", to: :b
|
56
|
+
map_element "strong", to: :strong
|
57
|
+
map_element "sub", to: :sub
|
58
|
+
map_element "sup", to: :sup
|
59
|
+
map_element "q", to: :q
|
60
|
+
map_element "img", to: :img
|
61
|
+
map_element "ul", to: :ul
|
62
|
+
map_element "ol", to: :ol
|
63
|
+
map_element "pre", to: :pre
|
64
|
+
map_element "hr", to: :hr
|
65
|
+
map_element "blockquote", to: :blockquote
|
66
|
+
map_element "h1", to: :h1
|
67
|
+
map_element "h2", to: :h2
|
68
|
+
map_element "h3", to: :h3
|
69
|
+
map_element "h4", to: :h4
|
70
|
+
map_element "h5", to: :h5
|
71
|
+
map_element "h6", to: :h6
|
72
|
+
map_element "p", to: :p
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "list_item_type"
|
4
|
+
|
5
|
+
module Metaschema
|
6
|
+
class ListType < Lutaml::Model::Serializable
|
7
|
+
attribute :li, ListItemType, collection: true
|
8
|
+
|
9
|
+
xml do
|
10
|
+
root "listType"
|
11
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
12
|
+
|
13
|
+
map_element "li", to: :li
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
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 MarkupLineDatatype < Lutaml::Model::Serializable
|
11
|
+
attribute :content, :string
|
12
|
+
attribute :a, AnchorType, collection: true
|
13
|
+
attribute :insert, InsertType, collection: true
|
14
|
+
attribute :br, :string, collection: true
|
15
|
+
attribute :code, CodeType, collection: true
|
16
|
+
attribute :em, InlineMarkupType, collection: true
|
17
|
+
attribute :i, InlineMarkupType, collection: true
|
18
|
+
attribute :b, InlineMarkupType, collection: true
|
19
|
+
attribute :strong, InlineMarkupType, collection: true
|
20
|
+
attribute :sub, InlineMarkupType, collection: true
|
21
|
+
attribute :sup, InlineMarkupType, collection: true
|
22
|
+
attribute :q, InlineMarkupType, collection: true
|
23
|
+
attribute :img, ImageType, collection: true
|
24
|
+
|
25
|
+
xml do
|
26
|
+
root "MarkupLineDatatype"
|
27
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
28
|
+
|
29
|
+
map_content to: :content
|
30
|
+
map_element "a", to: :a
|
31
|
+
map_element "insert", to: :insert
|
32
|
+
map_element "br", to: :br
|
33
|
+
map_element "code", to: :code
|
34
|
+
map_element "em", to: :em
|
35
|
+
map_element "i", to: :i
|
36
|
+
map_element "b", to: :b
|
37
|
+
map_element "strong", to: :strong
|
38
|
+
map_element "sub", to: :sub
|
39
|
+
map_element "sup", to: :sup
|
40
|
+
map_element "q", to: :q
|
41
|
+
map_element "img", to: :img
|
42
|
+
end
|
43
|
+
end
|
44
|
+
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 MatchesConstraintType < Lutaml::Model::Serializable
|
9
|
+
attribute :id, :string
|
10
|
+
attribute :level, :string, default: -> { "ERROR" }
|
11
|
+
attribute :regex, :string
|
12
|
+
attribute :datatype, :string
|
13
|
+
attribute :formal_name, :string
|
14
|
+
attribute :description, MarkupLineDatatype
|
15
|
+
attribute :prop, PropertyType, collection: true
|
16
|
+
attribute :remarks, RemarksType
|
17
|
+
|
18
|
+
xml do
|
19
|
+
root "MatchesConstraintType"
|
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 "regex", to: :regex
|
25
|
+
map_attribute "datatype", to: :datatype
|
26
|
+
map_element "formal-name", to: :formal_name
|
27
|
+
map_element "description", to: :description
|
28
|
+
map_element "prop", to: :prop
|
29
|
+
map_element "remarks", to: :remarks
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class MetaschemaImportType < Lutaml::Model::Serializable
|
5
|
+
attribute :href, :string
|
6
|
+
|
7
|
+
xml do
|
8
|
+
root "MetaschemaImportType"
|
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,29 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "import"
|
4
|
+
require_relative "namespace_binding_type"
|
5
|
+
require_relative "remarks_type"
|
6
|
+
require_relative "scope"
|
7
|
+
|
8
|
+
module Metaschema
|
9
|
+
class METASCHEMACONSTRAINTS < Lutaml::Model::Serializable
|
10
|
+
attribute :name, :string
|
11
|
+
attribute :version, :string
|
12
|
+
attribute :import, Import, collection: true
|
13
|
+
attribute :namespace_binding, NamespaceBindingType, collection: true
|
14
|
+
attribute :scope, Scope, collection: true
|
15
|
+
attribute :remarks, RemarksType
|
16
|
+
|
17
|
+
xml do
|
18
|
+
root "METASCHEMA-CONSTRAINTS"
|
19
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
20
|
+
|
21
|
+
map_element "name", to: :name
|
22
|
+
map_element "version", to: :version
|
23
|
+
map_element "import", to: :import
|
24
|
+
map_element "namespace-binding", to: :namespace_binding
|
25
|
+
map_element "scope", to: :scope
|
26
|
+
map_element "remarks", to: :remarks
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class NamespaceBindingType < Lutaml::Model::Serializable
|
5
|
+
attribute :prefix, :string
|
6
|
+
attribute :uri, :string
|
7
|
+
|
8
|
+
xml do
|
9
|
+
root "NamespaceBindingType"
|
10
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
11
|
+
|
12
|
+
map_attribute "prefix", to: :prefix
|
13
|
+
map_attribute "uri", to: :uri
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
# require_relative "list_item_type"
|
4
|
+
|
5
|
+
module Metaschema
|
6
|
+
class ListItemType < Lutaml::Model::Serializable; end
|
7
|
+
|
8
|
+
class OrderedListType < Lutaml::Model::Serializable
|
9
|
+
attribute :start, :integer
|
10
|
+
attribute :li, ListItemType, collection: true
|
11
|
+
|
12
|
+
xml do
|
13
|
+
root "orderedListType"
|
14
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
15
|
+
|
16
|
+
map_attribute "start", to: :start
|
17
|
+
map_element "li", to: :li
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,44 @@
|
|
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 PreformattedType < Lutaml::Model::Serializable
|
11
|
+
attribute :content, :string
|
12
|
+
attribute :a, AnchorType, collection: true
|
13
|
+
attribute :insert, InsertType, collection: true
|
14
|
+
attribute :br, :string, collection: true
|
15
|
+
attribute :code, CodeType, collection: true
|
16
|
+
attribute :em, InlineMarkupType, collection: true
|
17
|
+
attribute :i, InlineMarkupType, collection: true
|
18
|
+
attribute :b, InlineMarkupType, collection: true
|
19
|
+
attribute :strong, InlineMarkupType, collection: true
|
20
|
+
attribute :sub, InlineMarkupType, collection: true
|
21
|
+
attribute :sup, InlineMarkupType, collection: true
|
22
|
+
attribute :q, InlineMarkupType, collection: true
|
23
|
+
attribute :img, ImageType, collection: true
|
24
|
+
|
25
|
+
xml do
|
26
|
+
root "preformattedType"
|
27
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
28
|
+
|
29
|
+
map_content to: :content
|
30
|
+
map_element "a", to: :a
|
31
|
+
map_element "insert", to: :insert
|
32
|
+
map_element "br", to: :br
|
33
|
+
map_element "code", to: :code
|
34
|
+
map_element "em", to: :em
|
35
|
+
map_element "i", to: :i
|
36
|
+
map_element "b", to: :b
|
37
|
+
map_element "strong", to: :strong
|
38
|
+
map_element "sub", to: :sub
|
39
|
+
map_element "sup", to: :sup
|
40
|
+
map_element "q", to: :q
|
41
|
+
map_element "img", to: :img
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
module Metaschema
|
4
|
+
class PropertyType < Lutaml::Model::Serializable
|
5
|
+
attribute :namespace, :string, default: -> { "http://csrc.nist.gov/ns/oscal/metaschema/1.0" }
|
6
|
+
attribute :name, :string
|
7
|
+
attribute :value, :string
|
8
|
+
|
9
|
+
xml do
|
10
|
+
root "PropertyType"
|
11
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
12
|
+
|
13
|
+
map_attribute "namespace", to: :namespace
|
14
|
+
map_attribute "name", to: :name
|
15
|
+
map_attribute "value", to: :value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "lutaml/model"
|
2
|
+
|
3
|
+
require_relative "block_quote_type"
|
4
|
+
require_relative "image_type"
|
5
|
+
require_relative "inline_markup_type"
|
6
|
+
require_relative "list_type"
|
7
|
+
require_relative "ordered_list_type"
|
8
|
+
require_relative "preformatted_type"
|
9
|
+
require_relative "table_type"
|
10
|
+
|
11
|
+
module Metaschema
|
12
|
+
class RemarksType < Lutaml::Model::Serializable
|
13
|
+
attribute :class, :string
|
14
|
+
attribute :h1, InlineMarkupType, collection: true
|
15
|
+
attribute :h2, InlineMarkupType, collection: true
|
16
|
+
attribute :h3, InlineMarkupType, collection: true
|
17
|
+
attribute :h4, InlineMarkupType, collection: true
|
18
|
+
attribute :h5, InlineMarkupType, collection: true
|
19
|
+
attribute :h6, InlineMarkupType, collection: true
|
20
|
+
attribute :ul, ListType, collection: true
|
21
|
+
attribute :ol, OrderedListType, collection: true
|
22
|
+
attribute :pre, PreformattedType, collection: true
|
23
|
+
attribute :hr, :string, collection: true
|
24
|
+
attribute :blockquote, BlockQuoteType, collection: true
|
25
|
+
attribute :p, InlineMarkupType, collection: true
|
26
|
+
attribute :table, TableType, collection: true
|
27
|
+
attribute :img, ImageType, collection: true
|
28
|
+
|
29
|
+
xml do
|
30
|
+
root "RemarksType"
|
31
|
+
namespace "http://csrc.nist.gov/ns/oscal/metaschema/1.0"
|
32
|
+
|
33
|
+
map_attribute "class", to: :class
|
34
|
+
map_element "h1", to: :h1
|
35
|
+
map_element "h2", to: :h2
|
36
|
+
map_element "h3", to: :h3
|
37
|
+
map_element "h4", to: :h4
|
38
|
+
map_element "h5", to: :h5
|
39
|
+
map_element "h6", to: :h6
|
40
|
+
map_element "ul", to: :ul
|
41
|
+
map_element "ol", to: :ol
|
42
|
+
map_element "pre", to: :pre
|
43
|
+
map_element "hr", to: :hr
|
44
|
+
map_element "blockquote", to: :blockquote
|
45
|
+
map_element "p", to: :p
|
46
|
+
map_element "table", to: :table
|
47
|
+
map_element "img", to: :img
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|