multi_version_common_cartridge 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.rspec +1 -0
- data/.rubocop.yml +54 -0
- data/Gemfile +2 -0
- data/LICENSE +674 -0
- data/README.md +36 -0
- data/lib/multi_version_common_cartridge.rb +38 -0
- data/lib/multi_version_common_cartridge/cartridge.rb +53 -0
- data/lib/multi_version_common_cartridge/cartridge_versions.rb +25 -0
- data/lib/multi_version_common_cartridge/item.rb +29 -0
- data/lib/multi_version_common_cartridge/manifest.rb +33 -0
- data/lib/multi_version_common_cartridge/resources/basic_lti_link.rb +46 -0
- data/lib/multi_version_common_cartridge/resources/resource.rb +23 -0
- data/lib/multi_version_common_cartridge/sax_machine_nokogiri_xml_saver.rb +85 -0
- data/lib/multi_version_common_cartridge/version.rb +19 -0
- data/lib/multi_version_common_cartridge/writers/basic_lti_extension_writer.rb +45 -0
- data/lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb +241 -0
- data/lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb +66 -0
- data/lib/multi_version_common_cartridge/writers/cartridge_writer.rb +85 -0
- data/lib/multi_version_common_cartridge/writers/factory.rb +59 -0
- data/lib/multi_version_common_cartridge/writers/item_writer.rb +60 -0
- data/lib/multi_version_common_cartridge/writers/manifest_metadata_writer.rb +62 -0
- data/lib/multi_version_common_cartridge/writers/manifest_organization_writer.rb +67 -0
- data/lib/multi_version_common_cartridge/writers/manifest_resources_writer.rb +48 -0
- data/lib/multi_version_common_cartridge/writers/manifest_writer.rb +88 -0
- data/lib/multi_version_common_cartridge/writers/resource_writer.rb +53 -0
- data/lib/multi_version_common_cartridge/writers/supported_versions.rb +37 -0
- data/lib/multi_version_common_cartridge/xml_definitions.rb +149 -0
- data/multi_version_common_cartridge.gemspec +27 -0
- metadata +163 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module MultiVersionCommonCartridge
|
18
|
+
module Writers
|
19
|
+
class ItemWriter
|
20
|
+
include SupportedVersions
|
21
|
+
|
22
|
+
MESSAGES = {
|
23
|
+
no_title: 'A title is required',
|
24
|
+
no_identifier: 'An identifier is required'
|
25
|
+
}.freeze
|
26
|
+
|
27
|
+
attr_reader :item
|
28
|
+
|
29
|
+
def initialize(item, factory, version)
|
30
|
+
@item = item
|
31
|
+
@factory = factory
|
32
|
+
@version = validate_version(version)
|
33
|
+
end
|
34
|
+
|
35
|
+
def finalize
|
36
|
+
validate_title
|
37
|
+
validate_identifier
|
38
|
+
end
|
39
|
+
|
40
|
+
def organization_item_element
|
41
|
+
CommonCartridge::Elements::Organizations::Item.new.tap do |item_element|
|
42
|
+
item_element.identifier = item.identifier
|
43
|
+
item_element.identifierref = item.resource.identifier if item.resource
|
44
|
+
item_element.title = item.title
|
45
|
+
item_element.items = item.children.map do |child|
|
46
|
+
@factory.item_writer(child).organization_item_element
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private def validate_title
|
52
|
+
raise StandardError, MESSAGES[:no_title] unless item.title
|
53
|
+
end
|
54
|
+
|
55
|
+
private def validate_identifier
|
56
|
+
raise StandardError, MESSAGES[:no_identifier] unless item.identifier
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
require 'common_cartridge'
|
18
|
+
|
19
|
+
module MultiVersionCommonCartridge
|
20
|
+
module Writers
|
21
|
+
class ManifestMetadataWriter
|
22
|
+
# http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
|
23
|
+
# ManifestMetadata.Type
|
24
|
+
include SupportedVersions
|
25
|
+
|
26
|
+
attr_reader :manifest
|
27
|
+
|
28
|
+
def initialize(manifest, version)
|
29
|
+
@manifest = manifest
|
30
|
+
@version = validate_version(version)
|
31
|
+
end
|
32
|
+
|
33
|
+
def finalize
|
34
|
+
# nothing to check
|
35
|
+
end
|
36
|
+
|
37
|
+
def metadata_element
|
38
|
+
CommonCartridge::Elements::Metadata.new.tap do |metadata|
|
39
|
+
metadata.schema = XmlDefinitions::SCHEMA[@version]
|
40
|
+
metadata.schemaversion = XmlDefinitions::SCHEMA_VERSION[@version]
|
41
|
+
metadata.lom = lom_element
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
private def lom_element
|
46
|
+
CommonCartridge::Elements::Lom::Lom.new.tap do |lom|
|
47
|
+
lom.general = CommonCartridge::Elements::Lom::General.new.tap do |general|
|
48
|
+
general.title = lom_general_title_element
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private def lom_general_title_element
|
54
|
+
CommonCartridge::Elements::Lom::Title.new.tap do |title_element|
|
55
|
+
title_element.strings = manifest.titles.map do |language, value|
|
56
|
+
CommonCartridge::Elements::Lom::LanguageString.new(language: language, value: value)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
require 'common_cartridge'
|
18
|
+
|
19
|
+
module MultiVersionCommonCartridge
|
20
|
+
module Writers
|
21
|
+
class ManifestOrganizationWriter
|
22
|
+
# http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
|
23
|
+
# Organizations.Type, Organization.Type
|
24
|
+
include SupportedVersions
|
25
|
+
|
26
|
+
ORGANIZATION_STRUCTURE = 'rooted-hierarchy'.freeze
|
27
|
+
DEFAULT_ROOT_ITEM_IDENTIFIER = 'root'.freeze
|
28
|
+
|
29
|
+
MESSAGES = {
|
30
|
+
no_identifier: 'An identifier is required'
|
31
|
+
}.freeze
|
32
|
+
|
33
|
+
attr_reader :cartridge
|
34
|
+
|
35
|
+
def initialize(cartridge, factory, version)
|
36
|
+
@cartridge = cartridge
|
37
|
+
@factory = factory
|
38
|
+
@version = validate_version(version)
|
39
|
+
end
|
40
|
+
|
41
|
+
def finalize
|
42
|
+
validate_identifier
|
43
|
+
end
|
44
|
+
|
45
|
+
def organization_element
|
46
|
+
CommonCartridge::Elements::Organizations::Organization.new.tap do |element|
|
47
|
+
element.identifier = ''
|
48
|
+
element.structure = ORGANIZATION_STRUCTURE
|
49
|
+
element.root_item = root_item
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private def root_item
|
54
|
+
CommonCartridge::Elements::Organizations::RootItem.new.tap do |root_item|
|
55
|
+
root_item.identifier = cartridge.manifest.organization_identifier || DEFAULT_ROOT_ITEM_IDENTIFIER
|
56
|
+
root_item.items = cartridge.items.map do |item|
|
57
|
+
@factory.item_writer(item).organization_item_element
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
private def validate_identifier
|
63
|
+
# raise StandardError, MESSAGES[:no_identifier] unless manifest..identifier
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
require 'common_cartridge'
|
18
|
+
|
19
|
+
module MultiVersionCommonCartridge
|
20
|
+
module Writers
|
21
|
+
class ManifestResourcesWriter
|
22
|
+
# http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
|
23
|
+
# Resources.type
|
24
|
+
include SupportedVersions
|
25
|
+
|
26
|
+
attr_reader :cartridge
|
27
|
+
|
28
|
+
def initialize(cartridge, factory, version)
|
29
|
+
@cartridge = cartridge
|
30
|
+
@factory = factory
|
31
|
+
@resource_writers = {}
|
32
|
+
@version = validate_version(version)
|
33
|
+
end
|
34
|
+
|
35
|
+
def finalize
|
36
|
+
# nothing to check
|
37
|
+
end
|
38
|
+
|
39
|
+
def root_resource_element
|
40
|
+
@root_resource_element ||= CommonCartridge::Elements::Resources::RootResource.new(
|
41
|
+
resources: cartridge.all_resources.map do |resource|
|
42
|
+
@factory.resource_writer(resource).resource_element
|
43
|
+
end
|
44
|
+
)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
require 'common_cartridge'
|
18
|
+
|
19
|
+
module MultiVersionCommonCartridge
|
20
|
+
module Writers
|
21
|
+
class ManifestWriter
|
22
|
+
include SupportedVersions
|
23
|
+
|
24
|
+
MESSAGES = {
|
25
|
+
no_identifier: 'An identifier is required',
|
26
|
+
}.freeze
|
27
|
+
|
28
|
+
attr_reader :manifest
|
29
|
+
|
30
|
+
def initialize(manifest, factory, version)
|
31
|
+
@manifest = manifest
|
32
|
+
@factory = factory
|
33
|
+
@version = validate_version(version)
|
34
|
+
end
|
35
|
+
|
36
|
+
def finalize
|
37
|
+
raise StandardError, MESSAGES[:no_identifier] unless manifest.identifier
|
38
|
+
metadata_writer.finalize
|
39
|
+
organization_writer.finalize
|
40
|
+
resources_writer.finalize
|
41
|
+
end
|
42
|
+
|
43
|
+
def write(dir)
|
44
|
+
doc = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |builder|
|
45
|
+
SaxMachineNokogiriXmlSaver.new.save(builder, manifest_element, 'manifest')
|
46
|
+
end
|
47
|
+
File.open(File.join(dir, 'imsmanifest.xml'), 'w') { |file| file.write(doc.to_xml) }
|
48
|
+
end
|
49
|
+
|
50
|
+
def manifest_element
|
51
|
+
@manifest_element ||= CommonCartridge::Elements::Manifest.new.tap do |element|
|
52
|
+
element.identifier = manifest.identifier
|
53
|
+
element.xmlns = required_namespaces['xmlns']
|
54
|
+
element.xmlns_lomimscc = required_namespaces['xmlns:lomimscc']
|
55
|
+
element.xmlns_lom = required_namespaces['xmlns:lom']
|
56
|
+
element.xmlns_xsi = required_namespaces['xmlns:xsi']
|
57
|
+
element.xsi_schema_location = xsi_schema_location
|
58
|
+
element.metadata = metadata_writer.metadata_element
|
59
|
+
element.root_organization = CommonCartridge::Elements::Organizations::RootOrganization.new(
|
60
|
+
organizations: [organization_writer.organization_element]
|
61
|
+
)
|
62
|
+
element.root_resource = resources_writer.root_resource_element
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
private def metadata_writer
|
67
|
+
@factory.manifest_metadata_writer
|
68
|
+
end
|
69
|
+
|
70
|
+
private def organization_writer
|
71
|
+
@factory.manifest_organization_writer
|
72
|
+
end
|
73
|
+
|
74
|
+
private def resources_writer
|
75
|
+
@factory.manifest_resources_writer
|
76
|
+
end
|
77
|
+
|
78
|
+
private def required_namespaces
|
79
|
+
XmlDefinitions::REQUIRED_NAMESPACES[@version]
|
80
|
+
end
|
81
|
+
|
82
|
+
private def xsi_schema_location
|
83
|
+
locations = XmlDefinitions::REQUIRED_SCHEMA_LOCATIONS[@version]
|
84
|
+
locations.flatten.join(' ')
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module MultiVersionCommonCartridge
|
18
|
+
module Writers
|
19
|
+
class ResourceWriter
|
20
|
+
include SupportedVersions
|
21
|
+
|
22
|
+
attr_reader :resource
|
23
|
+
|
24
|
+
def initialize(resource, version)
|
25
|
+
@resource = resource
|
26
|
+
@version = validate_version(version)
|
27
|
+
end
|
28
|
+
|
29
|
+
def finalize
|
30
|
+
resource.identifier ||= 'i_' + Digest::MD5.hexdigest("resource #{resource.object_id}")
|
31
|
+
end
|
32
|
+
|
33
|
+
def resource_element
|
34
|
+
CommonCartridge::Elements::Resources::Resource.new.tap do |element|
|
35
|
+
element.identifier = resource.identifier
|
36
|
+
element.type = type
|
37
|
+
element.files = files.map do |file|
|
38
|
+
CommonCartridge::Elements::Resources::File.new(href: file)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def type
|
44
|
+
raise NotImplementedError, 'Subclasses must implement the type method ' \
|
45
|
+
'that returns the correct resource type.'
|
46
|
+
end
|
47
|
+
|
48
|
+
def files
|
49
|
+
[]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module MultiVersionCommonCartridge
|
18
|
+
module Writers
|
19
|
+
module SupportedVersions
|
20
|
+
SUPPORTED_VERSIONS = [
|
21
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0,
|
22
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0,
|
23
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0,
|
24
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0,
|
25
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0
|
26
|
+
].freeze
|
27
|
+
UNSUPPORTED_VERSION_MSG_TEMPLATE = "Unsupported common cartridge version '%<version>s'".freeze
|
28
|
+
|
29
|
+
def validate_version(version)
|
30
|
+
unless SUPPORTED_VERSIONS.include?(version)
|
31
|
+
raise ArgumentError, format(UNSUPPORTED_VERSION_MSG_TEMPLATE, version: version)
|
32
|
+
end
|
33
|
+
version
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# multi_version_common_cartridge
|
2
|
+
# Copyright © 2019 Vista Higher Learning, Inc.
|
3
|
+
#
|
4
|
+
# multi_version_common_cartridge is free software: you can redistribute it
|
5
|
+
# and/or modify it under the terms of the GNU General Public
|
6
|
+
# License as published by the Free Software Foundation, either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# multi_version_common_cartridge is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
module MultiVersionCommonCartridge
|
18
|
+
module XmlDefinitions
|
19
|
+
SCHEMA = {
|
20
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => 'IMS Common Cartridge',
|
21
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => 'IMS Common Cartridge',
|
22
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => 'IMS Common Cartridge',
|
23
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => 'IMS Thin Common Cartridge',
|
24
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => 'IMS Thin Common Cartridge'
|
25
|
+
}.freeze
|
26
|
+
|
27
|
+
SCHEMA_VERSION = {
|
28
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => '1.1.0',
|
29
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => '1.2.0',
|
30
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => '1.3.0',
|
31
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => '1.2.0',
|
32
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => '1.3.0'
|
33
|
+
}.freeze
|
34
|
+
|
35
|
+
REQUIRED_NAMESPACES = {
|
36
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => {
|
37
|
+
'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',
|
38
|
+
'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',
|
39
|
+
'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',
|
40
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
41
|
+
},
|
42
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => {
|
43
|
+
'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
|
44
|
+
'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
|
45
|
+
'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
|
46
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
47
|
+
},
|
48
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => {
|
49
|
+
'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
|
50
|
+
'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
|
51
|
+
'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
|
52
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
53
|
+
},
|
54
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => {
|
55
|
+
'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
|
56
|
+
'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
|
57
|
+
'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
|
58
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
59
|
+
},
|
60
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => {
|
61
|
+
'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
|
62
|
+
'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
|
63
|
+
'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
|
64
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
65
|
+
}
|
66
|
+
}.freeze
|
67
|
+
|
68
|
+
REQUIRED_SCHEMA_LOCATIONS = {
|
69
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => [
|
70
|
+
[
|
71
|
+
'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',
|
72
|
+
'http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd'
|
73
|
+
],
|
74
|
+
[
|
75
|
+
'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',
|
76
|
+
'http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lomresource_v1p0.xsd'
|
77
|
+
],
|
78
|
+
[
|
79
|
+
'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',
|
80
|
+
'http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lommanifest_v1p0.xsd'
|
81
|
+
]
|
82
|
+
],
|
83
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => [
|
84
|
+
[
|
85
|
+
'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
|
86
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/ccv1p2_imscp_v1p2_v1p0.xsd'
|
87
|
+
],
|
88
|
+
[
|
89
|
+
'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
|
90
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lomresource_v1p0.xsd'
|
91
|
+
],
|
92
|
+
[
|
93
|
+
'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
|
94
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lommanifest_v1p0.xsd'
|
95
|
+
]
|
96
|
+
],
|
97
|
+
MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => [
|
98
|
+
[
|
99
|
+
'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
|
100
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd'
|
101
|
+
],
|
102
|
+
[
|
103
|
+
'http://www.imsglobal.org/xsd/imsccv1p3/imscsmd_v1p0',
|
104
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscsmd_v1p0.xsd'
|
105
|
+
],
|
106
|
+
[
|
107
|
+
'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
|
108
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd'
|
109
|
+
],
|
110
|
+
[
|
111
|
+
'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
|
112
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd'
|
113
|
+
]
|
114
|
+
],
|
115
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => [
|
116
|
+
[
|
117
|
+
'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
|
118
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/ccv1p2_imscp_v1p2_v1p0.xsd'
|
119
|
+
],
|
120
|
+
[
|
121
|
+
'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
|
122
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lomresource_v1p0.xsd'
|
123
|
+
],
|
124
|
+
[
|
125
|
+
'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
|
126
|
+
'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lommanifest_v1p0.xsd'
|
127
|
+
]
|
128
|
+
],
|
129
|
+
MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => [
|
130
|
+
[
|
131
|
+
'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
|
132
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd'
|
133
|
+
],
|
134
|
+
[
|
135
|
+
'http://www.imsglobal.org/xsd/imsccv1p3/imscsmd_v1p0',
|
136
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscsmd_v1p0.xsd'
|
137
|
+
],
|
138
|
+
[
|
139
|
+
'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
|
140
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd'
|
141
|
+
],
|
142
|
+
[
|
143
|
+
'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
|
144
|
+
'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd'
|
145
|
+
]
|
146
|
+
]
|
147
|
+
}.freeze
|
148
|
+
end
|
149
|
+
end
|