active-fedora 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +6 -0
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/active-fedora.gemspec +11 -8
- data/lib/active_fedora/base.rb +12 -2
- data/lib/active_fedora/metadata_datastream.rb +9 -9
- data/lib/active_fedora/metadata_datastream_helper.rb +0 -26
- data/lib/active_fedora/nokogiri_datastream.rb +66 -33
- data/lib/active_fedora/solr_service.rb +1 -0
- data/lib/hydra.rb +2 -2
- data/lib/hydra/mods_article.rb +49 -0
- data/lib/hydra/opinionated_mods_document.rb +14 -0
- data/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml +187 -0
- data/spec/fixtures/mods_articles/hydrangea_article1.xml +90 -0
- data/spec/integration/full_featured_model_spec.rb +7 -0
- data/spec/integration/repository_spec.rb +4 -0
- data/spec/unit/nokogiri_datastream_spec.rb +131 -191
- data/spec/unit/semantic_node_spec.rb +1 -1
- data/spec/unit/solr_service_spec.rb +4 -0
- metadata +51 -14
- data/lib/hydra_libs/mods_datastream.rb +0 -6
- data/lib/hydra_libs/opinionated_mods_document.rb +0 -2
- data/spec/unit/mods_datastream_spec.rb +0 -289
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
1.1.7
|
2
|
+
|
3
|
+
Nokogiri Datastream support using Nokogiri and OM::XML. Includes indexing of xml contents into solr based on accessors declared using OM::XML:Accessor module.
|
4
|
+
You now have the option of calling has_metadata without passing in a block
|
5
|
+
|
6
|
+
|
1
7
|
1.1.6
|
2
8
|
|
3
9
|
Bug #959: Base.delete fails to delete objects from Solr even when ENABLE_SOLR_UPDATES == true
|
data/Rakefile
CHANGED
@@ -21,6 +21,8 @@ begin
|
|
21
21
|
gem.add_dependency('mime-types', '>= 1.16')
|
22
22
|
gem.add_dependency('multipart-post')
|
23
23
|
gem.add_dependency('nokogiri')
|
24
|
+
gem.add_dependency('om', '>= 0.1.4')
|
25
|
+
# gem.add_dependency('yaml')
|
24
26
|
|
25
27
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
26
28
|
gem.add_development_dependency "mocha", ">= 1.2.9"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.7
|
data/active-fedora.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{active-fedora}
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Zumwalt", "McClain Looney"]
|
12
|
-
s.date = %q{2010-06-
|
12
|
+
s.date = %q{2010-06-23}
|
13
13
|
s.description = %q{ActiveFedora provides for creating and managing objects in the Fedora Repository Architecture.}
|
14
14
|
s.email = %q{matt.zumwalt@yourmediashelf.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -209,8 +209,8 @@ Gem::Specification.new do |s|
|
|
209
209
|
"lib/fedora/generic_search.rb",
|
210
210
|
"lib/fedora/repository.rb",
|
211
211
|
"lib/hydra.rb",
|
212
|
-
"lib/
|
213
|
-
"lib/
|
212
|
+
"lib/hydra/mods_article.rb",
|
213
|
+
"lib/hydra/opinionated_mods_document.rb",
|
214
214
|
"lib/ruby-fedora.rb",
|
215
215
|
"lib/util/class_level_inheritable_attributes.rb",
|
216
216
|
"script/console",
|
@@ -221,7 +221,9 @@ Gem::Specification.new do |s|
|
|
221
221
|
"solr/config/solrconfig-1.5.xml",
|
222
222
|
"spec/fixtures/changeme155.xml",
|
223
223
|
"spec/fixtures/dino.jpg",
|
224
|
+
"spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml",
|
224
225
|
"spec/fixtures/minivan.jpg",
|
226
|
+
"spec/fixtures/mods_articles/hydrangea_article1.xml",
|
225
227
|
"spec/fixtures/oh_qdc.xml",
|
226
228
|
"spec/fixtures/test_12.foxml.xml",
|
227
229
|
"spec/integration/base_file_management_spec.rb",
|
@@ -262,7 +264,6 @@ Gem::Specification.new do |s|
|
|
262
264
|
"spec/unit/inheritance_spec.rb",
|
263
265
|
"spec/unit/metadata_datastream_spec.rb",
|
264
266
|
"spec/unit/model_spec.rb",
|
265
|
-
"spec/unit/mods_datastream_spec.rb",
|
266
267
|
"spec/unit/nokogiri_datastream_spec.rb",
|
267
268
|
"spec/unit/property_spec.rb",
|
268
269
|
"spec/unit/qualified_dublin_core_datastream_spec.rb",
|
@@ -281,7 +282,7 @@ Gem::Specification.new do |s|
|
|
281
282
|
s.rdoc_options = ["--charset=UTF-8"]
|
282
283
|
s.require_paths = ["lib"]
|
283
284
|
s.rubyforge_project = %q{rubyfedora}
|
284
|
-
s.rubygems_version = %q{1.3.
|
285
|
+
s.rubygems_version = %q{1.3.7}
|
285
286
|
s.summary = %q{A convenience libary for manipulating MODS (Metadata Object Description Schema) documents.}
|
286
287
|
s.test_files = [
|
287
288
|
"spec/integration/base_file_management_spec.rb",
|
@@ -319,7 +320,6 @@ Gem::Specification.new do |s|
|
|
319
320
|
"spec/unit/inheritance_spec.rb",
|
320
321
|
"spec/unit/metadata_datastream_spec.rb",
|
321
322
|
"spec/unit/model_spec.rb",
|
322
|
-
"spec/unit/mods_datastream_spec.rb",
|
323
323
|
"spec/unit/nokogiri_datastream_spec.rb",
|
324
324
|
"spec/unit/property_spec.rb",
|
325
325
|
"spec/unit/qualified_dublin_core_datastream_spec.rb",
|
@@ -337,12 +337,13 @@ Gem::Specification.new do |s|
|
|
337
337
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
338
338
|
s.specification_version = 3
|
339
339
|
|
340
|
-
if Gem::Version.new(Gem::
|
340
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
341
341
|
s.add_runtime_dependency(%q<solr-ruby>, [">= 0.0.6"])
|
342
342
|
s.add_runtime_dependency(%q<xml-simple>, [">= 1.0.12"])
|
343
343
|
s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
|
344
344
|
s.add_runtime_dependency(%q<multipart-post>, [">= 0"])
|
345
345
|
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
346
|
+
s.add_runtime_dependency(%q<om>, [">= 0.1.4"])
|
346
347
|
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
347
348
|
s.add_development_dependency(%q<mocha>, [">= 1.2.9"])
|
348
349
|
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
@@ -352,6 +353,7 @@ Gem::Specification.new do |s|
|
|
352
353
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
353
354
|
s.add_dependency(%q<multipart-post>, [">= 0"])
|
354
355
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
356
|
+
s.add_dependency(%q<om>, [">= 0.1.4"])
|
355
357
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
356
358
|
s.add_dependency(%q<mocha>, [">= 1.2.9"])
|
357
359
|
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
@@ -362,6 +364,7 @@ Gem::Specification.new do |s|
|
|
362
364
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
363
365
|
s.add_dependency(%q<multipart-post>, [">= 0"])
|
364
366
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
367
|
+
s.add_dependency(%q<om>, [">= 0.1.4"])
|
365
368
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
366
369
|
s.add_dependency(%q<mocha>, [">= 1.2.9"])
|
367
370
|
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
data/lib/active_fedora/base.rb
CHANGED
@@ -353,7 +353,14 @@ module ActiveFedora
|
|
353
353
|
doc.xpath("//foxml:datastream[@ID='#{name}']").each do |node|
|
354
354
|
# datastreams remain marked as new if the foxml doesn't have an entry for that datastream
|
355
355
|
ds.new_object = false
|
356
|
-
|
356
|
+
# Nokogiri Datstreams use a new syntax for .from_xml (tmpl is optional!) and expects the actual xml content rather than the foxml datstream xml
|
357
|
+
# NB: Base.deserialize, or a separately named method, should set any other info from the foxml if necessary though by this point it's all been grabbed elsewhere...
|
358
|
+
if ds.kind_of?(ActiveFedora::NokogiriDatastream)
|
359
|
+
node = node.search('./foxml:datastreamVersion[last()]/foxml:xmlContent/*').first
|
360
|
+
proto.datastreams[name]=ds.class.from_xml(node, ds)
|
361
|
+
else
|
362
|
+
proto.datastreams[name]=ds.class.from_xml(ds, node)
|
363
|
+
end
|
357
364
|
end
|
358
365
|
end
|
359
366
|
proto.inner_object.new_object = false
|
@@ -529,7 +536,10 @@ module ActiveFedora
|
|
529
536
|
attributes = {:label=>""}
|
530
537
|
end
|
531
538
|
ds = ar.first.new(:dsid=>name)
|
532
|
-
|
539
|
+
# If you called has_metadata with a block, pass the block into the Datastream class
|
540
|
+
if ar.last.class == Proc
|
541
|
+
ar.last.call(ds)
|
542
|
+
end
|
533
543
|
ds.attributes = attributes.merge(ds.attributes)
|
534
544
|
self.add_datastream(ds)
|
535
545
|
end
|
@@ -38,15 +38,15 @@ module ActiveFedora
|
|
38
38
|
# return xml.to_s
|
39
39
|
# end
|
40
40
|
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
41
|
+
# @tmpl ActiveFedora::MetadataDatastream
|
42
|
+
# @node Nokogiri::XML::Node
|
43
|
+
def self.from_xml(tmpl, node) # :nodoc:
|
44
|
+
node.xpath("./foxml:datastreamVersion[last()]/foxml:xmlContent/fields/node()").each do |f|
|
45
|
+
tmpl.send("#{f.name}_append", f.text) unless f.class == Nokogiri::XML::Text
|
46
|
+
end
|
47
|
+
tmpl.send(:dirty=, false)
|
48
|
+
tmpl
|
49
|
+
end
|
50
50
|
|
51
51
|
# This method generates the various accessor and mutator methods on self for the datastream metadata attributes.
|
52
52
|
# each field will have the 3 magic methods:
|
@@ -12,16 +12,6 @@ module ActiveFedora::MetadataDatastreamHelper
|
|
12
12
|
@@classFields
|
13
13
|
end
|
14
14
|
|
15
|
-
# @tmpl ActiveFedora::MetadataDatastream
|
16
|
-
# @node Nokogiri::XML::Node
|
17
|
-
def from_xml(tmpl, node) # :nodoc:
|
18
|
-
node.xpath("./foxml:datastreamVersion[last()]/foxml:xmlContent/fields/node()").each do |f|
|
19
|
-
tmpl.send("#{f.name}_append", f.text) unless f.class == Nokogiri::XML::Text
|
20
|
-
end
|
21
|
-
tmpl.send(:dirty=, false)
|
22
|
-
tmpl
|
23
|
-
end
|
24
|
-
|
25
15
|
end
|
26
16
|
|
27
17
|
def self.included(klass)
|
@@ -75,22 +65,6 @@ module ActiveFedora::MetadataDatastreamHelper
|
|
75
65
|
end
|
76
66
|
end
|
77
67
|
end
|
78
|
-
|
79
|
-
# fields.each_pair do |field,field_info|
|
80
|
-
# el = REXML::Element.new("#{field.to_s}")
|
81
|
-
# if field_info[:element_attrs]
|
82
|
-
# field_info[:element_attrs].each{|k,v| el.add_attribute(k.to_s, v.to_s)}
|
83
|
-
# end
|
84
|
-
# field_info[:values].each do |val|
|
85
|
-
# el = el.clone
|
86
|
-
# el.text = val.to_s
|
87
|
-
# if xml.class == REXML::Document
|
88
|
-
# xml.root.elements.add(el)
|
89
|
-
# else
|
90
|
-
# xml.add(el)
|
91
|
-
# end
|
92
|
-
# end
|
93
|
-
# end
|
94
68
|
return builder.to_xml
|
95
69
|
end
|
96
70
|
|
@@ -1,60 +1,93 @@
|
|
1
1
|
require "nokogiri"
|
2
|
+
require "om"
|
2
3
|
#this class represents a MetadataDatastream, a special case of ActiveFedora::Datastream
|
3
4
|
class ActiveFedora::NokogiriDatastream < ActiveFedora::Datastream
|
4
|
-
|
5
|
+
|
5
6
|
include ActiveFedora::MetadataDatastreamHelper
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
include OM::XML
|
8
|
+
|
9
9
|
attr_accessor :ng_xml
|
10
10
|
|
11
11
|
#constructor, calls up to ActiveFedora::Datastream's constructor
|
12
12
|
def initialize(attrs=nil)
|
13
13
|
super
|
14
14
|
@fields={}
|
15
|
-
|
15
|
+
self.class.from_xml(blob, self)
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
def to_xml(xml = self.ng_xml)
|
20
|
+
ng_xml = self.ng_xml
|
21
|
+
if ng_xml.root.nil? && self.class.respond_to?(:root_property_ref) && !self.class.root_property_ref.nil?
|
22
|
+
ng_xml = self.class.generate(self.class.root_property_ref, "")
|
23
|
+
if xml.root.nil?
|
24
|
+
xml = ng_xml
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
unless xml == ng_xml || ng_xml.root.nil?
|
29
|
+
if xml.kind_of?(Nokogiri::XML::Document)
|
30
|
+
xml.root.add_child(ng_xml.root)
|
31
|
+
elsif xml.kind_of?(Nokogiri::XML::Node)
|
32
|
+
xml.add_child(ng_xml.root)
|
33
|
+
else
|
34
|
+
raise "You can only pass instances of Nokogiri::XML::Node into this method. You passed in #{xml}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
return xml.to_xml {|config| config.no_declaration}
|
16
39
|
end
|
17
40
|
|
18
41
|
def to_solr(solr_doc = Solr::Document.new) # :nodoc:
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
solr_doc << Solr::Field.new(field_symbol => val)
|
24
|
-
end
|
42
|
+
|
43
|
+
unless self.class.accessors.nil?
|
44
|
+
self.class.accessors.each_pair do |accessor_name,accessor_info|
|
45
|
+
solrize_accessor(accessor_name, accessor_info, :solr_doc=>solr_doc)
|
25
46
|
end
|
26
47
|
end
|
27
48
|
|
28
49
|
return solr_doc
|
29
50
|
end
|
30
51
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
52
|
+
def solrize_accessor(accessor_name, accessor_info, opts={})
|
53
|
+
solr_doc = opts.fetch(:solr_doc, Solr::Document.new)
|
54
|
+
parents = opts.fetch(:parents, [])
|
55
|
+
|
56
|
+
accessor_pointer = parents+[accessor_name]
|
57
|
+
|
58
|
+
if accessor_info.nil?
|
59
|
+
accessor_info = self.class.accessor_info(accessor_pointer)
|
60
|
+
if accessor_info.nil?
|
61
|
+
raise "No accessor is defined for #{accessor_info.select}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# prep children hash
|
66
|
+
child_accessors = accessor_info.fetch(:children, {})
|
67
|
+
xpath = self.class.accessor_xpath(*accessor_pointer)
|
68
|
+
nodeset = lookup(xpath)
|
69
|
+
|
70
|
+
nodeset.each do |node|
|
71
|
+
# create solr fields
|
72
|
+
solrize_node(node, accessor_pointer, solr_doc)
|
73
|
+
child_accessors.each_pair do |child_accessor_name, child_accessor_info|
|
74
|
+
solrize_accessor(child_accessor_name, child_accessor_info, opts={:solr_doc=>solr_doc, :parents=>parents+[{accessor_name=>nodeset.index(node)}] })
|
45
75
|
end
|
46
76
|
end
|
47
|
-
|
77
|
+
|
48
78
|
end
|
49
79
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
80
|
+
def solrize_node(node, accessor_pointer, solr_doc = Solr::Document.new)
|
81
|
+
generic_field_name_base = self.class.accessor_generic_name(*accessor_pointer)
|
82
|
+
generic_field_name = generate_solr_symbol(generic_field_name_base, :text)
|
83
|
+
|
84
|
+
solr_doc << Solr::Field.new(generic_field_name => node.text)
|
85
|
+
|
86
|
+
if accessor_pointer.length > 1
|
87
|
+
hierarchical_field_name_base = self.class.accessor_hierarchical_name(*accessor_pointer)
|
88
|
+
hierarchical_field_name = generate_solr_symbol(hierarchical_field_name_base, :text)
|
89
|
+
solr_doc << Solr::Field.new(hierarchical_field_name => node.text)
|
55
90
|
end
|
56
|
-
tmpl.send(:dirty=, false)
|
57
|
-
tmpl
|
58
91
|
end
|
59
92
|
|
60
93
|
end
|
data/lib/hydra.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
require "
|
1
|
+
module Hydra;end
|
2
|
+
require "hydra/mods_article"
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Hydra
|
2
|
+
class ModsArticle < ActiveFedora::NokogiriDatastream
|
3
|
+
|
4
|
+
# have to call this in order to set namespace & schema
|
5
|
+
root_property :mods, "mods", "http://www.loc.gov/mods/v3", :attributes=>["id", "version"], :schema=>"http://www.loc.gov/standards/mods/v3/mods-3-2.xsd"
|
6
|
+
|
7
|
+
accessor :title_info, :relative_xpath=>'oxns:titleInfo', :children=>[
|
8
|
+
{:main_title=>{:relative_xpath=>'oxns:title'}},
|
9
|
+
{:language =>{:relative_xpath=>{:attribute=>"lang"} }}
|
10
|
+
]
|
11
|
+
accessor :abstract
|
12
|
+
accessor :topic_tag, :relative_xpath=>'oxns:subject/oxns:topic'
|
13
|
+
accessor :person, :relative_xpath=>'oxns:name[@type="personal"]', :children=>[
|
14
|
+
{:last_name=>{:relative_xpath=>'oxns:namePart[@type="family"]'}},
|
15
|
+
{:first_name=>{:relative_xpath=>'oxns:namePart[@type="given"]'}},
|
16
|
+
{:institution=>{:relative_xpath=>'oxns:affiliation'}},
|
17
|
+
{:role=>{:children=>[
|
18
|
+
{:text=>{:relative_xpath=>'oxns:roleTerm[@type="text"]'}},
|
19
|
+
{:code=>{:relative_xpath=>'oxns:roleTerm[@type="code"]'}}
|
20
|
+
]}}
|
21
|
+
]
|
22
|
+
accessor :organization, :relative_xpath=>'oxns:name[@type="institutional"]', :children=>[
|
23
|
+
{:role=>{:children=>[
|
24
|
+
{:text=>{:relative_xpath=>'oxns:roleTerm[@type="text"]'}},
|
25
|
+
{:code=>{:relative_xpath=>'oxns:roleTerm[@type="code"]'}}
|
26
|
+
]}}
|
27
|
+
]
|
28
|
+
accessor :conference, :relative_xpath=>'oxns:name[@type="conference"]', :children=>[
|
29
|
+
{:role=>{:children=>[
|
30
|
+
{:text=>{:relative_xpath=>'oxns:roleTerm[@type="text"]'}},
|
31
|
+
{:code=>{:relative_xpath=>'oxns:roleTerm[@type="code"]'}}
|
32
|
+
]}}
|
33
|
+
]
|
34
|
+
accessor :journal, :relative_xpath=>'oxns:relatedItem[@type="host"]', :children=>[
|
35
|
+
{:title=>{:relative_xpath=>'oxns:titleInfo/oxns:title'}},
|
36
|
+
{:publisher=>{:relative_xpath=>'oxns:originInfo/oxns:publisher'}},
|
37
|
+
{:issn=>{:relative_xpath=>'oxns:identifier[@type="issn"]'}},
|
38
|
+
{:date_issued=>{:relative_xpath=>'oxns:originInfo/oxns:dateIssued'}},
|
39
|
+
{:issue => {:relative_xpath=>"oxns:part", :children=>[
|
40
|
+
{:volume=>{:relative_xpath=>'oxns:detail[@type="volume"]'}},
|
41
|
+
{:level=>{:relative_xpath=>'oxns:detail[@type="level"]'}},
|
42
|
+
{:start_page=>{:relative_xpath=>'oxns:extent[@unit="pages"]/oxns:start'}},
|
43
|
+
{:end_page=>{:relative_xpath=>'oxns:extent[@unit="pages"]/oxns:end'}},
|
44
|
+
{:publication_date=>{:relative_xpath=>'oxns:date'}}
|
45
|
+
]}}
|
46
|
+
]
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class OpinionatedModsDocument < Nokogiri::XML::Document
|
2
|
+
|
3
|
+
include OM::XML
|
4
|
+
|
5
|
+
self.schema_url = "http://www.loc.gov/standards/mods/v3/mods-3-2.xsd"
|
6
|
+
|
7
|
+
# Could add support for multiple root declarations.
|
8
|
+
# For now, assume that any modsCollections have already been broken up and fed in as individual mods documents
|
9
|
+
# root :mods_collection, :path=>"modsCollection",
|
10
|
+
# :attributes=>[],
|
11
|
+
# :subelements => :mods
|
12
|
+
root_property :mods, "mods", "http://www.loc.gov/mods/v3", :attributes=>["id", "version"]
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="hydrangea:fixture_mods_article1"
|
3
|
+
xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
6
|
+
<foxml:objectProperties>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
9
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
10
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2010-06-17T19:56:19.301Z"/>
|
11
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2010-06-17T19:57:30.688Z"/>
|
12
|
+
</foxml:objectProperties>
|
13
|
+
<foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="false">
|
14
|
+
<foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail for this object" CREATED="2010-06-17T19:56:19.301Z" MIMETYPE="text/xml" FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit">
|
15
|
+
<foxml:xmlContent>
|
16
|
+
<audit:auditTrail xmlns:audit="info:fedora/fedora-system:def/audit#">
|
17
|
+
<audit:record ID="AUDREC1">
|
18
|
+
<audit:process type="Fedora API-M"/>
|
19
|
+
<audit:action>addDatastream</audit:action>
|
20
|
+
<audit:componentID>descMetadata</audit:componentID>
|
21
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
22
|
+
<audit:date>2010-06-17T19:56:22.150Z</audit:date>
|
23
|
+
<audit:justification></audit:justification>
|
24
|
+
</audit:record>
|
25
|
+
<audit:record ID="AUDREC2">
|
26
|
+
<audit:process type="Fedora API-M"/>
|
27
|
+
<audit:action>addDatastream</audit:action>
|
28
|
+
<audit:componentID>RELS-EXT</audit:componentID>
|
29
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
30
|
+
<audit:date>2010-06-17T19:56:22.353Z</audit:date>
|
31
|
+
<audit:justification></audit:justification>
|
32
|
+
</audit:record>
|
33
|
+
<audit:record ID="AUDREC3">
|
34
|
+
<audit:process type="Fedora API-M"/>
|
35
|
+
<audit:action>addDatastream</audit:action>
|
36
|
+
<audit:componentID>rightsMetadata</audit:componentID>
|
37
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
38
|
+
<audit:date>2010-06-17T19:56:23.335Z</audit:date>
|
39
|
+
<audit:justification></audit:justification>
|
40
|
+
</audit:record>
|
41
|
+
<audit:record ID="AUDREC4">
|
42
|
+
<audit:process type="Fedora API-M"/>
|
43
|
+
<audit:action>addDatastream</audit:action>
|
44
|
+
<audit:componentID>properties</audit:componentID>
|
45
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
46
|
+
<audit:date>2010-06-17T19:56:23.477Z</audit:date>
|
47
|
+
<audit:justification></audit:justification>
|
48
|
+
</audit:record>
|
49
|
+
<audit:record ID="AUDREC5">
|
50
|
+
<audit:process type="Fedora API-M"/>
|
51
|
+
<audit:action>modifyObject</audit:action>
|
52
|
+
<audit:componentID></audit:componentID>
|
53
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
54
|
+
<audit:date>2010-06-17T19:57:30.688Z</audit:date>
|
55
|
+
<audit:justification></audit:justification>
|
56
|
+
</audit:record>
|
57
|
+
</audit:auditTrail>
|
58
|
+
</foxml:xmlContent>
|
59
|
+
</foxml:datastreamVersion>
|
60
|
+
</foxml:datastream>
|
61
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
62
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2010-06-17T19:56:19.301Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="360">
|
63
|
+
<foxml:xmlContent>
|
64
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
65
|
+
<dc:identifier>hydrangea:fixture_mods_article1</dc:identifier>
|
66
|
+
</oai_dc:dc>
|
67
|
+
</foxml:xmlContent>
|
68
|
+
</foxml:datastreamVersion>
|
69
|
+
</foxml:datastream>
|
70
|
+
<foxml:datastream ID="descMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
71
|
+
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" CREATED="2010-06-17T19:56:22.150Z" MIMETYPE="text/xml" SIZE="19">
|
72
|
+
<foxml:xmlContent>
|
73
|
+
<mods version="3.0" xsi:schemaLocation="http://www.loc.gov/mods/v3
|
74
|
+
http://www.loc.gov/standards/mods/v3/mods-3-0.xsd" xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
75
|
+
|
76
|
+
<titleInfo>
|
77
|
+
<nonSort>THE</nonSort>
|
78
|
+
<title>ARTICLE TITLE</title>
|
79
|
+
<subTitle>SUBTITLE</subTitle>
|
80
|
+
</titleInfo>
|
81
|
+
<titleInfo type="alternative">
|
82
|
+
<title>VARYING FORM OF TITLE</title>
|
83
|
+
</titleInfo>
|
84
|
+
|
85
|
+
<name type="personal">
|
86
|
+
<namePart type="family">FAMILY NAME</namePart>
|
87
|
+
<namePart type="given">GIVEN NAMES</namePart>
|
88
|
+
<namePart type="termsOfAddress">DR.</namePart>
|
89
|
+
<displayForm>NAME AS IT APPEARS</displayForm>
|
90
|
+
<affiliation>FACULTY, UNIVERSITY</affiliation>
|
91
|
+
<role>
|
92
|
+
<roleTerm authority="marcrelator" type="text">creator</roleTerm>
|
93
|
+
</role>
|
94
|
+
<role>
|
95
|
+
<roleTerm type="text">submitter</roleTerm>
|
96
|
+
</role>
|
97
|
+
</name>
|
98
|
+
|
99
|
+
<typeOfResource>text</typeOfResource>
|
100
|
+
<genre authority="local">journal article</genre>
|
101
|
+
|
102
|
+
<abstract>ABSTRACT</abstract>
|
103
|
+
<subject>
|
104
|
+
<topic>TOPIC 1</topic>
|
105
|
+
<topic>TOPIC 2</topic>
|
106
|
+
</subject>
|
107
|
+
<subject authority="AUTHORITY SOURCE (RFCD, LCSH)">
|
108
|
+
<topic>CONTROLLED TERM</topic>
|
109
|
+
</subject>
|
110
|
+
|
111
|
+
<language>
|
112
|
+
<languageTerm authority="iso639-2b" type="code">en-aus </languageTerm>
|
113
|
+
</language>
|
114
|
+
|
115
|
+
<physicalDescription>
|
116
|
+
<internetMediaType>application/pdf</internetMediaType>
|
117
|
+
<extent>36 p.</extent>
|
118
|
+
</physicalDescription>
|
119
|
+
|
120
|
+
<relatedItem type="host">
|
121
|
+
<titleInfo>
|
122
|
+
<title>TITLE OF HOST JOURNAL</title>
|
123
|
+
</titleInfo>
|
124
|
+
<originInfo>
|
125
|
+
<publisher>PUBLISHER</publisher>
|
126
|
+
<dateIssued>DATE</dateIssued>
|
127
|
+
</originInfo>
|
128
|
+
<identifier type="issn">0013-8908</identifier>
|
129
|
+
<part>
|
130
|
+
<detail type="volume">
|
131
|
+
<number>2</number>
|
132
|
+
</detail>
|
133
|
+
<detail type="level">
|
134
|
+
<number>2</number>
|
135
|
+
</detail>
|
136
|
+
<extent unit="pages">
|
137
|
+
<start>195</start>
|
138
|
+
<end>230</end>
|
139
|
+
</extent>
|
140
|
+
<date>FEB. 2007</date>
|
141
|
+
</part>
|
142
|
+
</relatedItem>
|
143
|
+
|
144
|
+
<identifier type="uri">http://URL.edu.au/</identifier>
|
145
|
+
<identifier type="doi">doi:10.1006/jmbi.1995.0238</identifier>
|
146
|
+
<location>
|
147
|
+
<url>http://URL.edu.au/</url>
|
148
|
+
</location>
|
149
|
+
<accessCondition type="restrictionOnAccess">EMBARGO NOTE</accessCondition>
|
150
|
+
<accessCondition type="use and reproduction">OPEN ACCESS</accessCondition>
|
151
|
+
|
152
|
+
</mods>
|
153
|
+
</foxml:xmlContent>
|
154
|
+
</foxml:datastreamVersion>
|
155
|
+
</foxml:datastream>
|
156
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
157
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="" CREATED="2010-06-17T19:56:22.353Z" MIMETYPE="text/xml" SIZE="306">
|
158
|
+
<foxml:xmlContent>
|
159
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
160
|
+
<rdf:Description rdf:about="info:fedora/hydrangea:fixture_mods_article1">
|
161
|
+
<hasModel xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/afmodel:ModsArticle"></hasModel>
|
162
|
+
</rdf:Description>
|
163
|
+
</rdf:RDF>
|
164
|
+
</foxml:xmlContent>
|
165
|
+
</foxml:datastreamVersion>
|
166
|
+
</foxml:datastream>
|
167
|
+
<foxml:datastream ID="rightsMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
168
|
+
<foxml:datastreamVersion ID="rightsMetadata.0" LABEL="" CREATED="2010-06-17T19:56:23.335Z" MIMETYPE="text/xml" SIZE="19">
|
169
|
+
<foxml:xmlContent>
|
170
|
+
<fields>
|
171
|
+
<discover_access_group>public</discover_access_group>
|
172
|
+
<read_access_group>public</read_access_group>
|
173
|
+
<edit_access_group>researcher</edit_access_group>
|
174
|
+
<edit_access_group>archivist</edit_access_group>
|
175
|
+
<edit_access>researcher1</edit_access>
|
176
|
+
</fields>
|
177
|
+
</foxml:xmlContent>
|
178
|
+
</foxml:datastreamVersion>
|
179
|
+
</foxml:datastream>
|
180
|
+
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
181
|
+
<foxml:datastreamVersion ID="properties.0" LABEL="" CREATED="2010-06-17T19:56:23.477Z" MIMETYPE="text/xml" SIZE="19">
|
182
|
+
<foxml:xmlContent>
|
183
|
+
<fields></fields>
|
184
|
+
</foxml:xmlContent>
|
185
|
+
</foxml:datastreamVersion>
|
186
|
+
</foxml:datastream>
|
187
|
+
</foxml:digitalObject>
|