Class: SDL::Exporters::XMLServiceExporter
Instance Attribute Summary
Attributes inherited from Exporter
#compendium, #options
Instance Method Summary
collapse
#export_service_to_file
Methods inherited from Exporter
#export_to_file, #initialize
Instance Method Details
#build_service(service, xml) ⇒ Object
10
11
12
13
14
15
16
17
18
|
# File 'lib/sdl/exporters/xml_service_exporter.rb', line 10
def build_service(service, xml)
xml.service('xmlns' => 'http://www.open-service-compendium.org') do
service.facts.each do |fact|
xml.send(fact.class.xsd_element_name + '_') do
serialize_type_instance fact, xml
end
end
end
end
|
#export_service(service) ⇒ Object
2
3
4
5
6
7
8
|
# File 'lib/sdl/exporters/xml_service_exporter.rb', line 2
def export_service(service)
builder = Nokogiri::XML::Builder.new do |xml|
build_service(service, xml)
end
builder.to_xml
end
|
#serialize_type_instance(type_instance, xml) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/sdl/exporters/xml_service_exporter.rb', line 20
def serialize_type_instance(type_instance, xml)
type_instance.property_values.each do |property, value|
[value].flatten.each do |v|
if v.class < SDL::Base::Type
xml.send(property.xsd_element_name + '_', (!value.is_a?(Array) && value.identifier) ? {'identifier' => value.identifier.to_s} : {}) do
v.annotations.each do |annotation|
xml.annotation annotation
end
xml.documentation v.documentation if (!value.is_a?(Array) && value.identifier)
serialize_type_instance(v, xml)
end
else
xml.send(property.xsd_element_name + '_', v)
end
end
end
end
|