Class: Lutaml::Xsd::SchemaResolver
- Inherits:
-
Object
- Object
- Lutaml::Xsd::SchemaResolver
- Defined in:
- lib/lutaml/xsd/schema_resolver.rb
Overview
Handles serialization of parsed Schema objects for package resolution Uses lutaml-model’s built-in to_yaml/from_yaml methods
Instance Method Summary collapse
-
#load_serialized_schemas(_repository, serialized_schemas) ⇒ Object
Deserialize schemas and load into repository.
-
#resolve_schemas(repository) ⇒ Array<SerializedSchema>
Serialize all schemas from a repository.
-
#serialize_schema(file_path, schema) ⇒ SerializedSchema
Serialize a single schema.
Instance Method Details
#load_serialized_schemas(_repository, serialized_schemas) ⇒ Object
Deserialize schemas and load into repository
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/lutaml/xsd/schema_resolver.rb', line 32 def load_serialized_schemas(_repository, serialized_schemas) return unless serialized_schemas&.any? serialized_schemas.each do |schema_data| # Create SerializedSchema from hash data file_path = schema_data["file_path"] || schema_data[:file_path] target_ns = schema_data["target_namespace"] || schema_data[:target_namespace] data = schema_data["schema_data"] || schema_data[:schema_data] serialized = SerializedSchema.new( file_path: file_path, target_namespace: target_ns, schema_data: data, ) # Deserialize to Schema object schema = serialized.to_schema # Add to global processed schemas cache Lutaml::Xml::Schema::Xsd::Schema.schema_processed(file_path, schema) end end |
#resolve_schemas(repository) ⇒ Array<SerializedSchema>
Serialize all schemas from a repository
11 12 13 14 15 16 17 |
# File 'lib/lutaml/xsd/schema_resolver.rb', line 11 def resolve_schemas(repository) all_schemas = repository.send(:get_all_processed_schemas) all_schemas.map do |file_path, schema| serialize_schema(file_path, schema) end end |
#serialize_schema(file_path, schema) ⇒ SerializedSchema
Serialize a single schema
23 24 25 26 27 |
# File 'lib/lutaml/xsd/schema_resolver.rb', line 23 def serialize_schema(file_path, schema) # Use SerializedSchema which handles Schema complexity # (avoiding circular references from imports/includes) SerializedSchema.from_schema(file_path, schema) end |