ieee-idams 0.2.6
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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +10 -0
- data/.rubocop_todo.yml +36 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/README.adoc +30 -0
- data/Rakefile +12 -0
- data/lib/ieee/idams/address.rb +32 -0
- data/lib/ieee/idams/affiliation.rb +34 -0
- data/lib/ieee/idams/affiliation_address.rb +37 -0
- data/lib/ieee/idams/affiliation_group.rb +19 -0
- data/lib/ieee/idams/article.rb +24 -0
- data/lib/ieee/idams/article_abstract.rb +22 -0
- data/lib/ieee/idams/article_copyright.rb +20 -0
- data/lib/ieee/idams/article_date.rb +33 -0
- data/lib/ieee/idams/article_filename.rb +22 -0
- data/lib/ieee/idams/article_info.rb +160 -0
- data/lib/ieee/idams/article_page_nums.rb +22 -0
- data/lib/ieee/idams/author.rb +64 -0
- data/lib/ieee/idams/author_group.rb +19 -0
- data/lib/ieee/idams/conf_group.rb +19 -0
- data/lib/ieee/idams/copyright.rb +24 -0
- data/lib/ieee/idams/copyright_group.rb +19 -0
- data/lib/ieee/idams/ics_code_term.rb +17 -0
- data/lib/ieee/idams/ics_codes.rb +17 -0
- data/lib/ieee/idams/isbn.rb +32 -0
- data/lib/ieee/idams/keyword.rb +19 -0
- data/lib/ieee/idams/keyword_set.rb +24 -0
- data/lib/ieee/idams/multimedia.rb +43 -0
- data/lib/ieee/idams/multimedia_component.rb +32 -0
- data/lib/ieee/idams/multimedia_compressed.rb +32 -0
- data/lib/ieee/idams/package_member_set.rb +15 -0
- data/lib/ieee/idams/product_number.rb +19 -0
- data/lib/ieee/idams/pub_sponsor.rb +17 -0
- data/lib/ieee/idams/pub_sponsoring_committee_set.rb +17 -0
- data/lib/ieee/idams/pub_topical_browse_set.rb +48 -0
- data/lib/ieee/idams/publication.rb +40 -0
- data/lib/ieee/idams/publication_acronym.rb +22 -0
- data/lib/ieee/idams/publication_info.rb +184 -0
- data/lib/ieee/idams/publisher.rb +29 -0
- data/lib/ieee/idams/standard_bundle.rb +43 -0
- data/lib/ieee/idams/standard_modifier_set.rb +15 -0
- data/lib/ieee/idams/standard_package_set.rb +15 -0
- data/lib/ieee/idams/standard_relationship.rb +36 -0
- data/lib/ieee/idams/version.rb +7 -0
- data/lib/ieee/idams/volume.rb +25 -0
- data/lib/ieee/idams/volume_info.rb +35 -0
- data/lib/ieee/idams/volume_info_issue.rb +22 -0
- data/lib/ieee/idams/volume_note_group.rb +17 -0
- data/lib/ieee/idams.rb +10 -0
- data/lib/ieee-idams.rb +16 -0
- data/references/ieee-books-xml-metadata-documentation.pdf +0 -0
- metadata +209 -0
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "affiliation_group"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# Represents an individual author
|
8
|
+
class Author < Lutaml::Model::Serializable
|
9
|
+
# AMS ID
|
10
|
+
# @return [Integer] author's AMS ID
|
11
|
+
attribute :amsid, :integer
|
12
|
+
|
13
|
+
# Order of authorship
|
14
|
+
# @return [Integer] author's order in the list of authors
|
15
|
+
attribute :authororder, :integer
|
16
|
+
|
17
|
+
# Normalized author name
|
18
|
+
# @return [String] surname, initials format
|
19
|
+
attribute :normname, :string
|
20
|
+
|
21
|
+
# Non-normalized author name
|
22
|
+
# @return [String] original format name
|
23
|
+
attribute :nonnormname, :string
|
24
|
+
|
25
|
+
# First name
|
26
|
+
# @return [String] author's first name
|
27
|
+
attribute :firstname, :string
|
28
|
+
|
29
|
+
# Middle name
|
30
|
+
# @return [String] author's middle name/initial
|
31
|
+
attribute :othername, :string
|
32
|
+
|
33
|
+
# Last name
|
34
|
+
# @return [String] author's surname
|
35
|
+
attribute :surname, :string
|
36
|
+
|
37
|
+
# Affiliation
|
38
|
+
# @return [String] author's institutional affiliation
|
39
|
+
attribute :affiliation, :string
|
40
|
+
|
41
|
+
# Affiliation information
|
42
|
+
# @return [AffiliationGroup] author's institutional affiliations
|
43
|
+
attribute :affgrp, AffiliationGroup
|
44
|
+
|
45
|
+
# Author type/role
|
46
|
+
# @return [String] one of: author, editor
|
47
|
+
attribute :authortype, :string, values: %w[author editor]
|
48
|
+
|
49
|
+
xml do
|
50
|
+
root "author"
|
51
|
+
map_element "amsid", to: :amsid
|
52
|
+
map_element "authororder", to: :authororder
|
53
|
+
map_element "normname", to: :normname, cdata: true
|
54
|
+
map_element "nonnormname", to: :nonnormname, cdata: true
|
55
|
+
map_element "firstname", to: :firstname, cdata: true
|
56
|
+
map_element "othername", to: :othername, cdata: true
|
57
|
+
map_element "surname", to: :surname, cdata: true
|
58
|
+
map_element "affiliation", to: :affiliation, cdata: true
|
59
|
+
map_element "affgrp", to: :affgrp
|
60
|
+
map_element "authortype", to: :authortype
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "author"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# Represents a group of authors
|
8
|
+
class AuthorGroup < Lutaml::Model::Serializable
|
9
|
+
# List of authors
|
10
|
+
# @return [Array<Author>] authors of the work
|
11
|
+
attribute :author, Author, collection: true
|
12
|
+
|
13
|
+
xml do
|
14
|
+
root "authorgroup"
|
15
|
+
map_element "author", to: :author
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Configuration Groiup
|
6
|
+
class ConfGroup < Lutaml::Model::Serializable
|
7
|
+
# <confgroup>
|
8
|
+
# <doi_permission>F</doi_permission>
|
9
|
+
# </confgroup>
|
10
|
+
|
11
|
+
attribute :doi_permission, :string, collection: true
|
12
|
+
|
13
|
+
xml do
|
14
|
+
root "confgroup"
|
15
|
+
map_element "doi_permission", to: :doi_permission
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "copyright"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# Represents a copyright entry
|
8
|
+
class Copyright < Lutaml::Model::Serializable
|
9
|
+
# Copyright year
|
10
|
+
# @return [Integer] year of copyright
|
11
|
+
attribute :year, :integer
|
12
|
+
|
13
|
+
# Copyright holder
|
14
|
+
# @return [String] name of copyright holder
|
15
|
+
attribute :holder, :string
|
16
|
+
|
17
|
+
xml do
|
18
|
+
root "copyright"
|
19
|
+
map_element "year", to: :year
|
20
|
+
map_element "holder", to: :holder
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "copyright"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# Represents a group of copyright information
|
8
|
+
class CopyrightGroup < Lutaml::Model::Serializable
|
9
|
+
# Copyright entries
|
10
|
+
# @return [Array<Copyright>] copyright information
|
11
|
+
attribute :copyright, Copyright, collection: true
|
12
|
+
|
13
|
+
xml do
|
14
|
+
root "copyrightgroup"
|
15
|
+
map_element "copyright", to: :copyright
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# ICS code with term
|
6
|
+
class IcsCodeTerm < Lutaml::Model::Serializable
|
7
|
+
attribute :codenum, :string
|
8
|
+
attribute :name, :string
|
9
|
+
|
10
|
+
xml do
|
11
|
+
root "code_term"
|
12
|
+
map_attribute "codenum", to: :codenum
|
13
|
+
map_content to: :name
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "ics_code_term"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# ICS Codes
|
8
|
+
class IcsCodes < Lutaml::Model::Serializable
|
9
|
+
attribute :code_term, IcsCodeTerm, collection: true
|
10
|
+
|
11
|
+
xml do
|
12
|
+
root "icscodes"
|
13
|
+
map_element "code_term", to: :code_term
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Represents an ISBN identifier for a book
|
6
|
+
class Isbn < Lutaml::Model::Serializable
|
7
|
+
# ISBN number
|
8
|
+
# @return [String] 13 or 10 digit ISBN, max 15 chars
|
9
|
+
attribute :content, :string
|
10
|
+
|
11
|
+
# File type for this ISBN
|
12
|
+
# @return [String] one of: paperback, hardcover, ePub, PDF
|
13
|
+
attribute :isbnfiletype, :string, values: %w[paperback hardcover ePub PDF]
|
14
|
+
|
15
|
+
# ISBN type specification
|
16
|
+
# @return [String] one of: New-2005, Historical
|
17
|
+
attribute :isbntype, :string, values: %w[New-2005 Historical]
|
18
|
+
|
19
|
+
# Media type
|
20
|
+
# @return [String] one of: Paper, CD, Online, Electronic
|
21
|
+
attribute :mediatype, :string, values: %w[Paper CD Online Electronic]
|
22
|
+
|
23
|
+
xml do
|
24
|
+
root "isbn"
|
25
|
+
map_content to: :content
|
26
|
+
map_attribute "isbnfiletype", to: :isbnfiletype
|
27
|
+
map_attribute "isbntype", to: :isbntype
|
28
|
+
map_attribute "mediatype", to: :mediatype
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Represents a keyword
|
6
|
+
class Keyword < Lutaml::Model::Serializable
|
7
|
+
# Keyword term
|
8
|
+
# @return [String] keyword text
|
9
|
+
attribute :keywordterm, :string
|
10
|
+
attribute :keywordmodifier, :string
|
11
|
+
|
12
|
+
xml do
|
13
|
+
root "keyword"
|
14
|
+
map_element "keywordterm", to: :keywordterm, cdata: true
|
15
|
+
map_element "keywordmodifier", to: :keywordmodifier
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "keyword"
|
4
|
+
|
5
|
+
module Ieee
|
6
|
+
module Idams
|
7
|
+
# Represents a set of keywords
|
8
|
+
class KeywordSet < Lutaml::Model::Serializable
|
9
|
+
# Keyword type
|
10
|
+
# @return [String] type of keywords
|
11
|
+
attribute :keywordtype, :string
|
12
|
+
|
13
|
+
# List of keywords
|
14
|
+
# @return [Array<Keyword>] keywords
|
15
|
+
attribute :keyword, Keyword, collection: true
|
16
|
+
|
17
|
+
xml do
|
18
|
+
root "keywordset"
|
19
|
+
map_attribute "keywordtype", to: :keywordtype
|
20
|
+
map_element "keyword", to: :keyword
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "multimedia_compressed"
|
4
|
+
require_relative "multimedia_component"
|
5
|
+
|
6
|
+
module Ieee
|
7
|
+
module Idams
|
8
|
+
# Multimedia
|
9
|
+
class Multimedia < Lutaml::Model::Serializable
|
10
|
+
# <multimedia>
|
11
|
+
# <summary>The IEEE 1584 calculators can be accessed via the auxiliary files (5), ¿IEEE_1584_Bolted_Fault_Cal.xls¿ and
|
12
|
+
# ¿IEEE_1584_Arc_Flash_Hazard.xls¿, and test data can be accessed via the auxiliary files, ¿Data_set.xls¿,
|
13
|
+
# ¿Test_results_database.xls¿, and ¿CL_Fuse_test_data.xls¿ provided for use with IEEE 1584-2002.</summary>
|
14
|
+
# <compressed>
|
15
|
+
# <compressedfilename>IEEE1584-2002_AncillaryFiles.zip</compressedfilename>
|
16
|
+
# <compressedfilesize>180</compressedfilesize>
|
17
|
+
# <compressiontype>ZIP</compressiontype>
|
18
|
+
# <environmenttype>Windows</environmenttype>
|
19
|
+
# <readmefile>IEEE1584-2002_AncillaryFiles.readme.txt</readmefile>
|
20
|
+
# </compressed>
|
21
|
+
# <component>
|
22
|
+
# <componentfilename/>
|
23
|
+
# <componentfilesize/>
|
24
|
+
# <componenttype/>
|
25
|
+
# <componentplatform/>
|
26
|
+
# <componentdoi/>
|
27
|
+
# </component>
|
28
|
+
# </multimedia>
|
29
|
+
|
30
|
+
attribute :summary, :string
|
31
|
+
attribute :compressed, MultimediaCompressed
|
32
|
+
attribute :component, MultimediaComponent
|
33
|
+
|
34
|
+
xml do
|
35
|
+
root "multimedia"
|
36
|
+
|
37
|
+
map_element "summary", to: :summary
|
38
|
+
map_element "compressed", to: :compressed
|
39
|
+
map_element "component", to: :component
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Multimedia component
|
6
|
+
class MultimediaComponent < Lutaml::Model::Serializable
|
7
|
+
# <component>
|
8
|
+
# <componentfilename/>
|
9
|
+
# <componentfilesize/>
|
10
|
+
# <componenttype/>
|
11
|
+
# <componentplatform/>
|
12
|
+
# <componentdoi/>
|
13
|
+
# </component>
|
14
|
+
|
15
|
+
attribute :filename, :string
|
16
|
+
attribute :filesize, :string
|
17
|
+
attribute :type, :string
|
18
|
+
attribute :platform, :string
|
19
|
+
attribute :doi, :string
|
20
|
+
|
21
|
+
xml do
|
22
|
+
root "component"
|
23
|
+
|
24
|
+
map_element "componentfilename", to: :filename, render_nil: true
|
25
|
+
map_element "componentfilesize", to: :filesize, render_nil: true
|
26
|
+
map_element "componenttype", to: :type, render_nil: true
|
27
|
+
map_element "componentplatform", to: :platform, render_nil: true
|
28
|
+
map_element "componentdoi", to: :doi, render_nil: true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Multimedia compressed
|
6
|
+
class MultimediaCompressed < Lutaml::Model::Serializable
|
7
|
+
# <compressed>
|
8
|
+
# <compressedfilename>IEEE1584-2002_AncillaryFiles.zip</compressedfilename>
|
9
|
+
# <compressedfilesize>180</compressedfilesize>
|
10
|
+
# <compressiontype>ZIP</compressiontype>
|
11
|
+
# <environmenttype>Windows</environmenttype>
|
12
|
+
# <readmefile>IEEE1584-2002_AncillaryFiles.readme.txt</readmefile>
|
13
|
+
# </compressed>
|
14
|
+
|
15
|
+
attribute :filename, :string
|
16
|
+
attribute :filesize, :string
|
17
|
+
attribute :compression_type, :string
|
18
|
+
attribute :environment_type, :string
|
19
|
+
attribute :readme_file, :string
|
20
|
+
|
21
|
+
xml do
|
22
|
+
root "compressed"
|
23
|
+
|
24
|
+
map_element "compressedfilename", to: :filename
|
25
|
+
map_element "compressedfilesize", to: :filesize
|
26
|
+
map_element "compressiontype", to: :compression_type
|
27
|
+
map_element "environmenttype", to: :environment_type
|
28
|
+
map_element "readmefile", to: :readme_file
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Represents a set of package members
|
6
|
+
class PackageMemberSet < Lutaml::Model::Serializable
|
7
|
+
attribute :package_member, :string, collection: true
|
8
|
+
|
9
|
+
xml do
|
10
|
+
root "packagememberset"
|
11
|
+
map_element "packagemember", to: :package_member
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Product number
|
6
|
+
class ProductNumber < Lutaml::Model::Serializable
|
7
|
+
# <productnumber pubtype="Online">STDWD94477</productnumber>
|
8
|
+
|
9
|
+
attribute :pubtype, :string
|
10
|
+
attribute :value, :string
|
11
|
+
|
12
|
+
xml do
|
13
|
+
root "productnumber"
|
14
|
+
map_attribute "pubtype", to: :pubtype
|
15
|
+
map_content to: :value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Contains volume metadata
|
6
|
+
class PubSponsor < Lutaml::Model::Serializable
|
7
|
+
# IEEE Society that sponsors the publication
|
8
|
+
# @return [String] Society name that sponsors the publication
|
9
|
+
attribute :society, :string, collection: true
|
10
|
+
|
11
|
+
xml do
|
12
|
+
root "pubsponsor"
|
13
|
+
map_element "society", to: :society
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Represents a set of sponsoring committees
|
6
|
+
class PubSponsoringCommitteeSet < Lutaml::Model::Serializable
|
7
|
+
# List of committees
|
8
|
+
# @return [Array<String>] sponsoring committees
|
9
|
+
attribute :pubsponsoringcommittee, :string, collection: true
|
10
|
+
|
11
|
+
xml do
|
12
|
+
root "pubsponsoringcommitteeset"
|
13
|
+
map_element "pubsponsoringcommittee", to: :pubsponsoringcommittee, cdata: true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Represents a set of topical browse categories
|
6
|
+
class PubTopicalBrowseSet < Lutaml::Model::Serializable
|
7
|
+
# List of topical browse categories
|
8
|
+
VALID_CATEGORIES = [
|
9
|
+
"Aerospace",
|
10
|
+
"Bioengineering",
|
11
|
+
"Communication, Networking, and Broadcast Technologies",
|
12
|
+
"Components, Circuits, Devices and Systems",
|
13
|
+
"Computing and Processing",
|
14
|
+
"Engineered Materials, Dielectrics and Plasmas",
|
15
|
+
"Engineering Profession",
|
16
|
+
"Fields, Waves and Electromagnetics",
|
17
|
+
"General Topics for Engineers",
|
18
|
+
"Geoscience",
|
19
|
+
"Nuclear Engineering",
|
20
|
+
"Photonics and Electrooptics",
|
21
|
+
"Power, Industry and Industry Applications",
|
22
|
+
"Robotics and Control Systems",
|
23
|
+
"Signal Processing and Analysis",
|
24
|
+
"Transportation"
|
25
|
+
].freeze
|
26
|
+
|
27
|
+
# List of topical categories
|
28
|
+
# @return [Array<String>] subject classifications
|
29
|
+
attribute :pubtopicalbrowse, :string, collection: true,
|
30
|
+
values: VALID_CATEGORIES
|
31
|
+
|
32
|
+
xml do
|
33
|
+
root "pubtopicalbrowseset"
|
34
|
+
map_element "pubtopicalbrowse", to: :pubtopicalbrowse
|
35
|
+
end
|
36
|
+
|
37
|
+
# def validate
|
38
|
+
# errors = super
|
39
|
+
# pubtopicalbrowse.each do |category|
|
40
|
+
# unless VALID_CATEGORIES.include?(category)
|
41
|
+
# errors << "Invalid topical browse category: #{category}"
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
# errors
|
45
|
+
# end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "publication_info"
|
4
|
+
require_relative "volume"
|
5
|
+
|
6
|
+
module Ieee
|
7
|
+
module Idams
|
8
|
+
# Represents an IEEE IDAMS publication record
|
9
|
+
class Publication < Lutaml::Model::Serializable
|
10
|
+
# Publication title
|
11
|
+
# @return [String] normalized title
|
12
|
+
attribute :title, :string
|
13
|
+
|
14
|
+
# Publication normalized title
|
15
|
+
# @return [String] normalized title
|
16
|
+
attribute :normtitle, :string
|
17
|
+
|
18
|
+
# Standards family title
|
19
|
+
# @return [String] family title for standards
|
20
|
+
attribute :standardsfamilytitle, :string
|
21
|
+
|
22
|
+
# Publication information
|
23
|
+
# @return [PublicationInfo] detailed publication metadata
|
24
|
+
attribute :publicationinfo, PublicationInfo
|
25
|
+
|
26
|
+
# Volume information
|
27
|
+
# @return [Volume] volume details
|
28
|
+
attribute :volume, Volume
|
29
|
+
|
30
|
+
xml do
|
31
|
+
root "publication"
|
32
|
+
map_element "title", to: :title, cdata: true
|
33
|
+
map_element "normtitle", to: :normtitle, cdata: true
|
34
|
+
map_element "standardsfamilytitle", to: :standardsfamilytitle
|
35
|
+
map_element "publicationinfo", to: :publicationinfo
|
36
|
+
map_element "volume", to: :volume
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ieee
|
4
|
+
module Idams
|
5
|
+
# Publication ID acronym
|
6
|
+
class PublicationAcronym < Lutaml::Model::Serializable
|
7
|
+
# Type of acronym
|
8
|
+
# @return [String]
|
9
|
+
attribute :type, :string
|
10
|
+
|
11
|
+
# Acronym value
|
12
|
+
# @return [String]
|
13
|
+
attribute :value, :string
|
14
|
+
|
15
|
+
xml do
|
16
|
+
root "acronym"
|
17
|
+
map_attribute "acronymtype", to: :type
|
18
|
+
map_content to: :value
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|