diff --git a/.rvmrc b/.rvmrc new file mode 100644 index 0000000..468f0b2 --- /dev/null +++ b/.rvmrc @@ -0,0 +1 @@ +rvm use ree@onix diff --git a/Rakefile b/Rakefile index 78e8a05..4173781 100644 --- a/Rakefile +++ b/Rakefile @@ -3,19 +3,18 @@ require "bundler" Bundler.setup require 'rake' -require 'rake/rdoctask' +require 'rdoc/task' require 'rspec/core/rake_task' - desc "Default Task" task :default => [ :spec ] -# run all rspecs desc "Run all rspec files" RSpec::Core::RakeTask.new("spec") do |t| - t.rspec_opts = ["--color", "--format progress"] + t.rspec_opts = ["-Ispec", "--color", "--format progress"] end -desc 'Generate documentation' + +desc "Generate documentation" Rake::RDocTask.new(:rdoc) do |rdoc| rdoc.rdoc_dir = 'rdoc' rdoc.title = 'ONIX' diff --git a/bin/onix_extract_codelists b/bin/onix_extract_codelists index 00088dc..abd9799 100755 --- a/bin/onix_extract_codelists +++ b/bin/onix_extract_codelists @@ -1,16 +1,41 @@ #!/usr/bin/ruby # coding: utf-8 -USAGE = "./onix_extract_codelists ONIX_BookProduct_CodeLists.xsd some_dir" +# NB: When testing locally, you can run this as: +# +# ruby -Ilib bin/onix_extract_codelists [options] xsd dir -require 'rubygems' -$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib') -require "onix" +require 'optparse' + +def parse_options + options = {} + optparse = OptionParser.new do |parser| + parser.banner = [ + "Usage: onix_extract_codelists [options] xsd_path output_dir_path", + "", + " eg: onix_extract_codelists ONIX_BookProduct_CodeLists.xsd support/codes" + ].join("\n") + + options[:format] = :tsv + parser.on("-f", "--format FMT", "Write to format (TSV or Ruby)") do |fmt| + options[:format] = fmt.downcase.to_sym + end -unless ARGV.size == 2 - puts USAGE - exit(1) + parser.on("-h", "--help", "Display this usage information") do + puts parser + exit + end + end + optparse.parse! + unless ARGV.size == 2 + puts optparse + exit(1) + end + options end -extractor = ONIX::CodeListExtractor.new(ARGV.shift) +options = parse_options + +require "onix" +extractor = ONIX::CodeListExtractor.new(ARGV.shift, options[:format]) extractor.run(ARGV.shift) diff --git a/data/product.xml b/data/product.xml index ca1db5c..00113ba 100644 --- a/data/product.xml +++ b/data/product.xml @@ -47,6 +47,13 @@ 04 19980901 1998 + + 13 + + 15 + 9781742752020 + + 08 720 diff --git a/data/sales_rights.xml b/data/sales_rights.xml new file mode 100644 index 0000000..446ceec --- /dev/null +++ b/data/sales_rights.xml @@ -0,0 +1,35 @@ + + + 365-9780194351898 + 03 + + 03 + 9780194351898 + + + + 01 + WORLD + + + + 02 + AU NZ + + + + 01 + 000 + 001 + 002 + 003 + + + + GB + + 03 + 9780194312345 + + + diff --git a/lib/onix.rb b/lib/onix.rb index 1e4ae73..59aa090 100644 --- a/lib/onix.rb +++ b/lib/onix.rb @@ -4,7 +4,6 @@ require 'cgi' require 'singleton' require 'roxml' -require 'andand' module ONIX module Version #:nodoc: @@ -15,6 +14,8 @@ module Version #:nodoc: String = [Major, Minor, Tiny].join('.') end + VERSION = ONIX::Version::String + class Formatters def self.decimal lambda do |val| @@ -51,43 +52,110 @@ def self.two_digit end end end + + def self.space_separated + lambda { |val| [val.collect(&:to_s).join(" ")] if val } + end + + def self.boolean + lambda { |val| "" if val } + end end end -# core files -# - ordering is important, classes need to be defined before any -# other class can use them -require File.join(File.dirname(__FILE__), "onix", "sender_identifier") -require File.join(File.dirname(__FILE__), "onix", "addressee_identifier") -require File.join(File.dirname(__FILE__), "onix", "header") -require File.join(File.dirname(__FILE__), "onix", "product_identifier") -require File.join(File.dirname(__FILE__), "onix", "series_identifier") -require File.join(File.dirname(__FILE__), "onix", "series") -require File.join(File.dirname(__FILE__), "onix", "title") -require File.join(File.dirname(__FILE__), "onix", "website") -require File.join(File.dirname(__FILE__), "onix", "contributor") -require File.join(File.dirname(__FILE__), "onix", "language") -require File.join(File.dirname(__FILE__), "onix", "subject") -require File.join(File.dirname(__FILE__), "onix", "audience_range") -require File.join(File.dirname(__FILE__), "onix", "imprint") -require File.join(File.dirname(__FILE__), "onix", "publisher") -require File.join(File.dirname(__FILE__), "onix", "other_text") -require File.join(File.dirname(__FILE__), "onix", "media_file") -require File.join(File.dirname(__FILE__), "onix", "sales_restriction") -require File.join(File.dirname(__FILE__), "onix", "stock") -require File.join(File.dirname(__FILE__), "onix", "price") -require File.join(File.dirname(__FILE__), "onix", "supply_detail") -require File.join(File.dirname(__FILE__), "onix", "market_representation") -require File.join(File.dirname(__FILE__), "onix", "measure") -require File.join(File.dirname(__FILE__), "onix", "product") -require File.join(File.dirname(__FILE__), "onix", "reader") -require File.join(File.dirname(__FILE__), "onix", "writer") - -# product wrappers -require File.join(File.dirname(__FILE__), "onix", "simple_product") -require File.join(File.dirname(__FILE__), "onix", "apa_product") - -# misc -require File.join(File.dirname(__FILE__), "onix", "lists") -require File.join(File.dirname(__FILE__), "onix", "normaliser") -require File.join(File.dirname(__FILE__), "onix", "code_list_extractor") + +# Ordering is important here; classes need to be defined before any +# other class can use them. +[ + # core files + "core/element", + "core/lists", + "core/code", + + # identifier mappings + "elements/identifier", + "elements/sender_identifier", + "elements/addressee_identifier", + "elements/person_name_identifier", + "elements/product_identifier", + "elements/series_identifier", + "elements/work_identifier", + "elements/agent_identifier", + "elements/conference_sponsor_identifier", + "elements/copyright_owner_identifier", + "elements/location_identifier", + "elements/sales_outlet_identifier", + "elements/supplier_identifier", + "elements/text_item_identifier", + + # other element mappings + "elements/name_base", + "elements/name", + "elements/person_date", + "elements/professional_affiliation", + "elements/product_form_feature", + "elements/product_classification", + "elements/audience", + "elements/batch_bonus", + "elements/complexity", + "elements/copyright_owner", + "elements/copyright_statement", + "elements/discount_coded", + "elements/main_subject", + "elements/market_date", + "elements/new_supplier", + "elements/on_order_detail", + "elements/page_run", + "elements/prize", + "elements/sales_outlet", + "elements/stock_quantity_coded", + "elements/text_item", + "elements/title", + "elements/website", + "elements/contributor", + "elements/series", + "elements/set", + "elements/conference_sponsor", + "elements/conference", + "elements/extent", + "elements/illustrations", + "elements/language", + "elements/subject", + "elements/audience_range", + "elements/imprint", + "elements/publisher", + "elements/other_text", + "elements/media_file", + "elements/sales_restriction", + "elements/sales_rights", + "elements/not_for_sale", + "elements/stock", + "elements/price", + "elements/reissue", + "elements/supply_detail", + "elements/market_representation", + "elements/measure", + "elements/bible", + "elements/religious_text_feature", + "elements/religious_text", + "elements/content_item", + "elements/product_base", + "elements/contained_item", + "elements/related_product", + "elements/product", + + # more core files + "core/header", + "core/reader", + "core/writer", + + # product wrappers + "wrappers/simple_product", + "wrappers/apa_product", + + # utilities + "utils/normaliser", + "utils/code_list_extractor" +].each do |req| + require File.join("onix", req) +end diff --git a/lib/onix/addressee_identifier.rb b/lib/onix/addressee_identifier.rb deleted file mode 100644 index 71b89e8..0000000 --- a/lib/onix/addressee_identifier.rb +++ /dev/null @@ -1,11 +0,0 @@ -# coding: utf-8 - -module ONIX - class AddresseeIdentifier - include ROXML - - xml_accessor :addressee_id_type, :from => "AddresseeIDType", :as => Fixnum # should be a 2 digit num - xml_accessor :id_type_name, :from => "IDTypeName" - xml_accessor :id_value, :from => "IDValue" - end -end diff --git a/lib/onix/audience_range.rb b/lib/onix/audience_range.rb deleted file mode 100644 index 4ea5860..0000000 --- a/lib/onix/audience_range.rb +++ /dev/null @@ -1,25 +0,0 @@ -# coding: utf-8 - -module ONIX - class AudienceRange - include ROXML - - xml_name "AudienceRange" - - xml_accessor :audience_range_qualifier, :from => "AudienceRangeQualifier", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :audience_range_precisions, :from => "AudienceRangePrecision", :as => [Fixnum], :to_xml => [ONIX::Formatters.two_digit] # TODO: two_digit isn't working on the array items - xml_accessor :audience_range_values, :from => "AudienceRangeValue", :as => [Integer] - - # TODO: element AudienceRange: validity error : - # Element AudienceRange content does not follow the DTD, expecting - # (AudienceRangeQualifier , AudienceRangePrecision , AudienceRangeValue , - # (AudienceRangePrecision , AudienceRangeValue)?), - # got - # (AudienceRangeQualifier AudienceRangePrecision AudienceRangePrecision - # AudienceRangeValue AudienceRangeValue ) - def initialize - self.audience_range_precisions = [] - self.audience_range_values = [] - end - end -end diff --git a/lib/onix/code_list_extractor.rb b/lib/onix/code_list_extractor.rb deleted file mode 100644 index 4faa041..0000000 --- a/lib/onix/code_list_extractor.rb +++ /dev/null @@ -1,69 +0,0 @@ -# coding: utf-8 - -module ONIX - - # A utility class that processes the code list XSD from the ONIX spec and - # creates a set of TSV files. The generated files are used by this library - # to make hashes of the code lists available to users. - # - class CodeListExtractor - - # Creates a new extractor. Expects the path to a copy of the code lists - # file from the spec (called ONIX_BookProduct_CodeLists.xsd on my system). - # - def initialize(filename) - raise ArgumentError, "#{filename} not found" unless File.file?(filename) - - @filename = filename - end - - # generate a set of TSV files in the given directory. Creates the directory - # if it doesn't exist and will overwrite existing files. - # - def run(dir) - FileUtils.mkdir_p(dir) unless File.directory?(dir) - - each_list do |number, data| - #puts number - file = number.to_s.rjust(3, "0") + ".tsv" - path = File.join(dir, file) - File.open(path, "w") { |f| f.write data} - end - end - - private - - def data - @data ||= File.open(@filename) { |f| f.read } - end - - def document - @document ||= Nokogiri::XML(data) - @document.remove_namespaces! if @document.namespaces.size > 0 - @document - end - - def each_list(&block) - document.xpath("//simpleType").each do |node| - list_name = node.xpath("./@name").first.value - list_number = list_name[/List(\d+)/,1].to_i - if list_number > 0 - yield list_number, list_data(list_number) - end - end - end - - def list_data(num) - str = "" - nodes = document.xpath("//simpleType[@name='List#{num}']/restriction/enumeration") - nodes.each do |node| - code = node.xpath("./@value").first.value - desc = node.xpath("./annotation/documentation").first.text - ldesc = node.xpath("./annotation/documentation").last.text - str += "#{code}\t#{desc}\t#{ldesc}\n" - end - str - end - - end -end diff --git a/lib/onix/codelists/001.rb b/lib/onix/codelists/001.rb new file mode 100644 index 0000000..c5c2250 --- /dev/null +++ b/lib/onix/codelists/001.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_1 = { + "01" => "Early notification", + "02" => "Advance notification (confirmed)", + "03" => "Notification confirmed on publication", + "04" => "Update (partial)", + "05" => "Delete", + "08" => "Notice of sale", + "09" => "Notice of acquisition", + "12" => "Update - SupplyDetail only", + "13" => "Update - MarketRepresentation only", + "14" => "Update - SupplyDetail and MarketRepresentation" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/002.rb b/lib/onix/codelists/002.rb new file mode 100644 index 0000000..cc607b4 --- /dev/null +++ b/lib/onix/codelists/002.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_2 = { + "00" => "Single-item retail product", + "10" => "Multiple-item retail product", + "11" => "Multiple-item collection, retailed as separate parts", + "20" => "Trade-only product", + "30" => "Multiple-item trade pack" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/003.rb b/lib/onix/codelists/003.rb new file mode 100644 index 0000000..197fb14 --- /dev/null +++ b/lib/onix/codelists/003.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_3 = { + "00" => "Unspecified", + "01" => "Publisher", + "02" => "Publisher's distributor", + "03" => "Wholesaler", + "04" => "Bibliographic agency", + "05" => "Library bookseller", + "06" => "Publisher's sales agent" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/005.rb b/lib/onix/codelists/005.rb new file mode 100644 index 0000000..6eea85c --- /dev/null +++ b/lib/onix/codelists/005.rb @@ -0,0 +1,20 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_5 = { + "01" => "Proprietary", + "02" => "ISBN-10", + "03" => "GTIN-13", + "04" => "UPC", + "05" => "ISMN-10", + "06" => "DOI", + "13" => "LCCN", + "14" => "GTIN-14", + "15" => "ISBN-13", + "17" => "Legal deposit number", + "22" => "URN", + "23" => "OCLC number", + "24" => "Co-publisher's ISBN-13", + "25" => "ISMN-13" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/006.rb b/lib/onix/codelists/006.rb new file mode 100644 index 0000000..c8dea4e --- /dev/null +++ b/lib/onix/codelists/006.rb @@ -0,0 +1,82 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_6 = { + "00" => "Not barcoded", + "01" => "Barcoded, scheme unspecified", + "02" => "EAN13", + "03" => "EAN13+5 (US dollar price encoded)", + "04" => "UPC12", + "05" => "UPC12+5", + "06" => "UPC12 (item-specific)", + "07" => "UPC12+5 (item-specific)", + "08" => "UPC12 (price-point)", + "09" => "UPC12+5 (price-point)", + "10" => "EAN13 on cover 4", + "11" => "EAN13+5 on cover 4 (US dollar price encoded)", + "12" => "UPC12 (item-specific) on cover 4", + "13" => "UPC12+5 (item-specific) on cover 4", + "14" => "UPC12 (price-point) on cover 4", + "15" => "UPC12+5 (price-point) on cover 4", + "16" => "EAN13 on cover 3", + "17" => "EAN13+5 on cover 3 (US dollar price encoded)", + "18" => "UPC12 (item-specific) on cover 3", + "19" => "UPC12+5 (item-specific) on cover 3", + "20" => "UPC12 (price-point) on cover 3", + "21" => "UPC12+5 (price-point) on cover 3", + "22" => "EAN13 on cover 2", + "23" => "EAN13+5 on cover 2 (US dollar price encoded)", + "24" => "UPC12 (item-specific) on cover 2", + "25" => "UPC12+5 (item-specific) on cover 2", + "26" => "UPC12 (price-point) on cover 2", + "27" => "UPC12+5 (price-point) on cover 2", + "28" => "EAN13 on box", + "29" => "EAN13+5 on box (US dollar price encoded)", + "30" => "UPC12 (item-specific) on box", + "31" => "UPC12+5 (item-specific) on box", + "32" => "UPC12 (price-point) on box", + "33" => "UPC12+5 (price-point) on box", + "34" => "EAN13 on tag", + "35" => "EAN13+5 on tag (US dollar price encoded)", + "36" => "UPC12 (item-specific) on tag", + "37" => "UPC12+5 (item-specific) on tag", + "38" => "UPC12 (price-point) on tag", + "39" => "UPC12+5 (price-point) on tag", + "40" => "EAN13 on bottom", + "41" => "EAN13+5 on bottom (US dollar price encoded)", + "42" => "UPC12 (item-specific) on bottom", + "43" => "UPC12+5 (item-specific) on bottom", + "44" => "UPC12 (price-point) on bottom", + "45" => "UPC12+5 (price-point) on bottom", + "46" => "EAN13 on back", + "47" => "EAN13+5 on back (US dollar price encoded)", + "48" => "UPC12 (item-specific) on back", + "49" => "UPC12+5 (item-specific) on back", + "50" => "UPC12 (price-point) on back", + "51" => "UPC12+5 (price-point) on back", + "52" => "EAN13+5 on outer sleeve/back (US dollar price encoded)", + "53" => "EAN13+5 on outer sleeve/back", + "54" => "UPC12 (item-specific) on outer sleeve/back", + "55" => "UPC12+5 (item-specific) on outer sleeve/back", + "56" => "UPC12 (price-point) on outer sleeve/back", + "57" => "UPC12+5 (price-point) on outer sleeve/back", + "58" => "EAN13+5 (no price encoded)", + "59" => "EAN13+5 on cover 4 (no price encoded)", + "60" => "EAN13+5 on cover 3 (no price encoded)", + "61" => "EAN13+5 on cover 2 (no price encoded)", + "62" => "EAN13+5 on box (no price encoded)", + "63" => "EAN13+5 on tag (no price encoded)", + "64" => "EAN13+5 on bottom (no price encoded)", + "65" => "EAN13+5 on back (no price encoded)", + "66" => "EAN13+5 on outer sleeve/back (no price encoded)", + "67" => "EAN13+5 (CAN dollar price encoded)", + "68" => "EAN13+5 on cover 4 (CAN dollar price encoded)", + "69" => "EAN13+5 on cover 3 (CAN dollar price encoded)", + "70" => "EAN13+5 on cover 2 (CAN dollar price encoded)", + "71" => "EAN13+5 on box (CAN dollar price encoded)", + "72" => "EAN13+5 on tag (CAN dollar price encoded)", + "73" => "EAN13+5 on bottom (CAN dollar price encoded)", + "74" => "EAN13+5 on back (CAN dollar price encoded)", + "75" => "EAN13 on outer sleeve/back (CAN dollar price encoded)" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/007.rb b/lib/onix/codelists/007.rb new file mode 100644 index 0000000..a2768d0 --- /dev/null +++ b/lib/onix/codelists/007.rb @@ -0,0 +1,129 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_7 = { + "00" => "Undefined", + "AA" => "Audio", + "AB" => "Audio cassette", + "AC" => "CD-Audio", + "AD" => "DAT", + "AE" => "Audio disc", + "AF" => "Audio tape", + "AG" => "MiniDisc", + "AH" => "CD-Extra", + "AI" => "DVD Audio", + "AJ" => "Downloadable audio file", + "AK" => "Pre-recorded digital audio player", + "AL" => "Pre-recorded SD card", + "AZ" => "Other audio format", + "BA" => "Book", + "BB" => "Hardback", + "BC" => "Paperback / softback", + "BD" => "Loose-leaf", + "BE" => "Spiral bound", + "BF" => "Pamphlet", + "BG" => "Leather / fine binding", + "BH" => "Board book", + "BI" => "Rag book", + "BJ" => "Bath book", + "BK" => "Novelty book", + "BL" => "Slide bound", + "BM" => "Big book", + "BN" => "Part-work (fascículo)", + "BO" => "Fold-out book or chart", + "BP" => "Foam book", + "BZ" => "Other book format", + "CA" => "Sheet map", + "CB" => "Sheet map, folded", + "CC" => "Sheet map, flat", + "CD" => "Sheet map, rolled", + "CE" => "Globe", + "CZ" => "Other cartographic", + "DA" => "Digital", + "DB" => "CD-ROM", + "DC" => "CD-I", + "DD" => "DVD", + "DE" => "Game cartridge", + "DF" => "Diskette", + "DG" => "Electronic book text", + "DH" => "Online resource", + "DI" => "DVD-ROM", + "DJ" => "Secure Digital (SD) Memory Card", + "DK" => "Compact Flash Memory Card", + "DL" => "Memory Stick Memory Card", + "DM" => "USB Flash Drive", + "DN" => "Double-sided CD/DVD", + "DZ" => "Other digital", + "FA" => "Film or transparency", + "FB" => "Film", + "FC" => "Slides", + "FD" => "OHP transparencies", + "FE" => "Filmstrip", + "FF" => "Film", + "FZ" => "Other film or transparency format", + "MA" => "Microform", + "MB" => "Microfiche", + "MC" => "Microfilm", + "MZ" => "Other microform", + "PA" => "Miscellaneous print", + "PB" => "Address book", + "PC" => "Calendar", + "PD" => "Cards", + "PE" => "Copymasters", + "PF" => "Diary", + "PG" => "Frieze", + "PH" => "Kit", + "PI" => "Sheet music", + "PJ" => "Postcard book or pack", + "PK" => "Poster", + "PL" => "Record book", + "PM" => "Wallet or folder", + "PN" => "Pictures or photographs", + "PO" => "Wallchart", + "PP" => "Stickers", + "PQ" => "Plate (lámina)", + "PR" => "Notebook / blank book", + "PS" => "Organizer", + "PT" => "Bookmark", + "PZ" => "Other printed item", + "VA" => "Video", + "VB" => "Video, VHS, PAL", + "VC" => "Video, VHS, NTSC", + "VD" => "Video, Betamax, PAL", + "VE" => "Video, Betamax, NTSC", + "VF" => "Videodisc", + "VG" => "Video, VHS, SECAM", + "VH" => "Video, Betamax, SECAM", + "VI" => "DVD video", + "VJ" => "VHS video", + "VK" => "Betamax video", + "VL" => "VCD", + "VM" => "SVCD", + "VN" => "HD DVD", + "VO" => "Blu-ray", + "VP" => "UMD Video", + "VZ" => "Other video format", + "WW" => "Mixed media product", + "WX" => "Multiple copy pack", + "XA" => "Trade-only material", + "XB" => "Dumpbin – empty", + "XC" => "Dumpbin – filled", + "XD" => "Counterpack – empty", + "XE" => "Counterpack – filled", + "XF" => "Poster, promotional", + "XG" => "Shelf strip", + "XH" => "Window piece", + "XI" => "Streamer", + "XJ" => "Spinner", + "XK" => "Large book display", + "XL" => "Shrink-wrapped pack", + "XZ" => "Other point of sale", + "ZA" => "General merchandise", + "ZB" => "Doll", + "ZC" => "Soft toy", + "ZD" => "Toy", + "ZE" => "Game", + "ZF" => "T-shirt", + "ZZ" => "Other merchandise" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/008.rb b/lib/onix/codelists/008.rb new file mode 100644 index 0000000..f418fcc --- /dev/null +++ b/lib/onix/codelists/008.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_8 = { + "01" => "A-format paperback", + "02" => "B-format paperback", + "03" => "C-format paperback", + "04" => "Paper over boards", + "05" => "Cloth", + "06" => "With dust jacket", + "07" => "Reinforced binding" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/009.rb b/lib/onix/codelists/009.rb new file mode 100644 index 0000000..ef6cd58 --- /dev/null +++ b/lib/onix/codelists/009.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_9 = { + "01" => "WCO Harmonized System", + "02" => "UNSPSC", + "03" => "HMRC", + "04" => "Warenverzeichnis für die Außenhandelsstatistik", + "05" => "TARIC", + "06" => "Fondsgroep", + "07" => "Sender's product category" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/010.rb b/lib/onix/codelists/010.rb new file mode 100644 index 0000000..10cb936 --- /dev/null +++ b/lib/onix/codelists/010.rb @@ -0,0 +1,52 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_10 = { + "000" => "Epublication \"content package\"", + "001" => "HTML", + "002" => "PDF", + "003" => "PDF-Merchant", + "004" => "Adobe Ebook Reader", + "005" => "Microsoft Reader Level 1/Level 3", + "006" => "Microsoft Reader Level 5", + "007" => "NetLibrary", + "008" => "MetaText", + "009" => "MightyWords", + "010" => "eReader (AKA Palm Reader)", + "011" => "Softbook", + "012" => "RocketBook", + "013" => "Gemstar REB 1100", + "014" => "Gemstar REB 1200", + "015" => "Franklin eBookman", + "016" => "Books24x7", + "017" => "DigitalOwl", + "018" => "Handheldmed", + "019" => "WizeUp", + "020" => "TK3", + "021" => "Litraweb", + "022" => "MobiPocket", + "023" => "Open Ebook", + "024" => "Town Compass DataViewer", + "025" => "TXT", + "026" => "ExeBook", + "027" => "Sony BBeB", + "028" => "VitalSource Bookshelf", + "029" => "EPUB", + "030" => "MyiLibrary", + "031" => "Kindle", + "032" => "Google Edition", + "033" => "Vook", + "034" => "DXReader", + "035" => "EBL", + "036" => "Ebrary", + "037" => "iSilo", + "038" => "Plucker", + "039" => "VitalBook", + "040" => "Book 'app' for iOS", + "041" => "Android 'app'", + "042" => "Other 'app'", + "043" => "XPS", + "098" => "Multiple formats", + "099" => "Unspecified" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/011.rb b/lib/onix/codelists/011.rb new file mode 100644 index 0000000..fd7dcbb --- /dev/null +++ b/lib/onix/codelists/011.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_11 = { + "01" => "HTML", + "02" => "PDF", + "03" => "Microsoft Reader", + "04" => "RocketBook", + "05" => "Rich text format (RTF)", + "06" => "Open Ebook Publication Structure (OEBPS) format standard", + "07" => "XML", + "08" => "SGML", + "09" => "EXE", + "10" => "ASCII", + "11" => "MobiPocket format" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/012.rb b/lib/onix/codelists/012.rb new file mode 100644 index 0000000..3903d68 --- /dev/null +++ b/lib/onix/codelists/012.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_12 = { + "01" => "UK open market edition", + "02" => "Airport edition", + "03" => "Sonderausgabe", + "04" => "Pocket paperback", + "05" => "International edition (US)", + "06" => "Library audio edition", + "07" => "US open market edition", + "08" => "Livre scolaire, déclaré par l'éditeur", + "09" => "Livre scolaire (non spécifié)", + "10" => "Supplement to newspaper", + "11" => "Precio libre textbook" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/013.rb b/lib/onix/codelists/013.rb new file mode 100644 index 0000000..a097175 --- /dev/null +++ b/lib/onix/codelists/013.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_13 = { + "01" => "Proprietary", + "02" => "ISSN", + "03" => "German National Bibliography series ID", + "04" => "German Books in Print series ID", + "05" => "Electre series ID", + "06" => "DOI", + "22" => "URN" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/014.rb b/lib/onix/codelists/014.rb new file mode 100644 index 0000000..017e5cb --- /dev/null +++ b/lib/onix/codelists/014.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_14 = { + "00" => "Undefined", + "01" => "Sentence case", + "02" => "Title case", + "03" => "All capitals" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/015.rb b/lib/onix/codelists/015.rb new file mode 100644 index 0000000..abd9994 --- /dev/null +++ b/lib/onix/codelists/015.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_15 = { + "00" => "Undefined", + "01" => "Distinctive title (book); Cover title (serial); Title on item (serial content item or reviewed resource)", + "02" => "ISSN key title of serial", + "03" => "Title in original language", + "04" => "Title acronym or initialism", + "05" => "Abbreviated title", + "06" => "Title in other language", + "07" => "Thematic title of journal issue", + "08" => "Former title", + "10" => "Distributor's title", + "11" => "Alternative title on cover", + "12" => "Alternative title on back", + "13" => "Expanded title" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/016.rb b/lib/onix/codelists/016.rb new file mode 100644 index 0000000..a499166 --- /dev/null +++ b/lib/onix/codelists/016.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_16 = { + "01" => "Proprietary", + "02" => "ISBN-10", + "06" => "DOI", + "11" => "ISTC", + "15" => "ISBN-13", + "18" => "ISRC" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/017.rb b/lib/onix/codelists/017.rb new file mode 100644 index 0000000..af64381 --- /dev/null +++ b/lib/onix/codelists/017.rb @@ -0,0 +1,96 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_17 = { + "A01" => "By (author)", + "A02" => "With", + "A03" => "Screenplay by", + "A04" => "Libretto by", + "A05" => "Lyrics by", + "A06" => "By (composer)", + "A07" => "By (artist)", + "A08" => "By (photographer)", + "A09" => "Created by", + "A10" => "From an idea by", + "A11" => "Designed by", + "A12" => "Illustrated by", + "A13" => "Photographs by", + "A14" => "Text by", + "A15" => "Preface by", + "A16" => "Prologue by", + "A17" => "Summary by", + "A18" => "Supplement by", + "A19" => "Afterword by", + "A20" => "Notes by", + "A21" => "Commentaries by", + "A22" => "Epilogue by", + "A23" => "Foreword by", + "A24" => "Introduction by", + "A25" => "Footnotes by", + "A26" => "Memoir by", + "A27" => "Experiments by", + "A29" => "Introduction and notes by", + "A30" => "Software written by", + "A31" => "Book and lyrics by", + "A32" => "Contributions by", + "A33" => "Appendix by", + "A34" => "Index by", + "A35" => "Drawings by", + "A36" => "Cover design or artwork by", + "A37" => "Preliminary work by", + "A38" => "Original author", + "A39" => "Maps by", + "A40" => "Inked or colored by", + "A41" => "Pop-ups by", + "A42" => "Continued by", + "A43" => "Interviewer", + "A44" => "Interviewee", + "A99" => "Other primary creator", + "B01" => "Edited by", + "B02" => "Revised by", + "B03" => "Retold by", + "B04" => "Abridged by", + "B05" => "Adapted by", + "B06" => "Translated by", + "B07" => "As told by", + "B08" => "Translated with commentary by", + "B09" => "Series edited by", + "B10" => "Edited and translated by", + "B11" => "Editor-in-chief", + "B12" => "Guest editor", + "B13" => "Volume editor", + "B14" => "Editorial board member", + "B15" => "Editorial coordination by", + "B16" => "Managing editor", + "B17" => "Founded by", + "B18" => "Prepared for publication by", + "B19" => "Associate editor", + "B20" => "Consultant editor", + "B21" => "General editor", + "B22" => "Dramatized by", + "B23" => "General rapporteur", + "B24" => "Literary editor", + "B25" => "Arranged by (music)", + "B99" => "Other adaptation by", + "C01" => "Compiled by", + "C02" => "Selected by", + "C99" => "Other compilation by", + "D01" => "Producer", + "D02" => "Director", + "D03" => "Conductor", + "D99" => "Other direction by", + "E01" => "Actor", + "E02" => "Dancer", + "E03" => "Narrator", + "E04" => "Commentator", + "E05" => "Vocal soloist", + "E06" => "Instrumental soloist", + "E07" => "Read by", + "E08" => "Performed by (orchestra, band, ensemble)", + "E99" => "Performed by", + "F01" => "Filmed/photographed by", + "F99" => "Other recording by", + "Z01" => "Assisted by", + "Z99" => "Other" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/018.rb b/lib/onix/codelists/018.rb new file mode 100644 index 0000000..d5c6c94 --- /dev/null +++ b/lib/onix/codelists/018.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_18 = { + "00" => "Unspecified", + "01" => "Pseudonym", + "02" => "Authority-controlled name", + "03" => "Earlier name", + "04" => "'Real' name" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/019.rb b/lib/onix/codelists/019.rb new file mode 100644 index 0000000..cdb5281 --- /dev/null +++ b/lib/onix/codelists/019.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_19 = { + "01" => "Unknown", + "02" => "Anonymous", + "03" => "et al", + "04" => "Various authors", + "05" => "Synthesized voice - male", + "06" => "Synthesized voice - female", + "07" => "Synthesized voice - unspecified" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/020.rb b/lib/onix/codelists/020.rb new file mode 100644 index 0000000..8bc14d7 --- /dev/null +++ b/lib/onix/codelists/020.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_20 = { + + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/021.rb b/lib/onix/codelists/021.rb new file mode 100644 index 0000000..b027fa7 --- /dev/null +++ b/lib/onix/codelists/021.rb @@ -0,0 +1,39 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_21 = { + "ABR" => "Abridged", + "ADP" => "Adapted", + "ALT" => "Alternate", + "ANN" => "Annotated", + "BLL" => "Bilingual edition", + "BRL" => "Braille", + "CMB" => "Combined volume", + "CRI" => "Critical", + "CSP" => "Coursepack", + "DGO" => "Digital original", + "ENH" => "Enhanced", + "ENL" => "Enlarged", + "EXP" => "Expurgated", + "FAC" => "Facsimile", + "FST" => "Festschrift", + "ILL" => "Illustrated", + "LTE" => "Large type / large print", + "MCP" => "Microprint", + "MDT" => "Media tie-in", + "MLL" => "Multilingual edition", + "NED" => "New edition", + "NUM" => "Edition with numbered copies", + "PRB" => "Prebound edition", + "REV" => "Revised", + "SCH" => "School edition", + "SMP" => "Simplified language edition", + "SPE" => "Special edition", + "STU" => "Student edition", + "TCH" => "Teacher's edition", + "UBR" => "Unabridged", + "ULP" => "Ultra large print", + "UXP" => "Unexpurgated", + "VAR" => "Variorum" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/022.rb b/lib/onix/codelists/022.rb new file mode 100644 index 0000000..158ebc1 --- /dev/null +++ b/lib/onix/codelists/022.rb @@ -0,0 +1,15 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_22 = { + "01" => "Language of text", + "02" => "Original language of a translated text", + "03" => "Language of abstracts", + "04" => "Rights language", + "05" => "Rights-excluded language", + "06" => "Original language in a multilingual edition", + "07" => "Translated language in a multilingual edition", + "08" => "Language of audio track", + "09" => "Language of subtitles" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/023.rb b/lib/onix/codelists/023.rb new file mode 100644 index 0000000..b3b4e39 --- /dev/null +++ b/lib/onix/codelists/023.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_23 = { + "00" => "Main content page count", + "02" => "Number of words", + "03" => "Front matter page count", + "04" => "Back matter page count", + "05" => "Total numbered pages", + "06" => "Production page count", + "07" => "Absolute page count", + "08" => "Number of pages in print counterpart", + "09" => "Duration", + "10" => "Notional number of pages in digital product", + "11" => "Content page count", + "12" => "Total unnumbered insert page count", + "22" => "Filesize" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/024.rb b/lib/onix/codelists/024.rb new file mode 100644 index 0000000..85724f2 --- /dev/null +++ b/lib/onix/codelists/024.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_24 = { + "02" => "Words", + "03" => "Pages", + "04" => "Hours (integer and decimals)", + "05" => "Minutes (integer and decimals)", + "06" => "Seconds (integer only)", + "14" => "Hours HHH", + "15" => "Hours and minutes HHHMM", + "16" => "Hours minutes seconds HHHMMSS", + "17" => "Bytes", + "18" => "Kbytes", + "19" => "Mbytes" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/025.rb b/lib/onix/codelists/025.rb new file mode 100644 index 0000000..1b374ea --- /dev/null +++ b/lib/onix/codelists/025.rb @@ -0,0 +1,35 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_25 = { + "00" => "Unspecified, see description", + "01" => "Illustrations, black and white", + "02" => "Illustrations, color", + "03" => "Halftones, black and white", + "04" => "Halftones, color", + "05" => "Line drawings, black and white", + "06" => "Line drawings, color", + "07" => "Tables, black and white", + "08" => "Tables, color", + "09" => "Illustrations, unspecified", + "10" => "Halftones, unspecified", + "11" => "Tables, unspecified", + "12" => "Line drawings, unspecified", + "13" => "Halftones, duotone", + "14" => "Maps", + "15" => "Frontispiece", + "16" => "Diagrams", + "17" => "Figures", + "18" => "Charts", + "19" => "Recorded music items", + "20" => "Printed music items", + "21" => "Graphs", + "22" => "Plates, unspecified", + "23" => "Plates, black and white", + "24" => "Plates, color", + "25" => "Index", + "26" => "Bibliography", + "27" => "Inset maps", + "28" => "GPS grids" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/026.rb b/lib/onix/codelists/026.rb new file mode 100644 index 0000000..8f7b6d2 --- /dev/null +++ b/lib/onix/codelists/026.rb @@ -0,0 +1,86 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_26 = { + "01" => "Dewey", + "02" => "Abridged Dewey", + "03" => "LC classification", + "04" => "LC subject heading", + "05" => "NLM classification", + "06" => "MeSH heading", + "07" => "NAL subject heading", + "08" => "AAT", + "09" => "UDC", + "10" => "BISAC Subject Heading", + "11" => "BISAC region code", + "12" => "BIC subject category", + "13" => "BIC geographical qualifier", + "14" => "BIC language qualifier (language as subject)", + "15" => "BIC time period qualifier", + "16" => "BIC educational purpose qualifier", + "17" => "BIC reading level and special interest qualifier", + "18" => "DDC-Sachgruppen der Deutschen Nationalbibliografie", + "19" => "LC fiction genre heading", + "20" => "Keywords", + "21" => "BIC children's book marketing category", + "22" => "BISAC Merchandising Theme", + "23" => "Publisher's own category code", + "24" => "Proprietary subject scheme", + "25" => "Tabla de materias ISBN", + "26" => "Warengruppen-Systematik des deutschen Buchhandels", + "27" => "Schlagwort-Normdatei (SWD)", + "28" => "Thèmes Electre", + "29" => "CLIL", + "30" => "DNB-Sachgruppen", + "31" => "NUGI", + "32" => "NUR", + "33" => "ECPA Christian Book Category", + "34" => "SISO", + "35" => "Korean Decimal Classification (KDC)", + "36" => "DDC 22 ger", + "37" => "Bokgrupper", + "38" => "Varegrupper", + "39" => "Læreplaner", + "40" => "Nippon Decimal Classification", + "41" => "BSQ", + "42" => "ANELE Materias", + "43" => "Skolefag", + "44" => "Videregående", + "45" => "Undervisningsmateriell", + "46" => "Norsk DDK", + "47" => "Varugrupper", + "48" => "SAB", + "49" => "Läromedel", + "50" => "Förhandsbeskrivning", + "51" => "Spanish ISBN UDC subset", + "52" => "ECI subject categories", + "53" => "Soggetto CCE", + "54" => "Qualificatore geografico CCE", + "55" => "Qualificatore di lingua CCE", + "56" => "Qualificatore di periodo storico CCE", + "57" => "Qualificatore di livello scolastico CCE", + "58" => "Qualificatore di età di lettura CCE", + "59" => "VdS Bildungsmedien Fächer", + "60" => "Fagkoder", + "61" => "JEL classification", + "62" => "CSH", + "63" => "RVM", + "64" => "YSA", + "65" => "Allärs", + "66" => "YKL", + "67" => "MUSA", + "68" => "CILLA", + "69" => "Kaunokki", + "70" => "Bella", + "71" => "YSO", + "72" => "Paikkatieto ontologia", + "73" => "Suomalainen kirja-alan luokitus", + "74" => "Sears", + "75" => "BIC E4L", + "76" => "CSR", + "77" => "Suomalainen oppiaineluokitus", + "78" => "Japanese book trade C-Code", + "79" => "Japanese book trade Genre Code", + "80" => "Fiktiivisen aineiston lisäluokitus" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/027.rb b/lib/onix/codelists/027.rb new file mode 100644 index 0000000..a5b5c5a --- /dev/null +++ b/lib/onix/codelists/027.rb @@ -0,0 +1,90 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_27 = { + "01" => "Dewey", + "02" => "Abridged Dewey", + "03" => "LC classification", + "04" => "LC subject heading", + "05" => "NLM classification", + "06" => "MeSH heading", + "07" => "NAL subject heading", + "08" => "AAT", + "09" => "UDC", + "10" => "BISAC Subject Heading", + "11" => "BISAC region code", + "12" => "BIC subject category", + "13" => "BIC geographical qualifier", + "14" => "BIC language qualifier (language as subject)", + "15" => "BIC time period qualifier", + "16" => "BIC educational purpose qualifier", + "17" => "BIC reading level and special interest qualifier", + "18" => "DDC-Sachgruppen der Deutschen Nationalbibliografie", + "19" => "LC fiction genre heading", + "20" => "Keywords", + "21" => "BIC children's book marketing category", + "22" => "BISAC Merchandising Theme", + "23" => "Publisher's own category code", + "24" => "Proprietary subject scheme", + "25" => "Tabla de materias ISBN", + "26" => "Warengruppen-Systematik des deutschen Buchhandels", + "27" => "Schlagwort-Normdatei (SWD)", + "28" => "Thèmes Electre", + "29" => "CLIL", + "30" => "DNB-Sachgruppen", + "31" => "NUGI", + "32" => "NUR", + "33" => "ECPA Christian Book Category", + "34" => "SISO", + "35" => "Korean Decimal Classification (KDC)", + "36" => "DDC 22 ger", + "37" => "Bokgrupper", + "38" => "Varegrupper", + "39" => "Læreplaner", + "40" => "Nippon Decimal Classification", + "41" => "BSQ", + "42" => "ANELE Materias", + "43" => "Skolefag", + "44" => "Videregående", + "45" => "Undervisningsmateriell", + "46" => "Norsk DDK", + "47" => "Varugrupper", + "48" => "SAB", + "49" => "Läromedel", + "50" => "Förhandsbeskrivning", + "51" => "Spanish ISBN UDC subset", + "52" => "ECI subject categories", + "53" => "Soggetto CCE", + "54" => "Qualificatore geografico CCE", + "55" => "Qualificatore di lingua CCE", + "56" => "Qualificatore di periodo storico CCE", + "57" => "Qualificatore di livello scolastico CCE", + "58" => "Qualificatore di età di lettura CCE", + "59" => "VdS Bildungsmedien Fächer", + "60" => "Fagkoder", + "61" => "JEL classification", + "62" => "CSH", + "63" => "RVM", + "64" => "YSA", + "65" => "Allärs", + "66" => "YKL", + "67" => "MUSA", + "68" => "CILLA", + "69" => "Kaunokki", + "70" => "Bella", + "71" => "YSO", + "72" => "Paikkatieto ontologia", + "73" => "Suomalainen kirja-alan luokitus", + "74" => "Sears", + "75" => "BIC E4L", + "76" => "CSR", + "77" => "Suomalainen oppiaineluokitus", + "78" => "Japanese book trade C-Code", + "79" => "Japanese book trade Genre Code", + "80" => "Fiktiivisen aineiston lisäluokitus", + "81" => "Arabic Subject heading scheme", + "82" => "Arabized BIC subject category", + "83" => "Arabized LC subject headings", + "84" => "Bibliotheca Alexandrina Subject Headings" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/028.rb b/lib/onix/codelists/028.rb new file mode 100644 index 0000000..9f4baa4 --- /dev/null +++ b/lib/onix/codelists/028.rb @@ -0,0 +1,14 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_28 = { + "01" => "General/trade", + "02" => "Children/juvenile", + "03" => "Young adult", + "04" => "Primary and secondary/elementary and high school", + "05" => "College/higher education", + "06" => "Professional and scholarly", + "07" => "ELT/ESL", + "08" => "Adult education" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/029.rb b/lib/onix/codelists/029.rb new file mode 100644 index 0000000..58aeffe --- /dev/null +++ b/lib/onix/codelists/029.rb @@ -0,0 +1,25 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_29 = { + "01" => "ONIX audience codes", + "02" => "Proprietary", + "03" => "MPAA rating", + "04" => "BBFC rating", + "05" => "FSK rating", + "06" => "BTLF audience code", + "07" => "Electre audience code", + "08" => "ANELE Tipo", + "09" => "AVI", + "10" => "USK rating", + "11" => "AWS", + "12" => "Schulform", + "13" => "Bundesland", + "14" => "Ausbildungsberuf", + "15" => "Suomalainen kouluasteluokitus", + "16" => "CBG age guidance", + "17" => "Nielsen Book audience code", + "18" => "AVI (revised)", + "19" => "Lexile measure" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/030.rb b/lib/onix/codelists/030.rb new file mode 100644 index 0000000..eb3787c --- /dev/null +++ b/lib/onix/codelists/030.rb @@ -0,0 +1,22 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_30 = { + "11" => "US school grade range", + "12" => "UK school grade", + "15" => "Reading speed, words per minute", + "16" => "Interest age, months", + "17" => "Interest age, years", + "18" => "Reading age, years", + "19" => "Spanish school grade", + "20" => "Skoletrinn", + "21" => "Nivå", + "22" => "Italian school grade", + "23" => "Schulform", + "24" => "Bundesland", + "25" => "Ausbildungsberuf", + "26" => "Canadian school grade range", + "27" => "Finnish school grade range", + "28" => "Finnish Upper secondary school course" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/031.rb b/lib/onix/codelists/031.rb new file mode 100644 index 0000000..afcdd7b --- /dev/null +++ b/lib/onix/codelists/031.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_31 = { + "01" => "Exact", + "03" => "From", + "04" => "To" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/032.rb b/lib/onix/codelists/032.rb new file mode 100644 index 0000000..cfc0723 --- /dev/null +++ b/lib/onix/codelists/032.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_32 = { + "01" => "Lexile code", + "02" => "Lexile number" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/033.rb b/lib/onix/codelists/033.rb new file mode 100644 index 0000000..4e01c71 --- /dev/null +++ b/lib/onix/codelists/033.rb @@ -0,0 +1,43 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_33 = { + "01" => "Main description", + "02" => "Short description/annotation", + "03" => "Long description", + "04" => "Table of contents", + "05" => "Review quote, restricted length", + "06" => "Quote from review of previous edition", + "07" => "Review text", + "08" => "Review quote", + "09" => "Promotional \"headline\"", + "10" => "Previous review quote", + "11" => "Author comments", + "12" => "Description for reader", + "13" => "Biographical note", + "14" => "Description for Reading Group Guide", + "15" => "Discussion question for Reading Group Guide", + "16" => "Competing titles", + "17" => "Flap copy", + "18" => "Back cover copy", + "19" => "Feature", + "20" => "New feature", + "21" => "Publisher's notice", + "23" => "Excerpt from book", + "24" => "First chapter", + "25" => "Description for sales people", + "26" => "Description for press or other media", + "27" => "Description for subsidiary rights department", + "28" => "Description for teachers/educators", + "30" => "Unpublished endorsement", + "31" => "Description for bookstore", + "32" => "Description for library", + "33" => "Introduction or preface", + "34" => "Full text", + "35" => "Promotional text", + "40" => "Author interview / QandA", + "41" => "Reading Group Guide", + "42" => "Commentary / discussion", + "99" => "Country of final manufacture" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/034.rb b/lib/onix/codelists/034.rb new file mode 100644 index 0000000..0109220 --- /dev/null +++ b/lib/onix/codelists/034.rb @@ -0,0 +1,21 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_34 = { + "00" => "ASCII text", + "01" => "SGML", + "02" => "HTML", + "03" => "XML", + "04" => "PDF", + "05" => "XHTML", + "06" => "Default text format", + "07" => "Basic ASCII text", + "08" => "PDF", + "09" => "Microsoft rich text format (RTF)", + "10" => "Microsoft Word binary format (DOC)", + "11" => "ECMA 376 WordprocessingML", + "12" => "ISO 26300 ODF", + "13" => "Corel Wordperfect binary format (DOC)", + "14" => "EPUB" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/035.rb b/lib/onix/codelists/035.rb new file mode 100644 index 0000000..d117147 --- /dev/null +++ b/lib/onix/codelists/035.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_35 = { + "01" => "URL", + "02" => "DOI", + "03" => "PURL", + "04" => "URN", + "05" => "FTP address", + "06" => "filename" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/036.rb b/lib/onix/codelists/036.rb new file mode 100644 index 0000000..c03bbb0 --- /dev/null +++ b/lib/onix/codelists/036.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_36 = { + "02" => "GIF", + "03" => "JPEG", + "05" => "TIF" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/037.rb b/lib/onix/codelists/037.rb new file mode 100644 index 0000000..8291381 --- /dev/null +++ b/lib/onix/codelists/037.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_37 = { + "01" => "URL", + "02" => "DOI", + "03" => "PURL", + "04" => "URN", + "05" => "FTP address", + "06" => "filename" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/038.rb b/lib/onix/codelists/038.rb new file mode 100644 index 0000000..922f1ed --- /dev/null +++ b/lib/onix/codelists/038.rb @@ -0,0 +1,43 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_38 = { + "01" => "Whole product", + "02" => "Application: software demo", + "04" => "Image: front cover", + "06" => "Image: front cover, high quality", + "07" => "Image: front cover thumbnail", + "08" => "Image: contributor(s)", + "10" => "Image: for series", + "11" => "Image: series logo", + "12" => "Image: product logo", + "17" => "Image: publisher logo", + "18" => "Image: imprint logo", + "22" => "Image: table of contents", + "23" => "Image: sample content", + "24" => "Image: back cover", + "25" => "Image: back cover, high quality", + "26" => "Image: back cover thumbnail", + "27" => "Image: other cover material", + "28" => "Image: promotional material", + "29" => "Video segment: unspecified", + "30" => "Audio segment: unspecified", + "31" => "Video: author presentation / commentary", + "32" => "Video: author interview", + "33" => "Video: author reading", + "34" => "Video: cover material", + "35" => "Video: sample content", + "36" => "Video: promotional material", + "37" => "Video: review", + "38" => "Video: other commentary / discussion", + "41" => "Audio: author presentation / commentary", + "42" => "Audio: author interview", + "43" => "Audio: author reading", + "44" => "Audio: sample content", + "45" => "Audio: promotional material", + "46" => "Audio: review", + "47" => "Audio: other commentary / discussion", + "51" => "Application: sample content", + "52" => "Application: promotional material" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/039.rb b/lib/onix/codelists/039.rb new file mode 100644 index 0000000..463e65b --- /dev/null +++ b/lib/onix/codelists/039.rb @@ -0,0 +1,14 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_39 = { + "02" => "GIF", + "03" => "JPEG", + "04" => "PDF", + "05" => "TIF", + "06" => "RealAudio 28.8", + "07" => "MP3", + "08" => "MPEG-4", + "09" => "PNG" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/040.rb b/lib/onix/codelists/040.rb new file mode 100644 index 0000000..5c99953 --- /dev/null +++ b/lib/onix/codelists/040.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_40 = { + "01" => "URL", + "02" => "DOI", + "03" => "PURL", + "04" => "URN", + "05" => "FTP address", + "06" => "filename" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/041.rb b/lib/onix/codelists/041.rb new file mode 100644 index 0000000..dbff683 --- /dev/null +++ b/lib/onix/codelists/041.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_41 = { + "01" => "Winner", + "02" => "Runner-up", + "03" => "Commended", + "04" => "Short-listed", + "05" => "Long-listed", + "06" => "Joint winner" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/042.rb b/lib/onix/codelists/042.rb new file mode 100644 index 0000000..bce7e41 --- /dev/null +++ b/lib/onix/codelists/042.rb @@ -0,0 +1,22 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_42 = { + "01" => "Textual work", + "02" => "Front matter", + "03" => "Body matter", + "04" => "Back matter", + "10" => "Serial item, miscellaneous or unspecified", + "11" => "Research article", + "12" => "Review article", + "13" => "Letter", + "14" => "Short communication", + "15" => "Erratum", + "16" => "Abstract", + "17" => "Book review (or review of other publication)", + "18" => "Editorial", + "19" => "Product review", + "20" => "Index", + "21" => "Obituary" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/043.rb b/lib/onix/codelists/043.rb new file mode 100644 index 0000000..289697a --- /dev/null +++ b/lib/onix/codelists/043.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_43 = { + "01" => "Proprietary", + "03" => "GTIN-13", + "06" => "DOI", + "09" => "PII", + "10" => "SICI", + "15" => "ISBN-13" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/044.rb b/lib/onix/codelists/044.rb new file mode 100644 index 0000000..b946912 --- /dev/null +++ b/lib/onix/codelists/044.rb @@ -0,0 +1,22 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_44 = { + "01" => "Proprietary", + "02" => "Proprietary", + "03" => "DNB publisher identifier", + "04" => "Börsenverein Verkehrsnummer", + "05" => "German ISBN Agency publisher identifier", + "06" => "GLN", + "07" => "SAN", + "10" => "Centraal Boekhuis Relatie ID", + "13" => "Fondscode Boekenbank", + "15" => "Y-tunnus", + "16" => "ISNI", + "17" => "PND", + "18" => "LCCN", + "19" => "Japanese Publisher identifier", + "20" => "GKD", + "21" => "ORCID" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/045.rb b/lib/onix/codelists/045.rb new file mode 100644 index 0000000..094089b --- /dev/null +++ b/lib/onix/codelists/045.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_45 = { + "01" => "Publisher", + "02" => "Co-publisher", + "03" => "Sponsor", + "04" => "Publisher of original-language version", + "05" => "Host/distributor of electronic content", + "06" => "Published for/on behalf of", + "07" => "Published in association with", + "08" => "Published on behalf of", + "09" => "New or acquiring publisher", + "10" => "Publishing group", + "11" => "Publisher of facsimile original", + "12" => "Repackager of prebound edition", + "13" => "Former publisher" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/046.rb b/lib/onix/codelists/046.rb new file mode 100644 index 0000000..69eacaf --- /dev/null +++ b/lib/onix/codelists/046.rb @@ -0,0 +1,15 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_46 = { + "00" => "Sales rights unknown or unstated for any reason", + "01" => "For unrestricted sale with exclusive rights in the specified countries or territories", + "02" => "For unrestricted sale with non-exclusive rights in the specified countries or territories", + "03" => "Not for sale in the specified countries or territories (reason unspecified)", + "04" => "Not for sale in the specified countries (but publisher holds exclusive rights in those countries or territories)", + "05" => "Not for sale in the specified countries (publisher holds non-exclusive rights in those countries or territories)", + "06" => "Not for sale in the specified countries (because publisher does not hold rights in those countries or territories)", + "07" => "For sale with exclusive rights in the specified countries or territories (sales restriction applies)", + "08" => "For sale with non-exclusive rights in the specified countries or territories (sales restriction applies)" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/047.rb b/lib/onix/codelists/047.rb new file mode 100644 index 0000000..379cdc7 --- /dev/null +++ b/lib/onix/codelists/047.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_47 = { + "000" => "World", + "001" => "World except territories specified elsewhere in rights statements", + "002" => "UK airports", + "003" => "UK 'open market'" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/048.rb b/lib/onix/codelists/048.rb new file mode 100644 index 0000000..420540c --- /dev/null +++ b/lib/onix/codelists/048.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_48 = { + "01" => "Height", + "02" => "Width", + "03" => "Thickness", + "04" => "Page trim height", + "05" => "Page trim width", + "08" => "Unit weight", + "09" => "Diameter (sphere)", + "10" => "Unfolded/unrolled sheet height", + "11" => "Unfolded/unrolled sheet width", + "12" => "Diameter (tube or cylinder)", + "13" => "Rolled sheet package side measure" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/049.rb b/lib/onix/codelists/049.rb new file mode 100644 index 0000000..76f83ab --- /dev/null +++ b/lib/onix/codelists/049.rb @@ -0,0 +1,91 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_49 = { + "AU-CT" => "Australian Capital Territory", + "AU-NS" => "New South Wales", + "AU-NT" => "Northern Territory", + "AU-QL" => "Queensland", + "AU-SA" => "South Australia", + "AU-TS" => "Tasmania", + "AU-VI" => "Victoria", + "AU-WA" => "Western Australia", + "CA-AB" => "Alberta", + "CA-BC" => "British Columbia", + "CA-MB" => "Manitoba", + "CA-NB" => "New Brunswick", + "CA-NL" => "Newfoundland and Labrador", + "CA-NS" => "Nova Scotia", + "CA-NT" => "Northwest Territories", + "CA-NU" => "Nunavut", + "CA-ON" => "Ontario", + "CA-PE" => "Prince Edward Island", + "CA-QC" => "Quebec", + "CA-SK" => "Saskatchewan", + "CA-YT" => "Yukon Territory", + "ES-CN" => "Canary Islands", + "GB-AIR" => "UK airside", + "GB-APS" => "UK airports", + "GB-CHA" => "Channel Islands", + "GB-ENG" => "England", + "GB-EWS" => "England, Wales, Scotland", + "GB-IOM" => "Isle of Man", + "GB-NIR" => "Northern Ireland", + "GB-SCT" => "Scotland", + "GB-WLS" => "Wales", + "US-AK" => "Alaska", + "US-AL" => "Alabama", + "US-AR" => "Arkansas", + "US-AZ" => "Arizona", + "US-CA" => "California", + "US-CO" => "Colorado", + "US-CT" => "Connecticut", + "US-DC" => "District of Columbia", + "US-DE" => "Delaware", + "US-FL" => "Florida", + "US-GA" => "Georgia", + "US-HI" => "Hawaii", + "US-IA" => "Iowa", + "US-ID" => "Idaho", + "US-IL" => "Illinois", + "US-IN" => "Indiana", + "US-KS" => "Kansas", + "US-KY" => "Kentucky", + "US-LA" => "Louisiana", + "US-MA" => "Massachusetts", + "US-MD" => "Maryland", + "US-ME" => "Maine", + "US-MI" => "Michigan", + "US-MN" => "Minnesota", + "US-MO" => "Missouri", + "US-MS" => "Mississippi", + "US-MT" => "Montana", + "US-NC" => "North Carolina", + "US-ND" => "North Dakota", + "US-NE" => "Nebraska", + "US-NH" => "New Hampshire", + "US-NJ" => "New Jersey", + "US-NM" => "New Mexico", + "US-NV" => "Nevada", + "US-NY" => "New York", + "US-OH" => "Ohio", + "US-OK" => "Oklahoma", + "US-OR" => "Oregon", + "US-PA" => "Pennsylvania", + "US-RI" => "Rhode Island", + "US-SC" => "South Carolina", + "US-SD" => "South Dakota", + "US-TN" => "Tennessee", + "US-TX" => "Texas", + "US-UT" => "Utah", + "US-VA" => "Virginia", + "US-VT" => "Vermont", + "US-WA" => "Washington", + "US-WI" => "Wisconsin", + "US-WV" => "West Virginia", + "US-WY" => "Wyoming", + "ECZ" => "Eurozone", + "ROW" => "Rest of world", + "WORLD" => "World" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/050.rb b/lib/onix/codelists/050.rb new file mode 100644 index 0000000..d74341a --- /dev/null +++ b/lib/onix/codelists/050.rb @@ -0,0 +1,14 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_50 = { + "cm" => "Centimeters", + "gr" => "Grams", + "in" => "Inches (US)", + "kg" => "Kilograms", + "lb" => "Pounds (US)", + "mm" => "Millimeters", + "oz" => "Ounces (US)", + "px" => "Pixels" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/051.rb b/lib/onix/codelists/051.rb new file mode 100644 index 0000000..a8678c4 --- /dev/null +++ b/lib/onix/codelists/051.rb @@ -0,0 +1,36 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_51 = { + "00" => "Unspecified", + "01" => "Includes", + "02" => "Is part of", + "03" => "Replaces", + "05" => "Replaced by", + "06" => "Alternative format", + "07" => "Has ancillary product", + "08" => "Is ancillary to", + "09" => "Is remaindered as", + "10" => "Is remainder of", + "11" => "Is other-language version of", + "12" => "Publisher's suggested alternative", + "13" => "Epublication based on (print product)", + "14" => "Epublication is distributed as", + "15" => "Epublication is a rendering of", + "16" => "POD replacement for", + "17" => "Replaced by POD", + "18" => "Is special edition of", + "19" => "Has special edition", + "20" => "Is prebound edition of", + "21" => "Is original of prebound edition", + "22" => "Product by same author", + "23" => "Similar product", + "24" => "Is facsimile of", + "25" => "Is original of facsimile", + "26" => "Is license for", + "27" => "Electronic version available as", + "28" => "Enhanced version available as", + "29" => "Basic version available as", + "30" => "Product in same collection" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/052.rb b/lib/onix/codelists/052.rb new file mode 100644 index 0000000..3fb83bc --- /dev/null +++ b/lib/onix/codelists/052.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_52 = { + "004" => "UK 'open market'" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/053.rb b/lib/onix/codelists/053.rb new file mode 100644 index 0000000..849583c --- /dev/null +++ b/lib/onix/codelists/053.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_53 = { + "00" => "Proprietary", + "01" => "French book trade returns conditions code", + "02" => "BISAC Returnable Indicator code", + "03" => "UK book trade returns conditions code" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/054.rb b/lib/onix/codelists/054.rb new file mode 100644 index 0000000..3e8c65e --- /dev/null +++ b/lib/onix/codelists/054.rb @@ -0,0 +1,29 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_54 = { + "AB" => "Cancelled", + "AD" => "Available direct from publisher only", + "CS" => "Availability uncertain", + "EX" => "No longer stocked by us", + "IP" => "Available", + "MD" => "Manufactured on demand", + "NP" => "Not yet published", + "NY" => "Newly catalogued, not yet in stock", + "OF" => "Other format available", + "OI" => "Out of stock indefinitely", + "OP" => "Out of print", + "OR" => "Replaced by new edition", + "PP" => "Publication postponed indefinitely", + "RF" => "Refer to another supplier", + "RM" => "Remaindered", + "RP" => "Reprinting", + "RU" => "Reprinting, undated", + "TO" => "Special order", + "TP" => "Temporarily out of stock because publisher cannot supply", + "TU" => "Temporarily unavailable", + "UR" => "Unavailable, awaiting reissue", + "WR" => "Will be remaindered as of (date)", + "WS" => "Withdrawn from sale" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/055.rb b/lib/onix/codelists/055.rb new file mode 100644 index 0000000..91686d4 --- /dev/null +++ b/lib/onix/codelists/055.rb @@ -0,0 +1,23 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_55 = { + "00" => "YYYYMMDD", + "01" => "YYYYMM", + "02" => "YYYYWW", + "03" => "YYYYQ", + "04" => "YYYYS", + "05" => "YYYY", + "06" => "YYYYMMDDYYYYMMDD", + "07" => "YYYYMMYYYYMM", + "08" => "YYYYWWYYYYWW", + "09" => "YYYYQYYYYQ", + "10" => "YYYYSYYYYS", + "11" => "YYYYYYYY", + "12" => "Text string", + "20" => "YYYYMMDD", + "21" => "YYYYMM", + "25" => "YYYY", + "32" => "Text string" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/056.rb b/lib/onix/codelists/056.rb new file mode 100644 index 0000000..22f5a63 --- /dev/null +++ b/lib/onix/codelists/056.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_56 = { + "R" => "Restrictions apply, see note", + "X" => "Indiziert" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/057.rb b/lib/onix/codelists/057.rb new file mode 100644 index 0000000..72dbaed --- /dev/null +++ b/lib/onix/codelists/057.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_57 = { + "01" => "Free of charge", + "02" => "Price to be announced", + "03" => "Not sold separately", + "04" => "Contact supplier", + "05" => "Not sold as set" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/058.rb b/lib/onix/codelists/058.rb new file mode 100644 index 0000000..c356e75 --- /dev/null +++ b/lib/onix/codelists/058.rb @@ -0,0 +1,29 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_58 = { + "01" => "RRP excluding tax", + "02" => "RRP including tax", + "03" => "Fixed retail price excluding tax", + "04" => "Fixed retail price including tax", + "05" => "Supplier's net price excluding tax", + "06" => "Supplier's net price excluding tax: rental goods", + "07" => "Supplier's net price including tax", + "08" => "Supplier's alternative net price excluding tax", + "09" => "Supplier's alternative net price including tax", + "11" => "Special sale RRP excluding tax", + "12" => "Special sale RRP including tax", + "13" => "Special sale fixed retail price excluding tax", + "14" => "Special sale fixed retail price including tax", + "15" => "Supplier's net price for special sale excluding tax", + "21" => "Pre-publication RRP excluding tax", + "22" => "Pre-publication RRP including tax", + "23" => "Pre-publication fixed retail price excluding tax", + "24" => "Pre-publication fixed retail price including tax", + "25" => "Supplier's pre-publication net price excluding tax", + "31" => "Freight-pass-through RRP excluding tax", + "32" => "Freight-pass-through billing price excluding tax", + "41" => "Publishers retail price excluding tax", + "42" => "Publishers retail price including tax" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/059.rb b/lib/onix/codelists/059.rb new file mode 100644 index 0000000..5c47617 --- /dev/null +++ b/lib/onix/codelists/059.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_59 = { + "01" => "Member/subscriber price", + "02" => "Export price", + "03" => "Reduced price applicable when the item is purchased as part of a set (or series, or collection)", + "04" => "Voucher price", + "05" => "Consumer price", + "06" => "Corporate price", + "07" => "Reservation order price" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/060.rb b/lib/onix/codelists/060.rb new file mode 100644 index 0000000..845f498 --- /dev/null +++ b/lib/onix/codelists/060.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_60 = { + "00" => "Per copy of whole product", + "01" => "Per page for printed loose-leaf content only" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/061.rb b/lib/onix/codelists/061.rb new file mode 100644 index 0000000..ffe201d --- /dev/null +++ b/lib/onix/codelists/061.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_61 = { + "00" => "Unspecified", + "01" => "Provisional", + "02" => "Firm" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/062.rb b/lib/onix/codelists/062.rb new file mode 100644 index 0000000..b91368f --- /dev/null +++ b/lib/onix/codelists/062.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_62 = { + "H" => "Higher rate", + "P" => "Tax paid at source (Italy)", + "R" => "Lower rate", + "S" => "Standard rate", + "Z" => "Zero-rated" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/063.rb b/lib/onix/codelists/063.rb new file mode 100644 index 0000000..73a6d9c --- /dev/null +++ b/lib/onix/codelists/063.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_63 = { + + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/064.rb b/lib/onix/codelists/064.rb new file mode 100644 index 0000000..1e404e5 --- /dev/null +++ b/lib/onix/codelists/064.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_64 = { + "00" => "Unspecified", + "01" => "Cancelled", + "02" => "Forthcoming", + "03" => "Postponed indefinitely", + "04" => "Active", + "05" => "No longer our product", + "06" => "Out of stock indefinitely", + "07" => "Out of print", + "08" => "Inactive", + "09" => "Unknown", + "10" => "Remaindered", + "11" => "Withdrawn from sale", + "12" => "Recalled" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/065.rb b/lib/onix/codelists/065.rb new file mode 100644 index 0000000..68fd5b3 --- /dev/null +++ b/lib/onix/codelists/065.rb @@ -0,0 +1,34 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_65 = { + "01" => "Cancelled", + "10" => "Not yet available", + "11" => "Awaiting stock", + "12" => "Not yet available, will be POD", + "20" => "Available", + "21" => "In stock", + "22" => "To order", + "23" => "POD", + "30" => "Temporarily unavailable", + "31" => "Out of stock", + "32" => "Reprinting", + "33" => "Awaiting reissue", + "40" => "Not available (reason unspecified)", + "41" => "Not available, replaced by new product", + "42" => "Not available, other format available", + "43" => "No longer supplied by us", + "44" => "Apply direct", + "45" => "Not sold separately", + "46" => "Withdrawn from sale", + "47" => "Remaindered", + "48" => "Not available, replaced by POD", + "49" => "Recalled", + "50" => "Not sold as set", + "51" => "Not available, publisher indicates OP", + "52" => "Not available, publisher no longer sells product in this market", + "97" => "No recent update received", + "98" => "No longer receiving updates", + "99" => "Contact supplier" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/066.rb b/lib/onix/codelists/066.rb new file mode 100644 index 0000000..e470c2c --- /dev/null +++ b/lib/onix/codelists/066.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_66 = { + "Y" => "Yes, returnable, full copies only", + "N" => "No, not returnable", + "C" => "Conditional", + "S" => "Yes, returnable, stripped cover" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/067.rb b/lib/onix/codelists/067.rb new file mode 100644 index 0000000..d2e6095 --- /dev/null +++ b/lib/onix/codelists/067.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_67 = { + "01" => "Publication date", + "02" => "Embargo date" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/068.rb b/lib/onix/codelists/068.rb new file mode 100644 index 0000000..5c4f19e --- /dev/null +++ b/lib/onix/codelists/068.rb @@ -0,0 +1,22 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_68 = { + "00" => "Unspecified", + "01" => "Cancelled", + "02" => "Forthcoming", + "03" => "Postponed indefinitely", + "04" => "Active", + "05" => "No longer our product", + "06" => "Out of stock indefinitely", + "07" => "Out of print", + "08" => "Inactive", + "09" => "Unknown", + "10" => "Remaindered", + "11" => "Withdrawn from sale", + "12" => "Not available in this market", + "13" => "Active, but not sold separately", + "14" => "Active, with market restrictions", + "15" => "Recalled for reasons of consumer safety" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/069.rb b/lib/onix/codelists/069.rb new file mode 100644 index 0000000..daa2622 --- /dev/null +++ b/lib/onix/codelists/069.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_69 = { + "05" => "Exclusive sales agent", + "06" => "Non-exclusive sales agent", + "07" => "Local publisher", + "08" => "Sales agent" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/070.rb b/lib/onix/codelists/070.rb new file mode 100644 index 0000000..3e8e25f --- /dev/null +++ b/lib/onix/codelists/070.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_70 = { + "01" => "Proprietary", + "02" => "APA stock quantity code" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/071.rb b/lib/onix/codelists/071.rb new file mode 100644 index 0000000..49e8410 --- /dev/null +++ b/lib/onix/codelists/071.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_71 = { + "00" => "Unspecified - see text", + "01" => "Retailer exclusive / own brand", + "02" => "Office supplies edition", + "03" => "Internal publisher use only: do not list", + "04" => "Retailer exclusive", + "05" => "Retailer own brand", + "06" => "Library edition", + "07" => "Schools only edition", + "08" => "Indiziert", + "09" => "Not for sale to libraries" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/072.rb b/lib/onix/codelists/072.rb new file mode 100644 index 0000000..39ccb0b --- /dev/null +++ b/lib/onix/codelists/072.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_72 = { + "01" => "Habilitationsschrift", + "02" => "Dissertationsschrift", + "03" => "Staatsexamensarbeit", + "04" => "Magisterarbeit", + "05" => "Diplomarbeit", + "06" => "Bachelorarbeit", + "07" => "Masterarbeit" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/073.rb b/lib/onix/codelists/073.rb new file mode 100644 index 0000000..0759b5f --- /dev/null +++ b/lib/onix/codelists/073.rb @@ -0,0 +1,42 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_73 = { + "00" => "Unspecified, see website description", + "01" => "Publisher's corporate website", + "02" => "Publisher's website for a specified work", + "03" => "Online hosting service home page", + "04" => "Journal home page", + "05" => "Online journal 'available contents' page", + "06" => "Contributor's own website", + "07" => "Publisher's website relating to specified contributor", + "08" => "Other publisher's website relating to specified contributor", + "09" => "Third-party website relating to specified contributor", + "10" => "Contributor's own website for specified work", + "11" => "Other publisher's website relating to specified work", + "12" => "Third-party website relating to specified work", + "13" => "Contributor's own website for group or series of works", + "14" => "Publisher's website relating to group or series of works", + "15" => "Other publisher's website relating to group or series of works", + "16" => "Third-party website relating to group or series of works (eg a fan site)", + "17" => "Publisher's B2B website", + "18" => "Publisher's B2C website", + "23" => "Author blog", + "24" => "Web page for author presentation / commentary", + "25" => "Web page for author interview", + "26" => "Web page for author reading", + "27" => "Web page for cover material", + "28" => "Web page for sample content", + "29" => "Web page for full content", + "30" => "Web page for other commentary / discussion", + "31" => "Transfer-URL", + "32" => "DOI Website Link", + "33" => "Supplier's corporate website", + "34" => "Supplier's B2B website", + "35" => "Supplier's B2C website", + "36" => "Supplier's website for a specified work", + "37" => "Supplier's B2B website for a specified work", + "38" => "Supplier's B2C website for a specified work", + "39" => "Supplier's website for a group or series of works" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/074.rb b/lib/onix/codelists/074.rb new file mode 100644 index 0000000..ad05381 --- /dev/null +++ b/lib/onix/codelists/074.rb @@ -0,0 +1,495 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_74 = { + "aar" => "Afar", + "abk" => "Abkhaz", + "ace" => "Achinese", + "ach" => "Acoli", + "ada" => "Adangme", + "ady" => "Adygei", + "afa" => "Afroasiatic languages", + "afh" => "Afrihili", + "afr" => "Afrikaans", + "ain" => "Ainu", + "aka" => "Akan", + "akk" => "Akkadian", + "alb" => "Albanian", + "ale" => "Aleut", + "alg" => "Algonquian languages", + "alt" => "Southern Altai", + "amh" => "Amharic", + "ang" => "English, Old (ca. 450-1100)", + "anp" => "Angika", + "apa" => "Apache languages", + "ara" => "Arabic", + "arc" => "Official Aramaic; Imperial Aramaic (700-300 BCE)", + "arg" => "Aragonese", + "arm" => "Armenian", + "arn" => "Mapudungun; Mapuche", + "arp" => "Arapaho", + "art" => "Artificial languages", + "arw" => "Arawak", + "asm" => "Assamese", + "ast" => "Asturian; Bable; Leonese; Asturleonese", + "ath" => "Athapascan languages", + "aus" => "Australian languages", + "ava" => "Avaric", + "ave" => "Avestan", + "awa" => "Awadhi", + "aym" => "Aymara", + "aze" => "Azerbaijani", + "bad" => "Banda languages", + "bai" => "Bamileke languages", + "bak" => "Bashkir", + "bal" => "Baluchi", + "bam" => "Bambara", + "ban" => "Balinese", + "baq" => "Basque", + "bas" => "Basa", + "bat" => "Baltic languages", + "bej" => "Beja; Bedawiyet", + "bel" => "Belarusian", + "bem" => "Bemba", + "ben" => "Bengali", + "ber" => "Berber languages", + "bho" => "Bhojpuri", + "bih" => "Bihari languages", + "bik" => "Bikol", + "bin" => "Bini; Edo", + "bis" => "Bislama", + "bla" => "Siksika", + "bnt" => "Bantu languages", + "bos" => "Bosnian", + "bra" => "Braj", + "bre" => "Breton", + "btk" => "Batak languages", + "bua" => "Buriat", + "bug" => "Buginese", + "bul" => "Bulgarian", + "bur" => "Burmese", + "byn" => "Blin; Bilin", + "cad" => "Caddo", + "cai" => "Central American Indian languages", + "car" => "Galibi Carib", + "cat" => "Catalan", + "cau" => "Caucasian languages", + "ceb" => "Cebuano", + "cel" => "Celtic languages", + "cha" => "Chamorro", + "chb" => "Chibcha", + "che" => "Chechen", + "chg" => "Chagatai", + "chi" => "Chinese", + "chk" => "Chuukese (Truk)", + "chm" => "Mari", + "chn" => "Chinook jargon", + "cho" => "Choctaw", + "chp" => "Chipewyan; Dene Suline", + "chr" => "Cherokee", + "chu" => "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic", + "chv" => "Chuvash", + "chy" => "Cheyenne", + "cmc" => "Chamic languages", + "cop" => "Coptic", + "cor" => "Cornish", + "cos" => "Corsican", + "cpe" => "Creoles and pidgins, English-based", + "cpf" => "Creoles and pidgins, French-based", + "cpp" => "Creoles and pidgins, Portuguese-based", + "cre" => "Cree", + "crh" => "Crimean Turkish; Crimean Tatar", + "crp" => "Creoles and pidgins", + "csb" => "Kashubian", + "cus" => "Cushitic languages", + "cze" => "Czech", + "dak" => "Dakota", + "dan" => "Danish", + "dar" => "Dargwa", + "day" => "Land Dayak languages", + "del" => "Delaware", + "den" => "Slave (Athapascan)", + "dgr" => "Dogrib", + "din" => "Dinka", + "div" => "Divehi; Dhivehi; Maldivian", + "doi" => "Dogri", + "dra" => "Dravidian languages", + "dsb" => "Lower Sorbian", + "dua" => "Duala", + "dum" => "Dutch, Middle (ca. 1050-1350)", + "dut" => "Dutch; Flemish", + "dyu" => "Dyula", + "dzo" => "Dzongkha", + "efi" => "Efik", + "egy" => "Egyptian (Ancient)", + "eka" => "Ekajuk", + "elx" => "Elamite", + "eng" => "English", + "enm" => "English, Middle (1100-1500)", + "epo" => "Esperanto", + "est" => "Estonian", + "ewe" => "Ewe", + "ewo" => "Ewondo", + "fan" => "Fang", + "fao" => "Faroese", + "fat" => "Fanti", + "fij" => "Fijian", + "fil" => "Filipino; Pilipino", + "fin" => "Finnish", + "fiu" => "Finno-Ugrian languages", + "fon" => "Fon", + "fre" => "French", + "frm" => "French, Middle (ca. 1400-1600)", + "fro" => "French, Old (ca. 842-1400)", + "frr" => "Northern Frisian", + "frs" => "Eastern Frisian", + "fry" => "Western Frisian", + "ful" => "Fulah", + "fur" => "Friulian", + "gaa" => "Gã", + "gay" => "Gayo", + "gba" => "Gbaya", + "gem" => "Germanic languages", + "geo" => "Georgian", + "ger" => "German", + "gez" => "Ethiopic (Ge'ez)", + "gil" => "Gilbertese", + "gla" => "Scottish Gaelic", + "gle" => "Irish", + "glg" => "Galician", + "glv" => "Manx", + "gmh" => "German, Middle High (ca. 1050-1500)", + "goh" => "German, Old High (ca. 750-1050)", + "gon" => "Gondi", + "gor" => "Gorontalo", + "got" => "Gothic", + "grb" => "Grebo", + "grc" => "Greek, Ancient (to 1453)", + "gre" => "Greek, Modern (1453-)", + "grn" => "Guarani", + "gsw" => "Swiss German; Alemannic", + "guj" => "Gujarati", + "gwi" => "Gwich'in", + "hai" => "Haida", + "hat" => "Haitian French Creole", + "hau" => "Hausa", + "haw" => "Hawaiian", + "heb" => "Hebrew", + "her" => "Herero", + "hil" => "Hiligaynon", + "him" => "Himachali languages", + "hin" => "Hindi", + "hit" => "Hittite", + "hmn" => "Hmong", + "hmo" => "Hiri Motu", + "hrv" => "Croatian", + "hsb" => "Upper Sorbian", + "hun" => "Hungarian", + "hup" => "Hupa", + "iba" => "Iban", + "ibo" => "Igbo", + "ice" => "Icelandic", + "ido" => "Ido", + "iii" => "Sichuan Yi; Nuosu", + "ijo" => "Ijo languages", + "iku" => "Inuktitut", + "ile" => "Interlingue; Occidental", + "ilo" => "Iloko", + "ina" => "Interlingua (International Auxiliary Language Association)", + "inc" => "Indic languages", + "ind" => "Indonesian", + "ine" => "Indo-European languages", + "inh" => "Ingush", + "ipk" => "Inupiaq", + "ira" => "Iranian languages", + "iro" => "Iroquoian languages", + "ita" => "Italian", + "jav" => "Javanese", + "jbo" => "Lojban", + "jpn" => "Japanese", + "jpr" => "Judeo-Persian", + "jrb" => "Judeo-Arabic", + "kaa" => "Kara-Kalpak", + "kab" => "Kabyle", + "kac" => "Kachin; Jingpho", + "kal" => "Kalâtdlisut; Greenlandic", + "kam" => "Kamba", + "kan" => "Kannada", + "kar" => "Karen languages", + "kas" => "Kashmiri", + "kau" => "Kanuri", + "kaw" => "Kawi", + "kaz" => "Kazakh", + "kbd" => "Kabardian (Circassian)", + "kha" => "Khasi", + "khi" => "Khoisan languages", + "khm" => "Central Khmer", + "kho" => "Khotanese; Sakan", + "kik" => "Kikuyu; Gikuyu", + "kin" => "Kinyarwanda", + "kir" => "Kirghiz; Kyrgyz", + "kmb" => "Kimbundu", + "kok" => "Konkani", + "kom" => "Komi", + "kon" => "Kongo", + "kor" => "Korean", + "kos" => "Kusaiean (Caroline Islands)", + "kpe" => "Kpelle", + "krc" => "Karachay-Balkar", + "krl" => "Karelian", + "kro" => "Kru languages", + "kru" => "Kurukh", + "kua" => "Kuanyama", + "kum" => "Kumyk", + "kur" => "Kurdish", + "kut" => "Kutenai", + "lad" => "Ladino", + "lah" => "Lahnda", + "lam" => "Lamba", + "lao" => "Lao", + "lat" => "Latin", + "lav" => "Latvian", + "lez" => "Lezgian", + "lim" => "Limburgish", + "lin" => "Lingala", + "lit" => "Lithuanian", + "lol" => "Mongo-Nkundu", + "loz" => "Lozi", + "ltz" => "Luxembourgish; Letzeburgesch", + "lua" => "Luba-Lulua", + "lub" => "Luba-Katanga", + "lug" => "Ganda", + "lui" => "Luiseño", + "lun" => "Lunda", + "luo" => "Luo (Kenya and Tanzania)", + "lus" => "Lushai", + "mac" => "Macedonian", + "mad" => "Madurese", + "mag" => "Magahi", + "mah" => "Marshallese", + "mai" => "Maithili", + "mak" => "Makasar", + "mal" => "Malayalam", + "man" => "Mandingo", + "mao" => "Maori", + "map" => "Austronesian languages", + "mar" => "Marathi", + "mas" => "Masai", + "may" => "Malay", + "mdf" => "Moksha", + "mdr" => "Mandar", + "men" => "Mende", + "mga" => "Irish, Middle (ca. 1100-1550)", + "mic" => "Mi'kmaq; Micmac", + "min" => "Minangkabau", + "mis" => "Uncoded languages", + "mkh" => "Mon-Khmer languages", + "mlg" => "Malagasy", + "mlt" => "Maltese", + "mnc" => "Manchu", + "mni" => "Manipuri", + "mno" => "Manobo languages", + "moh" => "Mohawk", + "mol" => "Moldavian; Moldovan", + "mon" => "Mongolian", + "mos" => "Mooré; Mossi", + "mul" => "Multiple languages", + "mun" => "Munda languages", + "mus" => "Creek", + "mwl" => "Mirandese", + "mwr" => "Marwari", + "myn" => "Mayan languages", + "myv" => "Erzya", + "nah" => "Nahuatl languages", + "nai" => "North American Indian languages", + "nap" => "Neapolitan", + "nau" => "Nauruan", + "nav" => "Navajo", + "nbl" => "Ndebele, South", + "nde" => "Ndebele, North", + "ndo" => "Ndonga", + "nds" => "Low German; Low Saxon", + "nep" => "Nepali", + "new" => "Newari; Nepal Bhasa", + "nia" => "Nias", + "nic" => "Niger-Kordofanian languages", + "niu" => "Niuean", + "nno" => "Norwegian Nynorsk", + "nob" => "Norwegian Bokmål", + "nog" => "Nogai", + "non" => "Old Norse", + "nor" => "Norwegian", + "nqo" => "N'Ko", + "nso" => "Pedi; Sepedi; Northern Sotho", + "nub" => "Nubian languages", + "nwc" => "Classical Newari; Old Newari; Classical Nepal Bhasa", + "nya" => "Chichewa; Chewa; Nyanja", + "nym" => "Nyamwezi", + "nyn" => "Nyankole", + "nyo" => "Nyoro", + "nzi" => "Nzima", + "oci" => "Occitan (post 1500)", + "oji" => "Ojibwa", + "ori" => "Oriya", + "orm" => "Oromo", + "osa" => "Osage", + "oss" => "Ossetian; Ossetic", + "ota" => "Turkish, Ottoman", + "oto" => "Otomian languages", + "paa" => "Papuan languages", + "pag" => "Pangasinan", + "pal" => "Pahlavi", + "pam" => "Pampanga; Kapampangan", + "pan" => "Panjabi", + "pap" => "Papiamento", + "pau" => "Palauan", + "peo" => "Old Persian (ca. 600-400 B.C.)", + "per" => "Persian", + "phi" => "Philippine languages", + "phn" => "Phoenician", + "pli" => "Pali", + "pol" => "Polish", + "pon" => "Ponapeian", + "por" => "Portuguese", + "pra" => "Prakrit languages", + "pro" => "Provençal (to 1500);Occitan, Old (to 1500)", + "pus" => "Pushto; Pashto", + "qar" => "Aranés", + "qav" => "Valencian", + "que" => "Quechua", + "raj" => "Rajasthani", + "rap" => "Rapanui", + "rar" => "Rarotongan; Cook Islands Maori", + "roa" => "Romance languages", + "roh" => "Romansh", + "rom" => "Romany", + "rum" => "Romanian", + "run" => "Rundi", + "rup" => "Aromanian; Arumanian; Macedo-Romanian", + "rus" => "Russian", + "sad" => "Sandawe", + "sag" => "Sango", + "sah" => "Yakut", + "sai" => "South American Indian languages", + "sal" => "Salishan languages", + "sam" => "Samaritan Aramaic", + "san" => "Sanskrit", + "sas" => "Sasak", + "sat" => "Santali", + "scc" => "Serbian", + "scn" => "Sicilian", + "sco" => "Scots (lallans)", + "scr" => "Croatian", + "sel" => "Selkup", + "sem" => "Semitic languages", + "sga" => "Irish, Old (to 1100)", + "sgn" => "Sign languages", + "shn" => "Shan", + "sid" => "Sidamo", + "sin" => "Sinhala; Sinhalese", + "sio" => "Siouan languages", + "sit" => "Sino-Tibetan languages", + "sla" => "Slavic languages", + "slo" => "Slovak", + "slv" => "Slovenian", + "sma" => "Southern Sami", + "sme" => "Northern Sami", + "smi" => "Sami languages", + "smj" => "Lule Sami", + "smn" => "Inari Sami", + "smo" => "Samoan", + "sms" => "Skolt Sami", + "sna" => "Shona", + "snd" => "Sindhi", + "snk" => "Soninke", + "sog" => "Sogdian", + "som" => "Somali", + "son" => "Songhai languages", + "sot" => "Sotho; Sesotho", + "spa" => "Spanish", + "srd" => "Sardinian", + "srn" => "Sranan Tongo", + "srp" => "Serbian", + "srr" => "Serer", + "ssa" => "Nilo-Saharan languages", + "ssw" => "Swazi; Swati", + "suk" => "Sukuma", + "sun" => "Sundanese", + "sus" => "Susu", + "sux" => "Sumerian", + "swa" => "Swahili", + "swe" => "Swedish", + "syc" => "Classical Syriac", + "syr" => "Syriac", + "tah" => "Tahitian", + "tai" => "Tai languages", + "tam" => "Tamil", + "tat" => "Tatar", + "tel" => "Telugu", + "tem" => "Temne; Time", + "ter" => "Terena", + "tet" => "Tetum", + "tgk" => "Tajik", + "tgl" => "Tagalog", + "tha" => "Thai", + "tib" => "Tibetan", + "tig" => "Tigré", + "tir" => "Tigrinya", + "tiv" => "Tiv", + "tkl" => "Tokelauan", + "tlh" => "Klingon; tlhIngan-Hol", + "tli" => "Tlingit", + "tmh" => "Tamashek", + "tog" => "Tonga (Nyasa)", + "ton" => "Tongan", + "tpi" => "Tok Pisin", + "tsi" => "Tsimshian", + "tsn" => "Tswana", + "tso" => "Tsonga", + "tuk" => "Turkmen", + "tum" => "Tumbuka", + "tup" => "Tupi languages", + "tur" => "Turkish", + "tut" => "Altaic languages", + "tvl" => "Tuvaluan", + "twi" => "Twi", + "tyv" => "Tuvinian", + "udm" => "Udmurt", + "uga" => "Ugaritic", + "uig" => "Uighur; Uyghur", + "ukr" => "Ukrainian", + "umb" => "Umbundu", + "und" => "Undetermined language", + "urd" => "Urdu", + "uzb" => "Uzbek", + "vai" => "Vai", + "ven" => "Venda", + "vie" => "Vietnamese", + "vol" => "Volapük", + "vot" => "Votic", + "wak" => "Wakashan languages", + "wal" => "Wolaitta; Wolaytta", + "war" => "Waray", + "was" => "Washo", + "wel" => "Welsh", + "wen" => "Sorbian languages", + "wln" => "Walloon", + "wol" => "Wolof", + "xal" => "Kalmyk", + "xho" => "Xhosa", + "yao" => "Yao", + "yap" => "Yapese", + "yid" => "Yiddish", + "yor" => "Yoruba", + "ypk" => "Yupik languages", + "zap" => "Zapotec", + "zbl" => "Blissymbols; Blissymbolics; Bliss", + "zen" => "Zenaga", + "zha" => "Zhuang; Chuang", + "znd" => "Zande languages", + "zul" => "Zulu", + "zun" => "Zuni", + "zxx" => "No linguistic content", + "zza" => "Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/075.rb b/lib/onix/codelists/075.rb new file mode 100644 index 0000000..ba0f0f1 --- /dev/null +++ b/lib/onix/codelists/075.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_75 = { + "007" => "Date of birth", + "008" => "Date of death" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/076.rb b/lib/onix/codelists/076.rb new file mode 100644 index 0000000..413a7f7 --- /dev/null +++ b/lib/onix/codelists/076.rb @@ -0,0 +1,18 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_76 = { + "0" => "All regions", + "1" => "DVD region 1", + "2" => "DVD region 2", + "3" => "DVD region 3", + "4" => "DVD region 4", + "5" => "DVD region 5", + "6" => "DVD region 6", + "7" => "DVD region 7", + "8" => "DVD region 8", + "A" => "Blu-Ray region A", + "B" => "Blu-Ray region B", + "C" => "Blu-Ray region C" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/077.rb b/lib/onix/codelists/077.rb new file mode 100644 index 0000000..8f100cc --- /dev/null +++ b/lib/onix/codelists/077.rb @@ -0,0 +1,25 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_77 = { + "P" => "Preschool", + "K" => "Kindergarten", + "1" => "First Grade", + "2" => "Second Grade", + "3" => "Third Grade", + "4" => "Fourth Grade", + "5" => "Fifth Grade", + "6" => "Sixth Grade", + "7" => "Seventh Grade", + "8" => "Eighth Grade", + "9" => "Ninth Grade", + "10" => "Tenth Grade", + "11" => "Eleventh Grade", + "12" => "Twelfth Grade", + "13" => "College Freshman", + "14" => "College Sophomore", + "15" => "College Junior", + "16" => "College Senior", + "17" => "College Graduate Student" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/078.rb b/lib/onix/codelists/078.rb new file mode 100644 index 0000000..3ae4b8b --- /dev/null +++ b/lib/onix/codelists/078.rb @@ -0,0 +1,173 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_78 = { + "A101" => "CD standard audio format", + "A102" => "SACD super audio format", + "A103" => "MP3 format", + "A104" => "WAV format", + "A105" => "Real Audio format", + "A106" => "WMA", + "A107" => "AAC", + "A108" => "Ogg/Vorbis", + "A109" => "Audible", + "A110" => "FLAC", + "A111" => "AIFF", + "A112" => "ALAC", + "A201" => "DAISY 2: full audio with title only (no navigation)", + "A202" => "DAISY 2: full audio with navigation (no text)", + "A203" => "DAISY 2: full audio with navigation and partial text", + "A204" => "DAISY 2: full audio with navigation and full text", + "A205" => "DAISY 2: full text with navigation and partial audio", + "A206" => "DAISY 2: full text with navigation and no audio", + "A207" => "DAISY 3: full audio with title only (no navigation)", + "A208" => "DAISY 3: full audio with navigation (no text)", + "A209" => "DAISY 3: full audio with navigation and partial text", + "A210" => "DAISY 3: full audio with navigation and full text", + "A211" => "DAISY 3: full text with navigation and some audio", + "A212" => "DAISY 3: full text with navigation (no audio)", + "B101" => "Mass market (rack) paperback", + "B102" => "Trade paperback (US)", + "B103" => "Digest format paperback", + "B104" => "A-format paperback", + "B105" => "B-format paperback", + "B106" => "Trade paperback (UK)", + "B107" => "Tall rack paperback (US)", + "B108" => "A5: Tankobon", + "B109" => "B5: Tankobon", + "B110" => "B6: Tankobon", + "B111" => "A6: Bunko", + "B112" => "B40-dori: Shinsho", + "B113" => "Pocket (Sweden)", + "B114" => "Storpocket (Sweden)", + "B115" => "Kartonnage (Sweden)", + "B116" => "Flexband (Sweden)", + "B117" => "Mook", + "B118" => "Dwarsligger", + "B119" => "46 size", + "B120" => "46-Henkei size", + "B121" => "A4", + "B122" => "A4-Henkei size", + "B123" => "A5-Henkei size", + "B124" => "B5-Henkei size", + "B125" => "B6-Henkei size", + "B126" => "AB size", + "B127" => "B7 size", + "B128" => "Kiku size", + "B129" => "Kiku-Henkei size", + "B201" => "Coloring / join-the-dot book", + "B202" => "Lift-the-flap book", + "B203" => "Fuzzy book", + "B204" => "Miniature book", + "B205" => "Moving picture / flicker book", + "B206" => "Pop-up book", + "B207" => "Scented / 'smelly' book", + "B208" => "Sound story / 'noisy' book", + "B209" => "Sticker book", + "B210" => "Touch-and-feel book", + "B211" => "Toy / die-cut book", + "B212" => "Die-cut book", + "B213" => "Book-as-toy", + "B214" => "Soft-to-touch book", + "B215" => "Fuzzy-felt book", + "B221" => "Picture book", + "B222" => "'Carousel' book", + "B301" => "Loose leaf - sheets and binder", + "B302" => "Loose leaf - binder only", + "B303" => "Loose leaf - sheets only", + "B304" => "Sewn", + "B305" => "Unsewn / adhesive bound", + "B306" => "Library binding", + "B307" => "Reinforced binding", + "B308" => "Half bound", + "B309" => "Quarter bound", + "B310" => "Saddle-sewn", + "B311" => "Comb bound", + "B312" => "Wire-O", + "B313" => "Concealed wire", + "B401" => "Cloth over boards", + "B402" => "Paper over boards", + "B403" => "Leather, real", + "B404" => "Leather, imitation", + "B405" => "Leather, bonded", + "B406" => "Vellum", + "B407" => "Plastic", + "B408" => "Vinyl", + "B409" => "Cloth", + "B410" => "Imitation cloth", + "B411" => "Velvet", + "B412" => "Flexible plastic/vinyl cover", + "B413" => "Plastic-covered", + "B414" => "Vinyl-covered", + "B415" => "Laminated cover", + "B501" => "With dust jacket", + "B502" => "With printed dust jacket", + "B503" => "With translucent dust cover", + "B504" => "With flaps", + "B505" => "With thumb index", + "B506" => "With ribbon marker(s)", + "B507" => "With zip fastener", + "B508" => "With button snap fastener", + "B509" => "With leather edge lining", + "B510" => "Rough front", + "B601" => "Turn-around book", + "B602" => "Unflipped manga format", + "B701" => "UK Uncontracted Braille", + "B702" => "UK Contracted Braille", + "B703" => "US Braille", + "B704" => "US Uncontracted Braille", + "B705" => "US Contracted Braille", + "B706" => "Unified English Braille", + "B707" => "Moon", + "D101" => "Real Video format", + "D102" => "Quicktime format", + "D103" => "AVI format", + "D104" => "Windows Media Video format", + "D105" => "MPEG-4", + "D201" => "MS-DOS", + "D202" => "Windows", + "D203" => "Macintosh", + "D204" => "UNIX / LINUX", + "D205" => "Other operating system(s)", + "D206" => "Palm OS", + "D207" => "Windows Mobile", + "D301" => "Microsoft XBox", + "D302" => "Nintendo Gameboy Color", + "D303" => "Nintendo Gameboy Advanced", + "D304" => "Nintendo Gameboy", + "D305" => "Nintendo Gamecube", + "D306" => "Nintendo 64", + "D307" => "Sega Dreamcast", + "D308" => "Sega Genesis/Megadrive", + "D309" => "Sega Saturn", + "D310" => "Sony PlayStation 1", + "D311" => "Sony PlayStation 2", + "D312" => "Nintendo Dual Screen", + "D313" => "Sony PlayStation 3", + "D314" => "Xbox 360", + "D315" => "Nintendo Wii", + "D316" => "Sony PlayStation Portable (PSP)", + "L101" => "Laminated", + "P101" => "Desk calendar", + "P102" => "Mini calendar", + "P103" => "Engagement calendar", + "P104" => "Day by day calendar", + "P105" => "Poster calendar", + "P106" => "Wall calendar", + "P107" => "Perpetual calendar", + "P108" => "Advent calendar", + "P109" => "Bookmark calendar", + "P110" => "Student calendar", + "P111" => "Project calendar", + "P112" => "Almanac calendar", + "P113" => "Other calendar", + "P114" => "Other calendar or organiser product", + "P201" => "Hardback (stationery)", + "P202" => "Paperback / softback (stationery)", + "P203" => "Spiral bound (stationery)", + "P204" => "Leather / fine binding (stationery)", + "V201" => "PAL", + "V202" => "NTSC", + "V203" => "SECAM" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/079.rb b/lib/onix/codelists/079.rb new file mode 100644 index 0000000..1b85486 --- /dev/null +++ b/lib/onix/codelists/079.rb @@ -0,0 +1,25 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_79 = { + "01" => "Color of cover", + "02" => "Color of page edge", + "03" => "Text font", + "04" => "Special cover material", + "05" => "DVD region", + "06" => "Operating system", + "07" => "Other system requirements", + "11" => "CPSIA choking hazard warning", + "12" => "CPSIA choking hazard warning", + "13" => "EU Toy Safety Hazard Warning", + "30" => "Not FSC or PEFC certified", + "31" => "FSC certified – pure", + "32" => "FSC certified – mixed sources", + "33" => "FSC certified – recycled", + "34" => "PEFC certified", + "35" => "PEFC recycled", + "36" => "FSC or PEFC certified Post Consumer Waste (PCW) percentage", + "37" => "Claimed Post Consumer Waste (PCW) percentage", + "40" => "Paper produced by 'green' technology" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/080.rb b/lib/onix/codelists/080.rb new file mode 100644 index 0000000..dbc82e9 --- /dev/null +++ b/lib/onix/codelists/080.rb @@ -0,0 +1,26 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_80 = { + "00" => "No outer packaging", + "01" => "Slip-sleeve", + "02" => "Clamshell", + "03" => "Keep case", + "05" => "Jewel case", + "09" => "In box", + "10" => "Slip-cased", + "11" => "Slip-cased set", + "12" => "Tube", + "13" => "Binder", + "14" => "In wallet or folder", + "15" => "Long triangular package", + "16" => "Long square package", + "17" => "Softbox (for DVD)", + "18" => "Pouch", + "19" => "Rigid plastic case", + "20" => "Cardboard case", + "21" => "Shrink-wrapped", + "22" => "Blister pack", + "23" => "Carry case" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/081.rb b/lib/onix/codelists/081.rb new file mode 100644 index 0000000..ff19c1d --- /dev/null +++ b/lib/onix/codelists/081.rb @@ -0,0 +1,45 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_81 = { + "10" => "Text (eye-readable)", + "15" => "Extensive links between internal content", + "14" => "Extensive links to external content", + "16" => "Additional eye-readable text not part of main work", + "17" => "Promotional text for other book product", + "11" => "Musical notation", + "07" => "Still images / graphics", + "18" => "Photographs", + "19" => "Figures, diagrams, charts, graphs", + "20" => "Additional images / graphics not part of main work", + "12" => "Maps and/or other cartographic content", + "01" => "Audiobook", + "02" => "Performance - spoken word", + "13" => "Other speech content", + "03" => "Music recording", + "04" => "Other audio", + "21" => "Partial performance – spoken word", + "22" => "Additional audio content not part of main work", + "23" => "Promotional audio for other book product", + "06" => "Video", + "26" => "Video recording of a reading", + "27" => "Performance – visual", + "24" => "Animated / interactive illustrations", + "25" => "Narrative animation", + "28" => "Other video", + "29" => "Partial performance – video", + "30" => "Additional video content not part of main work", + "31" => "Promotional video for other book product", + "05" => "Game / Puzzle", + "32" => "Contest", + "08" => "Software", + "09" => "Data", + "33" => "Data set plus software", + "34" => "Blank pages", + "35" => "Advertising content", + "37" => "Advertising – first party", + "36" => "Advertising – coupons", + "38" => "Advertising – third party display", + "39" => "Advertising – third party textual" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/082.rb b/lib/onix/codelists/082.rb new file mode 100644 index 0000000..600d42a --- /dev/null +++ b/lib/onix/codelists/082.rb @@ -0,0 +1,23 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_82 = { + "AP" => "Apocrypha (Catholic canon)", + "AQ" => "Apocrypha (canon unspecified)", + "AX" => "Additional Apocryphal texts: Greek Orthodox canon", + "AY" => "Additional Apocryphal texts: Slavonic Orthodox canon", + "AZ" => "Additional Apocryphal texts", + "GA" => "General canon with Apocrypha (Catholic canon)", + "GC" => "General canon with Apocryphal texts (canon unspecified)", + "GE" => "General canon", + "GS" => "Gospels", + "OT" => "Old Testament", + "NT" => "New Testament", + "NP" => "New Testament with Psalms and Proverbs", + "PE" => "Paul's Epistles", + "PP" => "Psalms and Proverbs", + "PS" => "Psalms", + "PT" => "Pentateuch", + "ZZ" => "Other portions" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/083.rb b/lib/onix/codelists/083.rb new file mode 100644 index 0000000..891d4e0 --- /dev/null +++ b/lib/onix/codelists/083.rb @@ -0,0 +1,74 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_83 = { + "ALV" => "Alberto Vaccari", + "AMP" => "Amplified", + "ANM" => "Antonio Martini", + "ASV" => "American Standard", + "CEI" => "C.E.I. - Conferenza Episcopale Italiana", + "CEN" => "C.E.I. - Conferenza Episcopale Italiana 2008", + "CEV" => "Contemporary English", + "CNC" => "Concordata", + "DDI" => "Diodati", + "DDN" => "Nuova Diodati", + "DOU" => "Douay-Rheims", + "EIN" => "Einheitsübersetzung", + "ESV" => "English Standard", + "FBB" => "Biblia (1776)", + "FRA" => "Raamattu (1933/1938)", + "FRK" => "Raamattu kansalle", + "FRM" => "Raamattu (1992)", + "GDW" => "God's Word", + "GEN" => "Geneva", + "GNB" => "Good News", + "GPR" => "Galbiati, Penna, Rossano", + "GRK" => "Original Greek", + "GRM" => "Garofano, Rinaldi – Marietti", + "HBR" => "Original Hebrew", + "HCS" => "Holman Christian Standard", + "ICB" => "International Children's", + "ILC" => "Traduzione Interconfessionale in Lingua Corrente", + "JER" => "Jerusalem", + "KJV" => "King James", + "KJT" => "21st Century King James", + "LVB" => "Living Bible", + "LZZ" => "Luzzi", + "MSG" => "Message Bible", + "NAB" => "New American", + "NAS" => "New American Standard", + "NAU" => "New American Standard, Updated", + "NBA" => "Bibelen 1895", + "NBB" => "Bibelen 1930", + "NBC" => "Bibelen 1938", + "NBD" => "Bibelen 1978-85", + "NBE" => "Bibelen 1978", + "NBF" => "Bibelen 1985", + "NBG" => "Bibelen 1988", + "NBH" => "Bibelen 1978-85/rev. 2005", + "NCV" => "New Century", + "NEB" => "New English", + "NGO" => "Bibelen Guds ord", + "NIV" => "New International", + "NIR" => "New International Reader's", + "NJB" => "New Jerusalem", + "NKJ" => "New King James", + "NNK" => "Bibelen, nynorsk", + "NLV" => "New Living", + "NRS" => "New Revised Standard", + "NTV" => "Nueva Traduccion Vivienta", + "NVB" => "Novissima Versione della Bibbia", + "NVD" => "Nueva Biblia al Dia", + "NVI" => "Nueva Version Internacional", + "PHP" => "New Testament in Modern English (Phillips)", + "REB" => "Revised English", + "REV" => "Revised Version", + "RSV" => "Revised Standard", + "RVL" => "Reina Valera", + "SBB" => "Bibel 2000", + "SMK" => "Bibelen, samisk", + "TEV" => "Today's English", + "TNI" => "Today's New International", + "ZZZ" => "Other" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/084.rb b/lib/onix/codelists/084.rb new file mode 100644 index 0000000..b03837b --- /dev/null +++ b/lib/onix/codelists/084.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_84 = { + "CAM" => "Cambridge Annotated", + "LIF" => "Life Application", + "MAC" => "Macarthur", + "OXF" => "Oxford Annotated", + "NNT" => "Studiebibel, Det Nye testamentet", + "NOX" => "New Oxford Annotated", + "NSB" => "Norsk studiebibel", + "RYR" => "Ryrie", + "SCO" => "Scofield", + "SPR" => "Spirit Filled" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/085.rb b/lib/onix/codelists/085.rb new file mode 100644 index 0000000..7b58a7c --- /dev/null +++ b/lib/onix/codelists/085.rb @@ -0,0 +1,29 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_85 = { + "AW" => "Award", + "BB" => "Baby", + "BR" => "Bride", + "CF" => "Confirmation", + "CH" => "Children's", + "CM" => "Compact", + "CR" => "Cross-reference", + "DR" => "Daily readings", + "DV" => "Devotional", + "FM" => "Family", + "GT" => "General/Text", + "GF" => "Gift", + "LP" => "Lectern/Pulpit", + "MN" => "Men's", + "PS" => "Primary school", + "PW" => "Pew", + "SC" => "Scholarly", + "SL" => "Slimline", + "ST" => "Student", + "SU" => "Study", + "WG" => "Wedding gift", + "WM" => "Women's", + "YT" => "Youth" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/086.rb b/lib/onix/codelists/086.rb new file mode 100644 index 0000000..e1e7c5b --- /dev/null +++ b/lib/onix/codelists/086.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_86 = { + "CHR" => "Chronological", + "CHA" => "Chain reference", + "INT" => "Interlinear", + "PAR" => "Parallel", + "STN" => "Standard" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/087.rb b/lib/onix/codelists/087.rb new file mode 100644 index 0000000..72df278 --- /dev/null +++ b/lib/onix/codelists/087.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_87 = { + "CCL" => "Center column", + "PGE" => "Page end", + "SID" => "Side column", + "VER" => "Verse end", + "UNK" => "Unknown", + "ZZZ" => "Other" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/088.rb b/lib/onix/codelists/088.rb new file mode 100644 index 0000000..caac3fa --- /dev/null +++ b/lib/onix/codelists/088.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_88 = { + + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/089.rb b/lib/onix/codelists/089.rb new file mode 100644 index 0000000..cc45953 --- /dev/null +++ b/lib/onix/codelists/089.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_89 = { + "01" => "Church season or activity" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/090.rb b/lib/onix/codelists/090.rb new file mode 100644 index 0000000..cb0c9d6 --- /dev/null +++ b/lib/onix/codelists/090.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_90 = { + "01" => "Academic year", + "02" => "Catechistic year", + "03" => "Liturgical year", + "04" => "Advent and Christmas", + "05" => "Blessings", + "06" => "Scholastic cycles", + "07" => "Confirmation and Holy Communion", + "08" => "Summer activites", + "09" => "Easter", + "10" => "Lent", + "11" => "Marian themes" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/091.rb b/lib/onix/codelists/091.rb new file mode 100644 index 0000000..cadd9af --- /dev/null +++ b/lib/onix/codelists/091.rb @@ -0,0 +1,257 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_91 = { + "AD" => "Andorra", + "AE" => "United Arab Emirates", + "AF" => "Afghanistan", + "AG" => "Antigua and Barbuda", + "AI" => "Anguilla", + "AL" => "Albania", + "AM" => "Armenia", + "AN" => "Netherlands Antilles", + "AO" => "Angola", + "AQ" => "Antarctica", + "AR" => "Argentina", + "AS" => "American Samoa", + "AT" => "Austria", + "AU" => "Australia", + "AW" => "Aruba", + "AX" => "Aland Islands", + "AZ" => "Azerbaijan", + "BA" => "Bosnia and Herzegovina", + "BB" => "Barbados", + "BD" => "Bangladesh", + "BE" => "Belgium", + "BF" => "Burkina Faso", + "BG" => "Bulgaria", + "BH" => "Bahrain", + "BI" => "Burundi", + "BJ" => "Benin", + "BL" => "Saint Barthelemy", + "BM" => "Bermuda", + "BN" => "Brunei Darussalam", + "BO" => "Bolivia", + "BQ" => "Bonaire, St Eustatius, Saba", + "BR" => "Brazil", + "BS" => "Bahamas", + "BT" => "Bhutan", + "BV" => "Bouvet Island", + "BW" => "Botswana", + "BY" => "Belarus", + "BZ" => "Belize", + "CA" => "Canada", + "CC" => "Cocos (Keeling) Islands", + "CD" => "Congo, Democratic Republic of the", + "CF" => "Central African Republic", + "CG" => "Congo", + "CH" => "Switzerland", + "CI" => "Cote D'Ivoire", + "CK" => "Cook Islands", + "CL" => "Chile", + "CM" => "Cameroon", + "CN" => "China", + "CO" => "Colombia", + "CR" => "Costa Rica", + "CS" => "Serbia and Montenegro", + "CU" => "Cuba", + "CV" => "Cape Verde", + "CW" => "Curaçao", + "CX" => "Christmas Island", + "CY" => "Cyprus", + "CZ" => "Czech Republic", + "DE" => "Germany", + "DJ" => "Djibouti", + "DK" => "Denmark", + "DM" => "Dominica", + "DO" => "Dominican Republic", + "DZ" => "Algeria", + "EC" => "Ecuador", + "EE" => "Estonia", + "EG" => "Egypt", + "EH" => "Western Sahara", + "ER" => "Eritrea", + "ES" => "Spain", + "ET" => "Ethiopia", + "FI" => "Finland", + "FJ" => "Fiji", + "FK" => "Falkland Islands (Malvinas)", + "FM" => "Micronesia, Federated States of", + "FO" => "Faroe Islands", + "FR" => "France", + "GA" => "Gabon", + "GB" => "United Kingdom", + "GD" => "Grenada", + "GE" => "Georgia", + "GF" => "French Guiana", + "GG" => "Guernsey", + "GH" => "Ghana", + "GI" => "Gibraltar", + "GL" => "Greenland", + "GM" => "Gambia", + "GN" => "Guinea", + "GP" => "Guadeloupe", + "GQ" => "Equatorial Guinea", + "GR" => "Greece", + "GS" => "South Georgia and the South Sandwich Islands", + "GT" => "Guatemala", + "GU" => "Guam", + "GW" => "Guinea-Bissau", + "GY" => "Guyana", + "HK" => "Hong Kong", + "HM" => "Heard Island and McDonald Islands", + "HN" => "Honduras", + "HR" => "Croatia", + "HT" => "Haiti", + "HU" => "Hungary", + "ID" => "Indonesia", + "IE" => "Ireland", + "IL" => "Israel", + "IM" => "Isle of Man", + "IN" => "India", + "IO" => "British Indian Ocean Territory", + "IQ" => "Iraq", + "IR" => "Iran, Islamic Republic of", + "IS" => "Iceland", + "IT" => "Italy", + "JE" => "Jersey", + "JM" => "Jamaica", + "JO" => "Jordan", + "JP" => "Japan", + "KE" => "Kenya", + "KG" => "Kyrgyzstan", + "KH" => "Cambodia", + "KI" => "Kiribati", + "KM" => "Comoros", + "KN" => "Saint Kitts and Nevis", + "KP" => "Korea, Democratic People's Republic of", + "KR" => "Korea, Republic of", + "KW" => "Kuwait", + "KY" => "Cayman Islands", + "KZ" => "Kazakhstan", + "LA" => "Lao People's Democratic Republic", + "LB" => "Lebanon", + "LC" => "Saint Lucia", + "LI" => "Liechtenstein", + "LK" => "Sri Lanka", + "LR" => "Liberia", + "LS" => "Lesotho", + "LT" => "Lithuania", + "LU" => "Luxembourg", + "LV" => "Latvia", + "LY" => "Libyan Arab Jamahiriya", + "MA" => "Morocco", + "MC" => "Monaco", + "MD" => "Moldova, Republic of", + "ME" => "Montenegro", + "MF" => "Saint Martin, French part", + "MG" => "Madagascar", + "MH" => "Marshall Islands", + "MK" => "Macedonia, the former Yugoslav Republic of", + "ML" => "Mali", + "MM" => "Myanmar", + "MN" => "Mongolia", + "MO" => "Macao", + "MP" => "Northern Mariana Islands", + "MQ" => "Martinique", + "MR" => "Mauritania", + "MS" => "Montserrat", + "MT" => "Malta", + "MU" => "Mauritius", + "MV" => "Maldives", + "MW" => "Malawi", + "MX" => "Mexico", + "MY" => "Malaysia", + "MZ" => "Mozambique", + "NA" => "Namibia", + "NC" => "New Caledonia", + "NE" => "Niger", + "NF" => "Norfolk Island", + "NG" => "Nigeria", + "NI" => "Nicaragua", + "NL" => "Netherlands", + "NO" => "Norway", + "NP" => "Nepal", + "NR" => "Nauru", + "NU" => "Niue", + "NZ" => "New Zealand", + "OM" => "Oman", + "PA" => "Panama", + "PE" => "Peru", + "PF" => "French Polynesia", + "PG" => "Papua New Guinea", + "PH" => "Philippines", + "PK" => "Pakistan", + "PL" => "Poland", + "PM" => "Saint Pierre and Miquelon", + "PN" => "Pitcairn", + "PR" => "Puerto Rico", + "PS" => "Palestinian Territory, Occupied", + "PT" => "Portugal", + "PW" => "Palau", + "PY" => "Paraguay", + "QA" => "Qatar", + "RE" => "Reunion", + "RO" => "Romania", + "RS" => "Serbia", + "RU" => "Russian Federation", + "RW" => "Rwanda", + "SA" => "Saudi Arabia", + "SB" => "Solomon Islands", + "SC" => "Seychelles", + "SD" => "Sudan", + "SE" => "Sweden", + "SG" => "Singapore", + "SH" => "Saint Helena, Ascension, Tristan da Cunha", + "SI" => "Slovenia", + "SJ" => "Svalbard and Jan Mayen", + "SK" => "Slovakia", + "SL" => "Sierra Leone", + "SM" => "San Marino", + "SN" => "Senegal", + "SO" => "Somalia", + "SR" => "Suriname", + "ST" => "Sao Tome and Principe", + "SV" => "El Salvador", + "SX" => "Sint Maarten (Dutch part)", + "SY" => "Syrian Arab Republic", + "SZ" => "Swaziland", + "TC" => "Turks and Caicos Islands", + "TD" => "Chad", + "TF" => "French Southern Territories", + "TG" => "Togo", + "TH" => "Thailand", + "TJ" => "Tajikistan", + "TK" => "Tokelau", + "TL" => "Timor-Leste", + "TM" => "Turkmenistan", + "TN" => "Tunisia", + "TO" => "Tonga", + "TR" => "Turkey", + "TT" => "Trinidad and Tobago", + "TV" => "Tuvalu", + "TW" => "Taiwan, Province of China", + "TZ" => "Tanzania, United Republic of", + "UA" => "Ukraine", + "UG" => "Uganda", + "UM" => "United States Minor Outlying Islands", + "US" => "United States", + "UY" => "Uruguay", + "UZ" => "Uzbekistan", + "VA" => "Holy See (Vatican City State)", + "VC" => "Saint Vincent and the Grenadines", + "VE" => "Venezuela, Bolivarian Republic of", + "VG" => "Virgin Islands, British", + "VI" => "Virgin Islands, US", + "VN" => "Viet Nam", + "VU" => "Vanuatu", + "WF" => "Wallis and Futuna", + "WS" => "Samoa", + "YE" => "Yemen", + "YT" => "Mayotte", + "YU" => "Yugoslavia", + "ZA" => "South Africa", + "ZM" => "Zambia", + "ZW" => "Zimbabwe" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/092.rb b/lib/onix/codelists/092.rb new file mode 100644 index 0000000..ae589a2 --- /dev/null +++ b/lib/onix/codelists/092.rb @@ -0,0 +1,14 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_92 = { + "01" => "Proprietary", + "02" => "Proprietary", + "04" => "Börsenverein Verkehrsnummer", + "05" => "German ISBN Agency publisher identifier", + "06" => "GLN", + "07" => "SAN", + "12" => "Distributeurscode Boekenbank", + "13" => "Fondscode Boekenbank" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/093.rb b/lib/onix/codelists/093.rb new file mode 100644 index 0000000..d025726 --- /dev/null +++ b/lib/onix/codelists/093.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_93 = { + "00" => "Unspecified", + "01" => "Publisher to retailers", + "02" => "Publisher's exclusive distributor to retailers", + "03" => "Publisher's non-exclusive distributor to retailers", + "04" => "Wholesaler", + "05" => "Sales agent", + "06" => "Publisher's distributor to retailers", + "07" => "POD supplier", + "08" => "Retailer", + "09" => "Publisher to end-customers", + "10" => "Exclusive distributor to end-customers", + "11" => "Non-exclusive distributor to end-customers", + "12" => "Distributor to end-customers" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/094.rb b/lib/onix/codelists/094.rb new file mode 100644 index 0000000..e51b5b6 --- /dev/null +++ b/lib/onix/codelists/094.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_94 = { + "cm" => "Centimeters", + "in" => "Inches (US)", + "mm" => "Millimeters" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/095.rb b/lib/onix/codelists/095.rb new file mode 100644 index 0000000..982609f --- /dev/null +++ b/lib/onix/codelists/095.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_95 = { + "lb" => "Pounds (US)", + "gr" => "Grams", + "oz" => "Ounces (US)" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/096.rb b/lib/onix/codelists/096.rb new file mode 100644 index 0000000..b0d41b4 --- /dev/null +++ b/lib/onix/codelists/096.rb @@ -0,0 +1,191 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_96 = { + "AED" => "UAE Dirham", + "AFA" => "Afghani", + "AFN" => "Afghani", + "ALL" => "Lek", + "AMD" => "Armenian Dram", + "ANG" => "Netherlands Antillian Guilder", + "AOA" => "Kwanza", + "ARS" => "Argentine Peso", + "ATS" => "Austria, Schilling", + "AUD" => "Australian Dollar", + "AWG" => "Aruban Guilder", + "AZN" => "Azerbaijanian Manat", + "BAM" => "Convertible Marks", + "BBD" => "Barbados Dollar", + "BDT" => "Taka", + "BEF" => "Belgium, Franc", + "BGL" => "Lev", + "BGN" => "Lev", + "BHD" => "Bahraini Dinar", + "BIF" => "Burundi Franc", + "BMD" => "Bermuda Dollar", + "BND" => "Brunei Dollar", + "BOB" => "Boliviano", + "BRL" => "Brazilian Real", + "BSD" => "Bahamian Dollar", + "BTN" => "Ngultrun", + "BWP" => "Pula", + "BYR" => "Belarussian Ruble", + "BZD" => "Belize Dollar", + "CAD" => "Canadian Dollar", + "CDF" => "Franc Congolais", + "CHF" => "Swiss Franc", + "CLP" => "Chilean Peso", + "CNY" => "Yuan Renminbi", + "COP" => "Colombian Peso", + "CRC" => "Costa Rican Colon", + "CSD" => "Serbian Dinar", + "CUC" => "Cuban Convertible Peso", + "CUP" => "Cuban Peso", + "CVE" => "Cape Verde Escudo", + "CYP" => "Cyprus Pound", + "CZK" => "Czech Koruna", + "DEM" => "Germany, Mark", + "DJF" => "Djibouti Franc", + "DKK" => "Danish Krone", + "DOP" => "Dominican Peso", + "DZD" => "Algerian Dinar", + "EEK" => "Kroon", + "EGP" => "Egyptian Pound", + "ERN" => "Nakfa", + "ESP" => "Spain, Peseta", + "ETB" => "Ethiopian Birr", + "EUR" => "Euro", + "FIM" => "Finland, Markka", + "FJD" => "Fiji Dollar", + "FKP" => "Falkland Islands Pound", + "FRF" => "France, Franc", + "GBP" => "Pound Sterling", + "GEL" => "Lari", + "GHC" => "Cedi", + "GIP" => "Gibraltar Pound", + "GMD" => "Dalasi", + "GNF" => "Guinea Franc", + "GRD" => "Greece, Drachma", + "GTQ" => "Quetzal", + "GWP" => "Guinea-Bissau Peso", + "GYD" => "Guyana Dollar", + "HKD" => "Hong Kong Dollar", + "HNL" => "Lempira", + "HRK" => "Croatian Kuna", + "HTG" => "Gourde", + "HUF" => "Forint", + "IDR" => "Rupiah", + "IEP" => "Ireland, Punt", + "ILS" => "Israeli Sheqel", + "INR" => "Indian Rupee", + "IQD" => "Iraqi Dinar", + "IRR" => "Iranian Rial", + "ISK" => "Iceland Krona", + "ITL" => "Italy, Lira", + "JMD" => "Jamaican Dollar", + "JOD" => "Jordanian Dinar", + "JPY" => "Yen", + "KES" => "Kenyan Shilling", + "KGS" => "Som", + "KHR" => "Riel", + "KMF" => "Comoro Franc", + "KPW" => "North Korean Won", + "KRW" => "Won", + "KWD" => "Kuwaiti Dinar", + "KYD" => "Cayman Islands Dollar", + "KZT" => "Tenge", + "LAK" => "Kip", + "LBP" => "Lebanese Pound", + "LKR" => "Sri Lanka Rupee", + "LRD" => "Liberian Dollar", + "LSL" => "Loti", + "LTL" => "Lithuanian Litus", + "LUF" => "Luxembourg, Franc", + "LVL" => "Latvian Lats", + "LYD" => "Libyan Dinar", + "MAD" => "Moroccan Dirham", + "MDL" => "Moldovan Leu", + "MGA" => "Ariary", + "MGF" => "Malagasy Franc", + "MKD" => "Denar", + "MMK" => "Kyat", + "MNT" => "Tugrik", + "MOP" => "Pataca", + "MRO" => "Ouguiya", + "MTL" => "Maltese Lira", + "MUR" => "Mauritius Rupee", + "MVR" => "Rufiyaa", + "MWK" => "Kwacha", + "MXN" => "Mexican Peso", + "MYR" => "Malaysian Ringgit", + "MZN" => "Metical", + "NAD" => "Namibia Dollar", + "NGN" => "Naira", + "NIO" => "Cordoba Oro", + "NLG" => "Netherlands, Guilder", + "NOK" => "Norwegian Krone", + "NPR" => "Nepalese Rupee", + "NZD" => "New Zealand Dollar", + "OMR" => "Rial Omani", + "PAB" => "Balboa", + "PEN" => "Nuevo Sol", + "PGK" => "Kina", + "PHP" => "Philippine Peso", + "PKR" => "Pakistan Rupee", + "PLN" => "Zloty", + "PTE" => "Portugal, Escudo", + "PYG" => "Guarani", + "QAR" => "Qatari Rial", + "ROL" => "Old Leu", + "RON" => "New Leu", + "RUB" => "Russian Ruble", + "RUR" => "Russian Ruble", + "RWF" => "Rwanda Franc", + "SAR" => "Saudi Riyal", + "SBD" => "Solomon Islands Dollar", + "SCR" => "Seychelles Rupee", + "SDD" => "Sudanese Dinar", + "SEK" => "Swedish Krona", + "SGD" => "Singapore Dollar", + "SHP" => "Saint Helena Pound", + "SIT" => "Tolar", + "SKK" => "Slovak Koruna", + "SLL" => "Leone", + "SOS" => "Somali Shilling", + "SRD" => "Suriname Guilder", + "SRG" => "Suriname Guilder", + "STD" => "Dobra", + "SVC" => "El Salvador Colon", + "SYP" => "Syrian Pound", + "SZL" => "Lilangeni", + "THB" => "Baht", + "TJS" => "Somoni", + "TMM" => "Manat", + "TND" => "Tunisian Dinar", + "TOP" => "Pa'anga", + "TPE" => "Timor Escudo", + "TRL" => "Turkish Lira (old)", + "TRY" => "Turkish Lira (new)", + "TTD" => "Trinidad and Tobago Dollar", + "TWD" => "New Taiwan Dollar", + "TZS" => "Tanzanian Shilling", + "UAH" => "Hryvnia", + "UGX" => "Uganda Shilling", + "USD" => "US Dollar", + "UYU" => "Peso Uruguayo", + "UZS" => "Uzbekistan Sum", + "VEB" => "Bolivar", + "VND" => "Dong", + "VUV" => "Vatu", + "WST" => "Tala", + "XAF" => "CFA Franc BEAC", + "XCD" => "East Caribbean Dollar", + "XOF" => "CFA Franc BCEAO", + "XPF" => "CFP Franc", + "YER" => "Yemeni Rial", + "YUM" => "Yugoslavian Dinar", + "ZAR" => "Rand", + "ZMK" => "Kwacha", + "ZWD" => "Zimbabwe Dollar" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/097.rb b/lib/onix/codelists/097.rb new file mode 100644 index 0000000..b2ffe41 --- /dev/null +++ b/lib/onix/codelists/097.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_97 = { + "RL" => "Red letter" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/098.rb b/lib/onix/codelists/098.rb new file mode 100644 index 0000000..939ec66 --- /dev/null +++ b/lib/onix/codelists/098.rb @@ -0,0 +1,27 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_98 = { + "BLK" => "Black", + "BLU" => "Blue", + "BRN" => "Brown", + "BUR" => "Burgundy/maroon", + "CRE" => "Cream", + "FCO" => "Four-color", + "FCS" => "Four-color and spot-color", + "GLD" => "Gold", + "GRN" => "Green", + "GRY" => "Grey", + "MUL" => "Multicolor", + "NAV" => "Navy", + "ORG" => "Orange", + "PNK" => "Pink", + "PUR" => "Purple", + "RED" => "Red", + "SLV" => "Silver", + "TAN" => "Tan", + "WHI" => "White", + "YEL" => "Yellow", + "ZZZ" => "Other" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/099.rb b/lib/onix/codelists/099.rb new file mode 100644 index 0000000..a1cdab3 --- /dev/null +++ b/lib/onix/codelists/099.rb @@ -0,0 +1,30 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_99 = { + "01" => "Berkshire leather", + "02" => "Calfskin", + "03" => "French Morocco", + "04" => "Morocco", + "05" => "Bonded buffalo grain", + "06" => "Bonded calf grain", + "07" => "Bonded Cordova", + "08" => "Bonded eelskin", + "09" => "Bonded Ostraleg", + "10" => "Bonded ostrich", + "11" => "Bonded reptile grain", + "12" => "Bonded leather", + "13" => "Cowhide", + "14" => "Eelskin", + "15" => "Kivar", + "16" => "Leatherflex", + "17" => "Moleskin", + "18" => "Softhide leather", + "19" => "Metal", + "20" => "Velvet", + "21" => "Mother-of-pearl", + "22" => "Papyrus", + "23" => "Géltex", + "24" => "Guaflex" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/100.rb b/lib/onix/codelists/100.rb new file mode 100644 index 0000000..cea1cf1 --- /dev/null +++ b/lib/onix/codelists/100.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_100 = { + "01" => "BIC discount group code", + "02" => "Proprietary discount code", + "03" => "Boeksoort", + "04" => "German terms code", + "05" => "Proprietary commission code", + "06" => "BIC commission group code" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/101.rb b/lib/onix/codelists/101.rb new file mode 100644 index 0000000..c867770 --- /dev/null +++ b/lib/onix/codelists/101.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_101 = { + "01" => "Proprietary", + "02" => "DNB-PND" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/102.rb b/lib/onix/codelists/102.rb new file mode 100644 index 0000000..cbab2b7 --- /dev/null +++ b/lib/onix/codelists/102.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_102 = { + "01" => "Proprietary", + "02" => "BIC sales outlet ID code", + "03" => "ONIX sales outlet ID code" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/121.rb b/lib/onix/codelists/121.rb new file mode 100644 index 0000000..c37a0e0 --- /dev/null +++ b/lib/onix/codelists/121.rb @@ -0,0 +1,164 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_121 = { + "Afak" => "Afaka", + "Arab" => "Arabic", + "Armi" => "Imperial Aramaic", + "Armn" => "Armenian", + "Avst" => "Avestan", + "Bali" => "Balinese", + "Bamu" => "Bamun", + "Bass" => "Bassa Vah", + "Batk" => "Batak", + "Beng" => "Bengali", + "Blis" => "Blissymbols", + "Bopo" => "Bopomofo", + "Brah" => "Brahmi", + "Brai" => "Braille", + "Bugi" => "Buginese", + "Buhd" => "Buhid", + "Cakm" => "Chakma", + "Cans" => "Unified Canadian Aboriginal Syllabics", + "Cari" => "Carian", + "Cham" => "Cham", + "Cher" => "Cherokee", + "Cirt" => "Cirth", + "Copt" => "Coptic", + "Cprt" => "Cypriot", + "Cyrl" => "Cyrillic", + "Cyrs" => "Cyrillic (Old Church Slavonic variant)", + "Deva" => "Devanagari (Nagari)", + "Dsrt" => "Deseret (Mormon)", + "Dupl" => "Duployan shorthand, Duployan stenography", + "Egyd" => "Egyptian demotic", + "Egyh" => "Egyptian hieratic", + "Egyp" => "Egyptian hieroglyphs", + "Elba" => "Elbasan", + "Ethi" => "Ethiopic (Ge'ez)", + "Geok" => "Khutsuri (Asomtavruli and Khutsuri)", + "Geor" => "Georgian (Mkhedruli)", + "Glag" => "Glagolitic", + "Goth" => "Gothic", + "Gran" => "Grantha", + "Grek" => "Greek", + "Gujr" => "Gujarati", + "Guru" => "Gurmukhi", + "Hang" => "Hangul (Hangŭl, Hangeul)", + "Hani" => "Han (Hanzi, Kanji, Hanja)", + "Hano" => "Hanunoo (Hanunóo)", + "Hans" => "Han (Simplified variant)", + "Hant" => "Han (Traditional variant)", + "Hebr" => "Hebrew", + "Hira" => "Hiragana", + "Hmng" => "Pahawh Hmong", + "Hrkt" => "(alias for Hiragana + Katakana)", + "Hung" => "Old Hungarian", + "Inds" => "Indus (Harappan)", + "Ital" => "Old Italic (Etruscan, Oscan, etc)", + "Java" => "Javanese", + "Jpan" => "(alias for Han + Hiragana + Katakana)", + "Jurc" => "Jurchen", + "Kali" => "Kayah Likayah li", + "Kana" => "Katakana", + "Khar" => "Kharoshthi", + "Khmr" => "Khmer", + "Knda" => "Kannada", + "Kore" => "Korean (alias for Hangul + Han)", + "Kpel" => "Kpelle", + "Kthi" => "Kaithi", + "Lana" => "Lanna, Tai Tham", + "Laoo" => "Lao", + "Latf" => "Latin (Fraktur variant)", + "Latg" => "Latin (Gaelic variant)", + "Latn" => "Latin", + "Lepc" => "Lepcha (Róng)", + "Limb" => "Limbu", + "Lina" => "Linear A", + "Linb" => "Linear B", + "Lisu" => "Lisu (Fraser)", + "Loma" => "Loma", + "Lyci" => "Lycian", + "Lydi" => "Lydian", + "Mand" => "Mandaic, Mandaean", + "Mani" => "Manichaean", + "Maya" => "Mayan hieroglyphs", + "Mend" => "Mende", + "Merc" => "Meroitic Cursive", + "Mero" => "Meroitic Hieroglyphs", + "Mlym" => "Malayalam", + "Mong" => "Mongolian", + "Moon" => "Moon (Moon code, Moon script, Moon type)", + "Mroo" => "Mro", + "Mtei" => "Meitei Mayek (Meithei, Meetei)", + "Mymr" => "Myanmar (Burmese)", + "Narb" => "Old North Arabian (Ancient North Arabian)", + "Nbat" => "Nabatean", + "Nkgb" => "Nakhi Geba ('Na-'Khi ²Ggŏ-¹baw, Naxi Geba)", + "Nkoo" => "N'Ko", + "Nshu" => "Nüshu", + "Ogam" => "Ogham", + "Olck" => "Ol Chiki (Ol Cemet', Ol, Santali)", + "Orkh" => "Old Turkic, Orkhon Runic", + "Orya" => "Oriya", + "Osma" => "Osmanya", + "Palm" => "Palmyrene", + "Perm" => "Old Permic", + "Phag" => "Phags-pa", + "Phli" => "Inscriptional Pahlavi", + "Phlp" => "Psalter Pahlavi", + "Phlv" => "Book Pahlavi", + "Phnx" => "Phoenician", + "Plrd" => "Miao (Pollard Phonetic)", + "Prti" => "Inscriptional Parthian", + "Qaaa" => "Reserved for private use (start)", + "Qabx" => "Reserved for private use (end)", + "Rjng" => "Rejang, Redjang, Kaganga", + "Roro" => "Rongorongo", + "Runr" => "Runic", + "Samr" => "Samaritan", + "Sara" => "Sarati", + "Sarb" => "Old South Arabian", + "Saur" => "Saurashtra", + "Sgnw" => "SignWriting", + "Shaw" => "Shavian (Shaw)", + "Shrd" => "Sharada", + "Sind" => "Sindhi, Khudawadi", + "Sinh" => "Sinhala", + "Sora" => "Sora Sompeng", + "Sund" => "Sundanese", + "Sylo" => "Syloti Nagri", + "Syrc" => "Syriac", + "Syre" => "Syriac (Estrangelo variant)", + "Syrj" => "Syriac (Western variant)", + "Syrn" => "Syriac (Eastern variant)", + "Tagb" => "Tagbanwa", + "Takr" => "Takri", + "Tale" => "Tai Le", + "Talu" => "New Tai Lue", + "Taml" => "Tamil", + "Tang" => "Tangut", + "Tavt" => "Tai Viet", + "Telu" => "Telugu", + "Teng" => "Tengwar", + "Tfng" => "Tifinagh (Berber)", + "Tglg" => "Tagalog (Baybayin, Alibata)", + "Thaa" => "Thaana", + "Thai" => "Thai", + "Tibt" => "Tibetan", + "Ugar" => "Ugaritic", + "Vaii" => "Vai", + "Visp" => "Visible Speech", + "Wara" => "Warang Citi (Varang Kshiti)", + "Wole" => "Woleai", + "Xpeo" => "Old Persian", + "Xsux" => "Cuneiform, Sumero-Akkadian", + "Yiii" => "Yi", + "Zinh" => "Code for inherited script", + "Zmth" => "Mathematical notation", + "Zsym" => "Symbols", + "Zxxx" => "Code for unwritten languages", + "Zyyy" => "Code for undetermined script", + "Zzzz" => "Code for uncoded script" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/138.rb b/lib/onix/codelists/138.rb new file mode 100644 index 0000000..5a43db4 --- /dev/null +++ b/lib/onix/codelists/138.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_138 = { + "SFS4900" => "Finnish standard SFS 4900", + "SFS5807" => "Finnish standard SFS 5807", + "SFS5755" => "Finnish standard SFS 5755", + "SFS3602" => "Finnish standard SFS 5824", + "ISO3602" => "ISO 3602", + "ISO7098" => "ISO 7098" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/139.rb b/lib/onix/codelists/139.rb new file mode 100644 index 0000000..39d1e02 --- /dev/null +++ b/lib/onix/codelists/139.rb @@ -0,0 +1,76 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_139 = { + "ACM" => "A C Moore", + "AAP" => "AandP", + "ALB" => "Albertson's", + "AMZ" => "Amazon", + "ANR" => "Angus and Robertson", + "APC" => "Apple Computer stores", + "ASD" => "Asda", + "AUD" => "Audible", + "BDL" => "B Dalton", + "BNO" => "Barnes and Noble", + "BBB" => "Bed Bath and Beyond", + "BST" => "Best Buy", + "BJW" => "BJ's Wholesale Club", + "BLK" => "Blackwell's", + "BCA" => "Book Club Associates", + "BKP" => "Bookpeople", + "BKM" => "Books-A-Million", + "BRD" => "Borders", + "BRB" => "Borders/Books Etc", + "BRT" => "British Bookshops", + "CST" => "Costco", + "CRB" => "Crate and Barrel", + "CVS" => "CVS Drug Stores", + "DSG" => "Dick's Sporting Goods", + "DYM" => "Dymocks", + "ELC" => "Early Learning Centre", + "ESN" => "Eason", + "ENH" => "English Heritage", + "FRY" => "Fry's Electronics", + "GMS" => "Gamestop", + "HST" => "Hastings Entertainment", + "HMV" => "HMV", + "HMD" => "Home Depot", + "IND" => "Indigo-Chapters", + "JSM" => "John Smith and Son", + "KMT" => "K-Mart", + "KRG" => "Kroger", + "LWE" => "Lowe's", + "MKS" => "Marks and Spencer", + "MCR" => "Microcenter", + "MRR" => "Morrisons", + "MTC" => "Mothercare", + "NTR" => "National Trust", + "OFD" => "Office Depot", + "OFM" => "Office Max", + "PST" => "Past Times", + "PTS" => "Pet Smart", + "PTC" => "Petco", + "PLY" => "Play.com", + "PTB" => "Pottery Barn", + "RST" => "Restoration Hardware", + "RTZ" => "Ritz Camera", + "SFW" => "Safeway", + "SNS" => "Sainsbury's", + "SLF" => "Selfridges", + "STP" => "Staples", + "TRG" => "Target", + "TES" => "Tesco", + "TSR" => "Toys 'R' Us", + "TSO" => "TSO (The Stationery Office)", + "VRG" => "Virgin Megastores", + "WHS" => "W H Smith", + "WTR" => "Waitrose", + "WLM" => "Wal-Mart", + "WST" => "Waterstone's", + "WHT" => "Whitcoul's", + "WLS" => "Williams Sonoma", + "WLW" => "Woolworths", + "ZVV" => "Zavvi", + "ZZZ" => "Other" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/140.rb b/lib/onix/codelists/140.rb new file mode 100644 index 0000000..9f730b1 --- /dev/null +++ b/lib/onix/codelists/140.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_140 = { + "01" => "WARNING: CHOKING HAZARD -- Small parts | Not for children under 3 yrs.", + "02" => "WARNING: CHOKING HAZARD -- This toy is a small ball | Not for children under 3 yrs.", + "03" => "WARNING: CHOKING HAZARD -- Toy contains a small ball | Not for children under 3 yrs.", + "04" => "WARNING: CHOKING HAZARD -- Children under 8 yrs. can choke or suffocate on uninflated or broken balloons. Adult supervision required | Keep uninflated balloons from children. Discard broken balloons at once.", + "05" => "WARNING: CHOKING HAZARD -- This toy is a marble | Not for children under 3 yrs.", + "06" => "WARNING: CHOKING HAZARD -- Toy contains a marble | Not for children under 3 yrs.", + "07" => "No choking hazard warning necessary" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/141.rb b/lib/onix/codelists/141.rb new file mode 100644 index 0000000..2b0f839 --- /dev/null +++ b/lib/onix/codelists/141.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_141 = { + "00" => "Not barcoded", + "01" => "Barcoded, scheme unspecified", + "02" => "GTIN-13", + "03" => "GTIN-13+5 (US dollar price encoded)", + "04" => "GTIN-13+5 (CAN dollar price encoded)", + "05" => "GTIN-13+5 (no price encoded)", + "06" => "UPC-12 (item-specific)", + "07" => "UPC-12+5 (item-specific)", + "08" => "UPC-12 (price-point)", + "09" => "UPC-12+5 (price-point)" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/142.rb b/lib/onix/codelists/142.rb new file mode 100644 index 0000000..6bfac75 --- /dev/null +++ b/lib/onix/codelists/142.rb @@ -0,0 +1,18 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_142 = { + "00" => "Unknown / unspecified", + "01" => "Cover 4", + "02" => "Cover 3", + "03" => "Cover 2", + "04" => "Cover 1", + "05" => "On spine", + "06" => "On box", + "07" => "On tag", + "08" => "On bottom", + "09" => "On back", + "10" => "On outer sleeve / back", + "11" => "On removable wrapping" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/143.rb b/lib/onix/codelists/143.rb new file mode 100644 index 0000000..bc78d49 --- /dev/null +++ b/lib/onix/codelists/143.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_143 = { + "01" => "WARNING: CHOKING HAZARD -- Small parts | Not for children under 3 yrs.", + "02" => "WARNING: CHOKING HAZARD -- Children under 8 yrs. can choke or suffocate on uninflated or broken balloons. Adult supervision required | Keep uninflated balloons from children. Discard broken balloons at once.", + "03" => "WARNING: CHOKING HAZARD -- This toy is a small ball | Not for children under 3 yrs.", + "04" => "WARNING: CHOKING HAZARD -- Toy contains a small ball | Not for children under 3 yrs.", + "05" => "WARNING: CHOKING HAZARD -- This toy is a marble | Not for children under 3 yrs.", + "06" => "WARNING: CHOKING HAZARD -- Toy contains a marble | Not for children under 3 yrs.", + "07" => "No choking hazard warning necessary" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/144.rb b/lib/onix/codelists/144.rb new file mode 100644 index 0000000..2f66e7f --- /dev/null +++ b/lib/onix/codelists/144.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_144 = { + "00" => "None", + "01" => "DRM", + "02" => "Digital watermarking", + "03" => "Adobe DRM", + "04" => "Apple DRM", + "05" => "OMA DRM" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/145.rb b/lib/onix/codelists/145.rb new file mode 100644 index 0000000..d2bea84 --- /dev/null +++ b/lib/onix/codelists/145.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_145 = { + "01" => "Preview", + "02" => "Print", + "03" => "Copy / paste", + "04" => "Share", + "05" => "Text to speech", + "06" => "Lend", + "07" => "Time-limited license" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/146.rb b/lib/onix/codelists/146.rb new file mode 100644 index 0000000..05361db --- /dev/null +++ b/lib/onix/codelists/146.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_146 = { + "01" => "Permitted unlimited", + "02" => "Permitted subject to limit", + "03" => "Prohibited" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/147.rb b/lib/onix/codelists/147.rb new file mode 100644 index 0000000..29f424c --- /dev/null +++ b/lib/onix/codelists/147.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_147 = { + "01" => "Copies", + "02" => "Characters", + "03" => "Words", + "04" => "Pages", + "05" => "Percentage", + "06" => "Devices", + "07" => "Concurrent users", + "08" => "Percentage per time period", + "09" => "Days", + "10" => "Times" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/148.rb b/lib/onix/codelists/148.rb new file mode 100644 index 0000000..9a2cdae --- /dev/null +++ b/lib/onix/codelists/148.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_148 = { + "00" => "Unspecified (default)", + "10" => "Publisher collection", + "20" => "Ascribed collection" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/149.rb b/lib/onix/codelists/149.rb new file mode 100644 index 0000000..3315441 --- /dev/null +++ b/lib/onix/codelists/149.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_149 = { + "01" => "Product", + "02" => "Collection level", + "03" => "Subcollection", + "04" => "Content item" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/150.rb b/lib/onix/codelists/150.rb new file mode 100644 index 0000000..d5f6a01 --- /dev/null +++ b/lib/onix/codelists/150.rb @@ -0,0 +1,130 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_150 = { + "00" => "Undefined", + "AA" => "Audio", + "AB" => "Audio cassette", + "AC" => "CD-Audio", + "AD" => "DAT", + "AE" => "Audio disc", + "AF" => "Audio tape", + "AG" => "MiniDisc", + "AH" => "CD-Extra", + "AI" => "DVD Audio", + "AJ" => "Downloadable audio file", + "AK" => "Pre-recorded digital audio player", + "AL" => "Pre-recorded SD card", + "AZ" => "Other audio format", + "BA" => "Book", + "BB" => "Hardback", + "BC" => "Paperback / softback", + "BD" => "Loose-leaf", + "BE" => "Spiral bound", + "BF" => "Pamphlet", + "BG" => "Leather / fine binding", + "BH" => "Board book", + "BI" => "Rag book", + "BJ" => "Bath book", + "BK" => "Novelty book", + "BL" => "Slide bound", + "BM" => "Big book", + "BN" => "Part-work (fascículo)", + "BO" => "Fold-out book or chart", + "BP" => "Foam book", + "BZ" => "Other book format", + "CA" => "Sheet map", + "CB" => "Sheet map, folded", + "CC" => "Sheet map, flat", + "CD" => "Sheet map, rolled", + "CE" => "Globe", + "CZ" => "Other cartographic", + "DA" => "Digital (on physical carrier)", + "DB" => "CD-ROM", + "DC" => "CD-I", + "DE" => "Game cartridge", + "DF" => "Diskette", + "DI" => "DVD-ROM", + "DJ" => "Secure Digital (SD) Memory Card", + "DK" => "Compact Flash Memory Card", + "DL" => "Memory Stick Memory Card", + "DM" => "USB Flash Drive", + "DN" => "Double-sided CD/DVD", + "DZ" => "Other digital carrier", + "EA" => "Digital (delivered electronically)", + "EB" => "Digital download and online", + "EC" => "Digital online", + "ED" => "Digital download", + "FA" => "Film or transparency", + "FC" => "Slides", + "FD" => "OHP transparencies", + "FE" => "Filmstrip", + "FF" => "Film", + "FZ" => "Other film or transparency format", + "LA" => "Digital product license", + "LB" => "Digital product license key", + "LC" => "Digital product license code", + "MA" => "Microform", + "MB" => "Microfiche", + "MC" => "Microfilm", + "MZ" => "Other microform", + "PA" => "Miscellaneous print", + "PB" => "Address book", + "PC" => "Calendar", + "PD" => "Cards", + "PE" => "Copymasters", + "PF" => "Diary", + "PG" => "Frieze", + "PH" => "Kit", + "PI" => "Sheet music", + "PJ" => "Postcard book or pack", + "PK" => "Poster", + "PL" => "Record book", + "PM" => "Wallet or folder", + "PN" => "Pictures or photographs", + "PO" => "Wallchart", + "PP" => "Stickers", + "PQ" => "Plate (lámina)", + "PR" => "Notebook / blank book", + "PS" => "Organizer", + "PT" => "Bookmark", + "PZ" => "Other printed item", + "SA" => "Multiple-item retail product", + "SB" => "Multiple-item retail product, boxed", + "SC" => "Multiple-item retail product, slip-cased", + "SD" => "Multiple-item retail product, shrinkwrapped", + "SE" => "Multiple-item retail product, loose", + "SF" => "Multiple-item retail product, part(s) enclosed", + "VA" => "Video", + "VF" => "Videodisc", + "VI" => "DVD video", + "VJ" => "VHS video", + "VK" => "Betamax video", + "VL" => "VCD", + "VM" => "SVCD", + "VN" => "HD DVD", + "VO" => "Blu-ray", + "VP" => "UMD Video", + "VZ" => "Other video format", + "XA" => "Trade-only material", + "XB" => "Dumpbin – empty", + "XC" => "Dumpbin – filled", + "XD" => "Counterpack – empty", + "XE" => "Counterpack – filled", + "XF" => "Poster, promotional", + "XG" => "Shelf strip", + "XH" => "Window piece", + "XI" => "Streamer", + "XJ" => "Spinner", + "XK" => "Large book display", + "XL" => "Shrink-wrapped pack", + "XZ" => "Other point of sale", + "ZA" => "General merchandise", + "ZB" => "Doll", + "ZC" => "Soft toy", + "ZD" => "Toy", + "ZE" => "Game", + "ZF" => "T-shirt", + "ZZ" => "Other merchandise" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/151.rb b/lib/onix/codelists/151.rb new file mode 100644 index 0000000..ceba106 --- /dev/null +++ b/lib/onix/codelists/151.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_151 = { + "01" => "Born in", + "02" => "Died in", + "03" => "Resided in", + "04" => "Currently resides in", + "05" => "Educated in", + "06" => "Worked in", + "07" => "Flourished in" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/152.rb b/lib/onix/codelists/152.rb new file mode 100644 index 0000000..4a3f388 --- /dev/null +++ b/lib/onix/codelists/152.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_152 = { + "01" => "No", + "02" => "Yes" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/153.rb b/lib/onix/codelists/153.rb new file mode 100644 index 0000000..b95af2b --- /dev/null +++ b/lib/onix/codelists/153.rb @@ -0,0 +1,20 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_153 = { + "01" => "Sender-defined text", + "02" => "Short description/annotation", + "03" => "Description", + "04" => "Table of contents", + "05" => "Flap / cover copy", + "06" => "Review quote", + "07" => "Review quote: previous edition", + "08" => "Review quote: previous work", + "09" => "Endorsement", + "10" => "Promotional headline", + "11" => "Feature", + "12" => "Biographical note", + "13" => "Publisher's notice", + "14" => "Excerpt" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/154.rb b/lib/onix/codelists/154.rb new file mode 100644 index 0000000..28d0658 --- /dev/null +++ b/lib/onix/codelists/154.rb @@ -0,0 +1,15 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_154 = { + "00" => "Unrestricted", + "01" => "Restricted", + "02" => "Booktrade", + "03" => "End-customers", + "04" => "Librarians", + "05" => "Teachers", + "06" => "Students", + "07" => "Press", + "08" => "Shopping comparison service" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/155.rb b/lib/onix/codelists/155.rb new file mode 100644 index 0000000..3f7e123 --- /dev/null +++ b/lib/onix/codelists/155.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_155 = { + "01" => "Publication date", + "04" => "Broadcast date", + "14" => "From date", + "15" => "Until date", + "17" => "Last updated" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/156.rb b/lib/onix/codelists/156.rb new file mode 100644 index 0000000..ec68cc0 --- /dev/null +++ b/lib/onix/codelists/156.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_156 = { + "01" => "Review", + "02" => "Bestseller list", + "03" => "Media mention", + "04" => "'One locality, one book' program" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/157.rb b/lib/onix/codelists/157.rb new file mode 100644 index 0000000..4147396 --- /dev/null +++ b/lib/onix/codelists/157.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_157 = { + "01" => "Printed media", + "02" => "Website", + "03" => "Radio", + "04" => "TV" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/158.rb b/lib/onix/codelists/158.rb new file mode 100644 index 0000000..b0d2eb8 --- /dev/null +++ b/lib/onix/codelists/158.rb @@ -0,0 +1,32 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_158 = { + "01" => "Front cover", + "02" => "Back cover", + "03" => "Cover / pack", + "04" => "Contributor picture", + "05" => "Series image / artwork", + "06" => "Series logo", + "07" => "Product image / artwork", + "08" => "Product logo", + "09" => "Publisher logo", + "10" => "Imprint logo", + "11" => "Contributor interview", + "12" => "Contributor presentation", + "13" => "Contributor reading", + "14" => "Contributor event schedule", + "15" => "Sample content", + "16" => "Widget", + "17" => "Review", + "18" => "Other commentary / discussion", + "19" => "Reading group guide", + "20" => "Teacher's guide", + "21" => "Feature article", + "22" => "Character 'interview'", + "23" => "Wallpaper / screensaver", + "24" => "Press release", + "25" => "Table of contents", + "26" => "Trailer" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/159.rb b/lib/onix/codelists/159.rb new file mode 100644 index 0000000..abef042 --- /dev/null +++ b/lib/onix/codelists/159.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_159 = { + "01" => "Application", + "02" => "Audio", + "03" => "Image", + "04" => "Text", + "05" => "Video", + "06" => "Multi-mode" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/160.rb b/lib/onix/codelists/160.rb new file mode 100644 index 0000000..52e9ad1 --- /dev/null +++ b/lib/onix/codelists/160.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_160 = { + "01" => "Required credit", + "02" => "Caption", + "03" => "Copyright holder", + "04" => "Length in minutes" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/161.rb b/lib/onix/codelists/161.rb new file mode 100644 index 0000000..85867f7 --- /dev/null +++ b/lib/onix/codelists/161.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_161 = { + "01" => "Linkable resource", + "02" => "Downloadable file", + "03" => "Embeddable application" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/162.rb b/lib/onix/codelists/162.rb new file mode 100644 index 0000000..7f202a5 --- /dev/null +++ b/lib/onix/codelists/162.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_162 = { + "01" => "File format", + "02" => "Image height in pixels", + "03" => "Image width in pixels", + "04" => "Filename", + "05" => "Download file size in Mbytes", + "06" => "MD5 hash value" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/163.rb b/lib/onix/codelists/163.rb new file mode 100644 index 0000000..eb9cd1c --- /dev/null +++ b/lib/onix/codelists/163.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_163 = { + "01" => "Publication date", + "02" => "Embargo date", + "09" => "Public announcement date", + "10" => "Trade announcement date", + "11" => "Date of first publication", + "12" => "Last reprint date", + "13" => "Out-of-print / deletion date", + "16" => "Last reissue date", + "19" => "Publication date of print counterpart", + "20" => "Date of first publication in original language", + "21" => "Forthcoming reissue date" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/164.rb b/lib/onix/codelists/164.rb new file mode 100644 index 0000000..0db2c4f --- /dev/null +++ b/lib/onix/codelists/164.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_164 = { + "01" => "Manifestation of", + "02" => "Derived from", + "03" => "Related work is derived from this", + "04" => "Other work in same collection", + "05" => "Other work by same contributor" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/165.rb b/lib/onix/codelists/165.rb new file mode 100644 index 0000000..bf532d0 --- /dev/null +++ b/lib/onix/codelists/165.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_165 = { + "01" => "Supplier's sales classification", + "02" => "Supplier's bonus eligibility", + "03" => "Publisher's sales classification" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/166.rb b/lib/onix/codelists/166.rb new file mode 100644 index 0000000..7c24e2a --- /dev/null +++ b/lib/onix/codelists/166.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_166 = { + "02" => "Embargo date", + "08" => "Expected availability date", + "18" => "Last date for returns" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/167.rb b/lib/onix/codelists/167.rb new file mode 100644 index 0000000..ff6e5f0 --- /dev/null +++ b/lib/onix/codelists/167.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_167 = { + "01" => "Includes updates", + "02" => "Must also purchase updates", + "03" => "Updates available" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/168.rb b/lib/onix/codelists/168.rb new file mode 100644 index 0000000..8b3f779 --- /dev/null +++ b/lib/onix/codelists/168.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_168 = { + "01" => "Time period", + "02" => "Number of updates" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/169.rb b/lib/onix/codelists/169.rb new file mode 100644 index 0000000..65d389d --- /dev/null +++ b/lib/onix/codelists/169.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_169 = { + "00" => "Units", + "08" => "Weeks", + "09" => "Months" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/170.rb b/lib/onix/codelists/170.rb new file mode 100644 index 0000000..d9c350b --- /dev/null +++ b/lib/onix/codelists/170.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_170 = { + + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/171.rb b/lib/onix/codelists/171.rb new file mode 100644 index 0000000..0f8ddf7 --- /dev/null +++ b/lib/onix/codelists/171.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_171 = { + "01" => "VAT", + "02" => "GST" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/172.rb b/lib/onix/codelists/172.rb new file mode 100644 index 0000000..b5e7bc0 --- /dev/null +++ b/lib/onix/codelists/172.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_172 = { + "EUR" => "Eurozone" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/173.rb b/lib/onix/codelists/173.rb new file mode 100644 index 0000000..df37d7c --- /dev/null +++ b/lib/onix/codelists/173.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_173 = { + "14" => "From date", + "15" => "Until date" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/174.rb b/lib/onix/codelists/174.rb new file mode 100644 index 0000000..2c86973 --- /dev/null +++ b/lib/onix/codelists/174.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_174 = { + "01" => "No", + "02" => "Yes" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/175.rb b/lib/onix/codelists/175.rb new file mode 100644 index 0000000..03f825d --- /dev/null +++ b/lib/onix/codelists/175.rb @@ -0,0 +1,206 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_175 = { + "A101" => "CD standard audio format", + "A102" => "SACD super audio format", + "A103" => "MP3 format", + "A104" => "WAV format", + "A105" => "Real Audio format", + "A106" => "WMA", + "A107" => "AAC", + "A108" => "Ogg/Vorbis", + "A109" => "Audible", + "A110" => "FLAC", + "A111" => "AIFF", + "A112" => "ALAC", + "A201" => "DAISY 2: full audio with title only (no navigation)", + "A202" => "DAISY 2: full audio with navigation (no text)", + "A203" => "DAISY 2: full audio with navigation and partial text", + "A204" => "DAISY 2: full audio with navigation and full text", + "A205" => "DAISY 2: full text with navigatino and partial audio", + "A206" => "DAISY 2: full text with navigation and no audio", + "A207" => "DAISY 3: full audio with title only (no navigation)", + "A208" => "DAISY 3: full audio with navigation (no text)", + "A209" => "DAISY 3: full audio with navigation and partial text", + "A210" => "DAISY 3: full audio with navigation and full text", + "A211" => "DAISY 3: full textwith navigation and partial audio", + "A212" => "DAISY 3: full text with navigation and no audio", + "B101" => "Mass market (rack) paperback", + "B102" => "Trade paperback (US)", + "B103" => "Digest format paperback", + "B104" => "A-format paperback", + "B105" => "B-format paperback", + "B106" => "Trade paperback (UK)", + "B107" => "Tall rack paperback (US)", + "B108" => "A5: Tankobon", + "B109" => "B5: Tankobon", + "B110" => "B6: Tankobon", + "B111" => "A6: Bunko", + "B112" => "B40-dori: Shinsho", + "B113" => "Pocket (Sweden)", + "B114" => "Storpocket (Sweden)", + "B115" => "Kartonnage (Sweden)", + "B116" => "Flexband (Sweden)", + "B117" => "Mook", + "B118" => "Dwarsligger", + "B119" => "46 size", + "B120" => "46-Henkei size", + "B121" => "A4", + "B122" => "A4-Henkei size", + "B123" => "A5-Henkei size", + "B124" => "B5-Henkei size", + "B125" => "B6-Henkei size", + "B126" => "AB size", + "B127" => "B7 size", + "B128" => "Kiku size", + "B129" => "Kiku-Henkei size", + "B201" => "Coloring / join-the-dot book", + "B202" => "Lift-the-flap book", + "B204" => "Miniature book", + "B205" => "Moving picture / flicker book", + "B206" => "Pop-up book", + "B207" => "Scented / 'smelly' book", + "B208" => "Sound story / 'noisy' book", + "B209" => "Sticker book", + "B210" => "Touch-and-feel book", + "B212" => "Die-cut book", + "B213" => "Book-as-toy", + "B214" => "Soft-to-touch book", + "B215" => "Fuzzy-felt book", + "B221" => "Picture book", + "B222" => "'Carousel' Book", + "B301" => "Loose leaf - sheets and binder", + "B302" => "Loose leaf - binder only", + "B303" => "Loose leaf - sheets only", + "B304" => "Sewn", + "B305" => "Unsewn / adhesive bound", + "B306" => "Library binding", + "B307" => "Reinforced binding", + "B308" => "Half bound", + "B309" => "Quarter bound", + "B310" => "Saddle-sewn", + "B311" => "Comb bound", + "B312" => "Wire-O", + "B313" => "Concealed wire", + "B401" => "Cloth over boards", + "B402" => "Paper over boards", + "B403" => "Leather, real", + "B404" => "Leather, imitation", + "B405" => "Leather, bonded", + "B406" => "Vellum", + "B409" => "Cloth", + "B410" => "Imitation cloth", + "B411" => "Velvet", + "B412" => "Flexible plastic/vinyl cover", + "B413" => "Plastic-covered", + "B414" => "Vinyl-covered", + "B415" => "Laminated cover", + "B501" => "With dust jacket", + "B502" => "With printed dust jacket", + "B503" => "With translucent dust cover", + "B504" => "With flaps", + "B505" => "With thumb index", + "B506" => "With ribbon marker(s)", + "B507" => "With zip fastener", + "B508" => "With button snap fastener", + "B509" => "With leather edge lining", + "B510" => "Rough front", + "B601" => "Turn-around book", + "B602" => "Unflipped manga format", + "B701" => "UK Uncontracted Braille", + "B702" => "UK Contracted Braille", + "B703" => "US Braille", + "B704" => "US Uncontracted Braille", + "B705" => "US Contracted Braille", + "B706" => "Unified English Braille", + "B707" => "Moon", + "D101" => "Real Video format", + "D102" => "Quicktime format", + "D103" => "AVI format", + "D104" => "Windows Media Video format", + "D105" => "MPEG-4", + "D201" => "MS-DOS", + "D202" => "Windows", + "D203" => "Macintosh", + "D204" => "UNIX / LINUX", + "D205" => "Other operating system(s)", + "D206" => "Palm OS", + "D207" => "Windows Mobile", + "D301" => "Microsoft XBox", + "D302" => "Nintendo Gameboy Color", + "D303" => "Nintendo Gameboy Advanced", + "D304" => "Nintendo Gameboy", + "D305" => "Nintendo Gamecube", + "D306" => "Nintendo 64", + "D307" => "Sega Dreamcast", + "D308" => "Sega Genesis/Megadrive", + "D309" => "Sega Saturn", + "D310" => "Sony PlayStation 1", + "D311" => "Sony PlayStation 2", + "D312" => "Nintendo Dual Screen", + "D313" => "Sony PlayStation 3", + "D314" => "Xbox 360", + "D315" => "Nintendo Wii", + "D316" => "Sony PlayStation Portable (PSP)", + "E100" => "Other", + "E101" => "EPUB", + "E102" => "OEB", + "E103" => "DOC", + "E104" => "DOCX", + "E105" => "HTML", + "E106" => "ODF", + "E107" => "PDF", + "E108" => "PDF/A", + "E109" => "RTF", + "E110" => "SGML", + "E111" => "TCR", + "E112" => "TXT", + "E113" => "XHTML", + "E114" => "zTXT", + "E115" => "XPS", + "E116" => "Amazon Kindle", + "E117" => "BBeB", + "E118" => "DXReader", + "E119" => "EBL", + "E120" => "Ebrary", + "E121" => "eReader", + "E122" => "Exebook", + "E123" => "Franklin eBookman", + "E124" => "Gemstar Rocketbook", + "E125" => "iSilo", + "E126" => "Microsoft Reader", + "E127" => "Mobipocket", + "E128" => "MyiLibrary", + "E129" => "NetLibrary", + "E130" => "Plucker", + "E131" => "VitalBook", + "E132" => "Vook", + "E133" => "Google Edition", + "E134" => "Book 'app' for iOS", + "E135" => "Book 'app' for Android", + "E136" => "Book 'app' for other operating system", + "L101" => "Laminated", + "P101" => "Desk calendar", + "P102" => "Mini calendar", + "P103" => "Engagement calendar", + "P104" => "Day by day calendar", + "P105" => "Poster calendar", + "P106" => "Wall calendar", + "P107" => "Perpetual calendar", + "P108" => "Advent calendar", + "P109" => "Bookmark calendar", + "P110" => "Student calendar", + "P111" => "Project calendar", + "P112" => "Almanac calendar", + "P113" => "Other calendar", + "P114" => "Other calendar or organiser product", + "P201" => "Hardback (stationery)", + "P202" => "Paperback / softback (stationery)", + "P203" => "Spiral bound (stationery)", + "P204" => "Leather / fine binding (stationery)", + "V201" => "PAL", + "V202" => "NTSC", + "V203" => "SECAM" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/176.rb b/lib/onix/codelists/176.rb new file mode 100644 index 0000000..3225cd7 --- /dev/null +++ b/lib/onix/codelists/176.rb @@ -0,0 +1,20 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_176 = { + "01" => "Android", + "02" => "BlackBerry OS", + "03" => "iOS", + "04" => "Linux", + "05" => "Mac OS", + "06" => "Mac OS X", + "07" => "Palm OS", + "08" => "webOS", + "09" => "Symbian", + "10" => "Windows", + "11" => "Windows CE", + "12" => "Windows Mobile", + "13" => "Mac OS", + "14" => "Windows Phone 7" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/177.rb b/lib/onix/codelists/177.rb new file mode 100644 index 0000000..3ca0e3d --- /dev/null +++ b/lib/onix/codelists/177.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_177 = { + "50" => "Date of birth", + "51" => "Date of death" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/178.rb b/lib/onix/codelists/178.rb new file mode 100644 index 0000000..df6f47e --- /dev/null +++ b/lib/onix/codelists/178.rb @@ -0,0 +1,24 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_178 = { + "A103" => "MP3", + "A104" => "WAV", + "A105" => "Real Audio", + "A106" => "WMA", + "A107" => "AAC", + "D101" => "Real Video", + "D102" => "QuickTime", + "D103" => "AVI", + "D104" => "WMV", + "D105" => "MPEG-4", + "D106" => "FLV", + "D107" => "SWF", + "D401" => "PDF", + "D501" => "GIF", + "D502" => "JPEG", + "D503" => "PNG", + "D504" => "TIFF", + "E101" => "EPUB" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/179.rb b/lib/onix/codelists/179.rb new file mode 100644 index 0000000..b02be61 --- /dev/null +++ b/lib/onix/codelists/179.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_179 = { + "01" => "Proprietary" + } +end; end \ No newline at end of file diff --git a/lib/onix/codelists/184.rb b/lib/onix/codelists/184.rb new file mode 100644 index 0000000..0f37d18 --- /dev/null +++ b/lib/onix/codelists/184.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +module ONIX; module CodeLists + LIST_184 = { + "00" => "No warning", + "01" => "Carries 'CE' logo", + "02" => "Carries minimum age warning", + "03" => "Carries EU Toy Safety Directive 'Unsuitable for children ages 0-3' warning logo", + "04" => "Carries EU Toy Safety Directive hazard warning" + } +end; end \ No newline at end of file diff --git a/lib/onix/contributor.rb b/lib/onix/contributor.rb deleted file mode 100644 index 7c845c0..0000000 --- a/lib/onix/contributor.rb +++ /dev/null @@ -1,26 +0,0 @@ -# coding: utf-8 - -module ONIX - class Contributor - include ROXML - - xml_name "Contributor" - - xml_accessor :sequence_number, :from => "SequenceNumber", :as => Fixnum - xml_accessor :contributor_role, :from => "ContributorRole" - xml_accessor :language_code, :from => "LanguageCode" - xml_accessor :sequence_number_within_role, :from => "SequenceNumberWithinRole", :as => Fixnum - xml_accessor :person_name, :from => "PersonName" - xml_accessor :person_name_inverted, :from => "PersonNameInverted" - xml_accessor :titles_before_names, :from => "TitlesBeforeNames" - xml_accessor :names_before_key, :from => "NamesBeforeKey" - xml_accessor :prefix_to_key, :from => "PrefixToKey" - xml_accessor :key_names, :from => "KeyNames" - xml_accessor :names_after_key, :from => "NamesArterKey" - xml_accessor :suffix_to_key, :from => "SuffixToKey" - xml_accessor :letters_after_names, :from => "LettersAfterNames" - xml_accessor :titles_after_names, :from => "TitlesAfterNames" - xml_accessor :corporate_name, :from => "CorporateName" - xml_accessor :biographical_note, :from => "BiographicalNote" - end -end diff --git a/lib/onix/core/code.rb b/lib/onix/core/code.rb new file mode 100644 index 0000000..158cd84 --- /dev/null +++ b/lib/onix/core/code.rb @@ -0,0 +1,106 @@ +# coding: utf-8 + + +module ONIX + + class Code + + attr_reader :key, :value, :list, :list_number + + # Note re: key type. For backwards compatibility, code keys that are + # all-digits are passed around in this gem as Fixnums. + # + # The actual code list hashes have string-based keys for consistency. If + # you want the integer-or-string key, use Code#key. If you want the real + # string key, use Code#to_s. + # + # If the key is not found in the list, the behaviour depends on the + # :enforce option. By default, it returns a code with key and value set to + # nil. If :enforce is true, an exception is raised. If :enforce is false, + # the key and value is the data given in the tag. + # + def initialize(list_number, data, options = {}) + @list_number = list_number + unless @list = ONIX::Lists.list(@list_number) + raise ONIX::CodeListNotFound.new(@list_number) + end + + @key = @value = nil + return if data.nil? || data == "" + + if data.kind_of?(Fixnum) + @key = data + pad_length = options[:length] || ["#{@list.size}".size, 2].max + @real_key = pad(data, pad_length) + elsif data.match(/^\d+$/) && @list.keys.include?(data) + @key = data.to_i + @real_key = data + elsif @list.keys.include?(data) + @key = @real_key = data + else + @list.each_pair { |k, v| + next unless v == data + @real_key = k + @key = @real_key.match(/^\d+$/) ? @real_key.to_i : @real_key + break + } + end + if @real_key + @value = @list[@real_key] + elsif options[:enforce] == true + raise ONIX::CodeNotFoundInList.new(@list_number, data) + elsif options[:enforce] == false + @value = @key = @real_key = data + else + @value = @key = @real_key = nil + end + end + + + # Returns true if the given key has a value in the codelist. + # + def valid? + @value ? true : false + end + + + # Returns the string representation of the key. eg, "BB". + # + def to_s + @real_key + end + + + # Returns the string representation of the value. eg, "Hardback". + # + def to_str + @value.to_s + end + + + private + + # Converts a Fixnum key into a String key. + # + def pad(key, len) + key ? key.to_s.rjust(len, '0') : nil + end + + end + + + class CodeListNotFound < ArgumentError + def initialize(list_number) + @list_number = list_number + end + end + + + class CodeNotFoundInList < RuntimeError + def initialize(list_number, code) + @list_number = list_number + @code = code + end + end + +end diff --git a/lib/onix/core/element.rb b/lib/onix/core/element.rb new file mode 100644 index 0000000..9d6c163 --- /dev/null +++ b/lib/onix/core/element.rb @@ -0,0 +1,288 @@ +# coding: utf-8 + +module ONIX + + class Element + + include ROXML + + require 'active_support/core_ext/class' + + #class_inheritable_accessor(:xml_array_accessors) + class_attribute(:xml_array_accessors) + + # An accessor to an array of element instances. + # + # Options: + # + # :from - defaults to the class name, but you can override this. + # :singular - accessor is not an array, just a single object. + # + def self.onix_composite(name, klass, options = {}) + options[:as] = options.delete(:singular) ? klass : [klass] + options[:from] ||= klass.to_s.split("::").last + xml_accessor(name, options) + end + + # An accessor that treats the input/output as a date. + # + # Options: none yet. + # + def self.onix_date_accessor(name, tag_name, options = {}) + options = options.merge( + :from => tag_name, + :to_xml => ONIX::Formatters.yyyymmdd + ) + if options[:as].kind_of?(Array) + prep = lambda { |vs| + [vs].flatten.collect { |v| Date.parse(v) rescue nil } + } + else + prep = lambda { |v| Date.parse(v) rescue nil } + end + xml_accessor(name, options, &prep) + end + + # An accessor that treats the input as a space-separated list, and + # creates an array for it. + # + def self.onix_space_separated_list(name, tag_name, options = {}) + options = options.merge( + :from => tag_name, + :to_xml => ONIX::Formatters.space_separated + ) + prep = lambda { |v| v ? v.split : [] } + xml_accessor(name, options, &prep) + end + + + # An accessor that treats an empty string as a true value -- so that + # something like is recognised as + # "there is no contributor". + # + def self.onix_boolean_flag(name, tag_name, options = {}) + options = options.merge( + :from => tag_name, + :to_xml => ONIX::Formatters.boolean + ) + prep = lambda { |v| v ? true : false } + xml_accessor(name, options, &prep) + end + + + # An accessor that maps a "code" string into an ONIX::Code object. + # A Code object can return the simple code (or "key"), or the value that + # is associated with it in ONIX code lists, and so on. + # + # Required: + # + # :list - integer referring to an ONIX Code List + # + # Special options for Code instantiation are: + # + # :length - how many digits to pad (default is taken from total list size) + # + # As well as the normal accessor (x/x=), this will create a + # special accessor for the richer Code object (#x_code/#x_code=). + # For example: + # + # class Foo < ONIX::Element + # onix_code_from_list(:message_type, "MessageType", :list => 1) + # end + # + # foo = Foo.new + # + # foo.message_type = 1 + # + # foo.message_type + # >> 1 + # + # foo.message_type_code + # >> # + # + # foo.message_type_code.key + # >> 1 + # + # foo.message_type_code.to_s + # >> "01" + # + # foo.message_type_code.value + # >> "Early notification" + # + # + def self.onix_code_from_list(name, tag_name, options = {}) + unless list_number = options.delete(:list) + raise ONIX::CodeListNotSpecified + end + code_opts = options.slice(:length, :enforce) + options.delete(:enforce) + prep = lambda { |value| + ONIX::Code.new(list_number, value, code_opts) + } + options = options.merge(:from => tag_name) + xml_accessor("#{name}_code", options, &prep) + + define_method(name) do + send("#{name}_code").key + end + + define_method("#{name}=") do |val| + val = prep.call(val) unless val.kind_of?(ONIX::Code) + send("#{name}_code=", val) + end + end + + # Like onix_code_from_list, but for an array of codes. + # + # Required: + # + # :list - integer referring to an ONIX Code List + # + # One important caveat: when assigning to this accessor, you must + # pass in the complete array -- if you assign an array that you later + # push or shift items into, you might get unexpected results. + # + # Similar to onix_code_from_list, this creates a special accessor for the + # Code objects at (#x_codes/#x_codes=). For example: + # + # class Bar < ONIX::Element + # onix_codes_from_list(:identifiers, "Identifier", :list => 5) + # end + # + # bar = Bar.new + # + # bar.identifiers = [1, 5, 13] + # + # bar.identifiers_codes.collect { |ids| ids.value } + # >> ["Proprietary", "ISMN-10", "LLCN"] + # + # If a block is given, each value is passed into it first - return + # an array of the actual values. + # + def self.onix_codes_from_list(name, tag_name, options = {}, &blk) + unless list_number = options.delete(:list) + raise ONIX::CodeListNotSpecified + end + code_opts = options.slice(:length, :enforce) + options.delete(:enforce) + prep = lambda { |values| + if block_given? + values = [values].flatten.collect { |v| blk.call(v) } + end + [values].flatten.collect do |data| + ONIX::Code.new(list_number, data, code_opts) + end + } + options = options.merge(:from => tag_name, :as => []) + xml_accessor("#{name}_codes", options, &prep) + + define_method(name) do + codes = send("#{name}_codes") + codes ? codes.collect { |cd| cd.key } : nil + end + + # FIXME: Hmm, adding to array? what happens with push, etc? + define_method("#{name}=") do |vals| + vals = [vals].flatten.collect { |v| + v.kind_of?(ONIX::Code) ? v : prep.call(v) + }.flatten + send("#{name}_codes=", vals) + end + end + + + # Sugar for a common case -- country or territory codes. + # + def self.onix_spaced_codes_from_list(name, tag_name, options) + options[:to_xml] ||= ONIX::Formatters.space_separated + onix_codes_from_list(name, tag_name, options) { |v| v ? v.split : [] } + end + + + # Query a composite array within this element, looking for an attribute + # ('mthd') that has a value equal to 'query'. + # + # The idea is that you can shorten this: + # + # product.websites.detect { |ws| ws.website_role == 1 } + # + # To this: + # + # product.fetch(:websites, :website_role, 1) + # + # Note: query may be an array of values, will return the first + # composite that matches one of them. So this: + # + # product.websites.detect { |ws| ws.website_role == 1 } || + # product.websites.detect { |ws| ws.website_role == 2 } + # + # becomes this: + # + # product.fetch(:websites, :website_role, [1, 2]) + # + def fetch(composite_symbol, mthd, query) + result = nil + [query].flatten.each do |matcher| + break if result = send(composite_symbol).detect do |comp| + comp.send(mthd) == matcher + end + end + result + end + + # Queries a composite array like #fetch, but returns *all* composites + # that have a match. + # + def fetch_all(composite_symbol, mthd, query) + [query].flatten.inject([]) do |acc, matcher| + comps = send(composite_symbol).select do |comp| + comp.send(mthd) == matcher + end + acc += comps if comps.any? + acc + end + end + + + def self.alias_accessor(new_accessor, old_accessor) + alias_method(new_accessor, old_accessor) + alias_method("#{new_accessor}=", "#{old_accessor}=") + end + + + # We should initialize the instance accessors of array-type xml tags + # with an empty array. These two methods do that. If you override + # initialize in a subclass, don't forget to call super. + # + + def self.xml_accessor(*syms, &blk) + options = syms.extract_options! + if options[:as] && options[:as].kind_of?(Array) + self.xml_array_accessors ||= [] + self.xml_array_accessors = xml_array_accessors.dup + self.xml_array_accessors << syms.first + end + syms.push(options) + super + end + + + def initialize + if self.class.xml_array_accessors + self.class.xml_array_accessors = self.class.xml_array_accessors.dup + self.class.xml_array_accessors.each { |name| + asgn = "#{name}=" + raise "Can't assign #{name} for #{self.class} - xml_array_accessors inheritance error?" unless respond_to?(asgn) + self.send(asgn, []) + } + end + super + end + + end + + + class CodeListNotSpecified < ArgumentError + end + +end diff --git a/lib/onix/header.rb b/lib/onix/core/header.rb similarity index 100% rename from lib/onix/header.rb rename to lib/onix/core/header.rb diff --git a/lib/onix/lists.rb b/lib/onix/core/lists.rb similarity index 76% rename from lib/onix/lists.rb rename to lib/onix/core/lists.rb index 67d202c..c10f471 100644 --- a/lib/onix/lists.rb +++ b/lib/onix/core/lists.rb @@ -26,6 +26,19 @@ def self.list(number) self.instance.list(number) end + # Return a hash with the data for a single code list. + # + # Number should be a fixnum specifying the list to retrieve: + # + # ONIX::Lists.instance.list(7) + # => { "BB" => "Hardback", ... } + # + def list(number) + raise "Invalid list number: #{number}" unless number.to_s.match(/^\d+$/) + require File.join("onix", "codelists", number.to_s.rjust(3, "0")) + eval("ONIX::CodeLists::LIST_#{number}") + end + # Shortcut to retrieve a common code list # def self.audience_code @@ -80,45 +93,6 @@ def self.product_form_detail self.instance.list(78) end - # return a hash with the data for a single code list. - # - # number should be a fixnum specifying the list to retrieve - # - # ONIX::Lists.instance.list(7) - # => { "BB" => "Hardback", ... } - # - def list(number) - cache[number] ||= build_hash(number) - end - - private - - def build_hash(number) - val = {} - data(number).each_line do |line| - code, desc, ldesc = *line.split("\t") - code = code.to_i if code.to_s.match(/\d+/) - val[code] = desc - end - val - end - - def cache - @cache ||= {} - end - - def path(number) - code_dir = File.dirname(__FILE__) + "/../../support/codes" - filename = number.to_s.rjust(3, "0") + ".tsv" - File.join(code_dir, filename) - end - - def data(number) - File.open(path(number)) { |f| f.read } - end - - public - # These are here for backwards compatability with the onix gem <= 0.8.3 AUDIENCE_CODE = ONIX::Lists.audience_code CONTRIBUTOR_ROLE = ONIX::Lists.contributor_role diff --git a/lib/onix/core/reader.rb b/lib/onix/core/reader.rb new file mode 100644 index 0000000..3a6140e --- /dev/null +++ b/lib/onix/core/reader.rb @@ -0,0 +1,163 @@ +# coding: utf-8 + +require 'stringio' + +module ONIX + + # This is the primary class for reading data from an ONIX file. + # + # Each ONIX file should contain a single header, and 1 or more products: + # + # reader = ONIX::Reader.new("somefile.xml") + # + # puts reader.header.inspect + # + # reader.each do |product| + # puts product.inspect + # end + # + # The header will be returned as an ONIX::Header object, and the product will + # be an ONIX::Product. + # + # The ONIX::Product class can be a bit of a hassle to work with, as data can + # be nested in it fairly deeply. To wrap all the products returned by the + # reader in a shim that provides simple accessor access to common attributes, + # pass the shim class as a second argument. + # + # reader = ONIX::Reader.new("somefile.xml", ONIX::APAProduct) + # + # puts reader.header.inspect + # + # reader.each do |product| + # puts product.inspect + # end + # + # APAProduct stands for Australian Publishers Association and provides simple + # access to the ONIX attributes that are commonly used in the Australian + # market. + # + # As well as accessing the file header, there are handful of other read only + # attributes that might be useful + # + # reader = ONIX::Reader.new("somefile.xml", ONIX::APAProduct) + # + # puts reader.xml_lang + # puts reader.xml_version + # + # Note that ONIX has 1500 valid named entities (such as –) that can + # cause the parser to throw an exception because it doesn't recognise them. + # To work around this, the parser loads the ONIX DTD. It generally has to + # do this over the internet, which slows parsing considerably. To skip DTD + # loading (running the risk of parser exceptions), you can pass an option + # to the constructor: + # + # reader = ONIX::Reader.new("somefile.xml", ONIX::Product, :dtd => false) + # + # For more information, see http://is.gd/p7fHQq + # + class Reader + include Enumerable + + attr_reader :header, :release + attr_reader :xml_lang, :xml_version + + # Options: + # + # :dtd - if false, then DTD is not loaded before parsing + # :interpret - a module (or an array of modules) that should extend + # each Product + # + def initialize(input, product_klass = ::ONIX::Product, options = {}) + @input = input + @product_klass = product_klass + @options = options || {} + + create_parser + + @release = find_release + @header = find_header + + @xml_lang ||= @reader.lang + @xml_version ||= @reader.xml_version.to_f + end + + # Iterate over all the products in an ONIX file + # + def each(&block) + @reader.each do |node| + if @reader.node_type == 1 && @reader.name == "Product" + str = @reader.outer_xml + product = str.nil? ? @product_klass.new : @product_klass.from_xml(str) + product.interpret @options[:interpret] + yield product + end + end + end + + # Assemble all the products in the ONIX file into an array. Obviously this + # will chew through memory with very large ONIX files, so use with care. + # + def products + @products ||= [].tap { |prods| each { |prod| prods << prod } } + end + + # Rewind the reader so that you can call 'each' again. + # + def rewind + create_parser + end + + def close + puts "Reader#close is deprecated." + end + + private + + def create_parser + parser_config = lambda { |cfg| + cfg.noent + cfg.dtdload unless @options[:dtd] == false + } + if @input.kind_of?(String) + @file = File.open(@input, "r") + @reader = Nokogiri::XML::Reader(@file, &parser_config) + elsif @input.respond_to?(:read) + @reader = Nokogiri::XML::Reader(@input, &parser_config) + else + raise ArgumentError, "Unable to read from file or IO stream" + end + end + + def find_release + 2.times do + @reader.read + if @reader.node_type == 1 && @reader.name == "ONIXMessage" + value = @reader.attributes["release"] + if value + return BigDecimal.new(value) + else + return nil + end + elsif @reader.node_type == 14 + return nil + end + end + return nil + end + + def find_header + 100.times do + @reader.read + if @reader.node_type == 1 && @reader.name == "Header" + str = @reader.outer_xml + if str.nil? + return ONIX::Header.new + else + return ONIX::Header.from_xml(str) + end + end + end + return nil + end + end +end diff --git a/lib/onix/writer.rb b/lib/onix/core/writer.rb similarity index 59% rename from lib/onix/writer.rb rename to lib/onix/core/writer.rb index b5f6326..a45cc0d 100644 --- a/lib/onix/writer.rb +++ b/lib/onix/core/writer.rb @@ -3,7 +3,7 @@ module ONIX # The primary way to write a new ONIX file. # - # Heres a quick example. The generated file will be nice and boring, as the + # Here's a quick example. The generated file will be nice and boring, as the # header and product objects have no data in them, but you get the idea. # # File.open("output.xml","w") do |output| @@ -24,15 +24,44 @@ module ONIX # end # end # + # You can also have the writer build and yield the product to you: + # + # ONIX::Writer.open(output, header, :class => ONIX::APAProduct) do |writer| + # writer.product do |product| + # product.title = "Grimm's Fairy Tales" + # product.publication_date = Date.today + # end + # writer.product do |product| + # product.title = "Telling the Truth" + # product.publication_date = Date.today - 7 + # end + # end + # + # + # ... which then allows you to use "interpretation modules": + # + # module MySetters + # def set_publication_date_to_xmas + # self.publication_date = Date.parse("2001-12-25") + # end + # end + # + # ONIX::Writer.open(output, header, :interpret => MySetters) do |writer| + # writer.product { |product| product.set_publication_date_to_xmas } + # end + # + # class Writer DOCTYPE = "http://www.editeur.org/onix/2.1/03/reference/onix-international.dtd" # Default constructor. - def initialize(output, header) + def initialize(output, header, options = {}) raise ArgumentError, 'msg must be an ONIX::Header object' unless header.kind_of?(ONIX::Header) @output = output @header = header + @options = options + @product_klass = @options[:class] || ONIX::Product @finished = false start_document @@ -53,6 +82,14 @@ def << (product) @output.write("\n") end + def product + raise ArgumentError, "Block required" unless block_given? + product = @product_klass.new + product.interpret @options[:interpret] + yield product + self << product + end + def end_document @output.write("\n") @finished = true @@ -62,13 +99,13 @@ def finished? @finished end - def self.open(output, header) + def self.open(output, header, options = {}) if block_given? - writer = self.new(output, header) + writer = self.new(output, header, options) yield writer writer.end_document else - self.new(output, header) + self.new(output, header, options) end end diff --git a/lib/onix/elements/addressee_identifier.rb b/lib/onix/elements/addressee_identifier.rb new file mode 100644 index 0000000..05512e8 --- /dev/null +++ b/lib/onix/elements/addressee_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::AddresseeIdentifier < ONIX::Identifier + xml_name "AddresseeIdentifier" + onix_code_from_list :addressee_id_type, "AddresseeIDType", :list => 44 +end diff --git a/lib/onix/elements/agent_identifier.rb b/lib/onix/elements/agent_identifier.rb new file mode 100644 index 0000000..de06eb5 --- /dev/null +++ b/lib/onix/elements/agent_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::AgentIdentifier < ONIX::Element + xml_name "AgentIdentifier" + onix_code_from_list :agent_id_type, "AgentIDType", :list => 92 +end diff --git a/lib/onix/elements/audience.rb b/lib/onix/elements/audience.rb new file mode 100644 index 0000000..d3c9540 --- /dev/null +++ b/lib/onix/elements/audience.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Audience < ONIX::Element + xml_name "Audience" + onix_code_from_list :audience_code_type, "AudienceCodeType", :list => 29 + xml_accessor :audience_code_type_name, "AudienceCodeTypeName" + xml_accessor :audience_code_value, "AudienceCodeValue" +end diff --git a/lib/onix/elements/audience_range.rb b/lib/onix/elements/audience_range.rb new file mode 100644 index 0000000..d6e85e4 --- /dev/null +++ b/lib/onix/elements/audience_range.rb @@ -0,0 +1,15 @@ +# coding: utf-8 + +class ONIX::AudienceRange < ONIX::Element + xml_name "AudienceRange" + onix_code_from_list :audience_range_qualifier, "AudienceRangeQualifier", :list => 30 + onix_codes_from_list :audience_range_precisions, "AudienceRangePrecision", :list => 31 + xml_accessor :audience_range_values, :from => "AudienceRangeValue", :as => [Fixnum] + # TODO: element AudienceRange: validity error : + # Element AudienceRange content does not follow the DTD, expecting + # (AudienceRangeQualifier , AudienceRangePrecision , AudienceRangeValue , + # (AudienceRangePrecision , AudienceRangeValue)?), + # got + # (AudienceRangeQualifier AudienceRangePrecision AudienceRangePrecision + # AudienceRangeValue AudienceRangeValue ) +end diff --git a/lib/onix/elements/batch_bonus.rb b/lib/onix/elements/batch_bonus.rb new file mode 100644 index 0000000..9c2e06d --- /dev/null +++ b/lib/onix/elements/batch_bonus.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::BatchBonus < ONIX::Element + xml_name "BatchBonus" + xml_accessor :batch_quantity, :from => "BatchQuantity", :as => Fixnum + xml_accessor :free_quantity, :from => "FreeQuantity", :as => Fixnum +end diff --git a/lib/onix/elements/bible.rb b/lib/onix/elements/bible.rb new file mode 100644 index 0000000..13d2e20 --- /dev/null +++ b/lib/onix/elements/bible.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +class ONIX::Bible < ONIX::Element + xml_name "Bible" + onix_codes_from_list :bible_contents, "BibleContents", :list => 82 + onix_codes_from_list :bible_versions, "BibleVersion", :list => 83 + onix_code_from_list :study_bible_type, "StudyBibleType", :list => 84 + onix_codes_from_list :bible_purposes, "BiblePurpose", :list => 85 + onix_code_from_list :bible_text_organization, "BibleTextOrganization", :list => 86 + onix_code_from_list :bible_reference_location, "BibleReferenceLocation", :list => 87 + onix_codes_from_list :bible_text_features, "BibleTextFeature", :list => 97 +end diff --git a/lib/onix/elements/complexity.rb b/lib/onix/elements/complexity.rb new file mode 100644 index 0000000..42701ff --- /dev/null +++ b/lib/onix/elements/complexity.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::Complexity < ONIX::Element + xml_name "Complexity" + onix_code_from_list :complexity_scheme_identifier, "ComplexitySchemeIdentifier", :list => 32 + xml_accessor :complexity_code, :from => "ComplexityCode" +end diff --git a/lib/onix/elements/conference.rb b/lib/onix/elements/conference.rb new file mode 100644 index 0000000..5210dab --- /dev/null +++ b/lib/onix/elements/conference.rb @@ -0,0 +1,14 @@ +# coding: utf-8 + +class ONIX::Conference < ONIX::Element + xml_name "Conference" + onix_code_from_list :conference_role, "ConferenceRole", :list => 20 + xml_accessor :conference_name, :from => "ConferenceName" + xml_accessor :conference_acronym, :from => "ConferenceAcronym" + xml_accessor :conference_number, :from => "ConferenceNumber" + xml_accessor :conference_theme, :from => "ConferenceTheme" + xml_accessor :conference_date, :from => "ConferenceDate" + xml_accessor :conference_place, :from => "ConferencePlace" + onix_composite :conference_sponsors, ONIX::ConferenceSponsor + onix_composite :websites, ONIX::Website +end diff --git a/lib/onix/elements/conference_sponsor.rb b/lib/onix/elements/conference_sponsor.rb new file mode 100644 index 0000000..4cf9121 --- /dev/null +++ b/lib/onix/elements/conference_sponsor.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::ConferenceSponsor < ONIX::Element + xml_name "ConferenceSponsor" + onix_composite :conference_sponsor_identifiers, ONIX::ConferenceSponsorIdentifier + xml_accessor :person_name, :from => "PersonName" + xml_accessor :corporate_name, :from => "CorporateName" +end diff --git a/lib/onix/elements/conference_sponsor_identifier.rb b/lib/onix/elements/conference_sponsor_identifier.rb new file mode 100644 index 0000000..48f64cf --- /dev/null +++ b/lib/onix/elements/conference_sponsor_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::ConferenceSponsorIdentifier < ONIX::Identifier + xml_name "ConferenceSponsorIdentifier" + onix_code_from_list :conference_sponsor_id_type, "ConferenceSponsorIDType", :list => 44 +end diff --git a/lib/onix/elements/contained_item.rb b/lib/onix/elements/contained_item.rb new file mode 100644 index 0000000..c465ceb --- /dev/null +++ b/lib/onix/elements/contained_item.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::ContainedItem < ONIX::ProductBase + xml_name "ContainedItem" + xml_accessor :item_quantity, :from => "ItemQuantity", :as => Fixnum +end diff --git a/lib/onix/elements/content_item.rb b/lib/onix/elements/content_item.rb new file mode 100644 index 0000000..54fa08e --- /dev/null +++ b/lib/onix/elements/content_item.rb @@ -0,0 +1,21 @@ +# coding: utf-8 + +class ONIX::ContentItem < ONIX::Element + xml_name "ContentItem" + xml_accessor :level_sequence_number, :from => "LevelSequenceNumber" + onix_composite :text_item, ONIX::TextItem + onix_composite :website, ONIX::Website + xml_accessor :component_type_name, :from => "ComponentTypeName" + xml_accessor :component_number, :from => "ComponentNumber" + xml_accessor :distinctive_title, :from => "DistinctiveTitle" + onix_composite :titles, ONIX::Title + onix_composite :work_identifiers, ONIX::WorkIdentifier + onix_composite :contributors, ONIX::Contributor + xml_accessor :contributor_statement, :from => "ContributorStatement" + onix_composite :subjects, ONIX::Subject + onix_composite :person_as_subjects, ONIX::Contributor + xml_accessor :corporate_body_as_subject, :from => "CorporateBodyAsSubject", :as => [] + xml_accessor :place_as_subject, :from => "PlaceAsSubject", :as => [] + onix_composite :other_texts, ONIX::OtherText + onix_composite :media_files, ONIX::MediaFile +end diff --git a/lib/onix/elements/contributor.rb b/lib/onix/elements/contributor.rb new file mode 100644 index 0000000..158e12a --- /dev/null +++ b/lib/onix/elements/contributor.rb @@ -0,0 +1,19 @@ +# coding: utf-8 + +class ONIX::Contributor < ONIX::NameBase + xml_name "Contributor" + xml_accessor :sequence_number, :from => "SequenceNumber", :as => Fixnum + onix_code_from_list :contributor_role, "ContributorRole", :list => 17 + onix_code_from_list :language_code, "LanguageCode", :list => 74 + xml_accessor :sequence_number_within_role, :from => "SequenceNumberWithinRole", :as => Fixnum + onix_composite :names, ONIX::Name + onix_composite :person_dates, ONIX::PersonDate + onix_composite :professional_affiliations, ONIX::ProfessionalAffiliation + xml_accessor :corporate_name, :from => "CorporateName" + xml_accessor :biographical_note, :from => "BiographicalNote" + onix_composite :websites, ONIX::Website + xml_accessor :contributor_description, :from => "ContributorDescription" + onix_code_from_list :unnamed_persons, "UnnamedPersons", :list => 19 + onix_spaced_codes_from_list :country_codes, "CountryCode", :list => 91 + onix_spaced_codes_from_list :region_codes, "RegionCode", :list => 49 +end diff --git a/lib/onix/elements/copyright_owner.rb b/lib/onix/elements/copyright_owner.rb new file mode 100644 index 0000000..efc9eb8 --- /dev/null +++ b/lib/onix/elements/copyright_owner.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::CopyrightOwner < ONIX::Element + xml_name "CopyrightOwner" + onix_composite :copyright_owner_identifier, ONIX::CopyrightOwnerIdentifier, :singular => true + xml_accessor :person_name, :from => "PersonName" + xml_accessor :corporate_name, :from => "CorporateName" +end diff --git a/lib/onix/elements/copyright_owner_identifier.rb b/lib/onix/elements/copyright_owner_identifier.rb new file mode 100644 index 0000000..7f75bdd --- /dev/null +++ b/lib/onix/elements/copyright_owner_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::CopyrightOwnerIdentifier < ONIX::Identifier + xml_name "CopyrightOwnerIdentifier" + onix_code_from_list :copyright_owner_id_type, "CopyrightOwnerIDType", :list => 44 +end diff --git a/lib/onix/elements/copyright_statement.rb b/lib/onix/elements/copyright_statement.rb new file mode 100644 index 0000000..2bb8987 --- /dev/null +++ b/lib/onix/elements/copyright_statement.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::CopyrightStatement < ONIX::Element + xml_name "CopyrightStatement" + xml_accessor :copyright_years, :from => "CopyrightYear", :as => [Fixnum] + onix_composite :copyright_owners, ONIX::CopyrightOwner +end diff --git a/lib/onix/elements/discount_coded.rb b/lib/onix/elements/discount_coded.rb new file mode 100644 index 0000000..2e12322 --- /dev/null +++ b/lib/onix/elements/discount_coded.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::DiscountCoded < ONIX::Element + xml_name "DiscountCoded" + onix_code_from_list :discount_code_type, "DiscountCodeType", :list => 100 + xml_accessor :discount_code_type_name, :from => "DiscountCodeTypeName" + xml_accessor :discount_code +end diff --git a/lib/onix/elements/extent.rb b/lib/onix/elements/extent.rb new file mode 100644 index 0000000..c134411 --- /dev/null +++ b/lib/onix/elements/extent.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Extent < ONIX::Element + xml_name "Extent" + onix_code_from_list :extent_type, "ExtentType", :list => 23 + xml_accessor :extent_value, :from => "ExtentValue" + onix_code_from_list :extent_unit, "ExtentUnit", :list => 24 +end diff --git a/lib/onix/elements/identifier.rb b/lib/onix/elements/identifier.rb new file mode 100644 index 0000000..f5db9cc --- /dev/null +++ b/lib/onix/elements/identifier.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::Identifier < ONIX::Element + xml_accessor :id_value, :from => "IDValue" + # Optional, only used if x_id_type indicates a proprietary id scheme. + xml_accessor :id_type_name, :from => "IDTypeName" +end diff --git a/lib/onix/elements/illustrations.rb b/lib/onix/elements/illustrations.rb new file mode 100644 index 0000000..a9fbf05 --- /dev/null +++ b/lib/onix/elements/illustrations.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Illustrations < ONIX::Element + xml_name "Illustrations" + onix_code_from_list :illustration_type, "IllustrationType", :list => 25 + xml_accessor :illustration_type_description, :from => "IllustrationTypeDescription" + xml_accessor :number, :from => "Number", :as => Fixnum +end diff --git a/lib/onix/elements/imprint.rb b/lib/onix/elements/imprint.rb new file mode 100644 index 0000000..f44fd2e --- /dev/null +++ b/lib/onix/elements/imprint.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +class ONIX::Imprint < ONIX::Element + xml_name "Imprint" + onix_code_from_list :name_code_type, "NameCodeType", :list => 44 + xml_accessor :name_code_type_name, :from => "NameCodeTypeName" + xml_accessor :name_code_value, :from => "NameCodeValue" + xml_accessor :imprint_name, :from => "ImprintName" +end diff --git a/lib/onix/elements/language.rb b/lib/onix/elements/language.rb new file mode 100644 index 0000000..e075320 --- /dev/null +++ b/lib/onix/elements/language.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Language < ONIX::Element + xml_name "Language" + onix_code_from_list :language_role, "LanguageRole", :list => 22 + onix_code_from_list :language_code, "LanguageCode", :list => 74 + onix_code_from_list :country_code, "CountryCode", :list => 91 +end diff --git a/lib/onix/elements/location_identifier.rb b/lib/onix/elements/location_identifier.rb new file mode 100644 index 0000000..a930ad1 --- /dev/null +++ b/lib/onix/elements/location_identifier.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::LocationIdentifier < ONIX::Identifier + xml_name "LocationIdentifier" + onix_code_from_list :location_id_type, "LocationIDType", :list => 92 +end + + diff --git a/lib/onix/elements/main_subject.rb b/lib/onix/elements/main_subject.rb new file mode 100644 index 0000000..e18d941 --- /dev/null +++ b/lib/onix/elements/main_subject.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +class ONIX::MainSubject < ONIX::Element + xml_name "MainSubject" + onix_code_from_list :main_subject_scheme_identifier, "MainSubjectSchemeIdentifier", :list => 26 + xml_accessor :subject_scheme_version, :from => "SubjectSchemeVersion" + xml_accessor :subject_code, :from => "SubjectCode" + xml_accessor :subject_heading_text, :from => "SubjectHeadingText" +end diff --git a/lib/onix/elements/market_date.rb b/lib/onix/elements/market_date.rb new file mode 100644 index 0000000..1e03221 --- /dev/null +++ b/lib/onix/elements/market_date.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::MarketDate < ONIX::Element + xml_name "MarketDate" + onix_code_from_list :market_date_role, "MarketDateRole", :list => 67 + onix_code_from_list :date_format, "DateFormat", :list => 55 + onix_date_accessor :date, "Date" +end diff --git a/lib/onix/elements/market_representation.rb b/lib/onix/elements/market_representation.rb new file mode 100644 index 0000000..06fa623 --- /dev/null +++ b/lib/onix/elements/market_representation.rb @@ -0,0 +1,18 @@ +# coding: utf-8 + +class ONIX::MarketRepresentation < ONIX::Element + xml_name "MarketRepresentation" + onix_composite :agent_identifiers, ONIX::AgentIdentifier + xml_accessor :agent_name, :from => "AgentName" + xml_accessor :telephone_number, :from => "TelephoneNumber" + xml_accessor :fax_number, :from => "FaxNumber" + xml_accessor :email_address, :from => "EmailAddress" + onix_composite :websites, ONIX::Website + onix_code_from_list :agent_role, "AgentRole", :list => 69 + onix_spaced_codes_from_list :market_countries, "MarketCountry", :list => 91 + onix_spaced_codes_from_list :market_territories, "MarketTerritory", :list => 49 + onix_spaced_codes_from_list :market_countries_excluded, "MarketCountryExcluded", :list => 91 + xml_accessor :market_restriction_detail, :from => "MarketRestrictionDetail" + onix_code_from_list :market_publishing_status, "MarketPublishingStatus", :list => 68 + onix_composite :market_dates, ONIX::MarketDate +end diff --git a/lib/onix/elements/measure.rb b/lib/onix/elements/measure.rb new file mode 100644 index 0000000..b712b61 --- /dev/null +++ b/lib/onix/elements/measure.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Measure < ONIX::Element + xml_name "Measure" + onix_code_from_list :measure_type_code, "MeasureTypeCode", :list => 48 + xml_accessor :measurement, :from => "Measurement", :as => BigDecimal + xml_accessor :measure_unit_code, :from => "MeasureUnitCode" +end diff --git a/lib/onix/elements/media_file.rb b/lib/onix/elements/media_file.rb new file mode 100644 index 0000000..a43f442 --- /dev/null +++ b/lib/onix/elements/media_file.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +class ONIX::MediaFile < ONIX::Element + xml_name "MediaFile" + onix_code_from_list :media_file_type_code, "MediaFileTypeCode", :list => 38 + onix_code_from_list :media_file_format_code, "MediaFileFormatCode", :list => 39 + xml_accessor :image_resolution, :from => "ImageResolution" + onix_code_from_list :media_file_link_type_code, "MediaFileLinkTypeCode", :list => 40 + xml_accessor :media_file_link, :from => "MediaFileLink" + xml_accessor :text_with_download, :from => "TextWithDownload" + xml_accessor :download_caption, :from => "DownloadCaption" + xml_accessor :download_credit, :from => "DownloadCredit" + xml_accessor :download_copyright_notice, :from => "DownloadCopyrightNotice" + xml_accessor :download_terms, :from => "DownloadTerms" + onix_date_accessor :media_file_date, "MediaFileDate" +end diff --git a/lib/onix/elements/name.rb b/lib/onix/elements/name.rb new file mode 100644 index 0000000..2ff8ec2 --- /dev/null +++ b/lib/onix/elements/name.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::Name < ONIX::NameBase + xml_name "Name" + onix_code_from_list :person_name_type, "PersonNameType", :list => 18 +end diff --git a/lib/onix/elements/name_base.rb b/lib/onix/elements/name_base.rb new file mode 100644 index 0000000..e563328 --- /dev/null +++ b/lib/onix/elements/name_base.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +# This is the abstract base class of Name and Contributor. +# +class ONIX::NameBase < ONIX::Element + xml_accessor :person_name, :from => "PersonName" + xml_accessor :person_name_inverted, :from => "PersonNameInverted" + xml_accessor :titles_before_names, :from => "TitlesBeforeNames" + xml_accessor :names_before_key, :from => "NamesBeforeKey" + xml_accessor :prefix_to_key, :from => "PrefixToKey" + xml_accessor :key_names, :from => "KeyNames" + xml_accessor :names_after_key, :from => "NamesAfterKey" + xml_accessor :suffix_to_key, :from => "SuffixToKey" + xml_accessor :letters_after_names, :from => "LettersAfterNames" + xml_accessor :titles_after_names, :from => "TitlesAfterNames" + onix_composite :person_name_identifiers, ONIX::PersonNameIdentifier +end diff --git a/lib/onix/elements/new_supplier.rb b/lib/onix/elements/new_supplier.rb new file mode 100644 index 0000000..19bb799 --- /dev/null +++ b/lib/onix/elements/new_supplier.rb @@ -0,0 +1,12 @@ +# coding: utf-8 + +class ONIX::NewSupplier < ONIX::Element + xml_name "NewSupplier" + xml_accessor :supplier_ean_location_number, :from => "SupplierEANLocationNumber" + xml_accessor :supplier_san, :from => "SupplierSAN" + onix_composite :supplier_identifiers, ONIX::SupplierIdentifier + xml_accessor :supplier_name, :from => "SupplierName" + xml_accessor :telephone_number, :from => "TelephoneNumber" + xml_accessor :fax_number, :from => "FaxNumber" + xml_accessor :email_address, :from => "EmailAddress" +end diff --git a/lib/onix/elements/not_for_sale.rb b/lib/onix/elements/not_for_sale.rb new file mode 100644 index 0000000..208f6b0 --- /dev/null +++ b/lib/onix/elements/not_for_sale.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +# See also: SalesRights. ONIX 2.1 prefers NotForSale blocks if a product is +# not for sale, but this can also be specified with SalesRightsType in +# SalesRights. +# +class ONIX::NotForSale < ONIX::Element + xml_name "NotForSale" + onix_spaced_codes_from_list :rights_countries, "RightsCountry", :list => 91 + onix_spaced_codes_from_list :rights_territories, "RightsTerritory", :list => 49 + onix_composite :product_identifiers, ONIX::ProductIdentifier + xml_accessor :publisher_name, :from => "PublisherName" +end diff --git a/lib/onix/elements/on_order_detail.rb b/lib/onix/elements/on_order_detail.rb new file mode 100644 index 0000000..071cb9c --- /dev/null +++ b/lib/onix/elements/on_order_detail.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::OnOrderDetail < ONIX::Element + xml_name "OnOrderDetail" + xml_accessor :on_order, :from => "OnOrder", :as => Fixnum + onix_date_accessor :expected_date, "ExpectedDate" +end diff --git a/lib/onix/elements/other_text.rb b/lib/onix/elements/other_text.rb new file mode 100644 index 0000000..b29d43c --- /dev/null +++ b/lib/onix/elements/other_text.rb @@ -0,0 +1,17 @@ +# coding: utf-8 + +class ONIX::OtherText < ONIX::Element + xml_name "OtherText" + onix_code_from_list :text_type_code, "TextTypeCode", :list => 33 + onix_code_from_list :text_format, "TextFormat", :list => 34 + xml_accessor :text_format, :from => "TextFormat" + xml_accessor :text, :from => "Text" + onix_code_from_list :text_link_type, "TextLinkType", :list => 35 + xml_accessor :text_link, :from => "TextLink" + xml_accessor :text_author, :from => "TextAuthor" + xml_accessor :text_source_corporate, :from => "TextSourceCorporate" + xml_accessor :text_source_title, :from => "TextSourceTitle" + onix_date_accessor :text_publication_date, "TextPublicationDate" + onix_date_accessor :start_date, "StartDate" + onix_date_accessor :end_date, "EndDate" +end diff --git a/lib/onix/elements/page_run.rb b/lib/onix/elements/page_run.rb new file mode 100644 index 0000000..22d4832 --- /dev/null +++ b/lib/onix/elements/page_run.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::PageRun < ONIX::Element + xml_name "PageRun" + xml_accessor :first_page_number, :from => "FirstPageNumber" + xml_accessor :last_page_number, :from => "LastPageNumber" +end diff --git a/lib/onix/elements/person_date.rb b/lib/onix/elements/person_date.rb new file mode 100644 index 0000000..91e4f7b --- /dev/null +++ b/lib/onix/elements/person_date.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::PersonDate < ONIX::Element + xml_name "PersonDate" + onix_code_from_list :person_date_role, "PersonDateRole", :list => 75 + onix_code_from_list :date_format, "DateFormat", :list => 55 + xml_accessor :date, :from => "Date" +end diff --git a/lib/onix/elements/person_name_identifier.rb b/lib/onix/elements/person_name_identifier.rb new file mode 100644 index 0000000..8501fe8 --- /dev/null +++ b/lib/onix/elements/person_name_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::PersonNameIdentifier < ONIX::Identifier + xml_name "PersonNameIdentifier" + onix_code_from_list :person_name_id_type, "PersonNameIDType", :list => 101 +end diff --git a/lib/onix/elements/price.rb b/lib/onix/elements/price.rb new file mode 100644 index 0000000..fcf4361 --- /dev/null +++ b/lib/onix/elements/price.rb @@ -0,0 +1,46 @@ +# coding: utf-8 + +module ONIX + class Price < ONIX::Element + xml_name "Price" + + + def self.onix_decimal_accessor(name, tag_name) + options = { + :from => tag_name, + :as => BigDecimal, + :to_xml => ONIX::Formatters.decimal + } + xml_accessor(name, options) + end + + + onix_code_from_list :price_type_code, "PriceTypeCode", :list => 58 + onix_code_from_list :price_type_qualifier, "PriceTypeQualifier", :list => 59 + xml_accessor :price_type_description, :from => "PriceTypeDescription" + onix_code_from_list :price_per, "PricePer", :list => 60 + xml_accessor :minimum_order_qty, :from => "MinimumOrderQuantity", :as => Fixnum + onix_composite :batch_bonuses, ONIX::BatchBonus + xml_accessor :class_of_trade, :from => "ClassOfTradeCode" + xml_accessor :bic_discount_group_code, :from => "BICDiscountGroupCode" + onix_composite :discount_codeds, ONIX::DiscountCoded + onix_decimal_accessor :discount_percentage, "DiscountPercentage" + onix_code_from_list :price_status, "PriceStatus", :list => 61 + onix_decimal_accessor :price_amount, "PriceAmount" + onix_code_from_list :currency_code, "CurrencyCode", :list => 96 + onix_spaced_codes_from_list :country_codes, "CountryCode", :list => 91 + onix_spaced_codes_from_list :territories, "Territory", :list => 49 + onix_spaced_codes_from_list :countries_excluded, "CountryExcluded", :list => 91 + onix_spaced_codes_from_list :territories_excluded, "TerritoryExcluded", :list => 49 + onix_code_from_list :tax_rate_code_1, "TaxRateCode1", :list => 62 + onix_decimal_accessor :tax_rate_percent_1, "TaxRatePercent1" + onix_decimal_accessor :taxable_amount_1, "TaxableAmount1" + onix_decimal_accessor :tax_amount_1, "TaxAmount1" + onix_code_from_list :tax_rate_code_2, "TaxRateCode2", :list => 62 + onix_decimal_accessor :tax_rate_percent_2, "TaxRatePercent2" + onix_decimal_accessor :taxable_amount_2, "TaxableAmount2" + onix_decimal_accessor :tax_amount_2, "TaxAmount2" + onix_date_accessor :price_effective_from, "PriceEffectiveFrom" + onix_date_accessor :price_effective_until, "PriceEffectiveUntil" + end +end diff --git a/lib/onix/elements/prize.rb b/lib/onix/elements/prize.rb new file mode 100644 index 0000000..613c1ac --- /dev/null +++ b/lib/onix/elements/prize.rb @@ -0,0 +1,10 @@ +# coding: utf-8 + +class ONIX::Prize < ONIX::Element + xml_name "Prize" + xml_accessor :prize_name, :from => "PrizeName" + xml_accessor :prize_year, :from => "PrizeYear" + onix_code_from_list :prize_country, "PrizeCountry", :list => 91 + onix_code_from_list :prize_code, "PrizeCode", :list => 41 + xml_accessor :prize_jury, :from => "PrizeJury" +end diff --git a/lib/onix/elements/product.rb b/lib/onix/elements/product.rb new file mode 100644 index 0000000..7dabe54 --- /dev/null +++ b/lib/onix/elements/product.rb @@ -0,0 +1,155 @@ +# coding: utf-8 + +class ONIX::Product < ONIX::ProductBase + xml_name "Product" + + # PR.1 Record reference number, type and source + xml_accessor :record_reference, :from => "RecordReference" + onix_code_from_list :notification_type, "NotificationType", :list => 1 + onix_code_from_list :deletion_code, "DeletionCode", :list => 2 + xml_accessor :deletion_text, :from => "DeletionText" + onix_code_from_list :record_source_type, "RecordSourceType", :list => 3 + onix_code_from_list :record_source_identifier_type, "RecordSourceIdentifierType", :list => 44 + xml_accessor :record_source_identifier, :from => "RecordSourceIdentifier" + xml_accessor :record_source_name, :from => "RecordSourceName" + + # PR.2 Product numbers + onix_codes_from_list :barcodes, "Barcode", :list => 6 + + # PR.3 Product Form + # (See also ProductBase) + onix_composite :contained_items, ONIX::ContainedItem + onix_composite :product_classifications, ONIX::ProductClassification + + # PR.4 Epublication + # (See also ProductBase) + onix_code_from_list :epub_source, "EpubSource", :list => 11 + xml_accessor :epub_source_version, "EpubSourceVersion" + xml_accessor :epub_source_description, "EpubSourceDescription" + + onix_composite :series, ONIX::Series + onix_boolean_flag(:no_series, "NoSeries") + + # PR.6 Set + onix_composite :sets, ONIX::Set + + # PR.7 Title + onix_composite :titles, ONIX::Title + onix_composite :work_identifiers, ONIX::WorkIdentifier + onix_code_from_list :thesis_type, "ThesisType", :list => 72 + xml_accessor :thesis_presented_to, :from => "ThesisPresentedTo" + xml_accessor :year_of_thesis, :from => "YearOfThesis", :as => Fixnum + + # PR.8 Authorship + onix_composite :contributors, ONIX::Contributor + xml_accessor :contributor_statement, :from => "ContributorStatement" + onix_boolean_flag(:no_contributor, "NoContributor") + + # PR.9 Conference + onix_composite :conferences, ONIX::Conference + + # PR.10 Edition + onix_code_from_list :edition_type_code, "EditionTypeCode", :list => 21 + xml_accessor :edition_number, :from => "EditionNumber", :as => Fixnum + xml_accessor :edition_version_number, :from => "EditionVersionNumber" + xml_accessor :edition_statement, :from => "EditionStatement" + onix_boolean_flag(:no_edition, "NoEdition") + onix_composite :religious_text, ONIX::ReligiousText, :singular => true + + # PR.11 Language + onix_composite :languages, ONIX::Language + + # PR.12 Extents and other content + xml_accessor :number_of_pages, :from => "NumberOfPages", :as => Fixnum + xml_accessor :pages_roman, :from => "PagesRoman" + xml_accessor :pages_arabic, :from => "PagesArabic", :as => Fixnum + onix_composite :extents, ONIX::Extent + xml_accessor :number_of_illustrations, :from => "NumberOfIllustrations", :as => Fixnum + xml_accessor :illustrations_note, :from => "IllustrationsNote" + onix_composite :illustrations, ONIX::Illustrations + xml_accessor :map_scale, :from => "MapScale", :as => [Fixnum] + + # PR.13 Subject + xml_accessor :basic_main_subject, :from => "BASICMainSubject" + xml_accessor :basic_version, :from => "BASICVersion" + xml_accessor :bic_main_subject, :from => "BICMainSubject" + xml_accessor :bic_version, :from => "BICVersion" + onix_composite :main_subjects, ONIX::MainSubject + onix_composite :subjects, ONIX::Subject + onix_composite :person_as_subjects, ONIX::Contributor, :from => "PersonAsSubject" + xml_accessor :corporate_body_as_subject, :from => "CorporateBodyAsSubject", :as => [] + xml_accessor :place_as_subject, :from => "PlaceAsSubject", :as => [] + + # PR.14 Audience + onix_codes_from_list :audience_codes, "AudienceCode", :list => 28 + onix_composite :audiences, ONIX::Audience + onix_composite :audience_ranges, ONIX::AudienceRange + xml_accessor :audience_description, :from => "AudienceDescription" + onix_composite :complexities, ONIX::Complexity + + # PR.15 Descriptions and supporting texts + onix_composite :other_texts, ONIX::OtherText + # NB: alias included for backwards compatibility + alias_accessor :text, :other_texts + + # PR.16 Links to image/audio/video files + onix_composite :media_files, ONIX::MediaFile + onix_composite :product_websites, ONIX::Website, :from => "ProductWebsite" + + # PR.17 Prizes + onix_composite :prizes, ONIX::Prize + + # PR.18 Content items + onix_composite :content_items, ONIX::ContentItem + + # PR.19 Publisher + onix_composite :imprints, ONIX::Imprint + onix_composite :publishers, ONIX::Publisher + xml_accessor :cities_of_publication, :from => "CityOfPublication", :as => [] + onix_code_from_list :country_of_publication, "CountryOfPublication", :list => 91 + + # PR.20 Publishing status and dates, and copyright + onix_code_from_list :publishing_status, "PublishingStatus", :list => 64 + xml_accessor :publishing_status_note, :from => "PublishingStatusNote" + onix_date_accessor :announcement_date, "AnnouncementDate" + onix_date_accessor :trade_announcement_date, "TradeAnnouncementDate" + onix_date_accessor :publication_date, "PublicationDate" + onix_composite :copyright_statements, ONIX::CopyrightStatement + xml_accessor :copyright_year, :from => "CopyrightYear", :as => Fixnum + xml_accessor :year_first_published, :from => "YearFirstPublished", :as => Fixnum + + # PR.21 Territorial rights and other sales restrictions + onix_composite :sales_rights, ONIX::SalesRights + onix_composite :not_for_sales, ONIX::NotForSale + onix_composite :sales_restrictions, ONIX::SalesRestriction + + # PR.22 Dimensions + onix_composite :measures, ONIX::Measure + alias_accessor :measurements, :measures + # Some deprecated attributes. Read only + # - See the measurements array for the current way of specifying + # various measurements of the product + xml_reader :height, :from => "Height", :as => BigDecimal + xml_reader :width, :from => "Width", :as => BigDecimal + xml_reader :thickness, :from => "Thickness", :as => BigDecimal + xml_reader :weight, :from => "Weight", :as => BigDecimal + xml_reader :dimensions, :from => "Dimensions" + + # PR.23 Related products + onix_composite :related_products, ONIX::RelatedProduct + onix_date_accessor :out_of_print_date, "OutOfPrintDate" + + # PR.24 Supplier, availability and prices + onix_composite :supply_details, ONIX::SupplyDetail + + # PR.25 Market representation + onix_composite :market_representations, ONIX::MarketRepresentation + + # PR.26 Sales promotion + xml_accessor :promotion_campaign, :from => "PromotionCampaign" + xml_accessor :promotion_contact_details, :from => "PromotionContactDetails" + xml_accessor :initial_print_run, :from => "InitialPrintRun" + xml_accessor :reprint_details, :from => "ReprintDetail", :as => [] + xml_accessor :copies_sold, :from => "CopiesSold" + xml_accessor :book_club_adoption, :from => "BookClubAdoption" +end diff --git a/lib/onix/elements/product_base.rb b/lib/onix/elements/product_base.rb new file mode 100644 index 0000000..e815b03 --- /dev/null +++ b/lib/onix/elements/product_base.rb @@ -0,0 +1,61 @@ +# coding: utf-8 + +# This is the abstract base class of Product, RelatedProduct +# and ContainedItem. +# +class ONIX::ProductBase < ONIX::Element + onix_composite :product_identifiers, ONIX::ProductIdentifier + onix_composite :websites, ONIX::Website + onix_code_from_list :product_form, "ProductForm", :list => 7 + onix_codes_from_list :product_form_details, "ProductFormDetail", :list => 78 + onix_composite :product_form_features, ONIX::ProductFormFeature + onix_code_from_list :product_packaging, "ProductPackaging", :list => 80 + xml_accessor :product_form_description, :from => "ProductFormDescription" + xml_accessor :number_of_pieces, :from => "NumberOfPieces", :as => Fixnum + onix_code_from_list :trade_category, "TradeCategory", :list => 12 + onix_code_from_list :product_content_type, "ProductContentType", :list => 81 + onix_code_from_list :epub_type, "EpubType", :list => 10 + xml_accessor :epub_type_version, "EpubTypeVersion" + xml_accessor :epub_type_description, "EpubTypeDescription" + onix_code_from_list :epub_format, "EpubFormat", :list => 11 + xml_accessor :epub_format_version, "EpubFormatVersion" + xml_accessor :epub_format_description, "EpubFormatDescription" + xml_accessor :epub_type_note, "EpubTypeNote" + + # Extend this product instance with a module. Typically these modules + # make it easier to read or write common values in the Product. + # + # The product tracks the modules that have extended it, so that it + # can easily pass these extensions on to other products + # (see #interpret_like_me). + # + # For convenience, this method returns the product itself. + # + def interpret(mods) + @_extensions ||= [] + [mods].flatten.compact.uniq.each { |mod| + next if @_extensions.include?(mod) + @_extensions << mod + extend(mod) + } + self + end + + # Apply all the modules that have extended this product to another product. + # + # This is useful when, say, accessing RelatedProduct or ContainedItem + # composites. Your module might do something like: + # + # def print_product + # prod = related_products.detect { |p| p.relation_code == 13 } + # prod ? interpret_like_me(prod) : nil + # end + # + # As a result, this related product will have all the extensions applied + # to this product. + # + def interpret_like_me(product) + product.interpret(@_extensions) + end + +end diff --git a/lib/onix/elements/product_classification.rb b/lib/onix/elements/product_classification.rb new file mode 100644 index 0000000..c77969a --- /dev/null +++ b/lib/onix/elements/product_classification.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::ProductClassification < ONIX::Element + xml_name "ProductClassification" + xml_accessor :product_classification_type, "ProductClassificationType" + onix_code_from_list :product_classification_code, "ProductClassificationCode", :list => 9 + xml_accessor :percent, :from => "Percent", :as => Float +end diff --git a/lib/onix/elements/product_form_feature.rb b/lib/onix/elements/product_form_feature.rb new file mode 100644 index 0000000..8806532 --- /dev/null +++ b/lib/onix/elements/product_form_feature.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::ProductFormFeature < ONIX::Element + xml_name "ProductFormFeature" + onix_code_from_list :product_form_feature_type, "ProductFormFeatureType", :list => 79 + xml_accessor :product_form_feature_value, :from => "ProductFormFeatureValue" + xml_accessor :product_form_feature_description, :from => "ProductFormFeatureDescription" +end diff --git a/lib/onix/elements/product_identifier.rb b/lib/onix/elements/product_identifier.rb new file mode 100644 index 0000000..80fe02e --- /dev/null +++ b/lib/onix/elements/product_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::ProductIdentifier < ONIX::Identifier + xml_name "ProductIdentifier" + onix_code_from_list :product_id_type, "ProductIDType", :list => 5 +end diff --git a/lib/onix/elements/professional_affiliation.rb b/lib/onix/elements/professional_affiliation.rb new file mode 100644 index 0000000..8faf6b8 --- /dev/null +++ b/lib/onix/elements/professional_affiliation.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::ProfessionalAffiliation < ONIX::Element + xml_name "ProfessionalAffiliation" + xml_accessor :professional_position, :from => "ProfessionalPosition" + xml_accessor :affiliation, :from => "Affiliation" +end diff --git a/lib/onix/elements/publisher.rb b/lib/onix/elements/publisher.rb new file mode 100644 index 0000000..0a0b041 --- /dev/null +++ b/lib/onix/elements/publisher.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +class ONIX::Publisher < ONIX::Element + xml_name "Publisher" + onix_code_from_list :publishing_role, "PublishingRole", :list => 45 + onix_code_from_list :name_code_type, "NameCodeType", :list => 44 + xml_accessor :name_code_type_name, :from => "NameCodeTypeName" + xml_accessor :name_code_type_value, :from => "NameCodeTypeValue" + xml_accessor :publisher_name, :from => "PublisherName" + onix_composite :websites, ONIX::Website +end diff --git a/lib/onix/elements/reissue.rb b/lib/onix/elements/reissue.rb new file mode 100644 index 0000000..229c0e6 --- /dev/null +++ b/lib/onix/elements/reissue.rb @@ -0,0 +1,9 @@ +# coding: utf-8 + +class ONIX::Reissue < ONIX::Element + xml_name "Reissue" + onix_date_accessor :reissue_date, "ReissueDate" + xml_accessor :reissue_description, :from => "ReissueDescription" + onix_composite :prices, ONIX::Price + onix_composite :media_files, ONIX::MediaFile +end diff --git a/lib/onix/elements/related_product.rb b/lib/onix/elements/related_product.rb new file mode 100644 index 0000000..4a815d9 --- /dev/null +++ b/lib/onix/elements/related_product.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::RelatedProduct < ONIX::ProductBase + xml_name "RelatedProduct" + onix_code_from_list :relation_code, "RelationCode", :list => 51 +end diff --git a/lib/onix/elements/religious_text.rb b/lib/onix/elements/religious_text.rb new file mode 100644 index 0000000..0fc8d04 --- /dev/null +++ b/lib/onix/elements/religious_text.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::ReligiousText < ONIX::Element + xml_name "ReligiousText" + onix_composite :bible, ONIX::Bible, :singular => true + onix_code_from_list :religious_text_identifier, "ReligiousTextIdentifier", :list => 88 + onix_composite :religious_text_feature, ONIX::ReligiousTextFeature +end diff --git a/lib/onix/elements/religious_text_feature.rb b/lib/onix/elements/religious_text_feature.rb new file mode 100644 index 0000000..1d9a30d --- /dev/null +++ b/lib/onix/elements/religious_text_feature.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::ReligiousTextFeature < ONIX::Element + xml_name "ReligiousTextFeature" + onix_code_from_list :religious_text_feature_type, "ReligiousTextFeatureType", :list => 89 + onix_code_from_list :religious_text_feature_code, "ReligiousTextFeatureCode", :list => 90 + xml_accessor :religious_text_feature_description, :from => "ReligiousTextFeatureDescription" +end diff --git a/lib/onix/elements/sales_outlet.rb b/lib/onix/elements/sales_outlet.rb new file mode 100644 index 0000000..d7f3efe --- /dev/null +++ b/lib/onix/elements/sales_outlet.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::SalesOutlet < ONIX::Element + xml_name "SalesOutlet" + onix_composite :sales_outlet_identifier, ONIX::SalesOutletIdentifier + xml_accessor :sales_outlet_name, :from => "SalesOutletName" +end diff --git a/lib/onix/elements/sales_outlet_identifier.rb b/lib/onix/elements/sales_outlet_identifier.rb new file mode 100644 index 0000000..6799a37 --- /dev/null +++ b/lib/onix/elements/sales_outlet_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::SalesOutletIdentifier < ONIX::Identifier + xml_name "SalesOutletIdentifier" + onix_code_from_list :sales_outlet_id_type, "SalesOutletIDType", :list => 102 +end diff --git a/lib/onix/elements/sales_restriction.rb b/lib/onix/elements/sales_restriction.rb new file mode 100644 index 0000000..68ecc45 --- /dev/null +++ b/lib/onix/elements/sales_restriction.rb @@ -0,0 +1,7 @@ +# coding: utf-8 + +class ONIX::SalesRestriction < ONIX::Element + xml_name "SalesRestriction" + onix_code_from_list :sales_restriction_type, "SalesRestrictionType", :list => 71 + onix_composite :sales_outlets, ONIX::SalesOutlet +end diff --git a/lib/onix/elements/sales_rights.rb b/lib/onix/elements/sales_rights.rb new file mode 100644 index 0000000..e2acd23 --- /dev/null +++ b/lib/onix/elements/sales_rights.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +# See also: NotForSale. It's possible to set not for sale here as well. +# +class ONIX::SalesRights < ONIX::Element + xml_name "SalesRights" + onix_code_from_list :sales_rights_type, "SalesRightsType", :list => 46 + onix_spaced_codes_from_list :rights_countries, "RightsCountry", :list => 91 + onix_spaced_codes_from_list :rights_territories, "RightsTerritory", :list => 49 + + # Deprecated accessors + onix_codes_from_list :rights_region, "RightsRegion", :list => 47 +end diff --git a/lib/onix/elements/sender_identifier.rb b/lib/onix/elements/sender_identifier.rb new file mode 100644 index 0000000..ef32ac6 --- /dev/null +++ b/lib/onix/elements/sender_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::SenderIdentifier < ONIX::Identifier + xml_name "SenderIdentifier" + onix_code_from_list :sender_id_type, "SenderIDType", :list => 44 +end diff --git a/lib/onix/elements/series.rb b/lib/onix/elements/series.rb new file mode 100644 index 0000000..1aa7f6d --- /dev/null +++ b/lib/onix/elements/series.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +class ONIX::Series < ONIX::Element + xml_name "Series" + onix_composite :series_identifiers, ONIX::SeriesIdentifier + xml_accessor :title_of_series, :from => "TitleOfSeries" + onix_composite :titles, ONIX::Title + onix_composite :contributors, ONIX::Contributor + xml_accessor :number_within_series, :from => "NumberWithinSeries" + xml_accessor :year_of_annual, :from => "YearOfAnnual" +end diff --git a/lib/onix/elements/series_identifier.rb b/lib/onix/elements/series_identifier.rb new file mode 100644 index 0000000..d2a4d39 --- /dev/null +++ b/lib/onix/elements/series_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::SeriesIdentifier < ONIX::Identifier + xml_name "SeriesIdentifier" + onix_code_from_list :series_id_type, "SeriesIDType", :list => 13 +end diff --git a/lib/onix/elements/set.rb b/lib/onix/elements/set.rb new file mode 100644 index 0000000..04a8cf1 --- /dev/null +++ b/lib/onix/elements/set.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +class ONIX::Set < ONIX::Element + xml_name "Set" + onix_composite :product_identifiers, ONIX::ProductIdentifier + xml_accessor :title_of_set, :from => "TitleOfSet" + onix_composite :titles, ONIX::Title + xml_accessor :set_part_number, :from => "SetPartNumber" + xml_accessor :set_part_title, :from => "SetPartTitle" + xml_accessor :number_within_set, :from => "ItemNumberWithinSet" + xml_accessor :level_sequence_number, :from => "LevelSequenceNumber" + xml_accessor :set_item_title, :from => "SetItemTitle" +end diff --git a/lib/onix/elements/stock.rb b/lib/onix/elements/stock.rb new file mode 100644 index 0000000..4e67791 --- /dev/null +++ b/lib/onix/elements/stock.rb @@ -0,0 +1,16 @@ +# coding: utf-8 + +class ONIX::Stock < ONIX::Element + xml_name "Stock" + onix_composite :location_identifier, ONIX::LocationIdentifier, :singular => true + xml_accessor :location_name, :from => "LocationName" + onix_composite :stock_quantity_coded, ONIX::StockQuantityCoded, :singular => true + + # NOTE: these *should* be numeric fields according to the spec, + # but heaps of ONIX files in the wild use text + xml_accessor :on_hand, :from => "OnHand" + xml_accessor :on_order, :from => "OnOrder" + + xml_accessor :cbo, :from => "CBO" + onix_composite :on_order_detail, ONIX::OnOrderDetail, :singular => true +end diff --git a/lib/onix/elements/stock_quantity_coded.rb b/lib/onix/elements/stock_quantity_coded.rb new file mode 100644 index 0000000..9b27615 --- /dev/null +++ b/lib/onix/elements/stock_quantity_coded.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::StockQuantityCoded < ONIX::Element + xml_name "StockQuantityCoded" + onix_code_from_list :stock_quantity_code_type, "StockQuantityCodeType", :list => 70 + xml_accessor :stock_quantity_code_type_name, :from => "StockQuantityCodeTypeName" + xml_accessor :stock_quantity_code +end diff --git a/lib/onix/elements/subject.rb b/lib/onix/elements/subject.rb new file mode 100644 index 0000000..498b2b9 --- /dev/null +++ b/lib/onix/elements/subject.rb @@ -0,0 +1,13 @@ +# coding: utf-8 + +class ONIX::Subject < ONIX::Element + xml_name "Subject" + onix_code_from_list :subject_scheme_identifier, "SubjectSchemeIdentifier", :list => 27 + # Aliased for backwards compat + alias_accessor :subject_scheme_id, :subject_scheme_identifier + + xml_accessor :subject_scheme_name, :from => "SubjectSchemeName" + xml_accessor :subject_scheme_version, :from => "SubjectSchemeVersion" + xml_accessor :subject_code, :from => "SubjectCode" + xml_accessor :subject_heading_text, :from => "SubjectHeadingText" +end diff --git a/lib/onix/elements/supplier_identifier.rb b/lib/onix/elements/supplier_identifier.rb new file mode 100644 index 0000000..809b2b5 --- /dev/null +++ b/lib/onix/elements/supplier_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::SupplierIdentifier < ONIX::Identifier + xml_name "SupplierIdentifier" + onix_code_from_list :supplier_id_type, "SupplierIDType", :list => 92 +end diff --git a/lib/onix/elements/supply_detail.rb b/lib/onix/elements/supply_detail.rb new file mode 100644 index 0000000..e3c79ae --- /dev/null +++ b/lib/onix/elements/supply_detail.rb @@ -0,0 +1,37 @@ +# coding: utf-8 + +class ONIX::SupplyDetail < ONIX::Element + xml_name "SupplyDetail" + xml_accessor :supplier_ean_location_number, :from => "SupplierEANLocationNumber" + xml_accessor :supplier_san, :from => "SupplierSAN" + onix_composite :supplier_identifiers, ONIX::SupplierIdentifier + xml_accessor :supplier_name, :from => "SupplierName" + xml_accessor :telephone_number, :from => "TelephoneNumber" + xml_accessor :fax_number, :from => "FaxNumber" + xml_accessor :email_address, :from => "EmailAddress" + onix_composite :websites, ONIX::Website + onix_code_from_list :supplier_role, "SupplierRole", :list => 93 + onix_spaced_codes_from_list :supply_to_countries, "SupplyToCountry", :list => 91 + onix_spaced_codes_from_list :supply_to_territories, "SupplyToTerritory", :list => 49 + onix_spaced_codes_from_list :supply_to_countries_excluded, "SupplyToCountryExcluded", :list => 91 + xml_accessor :supply_restriction_detail, :from => "SupplyRestrictionDetail" + onix_code_from_list :returns_code_type, "ReturnsCodeType", :list => 53 + xml_accessor :returns_code, :from => "ReturnsCode" + onix_date_accessor :last_date_for_returns, "LastDateForReturns" + onix_code_from_list :availability_code, "AvailabilityCode", :list => 54 + alias_accessor :availability_status_code, :availability_code # back-compat + onix_code_from_list :product_availability, "ProductAvailability", :list => 65 + onix_composite :new_supplier, ONIX::NewSupplier, :singular => true + onix_code_from_list :date_format, "DateFormat", :list => 55 + xml_accessor :expected_ship_date, :from => "ExpectedShipDate" + onix_date_accessor :on_sale_date, "OnSaleDate" + xml_accessor :order_time, :from => "OrderTime", :as => Fixnum + onix_composite :stocks, ONIX::Stock + alias_accessor :stock, :stocks # back-compat + xml_accessor :pack_quantity, :from => "PackQuantity", :as => Fixnum + onix_code_from_list :audience_restriction_flag, "AudienceRestrictionFlag", :list => 56 + xml_accessor :audience_restriction_note, :from => "AudienceRestrictionNote" + onix_code_from_list :unpriced_item_type, "UnpricedItemType", :list => 57 + onix_composite :prices, ONIX::Price + onix_composite :reissue, ONIX::Reissue, :singular => true +end diff --git a/lib/onix/elements/text_item.rb b/lib/onix/elements/text_item.rb new file mode 100644 index 0000000..17bd7c9 --- /dev/null +++ b/lib/onix/elements/text_item.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +class ONIX::TextItem < ONIX::Element + xml_name "TextItem" + onix_code_from_list :text_item_type, "TextItemType", :list => 42 + onix_composite :text_item_identifier, ONIX::TextItemIdentifier + xml_accessor :first_page_number, :from => "FirstPageNumber" + xml_accessor :last_page_number, :from => "LastPageNumber" + onix_composite :page_runs, ONIX::PageRun + xml_accessor :number_of_pages, :from => "NumberOfPages", :as => Fixnum +end diff --git a/lib/onix/elements/text_item_identifier.rb b/lib/onix/elements/text_item_identifier.rb new file mode 100644 index 0000000..997235e --- /dev/null +++ b/lib/onix/elements/text_item_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::TextItemIdentifier < ONIX::Identifier + xml_name "TextItemIdentifier" + onix_code_from_list :text_item_identifier, "TextItemIdentifier", :list => 43 +end diff --git a/lib/onix/elements/title.rb b/lib/onix/elements/title.rb new file mode 100644 index 0000000..33422e6 --- /dev/null +++ b/lib/onix/elements/title.rb @@ -0,0 +1,11 @@ +# coding: utf-8 + +class ONIX::Title < ONIX::Element + xml_name "Title" + onix_code_from_list :title_type, "TitleType", :list => 15 + xml_accessor :abbreviated_length, :from => "AbbreviatedLength", :as => Fixnum + xml_accessor :title_text, :from => "TitleText" + xml_accessor :title_prefix, :from => "TitlePrefix" + xml_accessor :title_without_prefix, :from => "TitleWithoutPrefix" + xml_accessor :subtitle, :from => "Subtitle" +end diff --git a/lib/onix/elements/website.rb b/lib/onix/elements/website.rb new file mode 100644 index 0000000..9c91abc --- /dev/null +++ b/lib/onix/elements/website.rb @@ -0,0 +1,8 @@ +# coding: utf-8 + +class ONIX::Website < ONIX::Element + xml_name "Website" + onix_code_from_list :website_role, "WebsiteRole", :list => 73 + xml_accessor :website_description, :from => "WebsiteDescription" + xml_accessor :website_link, :from => "WebsiteLink" +end diff --git a/lib/onix/elements/work_identifier.rb b/lib/onix/elements/work_identifier.rb new file mode 100644 index 0000000..7392fde --- /dev/null +++ b/lib/onix/elements/work_identifier.rb @@ -0,0 +1,6 @@ +# coding: utf-8 + +class ONIX::WorkIdentifier < ONIX::Identifier + xml_name "WorkIdentifier" + onix_code_from_list :work_id_type, "WorkIDType", :list => 16 +end diff --git a/lib/onix/imprint.rb b/lib/onix/imprint.rb deleted file mode 100644 index c35b088..0000000 --- a/lib/onix/imprint.rb +++ /dev/null @@ -1,14 +0,0 @@ -# coding: utf-8 - -module ONIX - class Imprint - include ROXML - - xml_name "Imprint" - - xml_accessor :name_code_type, :from => "NameCodeType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :name_code_type_name, :from => "NameCodeTypeName" - xml_accessor :name_code_value, :from => "NameCodeValue" - xml_accessor :imprint_name, :from => "ImprintName" - end -end diff --git a/lib/onix/language.rb b/lib/onix/language.rb deleted file mode 100644 index d08941d..0000000 --- a/lib/onix/language.rb +++ /dev/null @@ -1,13 +0,0 @@ -# coding: utf-8 - -module ONIX - class Language - include ROXML - - xml_name "Language" - - xml_accessor :language_role, :from => "LanguageRole", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :language_code, :from => "LanguageCode" - xml_accessor :country_code, :from => "CountryCode" - end -end diff --git a/lib/onix/market_representation.rb b/lib/onix/market_representation.rb deleted file mode 100644 index e980a23..0000000 --- a/lib/onix/market_representation.rb +++ /dev/null @@ -1,18 +0,0 @@ -# coding: utf-8 - -module ONIX - class MarketRepresentation - include ROXML - - xml_name "MarketRepresentation" - - xml_accessor :agent_name, :from => "AgentName" - xml_accessor :agent_role, :from => "AgentRole", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :market_country, :from => "MarketCountry" - xml_accessor :market_territory, :from => "MarketTerritory" - xml_accessor :market_country_excluded, :from => "MarketCountryExcluded" - xml_accessor :market_restriction_detail, :from => "MarketRestrictionDetail" - xml_accessor :market_publishing_status, :from => "MarketPublishingStatus", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - end -end - diff --git a/lib/onix/measure.rb b/lib/onix/measure.rb deleted file mode 100644 index 9da98aa..0000000 --- a/lib/onix/measure.rb +++ /dev/null @@ -1,13 +0,0 @@ -# coding: utf-8 - -module ONIX - class Measure - include ROXML - - xml_name "Measure" - - xml_accessor :measure_type_code, :from => "MeasureTypeCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :measurement, :from => "Measurement", :as => BigDecimal - xml_accessor :measure_unit_code, :from => "MeasureUnitCode" - end -end diff --git a/lib/onix/media_file.rb b/lib/onix/media_file.rb deleted file mode 100644 index c2bb7bf..0000000 --- a/lib/onix/media_file.rb +++ /dev/null @@ -1,15 +0,0 @@ -# coding: utf-8 - -module ONIX - class MediaFile - include ROXML - - xml_name "MediaFile" - - xml_accessor :media_file_type_code, :from => "MediaFileTypeCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :media_file_format_code, :from => "MediaFileFormatCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :image_resolution, :from => "ImageResolution" - xml_accessor :media_file_link_type_code, :from => "MediaFileLinkTypeCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :media_file_link, :from => "MediaFileLink" - end -end diff --git a/lib/onix/other_text.rb b/lib/onix/other_text.rb deleted file mode 100644 index e61957f..0000000 --- a/lib/onix/other_text.rb +++ /dev/null @@ -1,16 +0,0 @@ -# coding: utf-8 - -module ONIX - class OtherText - include ROXML - - xml_name "OtherText" - - xml_accessor :text_type_code, :from => "TextTypeCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :text_format, :from => "TextFormat" - xml_accessor :text, :from => "Text" - xml_accessor :text_link_type, :from => "TextLinkType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :text_link, :from => "TextLink" - xml_accessor :text_author, :from => "TextAuthor" - end -end diff --git a/lib/onix/price.rb b/lib/onix/price.rb deleted file mode 100644 index 05716ba..0000000 --- a/lib/onix/price.rb +++ /dev/null @@ -1,20 +0,0 @@ -# coding: utf-8 - -module ONIX - class Price - include ROXML - - xml_name "Price" - - xml_accessor :price_type_code, :from => "PriceTypeCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :price_type_qualifier, :from => "PriceQualifier", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :price_type_description, :from => "PriceTypeDescription" - xml_accessor :price_per, :from => "PricePer", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :minimum_order_qty, :from => "MinimumOrderQuantity", :as => Fixnum - xml_accessor :class_of_trade, :from => "ClassOfTrade" - xml_accessor :bic_discount_group_code, :from => "BICDiscountGroupCode" - xml_accessor :price_status, :from => "PriceStatus", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :price_amount, :from => "PriceAmount", :as => BigDecimal, :to_xml => ONIX::Formatters.decimal - xml_accessor :currency_code, :from => "CurrencyCode" - end -end diff --git a/lib/onix/product.rb b/lib/onix/product.rb deleted file mode 100644 index 32e68ae..0000000 --- a/lib/onix/product.rb +++ /dev/null @@ -1,73 +0,0 @@ -# coding: utf-8 - -module ONIX - class Product - include ROXML - - xml_name "Product" - - xml_accessor :record_reference, :from => "RecordReference" - xml_accessor :notification_type, :from => "NotificationType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :product_identifiers, :from => "ProductIdentifier", :as => [ONIX::ProductIdentifier] - xml_accessor :product_form, :from => "ProductForm" - xml_accessor :product_form_detail, :from => "ProductFormDetail" - xml_accessor :series, :from => "Series", :as => [ONIX::Series] - xml_accessor :titles, :from => "Title", :as => [ONIX::Title] - xml_accessor :websites, :from => "Website", :as => [ONIX::Website] - xml_accessor :contributors, :from => "Contributor", :as => [ONIX::Contributor] - xml_accessor :edition_number, :from => "EditionNumber", :as => Fixnum - xml_accessor :languages, :from => "Language", :as => [ONIX::Language] - xml_accessor :number_of_pages, :from => "NumberOfPages", :as => Fixnum - xml_accessor :basic_main_subject, :from => "BASICMainSubject" - xml_accessor :bic_main_subject, :from => "BICMainSubject" - xml_accessor :subjects, :from => "Subject", :as => [ONIX::Subject] - xml_accessor :audience_code, :from => "AudienceCode", :to_xml => ONIX::Formatters.two_digit - xml_accessor :audience_ranges, :from => "AudienceRange", :as => [ONIX::AudienceRange] - xml_accessor :text, :from => "OtherText", :as => [ONIX::OtherText] - xml_accessor :media_files, :from => "MediaFile", :as => [ONIX::MediaFile] - xml_accessor :imprints, :from => "Imprint", :as => [ONIX::Imprint] - xml_accessor :publishers, :from => "Publisher", :as => [ONIX::Publisher] - xml_accessor :publishing_status, :from => "PublishingStatus", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor(:publication_date, :from => "PublicationDate", :to_xml => ONIX::Formatters.yyyymmdd) do |val| - begin - Date.parse(val) - rescue - nil - end - end - xml_accessor :copyright_year, :from => "CopyrightYear", :as => Integer - xml_accessor :year_first_published, :from => "YearFirstPublished", :as => Fixnum - xml_accessor :sales_restrictions, :from => "SalesRestriction", :as => [ONIX::SalesRestriction] - xml_accessor :measurements, :from => "Measure", :as => [ONIX::Measure] - xml_accessor :supply_details, :from => "SupplyDetail", :as => [ONIX::SupplyDetail] - xml_accessor :market_representations, :from => "MarketRepresentation", :as => [ONIX::MarketRepresentation] - - # some deprecated attributes. Read only - # - See the measures array for the current way of specifying - # various measurements of the product - xml_reader :height, :from => "Height", :as => BigDecimal - xml_reader :width, :from => "Width", :as => BigDecimal - xml_reader :thickness, :from => "Thickness", :as => BigDecimal - xml_reader :weight, :from => "Weight", :as => BigDecimal - xml_reader :dimensions, :from => "Dimensions" - - def initialize - self.product_identifiers = [] - self.series = [] - self.titles = [] - self.contributors = [] - self.websites = [] - self.subjects = [] - self.audience_ranges = [] - self.text = [] - self.languages = [] - self.media_files = [] - self.imprints = [] - self.publishers = [] - self.sales_restrictions = [] - self.measurements = [] - self.supply_details = [] - self.market_representations = [] - end - end -end diff --git a/lib/onix/product_identifier.rb b/lib/onix/product_identifier.rb deleted file mode 100644 index cd274e1..0000000 --- a/lib/onix/product_identifier.rb +++ /dev/null @@ -1,12 +0,0 @@ -# coding: utf-8 - -module ONIX - class ProductIdentifier - include ROXML - - xml_name "ProductIdentifier" - - xml_accessor :product_id_type, :from => "ProductIDType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :id_value, :from => "IDValue" - end -end diff --git a/lib/onix/publisher.rb b/lib/onix/publisher.rb deleted file mode 100644 index 39f386e..0000000 --- a/lib/onix/publisher.rb +++ /dev/null @@ -1,15 +0,0 @@ -# coding: utf-8 - -module ONIX - class Publisher - include ROXML - - xml_name "Publisher" - - xml_accessor :publishing_role, :from => "PublishingRole", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :name_code_type, :from => "NameCodeType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :name_code_type_name, :from => "NameCodeTypeName" - xml_accessor :name_code_type_value, :from => "NameCodeTypeValue" - xml_accessor :publisher_name, :from => "PublisherName" - end -end diff --git a/lib/onix/reader.rb b/lib/onix/reader.rb deleted file mode 100644 index 17822e6..0000000 --- a/lib/onix/reader.rb +++ /dev/null @@ -1,157 +0,0 @@ -# coding: utf-8 - -require 'stringio' - -module ONIX - - # This is the primary class for reading data from an ONIX file, and there's - # really not much to it - # - # Each file should contain a single header, and 1 or more products: - # - # reader = ONIX::Reader.new("somefile.xml") - # - # puts reader.header.inspect - # - # reader.each do |product| - # puts product.inspect - # end - # - # The header will be returned as an ONIX::Header object, and the product will - # be an ONIX::Product. - # - # The ONIX::Product class can be a bit of a hassle to work with, as data can be - # nested in it fairly deeply. To wrap all the products returned by the reader - # in a shim that provides simple accessor access to common attributes, pass the - # shim class as a second argument - # - # reader = ONIX::Reader.new("somefile.xml", :product_class => ONIX::APAProduct) - # - # puts reader.header.inspect - # - # reader.each do |product| - # puts product.inspect - # end - # - # APAProduct stands for Australian Publishers Association and provides simple - # access to the ONIX attributes that are commonly used in the Australian market. - # - # As well as accessing the file header, there are handful of other read only - # attributes that might be useful - # - # reader = ONIX::Reader.new("somefile.xml") - # - # puts reader.version - # puts reader.xml_lang - # puts reader.xml_version - # puts reader.encoding - # - # The version attribute is particuarly useful. There are multiple revisions of the - # ONIX spec, and you may need to handle the file differently based on what - # version it is. - # - # == File Encoding - # - # ONIX::Reader returns all strings as UTF-8. Source file encoding is detected by - # the encoding declaration at the top of the file, like so: - # - # - # - # If the encoding declaration is missing the file is assumed to be UTF-8. - # - # If the encoding declaration is missing or wrong and the file isn't UTF-8, - # you can manually set or override it like so: - # - # reader = ONIX::Reader.new("somefile.xml", :encoding => "iso-8859-1") - # - # If the file contains invalid bytes for the source encoding an exception will - # be raised. This isn't ideal, but I'm still looking for ways to make this - # behaviour configurable. - # - # If you're running 1.9, you might imagine passing an IO stream that auto - # transcodes to UTF-8 into ONIX::Reader might have the same effect, but that - # isn't the case. Nokogiri is used to parse the file, and it seems to ignore - # IO encoding and just read raw bytes. - # - class Reader - include Enumerable - - attr_reader :header, :release - - def initialize(input, *args) - opts = args.last.kind_of?(Hash) ? args.pop : {} - if args.size > 0 - ActiveSupport::Deprecation.warn("Passing a klass as ONIX::Reader's second argument is deprecated, use the :product_class option instead", caller) - end - @product_klass = opts[:product_class] || args.pop || ::ONIX::Product - - if input.kind_of?(String) - @file = File.open(input, "r") - @reader = Nokogiri::XML::Reader(@file, nil, opts[:encoding]) { |cfg| cfg.dtdload.noent } - elsif input.kind_of?(IO) - @reader = Nokogiri::XML::Reader(input, nil, opts[:encoding]) { |cfg| cfg.dtdload.noent } - else - raise ArgumentError, "Unable to read from file or IO stream" - end - - @release = find_release - @header = find_header - - @xml_lang ||= @reader.lang - @xml_version ||= @reader.xml_version.to_f - end - - # Iterate over all the products in an ONIX file - # - def each(&block) - @reader.each do |node| - if @reader.node_type == 1 && @reader.name == "Product" - str = @reader.outer_xml - if str.nil? - yield @product_klass.new - else - yield @product_klass.from_xml(str) - end - end - end - end - - def close - @reader.close if @reader - end - - private - - def find_release - 2.times do - @reader.read - if @reader.node_type == 1 && @reader.name == "ONIXMessage" - value = @reader.attributes["release"] - if value - return BigDecimal.new(value) - else - return nil - end - elsif @reader.node_type == 14 - return nil - end - end - return nil - end - - def find_header - 100.times do - @reader.read - if @reader.node_type == 1 && @reader.name == "Header" - str = @reader.outer_xml - if str.nil? - return ONIX::Header.new - else - return ONIX::Header.from_xml(str) - end - end - end - return nil - end - end -end diff --git a/lib/onix/sales_restriction.rb b/lib/onix/sales_restriction.rb deleted file mode 100644 index b3ec3d6..0000000 --- a/lib/onix/sales_restriction.rb +++ /dev/null @@ -1,11 +0,0 @@ -# coding: utf-8 - -module ONIX - class SalesRestriction - include ROXML - - xml_name "SalesRestriction" - - xml_accessor :sales_restriction_type, :from =>"SalesRestrictionType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - end -end diff --git a/lib/onix/sender_identifier.rb b/lib/onix/sender_identifier.rb deleted file mode 100644 index 9112870..0000000 --- a/lib/onix/sender_identifier.rb +++ /dev/null @@ -1,13 +0,0 @@ -# coding: utf-8 - -module ONIX - class SenderIdentifier - include ROXML - - xml_name "SenderIdentifier" - - xml_accessor :sender_id_type, :from => "SenderIDType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :id_type_name, :from => "IDTypeName" - xml_accessor :id_value, :from => "IDValue" - end -end diff --git a/lib/onix/series.rb b/lib/onix/series.rb deleted file mode 100644 index 853ab10..0000000 --- a/lib/onix/series.rb +++ /dev/null @@ -1,17 +0,0 @@ -# coding: utf-8 - -module ONIX - class Series - include ROXML - - xml_name "Series" - - xml_accessor :series_identifiers, :from => "SeriesIdentifier", :as => [ONIX::SeriesIdentifier] - xml_accessor :title_of_series, :from => "TitleOfSeries" - - def initialize - self.series_identifiers = [] - end - - end -end diff --git a/lib/onix/series_identifier.rb b/lib/onix/series_identifier.rb deleted file mode 100644 index e32aaa0..0000000 --- a/lib/onix/series_identifier.rb +++ /dev/null @@ -1,12 +0,0 @@ -# coding: utf-8 - -module ONIX - class SeriesIdentifier - include ROXML - - xml_name "SeriesIdentifier" - - xml_accessor :series_id_type, :from => "SeriesIDType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :id_value, :from => "IDValue" - end -end diff --git a/lib/onix/stock.rb b/lib/onix/stock.rb deleted file mode 100644 index 59af30d..0000000 --- a/lib/onix/stock.rb +++ /dev/null @@ -1,14 +0,0 @@ -# coding: utf-8 - -module ONIX - class Stock - include ROXML - - xml_name "Stock" - - # NOTE: these *should* be numeric fields according to the spec, - # but heaps of ONIX files in the wild use text - xml_accessor :on_hand, :from => "OnHand" - xml_accessor :on_order, :from => "OnOrder" - end -end diff --git a/lib/onix/subject.rb b/lib/onix/subject.rb deleted file mode 100644 index cd84952..0000000 --- a/lib/onix/subject.rb +++ /dev/null @@ -1,15 +0,0 @@ -# coding: utf-8 - -module ONIX - class Subject - include ROXML - - xml_name "Subject" - - xml_accessor :subject_scheme_id, :from => "SubjectSchemeIdentifier", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :subject_scheme_name, :from => "SubjectSchemeName" - xml_accessor :subject_scheme_version, :from => "SubjectSchemeVersion" - xml_accessor :subject_code, :from => "SubjectCode" - xml_accessor :subject_heading_text, :from => "SubjectHeadingText" - end -end diff --git a/lib/onix/supply_detail.rb b/lib/onix/supply_detail.rb deleted file mode 100644 index a1fdbec..0000000 --- a/lib/onix/supply_detail.rb +++ /dev/null @@ -1,31 +0,0 @@ -# coding: utf-8 - -module ONIX - class SupplyDetail - include ROXML - - xml_name "SupplyDetail" - - xml_accessor :supplier_ean_location_number, :from => "SupplierEANLocationNumber" - xml_accessor :supplier_san, :from => "SupplierSAN" - xml_accessor :supplier_name, :from => "SupplierName" - xml_accessor :telephone_number, :from => "TelephoneNumber" - xml_accessor :fax_number, :from => "FaxNumber" - xml_accessor :email_address, :from => "EmailAddress" - xml_accessor :websites, :from => "Website", :as => [ONIX::Website] - xml_accessor :supplier_role, :from => "SupplierRole", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :supply_to_country, :from => "SupplyToCountry" - xml_accessor :supply_to_territory, :from => "SupplyToTerritory" - xml_accessor :availability_status_code, :from => "AvailabilityStatusCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :product_availability, :from => "ProductAvailability", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :stock, :from => "Stock", :as => [ONIX::Stock] - xml_accessor :pack_quantity, :from => "PackQuantity", :as => Fixnum - xml_accessor :prices, :from => "Price", :as => [ONIX::Price] - - def initialize - self.websites = [] - self.stock = [] - self.prices = [] - end - end -end diff --git a/lib/onix/title.rb b/lib/onix/title.rb deleted file mode 100644 index 02aff2e..0000000 --- a/lib/onix/title.rb +++ /dev/null @@ -1,16 +0,0 @@ -# coding: utf-8 - -module ONIX - class Title - include ROXML - - xml_name "Title" - - xml_accessor :title_type, :from => "TitleType", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :title_text, :from => "TitleText" - xml_accessor :title_prefix, :from => "TitlePrefix" - xml_accessor :title_without_prefix, :from => "TitleWithoutPrefix" - xml_accessor :subtitle, :from => "Subtitle" - - end -end diff --git a/lib/onix/utils/code_list_extractor.rb b/lib/onix/utils/code_list_extractor.rb new file mode 100644 index 0000000..bdd14ad --- /dev/null +++ b/lib/onix/utils/code_list_extractor.rb @@ -0,0 +1,112 @@ +# coding: utf-8 + +module ONIX + + # A utility class that processes the code list XSD from the ONIX spec and + # creates a set of TSV files. The generated files are used by this library + # to make hashes of the code lists available to users. + # + class CodeListExtractor + + FORMATS = [:tsv, :ruby] + + # Creates a new extractor. Expects the path to a copy of the code lists + # file from the spec (called ONIX_BookProduct_CodeLists.xsd on my system). + # + def initialize(filename, format = :tsv) + raise ArgumentError, "#{filename} not found" unless File.file?(filename) + + @filename = filename + raise "Unknown format: #{format}" unless FORMATS.include?(format) + @format = format + end + + # Generate one file for each list in the specified format in the given + # directory. Creates the directory if it doesn't exist. This will + # overwrite any existing files. + # + def run(dir) + FileUtils.mkdir_p(dir) + + each_list do |number, data| + send("write_to_#{@format}_format", dir, number, data) + end + end + + + private + + def data + @data ||= File.open(@filename) { |f| f.read } + end + + def document + @document ||= Nokogiri::XML(data) + @document.remove_namespaces! if @document.namespaces.size > 0 + @document + end + + def each_list(&block) + document.xpath("//simpleType").each do |node| + list_name = node.xpath("./@name").first.value + list_number = list_name[/List(\d+)/,1].to_i + if list_number > 0 + yield list_number, list_data(list_number) + end + end + end + + def list_data(num) + nodes = document.xpath("//simpleType[@name='List#{num}']/restriction/enumeration") + nodes.inject([]) do |arr, node| + code = node.xpath("./@value").first.value + desc = node.xpath("./annotation/documentation").first.text + ldesc = node.xpath("./annotation/documentation").last.text + arr.tap { |a| a << [code, desc, ldesc] } + end + end + + def write_to_tsv_format(dir, number, data) + file = number.to_s.rjust(3, "0") + ".tsv" + path = File.join(dir, file) + out = data.collect { |row| row.join("\t") }.join("\n") + File.open(path, "w") { |f| f.write out } + end + + def write_to_ruby_format(dir, number, data) + list_num = number.to_s.rjust(3, "0") + file = list_num + ".rb" + path = File.join(dir, file) + str2str = lambda { |str| + str.gsub!("\342\200\230", "'") + str.gsub!("\342\200\231", "'") + str.gsub!("\342\200\234", '"') + str.gsub!("\342\200\235", '"') + str.gsub!(/"/, '\"') + "\"#{str}\"" + } + # An alternative format: two-dimensional array. More complete, + # but less addressable. + # + # out = ["# coding: utf-8"] + # out << "module ONIX; module CodeLists" + # out << " LIST_#{number} = [" + # out += data.collect { |row| + # row = row.collect { |f| " #{str2str.call(f)}" } + # " [\n#{row.join(",\n")}\n ]" + # }.join(",\n") + # out << " ]" + # out << "end; end" + out = ["# coding: utf-8\n"] + out << "module ONIX; module CodeLists" + out << " LIST_#{number} = {" + out << data.collect { |row| + " #{str2str.call(row[0])} => #{str2str.call(row[1])}" + }.join(",\n") + out << " }" + out << "end; end" + File.open(path, "w") { |f| f.write out.join("\n") } + end + + end +end diff --git a/lib/onix/normaliser.rb b/lib/onix/utils/normaliser.rb similarity index 77% rename from lib/onix/normaliser.rb rename to lib/onix/utils/normaliser.rb index bf96eae..f115d35 100644 --- a/lib/onix/normaliser.rb +++ b/lib/onix/utils/normaliser.rb @@ -18,7 +18,7 @@ module ONIX # Usage: # # ONIX::Normaliser.process("oldfile.xml", "newfile.xml") - # + # # Dependencies: # # At this stage the class depends on several external apps, all commonly available @@ -32,13 +32,14 @@ class << self # will be left untouched # def process(oldfile, newfile) - self.new(oldfile, newfile).run + self.new(oldfile).normalise_to_path(newfile) end end - def initialize(oldfile, newfile) + # NB: Newfile argument is deprecated. + # + def initialize(oldfile, newfile = nil) raise ArgumentError, "#{oldfile} does not exist" unless File.file?(oldfile) - raise ArgumentError, "#{newfile} already exists" if File.file?(newfile) raise "xsltproc app not found" unless app_available?("xsltproc") raise "tr app not found" unless app_available?("tr") @@ -49,20 +50,34 @@ def initialize(oldfile, newfile) @head = File.open(@oldfile, "r") { |f| f.read(1024) } end + # This is deprecated - use normalise_to_path with a path. def run + normalise_to_path(@newfile) + end + + def normalise_to_path(newfile) + raise ArgumentError, "#{newfile} already exists" if File.file?(newfile) + @curfile = normalise_to_tempfile + FileUtils.cp(@curfile, newfile) + end + + # Processes oldfile and puts the normalised result in a tempfile, + # returning the path to that tempfile. + # + def normalise_to_tempfile + src = @curfile + # remove short tags if @head.include?("ONIXmessage") dest = next_tempfile - to_reference_tags(@curfile, dest) - @curfile = dest + to_reference_tags(src, dest) + src = dest end # remove control chars dest = next_tempfile - remove_control_chars(@curfile, dest) - @curfile = dest - - FileUtils.cp(@curfile, @newfile) + remove_control_chars(src, dest) + dest end #private @@ -93,7 +108,7 @@ def next_tempfile def to_reference_tags(src, dest) inpath = File.expand_path(src) outpath = File.expand_path(dest) - xsltpath = File.dirname(__FILE__) + "/../../support/switch-onix-2.1-short-to-reference.xsl" + xsltpath = File.dirname(__FILE__) + "/../../../support/switch-onix-2.1-short-to-reference.xsl" `xsltproc -o #{outpath} #{xsltpath} #{inpath}` end diff --git a/lib/onix/website.rb b/lib/onix/website.rb deleted file mode 100644 index 0d9320d..0000000 --- a/lib/onix/website.rb +++ /dev/null @@ -1,13 +0,0 @@ -# coding: utf-8 - -module ONIX - class Website - include ROXML - - xml_name "Website" - - xml_accessor :website_role, :from => "WebsiteRole", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit - xml_accessor :website_description, :from => "WebsiteDescription" - xml_accessor :website_link, :from => "WebsiteLink" - end -end diff --git a/lib/onix/apa_product.rb b/lib/onix/wrappers/apa_product.rb similarity index 95% rename from lib/onix/apa_product.rb rename to lib/onix/wrappers/apa_product.rb index e4f5cf4..f6ea3d8 100644 --- a/lib/onix/apa_product.rb +++ b/lib/onix/wrappers/apa_product.rb @@ -26,7 +26,7 @@ def measurement_system=(value) # retrieve the current EAN def ean - identifier(3).andand.id_value + identifier(3).try(:id_value) end # set a new EAN @@ -36,7 +36,7 @@ def ean=(isbn) # retrieve the proprietary ID def proprietary_id - identifier(1).andand.id_value + identifier(1).tr(:id_value) end # set a new proprietary ID @@ -46,7 +46,7 @@ def proprietary_id=(isbn) # retrieve the current ISBN 10 def isbn10 - identifier(2).andand.id_value + identifier(2).try(:id_value) end # set a new ISBN 10 @@ -56,7 +56,7 @@ def isbn10=(isbn) # retrieve the current ISBN 13 def isbn13 - identifier(15).andand.id_value + identifier(15).try(:id_value) end # set a new ISBN 13 @@ -108,7 +108,7 @@ def subtitle=(str) def series composite = product.series.first - composite.andand.title_of_series + composite.try(:title_of_series) end def series=(val) @@ -122,7 +122,7 @@ def series=(val) # retrieve the current publisher website for this particular product def publisher_website - website(2).andand.website_link + website(2).try(:website_link) end # set a new publisher website for this particular product @@ -132,7 +132,7 @@ def publisher_website=(str) # retrieve the current supplier website for this particular product def supplier_website - website(12).andand.website_link + website(12).try(:website_link) end # set a new supplier website for this particular product @@ -181,7 +181,7 @@ def add_bisac_subject(code) # retrieve the url to the product cover image def cover_url - media_file(4).andand.media_file_link + media_file(4).try(:media_file_link) end # set the url to the product cover image @@ -193,7 +193,7 @@ def cover_url=(url) # retrieve the url to the high quality product cover image def cover_url_hq - media_file(6).andand.media_file_link + media_file(6).try(:media_file_link) end # set the url to the high quality product cover image @@ -205,7 +205,7 @@ def cover_url_hq=(url) # retrieve the url to the product thumbnail def thumbnail_url - media_file(7).andand.media_file_link + media_file(7).try(:media_file_link) end # set the url to the product cover image @@ -217,7 +217,7 @@ def thumbnail_url=(url) # retrieve the main description def main_description - other_text(1).andand.text + other_text(1).try(:text) end # set the main description @@ -227,7 +227,7 @@ def main_description=(t) # retrieve the short description def short_description - other_text(2).andand.text + other_text(2).try(:text) end # set the short description @@ -237,7 +237,7 @@ def short_description=(t) # retrieve the long description def long_description - other_text(3).andand.text + other_text(3).try(:text) end # set the long description @@ -263,7 +263,7 @@ def imprint=(str) # retrieve the publisher def publisher - publisher_get(1).andand.publisher_name + publisher_get(1).try(:publisher_name) end # set a new publisher @@ -417,7 +417,7 @@ def pack_quantity=(val) # retrieve the rrp excluding any sales tax def rrp_exc_sales_tax - price_get(1).andand.price_amount + price_get(1).try(:price_amount) end # set the rrp excluding any sales tax @@ -427,7 +427,7 @@ def rrp_exc_sales_tax=(num) # retrieve the rrp including any sales tax def rrp_inc_sales_tax - price_get(2).andand.price_amount + price_get(2).try(:price_amount) end # set the rrp including any sales tax @@ -438,7 +438,7 @@ def rrp_inc_sales_tax=(num) # just get the first price we can find, regardless of the type. # useful as a backup for reading files from that don't contain a type def price - price_get(nil).andand.price_amount + price_get(nil).try(:price_amount) end # retrieve the height of the product @@ -448,7 +448,7 @@ def price # def height # TODO: auto unit conversion - measurement(1).andand.measurement + measurement(1).try(:measurement) end # set the height of the book @@ -471,7 +471,7 @@ def height=(value) # def width # TODO: auto unit conversion - measurement(2).andand.measurement + measurement(2).try(:measurement) end # set the width of the product @@ -494,7 +494,7 @@ def width=(value) # def weight # TODO: auto unit conversion - measurement(8).andand.measurement + measurement(8).try(:measurement) end # set the weight of the product @@ -517,7 +517,7 @@ def weight=(value) # def thickness # TODO: auto unit conversion - measurement(3).andand.measurement + measurement(3).try(:measurement) end # set the thickness of the product diff --git a/lib/onix/simple_product.rb b/lib/onix/wrappers/simple_product.rb similarity index 96% rename from lib/onix/simple_product.rb rename to lib/onix/wrappers/simple_product.rb index 5ae762c..2628e97 100644 --- a/lib/onix/simple_product.rb +++ b/lib/onix/wrappers/simple_product.rb @@ -11,7 +11,7 @@ def initialize(product = nil) end class << self - + include Forwardable def from_xml(xml) @@ -25,7 +25,7 @@ def parse_file(filename) def parse(xml) self.new(::ONIX::Product.parse(xml)) end - + protected def delegate(*args) @@ -41,6 +41,8 @@ def to_xml product.to_xml end + delegate :interpret + # TODO: add method missing magic to proxy through to the underlying product? end diff --git a/onix.gemspec b/onix.gemspec index d377c52..c19b7fb 100644 --- a/onix.gemspec +++ b/onix.gemspec @@ -1,23 +1,27 @@ Gem::Specification.new do |s| s.name = "onix" s.version = "0.9.1" - s.summary = "A convient mapping between ruby objects and the ONIX XML specification" - s.description = "A convient mapping between ruby objects and the ONIX XML specification" + s.summary = "A convenient mapping between Ruby objects and the " + + "ONIX XML specification" + s.description = "ONIX is the standard XML format for electronic data " + + "sharing in the book and publishing industries. This " + + "library provides a slim layer over the format and " + + "simplifies both reading and writing ONIX files in " + + "your Ruby applications." s.authors = ["James Healy"] s.email = ["jimmy@deefa.com"] - s.has_rdoc = true s.homepage = "http://github.com/yob/onix" s.rdoc_options << "--title" << "ONIX - Working with the ONIX XML spec" << "--line-numbers" s.test_files = Dir.glob("spec/**/*.rb") s.files = Dir.glob("{lib,support,dtd}/**/**/*") + ["README.markdown", "TODO", "CHANGELOG"] - s.add_dependency('roxml', '~>3.1.6') - s.add_dependency('activesupport', '>= 3.0.5') + s.add_dependency('roxml', '~>3.3') + s.add_dependency('activesupport', '~>3.2') s.add_dependency('i18n') - s.add_dependency('andand') - s.add_dependency('nokogiri', '>=1.4') + s.add_dependency('nokogiri') s.add_development_dependency("rake") - s.add_development_dependency("rspec", "~>2.1") + s.add_development_dependency('rdoc') + s.add_development_dependency("rspec") end diff --git a/spec/core/code_spec.rb b/spec/core/code_spec.rb new file mode 100644 index 0000000..25ce2a9 --- /dev/null +++ b/spec/core/code_spec.rb @@ -0,0 +1,46 @@ +# coding: utf-8 + +require 'spec_helper.rb' + +describe ONIX::Code, "instantiation" do + + it "should raise an error for an invalid codelist number" do + lambda { ONIX::Code.new(500, 1) }.should raise_error + end + + it "should find the codelist from a valid number" do + ONIX::Code.new(1,1).list.should be_a_kind_of(Hash) + end + + it "should turn all-digit string keys into integers" do + ONIX::Code.new(1, "05").key.should eql(5) + ONIX::Code.new(1, 5).key.should eql(5) + end + + it "should not turn part-digit and no-digit keys into integers" do + ONIX::Code.new(78, "P102").key.should eql("P102") + ONIX::Code.new(66, "Y").key.should eql("Y") + end + + it "should find the correct value for a key" do + ONIX::Code.new(78, "D315").value.should eql("Nintendo Wii") + end + + it "should find the correct key for a value" do + ONIX::Code.new(78, "Nintendo Wii").key.should eql("D315") + end + + it "should turn all-digit key into integer when found by value" do + ONIX::Code.new(1, "Early notification").key.should eql(1) + end + + it "should say code is invalid for an unmatched key or value" do + ONIX::Code.new(1, 9999).valid?.should be_false + ONIX::Code.new(1, 1).valid?.should be_true + end + + it "should pad to_s output if initialised with integer key and length" do + ONIX::Code.new(1, 1, :length => 2).to_s.should eql("01") + end + +end diff --git a/spec/core/elements_spec.rb b/spec/core/elements_spec.rb new file mode 100644 index 0000000..13bfc88 --- /dev/null +++ b/spec/core/elements_spec.rb @@ -0,0 +1,229 @@ +# coding: utf-8 + +require 'spec_helper.rb' + +describe ONIX::Element, "custom accessors" do + + before(:all) do + class ONIX::TestElement < ONIX::Element + xml_name "TestElement" + onix_date_accessor(:test_date, "TestDate") + onix_date_accessor(:m_dates, "MDate", :as => [Date]) + onix_composite(:websites, ONIX::Website) + onix_space_separated_list(:countries, "CountryCodes") + onix_code_from_list(:update_code, "UpdateCode", :list => 1) + onix_codes_from_list(:identifiers, "Identifier", :list => 5) + onix_code_from_list(:lax_identifier, "LaxIdentifier", :list => 5, :enforce => false) + onix_code_from_list(:strict_identifier, "StrictIdentifier", :list => 5, :enforce => true) + onix_boolean_flag(:no_dice, "NoDice") + onix_boolean_flag(:no_cigar, "NoCigar") + end + end + + + it "should load dates" do + xml = %Q` + + 20010101 + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.test_date.should eql(Date.parse("2001-01-01")) + end + + + it "should load multiple test dates correctly" do + xml = %Q` + + 20010101 + 20100101 + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.m_dates.size.should eql(2) + end + + + it "should load composites" do + xml = %Q` + + + 01 + http://www.rainbowbooks.com.au + + + 02 + Web-based ebooks! + http://booki.sh + + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.websites.size.should eql(2) + elem.websites[1].website_description.should eql("Web-based ebooks!") + end + + + it "should load space-separated lists" do + xml = %Q` + + AU NZ US + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.countries.should eql(["AU", "NZ", "US"]) + end + + + it "should load a code from a list" do + xml = %Q` + + 01 + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.update_code.should eql(1) + elem.update_code_code.value.should eql("Early notification") + end + + + it "should load multiple codes from a list into an array" do + xml = %Q` + + 04 + 22 + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.identifiers.should eql([4, 22]) + elem.identifiers_codes.collect { |c| c.value }.should eql(["UPC", "URN"]) + end + + + it "should nil invalid values from a list by default" do + xml = %Q` + + This is not a valid code in the list + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.identifiers_codes.first.value.should be_nil + end + + + it "should permit invalid values from a list if enforce option false" do + inv = "This is not a valid code in the list" + xml = %Q` + + #{inv} + + ` + elem = ONIX::TestElement.from_xml(xml) + elem.lax_identifier_code.value.should eql(inv) + end + + + it "should raise invalid values from a list if enforce option true" do + xml = %Q` + + This is not a valid code in the list + + ` + lambda { ONIX::TestElement.from_xml(xml) }.should raise_error + end + + + it "should recognise boolean flags" do + xml = "" + elem = ONIX::TestElement.from_xml(xml) + elem.no_dice.should be_true + elem.no_cigar.should be_false + end + + + it "should process code values through a block first if given" do + class ONIX::TestElementA < ONIX::Element + xml_name "TestElementA" + onix_codes_from_list(:ccs, "CC", :list => 91) { |v| v ? v.split : [] } + # ...this is simply sugar for the previous declaration + onix_spaced_codes_from_list(:dds, "DD", :list => 91) + end + xml = %Q` + + AU UA NL + NZ +
TD TG
+
TO
+
+ ` + elem = ONIX::TestElementA.from_xml(xml) + elem.ccs_codes.collect(&:key).should eql(["AU","UA","NL","NZ"]) + elem.dds_codes.collect(&:value).should eql(["Chad","Togo","Tonga"]) + end + + + it "should fetch a single composite with an attribute value matching query" do + xml = %Q` + + + 01 + http://www.rainbowbooks.com.au + + + 01 + Web-based ebooks! + http://booki.sh + + + ` + elem = ONIX::TestElement.from_xml(xml) + website = elem.fetch(:websites, :website_role, 1) + website.should_not be_nil + website.website_link.should eql("http://www.rainbowbooks.com.au") + end + + it "should fetch a composite array with attribute values matching query" do + xml = %Q` + + + 01 + http://www.rainbowbooks.com.au + + + 01 + Web-based ebooks! + http://booki.sh + + + ` + elem = ONIX::TestElement.from_xml(xml) + websites = elem.fetch_all(:websites, :website_role, 1) + websites.should_not be_empty + websites.collect { |ws| ws.website_link }.should eql([ + "http://www.rainbowbooks.com.au", + "http://booki.sh" + ]) + end + + it "should fetch a composite array with attribute values matching queries" do + xml = %Q` + + + 01 + http://www.rainbowbooks.com.au + + + 02 + Web-based ebooks! + http://booki.sh + + + ` + elem = ONIX::TestElement.from_xml(xml) + websites1 = elem.fetch_all(:websites, :website_role, 1) + websites1.size.should eql(1) + websites2 = elem.fetch_all(:websites, :website_role, [1,2]) + websites2.size.should eql(2) + end + +end diff --git a/spec/header_spec.rb b/spec/core/header_spec.rb similarity index 91% rename from spec/header_spec.rb rename to spec/core/header_spec.rb index 83adae3..bf21bf1 100644 --- a/spec/header_spec.rb +++ b/spec/core/header_spec.rb @@ -1,14 +1,12 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Header do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "header.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @header_node = @doc.root + load_doc_and_root("header.xml") + @header_node = @root end it "should correctly convert to a string" do @@ -112,8 +110,7 @@ describe ONIX::Header do it "should correctly handle headers with an invalid sent date" do - data_path = File.join(File.dirname(__FILE__),"..","data") - file = File.join(data_path, "header_invalid_sentdate.xml") + file = find_data_file("header_invalid_sentdate.xml") header = ONIX::Header.from_xml(File.read(file)) header.sent_date.should be_nil diff --git a/spec/lists_spec.rb b/spec/core/lists_spec.rb similarity index 93% rename from spec/lists_spec.rb rename to spec/core/lists_spec.rb index 18bc16c..074f1d9 100644 --- a/spec/lists_spec.rb +++ b/spec/core/lists_spec.rb @@ -1,6 +1,6 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Lists, "list method" do diff --git a/spec/reader_spec.rb b/spec/core/reader_spec.rb similarity index 57% rename from spec/reader_spec.rb rename to spec/core/reader_spec.rb index ede71c3..3c78cc7 100644 --- a/spec/reader_spec.rb +++ b/spec/core/reader_spec.rb @@ -1,18 +1,16 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Reader do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - @file1 = File.join(@data_path, "9780194351898.xml") - @file2 = File.join(@data_path, "two_products.xml") - @long_file = File.join(@data_path, "Bookwise_July_2008.xml") - @entity_file = File.join(@data_path, "entities.xml") - @utf_16_file = File.join(@data_path, "utf_16.xml") - @iso_8859_1_file = File.join(@data_path, "iso_8859_1.xml") - @no_encoding_decl_file = File.join(@data_path, "aau.xml") + @file1 = find_data_file("9780194351898.xml") + @file2 = find_data_file("two_products.xml") + @long_file = find_data_file("Bookwise_July_2008.xml") + @entity_file = find_data_file("entities.xml") + @utf_16_file = find_data_file("utf_16.xml") + @iso_8859_1_file = find_data_file("iso_8859_1.xml") end it "should initialize with a filename" do @@ -28,7 +26,7 @@ end it "should provide access to various XML metadata from file" do - filename = File.join(@data_path, "reference_with_release_attrib.xml") + filename = find_data_file("reference_with_release_attrib.xml") reader = ONIX::Reader.new(filename) reader.release.should eql(BigDecimal.new("2.1")) end @@ -91,36 +89,18 @@ it "should transparently convert a iso-8859-1 file to utf-8" do reader = ONIX::Reader.new(@iso_8859_1_file) - reader.each do |product| - if RUBY_VERSION >= "1.9" - utf8 = Encoding.find("utf-8") - product.contributors[0].person_name_inverted.encoding.should eql(utf8) - end - - product.contributors[0].person_name_inverted.should eql("Küng, Hans") + product = nil + reader.each do |p| + product = p end - end - - # This isn't ideal behaviour, but i'm somewhat hamstrung by nokogiri API. It'd - # be nice to have the option to replace unrecognised bytes with a valid char. - it "should raise an exception when an iso-8859-1 file isn't declared as such" do - reader = ONIX::Reader.new(@no_encoding_decl_file) - lambda { - reader.each do |product| - end - }.should raise_error(Nokogiri::XML::SyntaxError) - end - it "should transparently convert an iso-8859-1 file to utf-8 when there's no declaration but the user manually specifies iso-8859-1" do - reader = ONIX::Reader.new(@no_encoding_decl_file, :encoding => "iso-8859-1") - reader.each do |product| - if RUBY_VERSION >= "1.9" - utf8 = Encoding.find("utf-8") - product.contributors[0].person_name_inverted.encoding.should eql(utf8) - end - - product.contributors[0].person_name_inverted.should eql("Melo,Patr¡cia") + # ROXML appears to munge the string encodings + if RUBY_VERSION >= "1.9" + utf8 = Encoding.find("utf-8") + product.contributors[0].person_name_inverted.encoding.should eql(utf8) end + + product.contributors[0].person_name_inverted.should eql("Küng, Hans") end it "should transparently convert a utf-16 file to utf-8" do @@ -139,17 +119,49 @@ product.contributors[0].person_name_inverted.should eql("Küng, Hans") end - it "should support returning an APAProduct using deprecated API" do - reader = ONIX::Reader.new(@file1, ONIX::APAProduct) - reader.each do |product| - product.should be_a_kind_of(ONIX::APAProduct) - end + it "should be rewindable" do + reader = ONIX::Reader.new(@file1) + product_arrays = [[],[],[]] + + # On the first loop, products are found. + reader.each { |p| product_arrays[0] << p } + product_arrays[0].size.should eql(1) + + # On the second loop, no products are found because parser is at end of file. + reader.each { |p| product_arrays[1] << p } + product_arrays[1].size.should eql(0) + + # But after rewinding, it should find the products again. + reader.rewind + reader.each { |p| product_arrays[2] << p } + product_arrays[2].size.should eql(1) end - it "should support returning an APAProduct using new API" do - reader = ONIX::Reader.new(@file1, :product_class => ONIX::APAProduct) - reader.each do |product| - product.should be_a_kind_of(ONIX::APAProduct) - end + it "should provide all products as an array" do + reader = ONIX::Reader.new(@file2) + reader.products.size.should eql(2) + # Test this again to make sure it's memoized. + reader.products.size.should eql(2) + end + + + it "should augment ONIX::Product objects with interpretations" do + reader = ONIX::Reader.new( + @file1, + ONIX::Product, + :interpret => ONIX::SpecInterpretations::Getters + ) + reader.products.first.title.should eql("oxford picture dictionary chinese") end + + + it "should augment product inside SimpleProduct with interpretations" do + reader = ONIX::Reader.new( + @file1, + ONIX::APAProduct, + :interpret => ONIX::SpecInterpretations::Getters + ) + reader.products.first.product.title.should eql("oxford picture dictionary chinese") + end + end diff --git a/spec/writer_spec.rb b/spec/core/writer_spec.rb similarity index 63% rename from spec/writer_spec.rb rename to spec/core/writer_spec.rb index efc86e7..5494f94 100644 --- a/spec/writer_spec.rb +++ b/spec/core/writer_spec.rb @@ -1,6 +1,6 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Writer do @@ -49,7 +49,7 @@ header = ONIX::Header.new product = ONIX::Product.new - ONIX::Writer.open(@output, header) do |writer| + ONIX::Writer.open(@output, header) do |writer| writer << product end @@ -58,6 +58,32 @@ lines[4][0,8].should eql(" ONIX::APAProduct) do |writer| + writer.product do |product| + product.title = "Grimm's Fairy Tales" + product.publication_date = Date.parse("2011-04-13") + end + end + out = @output.string + out.should include("Grimm's Fairy Tales") + out.should include("20110413") + end + + it "should output product nodes with interpretations" do + ONIX::Writer.open( + @output, + ONIX::Header.new, + :interpret => ONIX::SpecInterpretations::Setters + ) do |writer| + writer.product { |p| p.title = "Grimm's Fairy Tales" } + end + out = @output.string + out.should include("Grimm's Fairy Tales") + end + it "should correctly store finished state" do header = ONIX::Header.new writer = ONIX::Writer.new(@output, header) diff --git a/spec/audience_range_spec.rb b/spec/elements/audience_range_spec.rb similarity index 77% rename from spec/audience_range_spec.rb rename to spec/elements/audience_range_spec.rb index 7aacfb5..2a34222 100644 --- a/spec/audience_range_spec.rb +++ b/spec/elements/audience_range_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::AudienceRange do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "audience_range.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("audience_range.xml") end it "should correctly convert to a string" do @@ -34,10 +31,10 @@ aud.audience_range_qualifier = 12 aud.to_xml.to_s.include?("12").should be_true - aud.audience_range_precisions[0] = 888 + aud.audience_range_precisions = [888] aud.to_xml.to_s.include?("888").should be_true - aud.audience_range_values[0] = 999 + aud.audience_range_values = [999] aud.to_xml.to_s.include?("999").should be_true end diff --git a/spec/contributor_spec.rb b/spec/elements/contributor_spec.rb similarity index 80% rename from spec/contributor_spec.rb rename to spec/elements/contributor_spec.rb index affce40..767019c 100644 --- a/spec/contributor_spec.rb +++ b/spec/elements/contributor_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Contributor do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "contributor.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("contributor.xml") end it "should correctly convert to a string" do diff --git a/spec/imprint_spec.rb b/spec/elements/imprint_spec.rb similarity index 74% rename from spec/imprint_spec.rb rename to spec/elements/imprint_spec.rb index a9de0e6..919c519 100644 --- a/spec/imprint_spec.rb +++ b/spec/elements/imprint_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Imprint do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "imprint.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("imprint.xml") end it "should correctly convert to a string" do diff --git a/spec/language_spec.rb b/spec/elements/language_spec.rb similarity index 78% rename from spec/language_spec.rb rename to spec/elements/language_spec.rb index dc2cc96..faf5d75 100644 --- a/spec/language_spec.rb +++ b/spec/elements/language_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Language do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "language.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("language.xml") end it "should correctly convert to a string" do diff --git a/spec/market_representation_spec.rb b/spec/elements/market_representation_spec.rb similarity index 75% rename from spec/market_representation_spec.rb rename to spec/elements/market_representation_spec.rb index 60028bd..def761a 100644 --- a/spec/market_representation_spec.rb +++ b/spec/elements/market_representation_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::MarketRepresentation do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "market_representation.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("market_representation.xml") end it "should correctly convert to a string" do diff --git a/spec/measure_spec.rb b/spec/elements/measure_spec.rb similarity index 77% rename from spec/measure_spec.rb rename to spec/elements/measure_spec.rb index 822b3d8..7604e57 100644 --- a/spec/measure_spec.rb +++ b/spec/elements/measure_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Measure do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "measure.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("measure.xml") end it "should correctly convert to a string" do diff --git a/spec/media_file_spec.rb b/spec/elements/media_file_spec.rb similarity index 80% rename from spec/media_file_spec.rb rename to spec/elements/media_file_spec.rb index 3168b52..f62e5ec 100644 --- a/spec/media_file_spec.rb +++ b/spec/elements/media_file_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::MediaFile do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "media_file.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("media_file.xml") end it "should correctly convert to a string" do diff --git a/spec/elements/not_for_sale_spec.rb b/spec/elements/not_for_sale_spec.rb new file mode 100644 index 0000000..af6ef5d --- /dev/null +++ b/spec/elements/not_for_sale_spec.rb @@ -0,0 +1,31 @@ +# coding: utf-8 + +require 'spec_helper.rb' + +describe ONIX::NotForSale do + + before(:each) do + load_doc_and_root("sales_rights.xml") + @nfs = @root.at_css("NotForSale") + end + + + it "should correctly convert to a string" do + rep = ONIX::NotForSale.from_xml(@nfs.to_s) + rep.should produce_the_tag("") + end + + + it "should provide read access to first level attributes" do + p = ONIX::Product.from_xml(@root.to_s) + p.not_for_sales[0].rights_countries.should eql(["GB"]) + end + + + it "should provide write access to first level attributes" do + nfs = ONIX::NotForSale.new + nfs.rights_countries = ["GB", "US", "IE"] + nfs.should include_the_xml("GB US IE") + end + +end diff --git a/spec/other_text_spec.rb b/spec/elements/other_text_spec.rb similarity index 74% rename from spec/other_text_spec.rb rename to spec/elements/other_text_spec.rb index 198bb05..492b45f 100644 --- a/spec/other_text_spec.rb +++ b/spec/elements/other_text_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::OtherText do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "other_text.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("other_text.xml") end it "should correctly convert to a string" do diff --git a/spec/price_spec.rb b/spec/elements/price_spec.rb similarity index 74% rename from spec/price_spec.rb rename to spec/elements/price_spec.rb index 7656ddc..806a2fc 100644 --- a/spec/price_spec.rb +++ b/spec/elements/price_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Price do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "price.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("price.xml") end it "should correctly convert to a string" do diff --git a/spec/product_identifier_spec.rb b/spec/elements/product_identifier_spec.rb similarity index 74% rename from spec/product_identifier_spec.rb rename to spec/elements/product_identifier_spec.rb index 8d3c64d..9c495f4 100644 --- a/spec/product_identifier_spec.rb +++ b/spec/elements/product_identifier_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::ProductIdentifier do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "product_identifier.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("product_identifier.xml") end it "should correctly convert to a string" do diff --git a/spec/product_spec.rb b/spec/elements/product_spec.rb similarity index 73% rename from spec/product_spec.rb rename to spec/elements/product_spec.rb index 772a9dc..3e7f344 100644 --- a/spec/product_spec.rb +++ b/spec/elements/product_spec.rb @@ -1,14 +1,12 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Product do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(@data_path, "product.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @product_node = @doc.root + load_doc_and_root("product.xml") + @product_node = @root end it "should provide read access to first level attributes" do @@ -84,10 +82,42 @@ end it "should correctly from_xml files that have an invalid publication date" do - file = File.join(@data_path, "product_invalid_pubdate.xml") + file = find_data_file("product_invalid_pubdate.xml") product = ONIX::Product.from_xml(File.read(file)) product.bic_main_subject.should eql("VXFC1") product.publication_date.should be_nil end + + + it "should load an interpretation" do + product = ONIX::Product.new + product.interpret(ONIX::SpecInterpretations::Setters) + product.title = "Grimm's Fairy Tales" + product.titles.first.title_text.should eql("Grimm's Fairy Tales") + end + + it "should load several interpretations" do + product = ONIX::Product.new + product.interpret([ + ONIX::SpecInterpretations::Getters, + ONIX::SpecInterpretations::Setters + ]) + product.title = "Grimm's Fairy Tales" + product.title.should eql("grimm's fairy tales") + end + + it "should pass on interpretations to other products" do + product1 = ONIX::Product.new + product1.interpret([ + ONIX::SpecInterpretations::Getters, + ONIX::SpecInterpretations::Setters + ]) + + product2 = ONIX::Product.new + product1.interpret_like_me(product2) + product2.title = "Grimm's Fairy Tales" + product2.title.should eql("grimm's fairy tales") + end + end diff --git a/spec/publisher_spec.rb b/spec/elements/publisher_spec.rb similarity index 75% rename from spec/publisher_spec.rb rename to spec/elements/publisher_spec.rb index ed28a6a..36de8bb 100644 --- a/spec/publisher_spec.rb +++ b/spec/elements/publisher_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Publisher do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "publisher.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("publisher.xml") end it "should correctly convert to a string" do diff --git a/spec/sales_restriction_spec.rb b/spec/elements/sales_restriction_spec.rb similarity index 71% rename from spec/sales_restriction_spec.rb rename to spec/elements/sales_restriction_spec.rb index a31714b..af02bc5 100644 --- a/spec/sales_restriction_spec.rb +++ b/spec/elements/sales_restriction_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe "ONIX::SalesRestriction" do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "sales_restriction.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("sales_restriction.xml") end it "should correctly convert to a string" do diff --git a/spec/elements/sales_rights_spec.rb b/spec/elements/sales_rights_spec.rb new file mode 100644 index 0000000..0cef071 --- /dev/null +++ b/spec/elements/sales_rights_spec.rb @@ -0,0 +1,39 @@ +# coding: utf-8 + +require 'spec_helper.rb' + +describe ONIX::SalesRights do + + before(:each) do + load_doc_and_root("sales_rights.xml") + @first_right = @root.at_css("SalesRights") + end + + + it "should correctly convert to a string" do + rep = ONIX::SalesRights.from_xml(@first_right.to_s) + rep.should produce_the_tag("") + end + + + it "should provide read access to first level attributes" do + p = ONIX::Product.from_xml(@root.to_s) + p.sales_rights[0].sales_rights_type.should eql(1) + p.sales_rights[1].rights_countries.should eql(["AU", "NZ"]) + end + + + it "should provide write access to first level attributes" do + sr = ONIX::SalesRights.new + sr.sales_rights_type = 2 + sr.should include_the_xml("02") + sr.rights_territories = ["WORLD"] + sr.should include_the_xml("WORLD") + end + + it "should provide an array for deprecated rights regions" do + p = ONIX::Product.from_xml(@root.to_s) + p.sales_rights[2].rights_region.should eql([0,1,2,3]) + end + +end diff --git a/spec/sender_identifier.rb b/spec/elements/sender_identifier_spec.rb similarity index 74% rename from spec/sender_identifier.rb rename to spec/elements/sender_identifier_spec.rb index e79e000..5f9fe5b 100644 --- a/spec/sender_identifier.rb +++ b/spec/elements/sender_identifier_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::SenderIdentifier do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "sender_identifier.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("sender_identifier.xml") end it "should correctly convert to a string" do diff --git a/spec/series_identifier_spec.rb b/spec/elements/series_identifier_spec.rb similarity index 75% rename from spec/series_identifier_spec.rb rename to spec/elements/series_identifier_spec.rb index ca10ae9..083011c 100644 --- a/spec/series_identifier_spec.rb +++ b/spec/elements/series_identifier_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::SeriesIdentifier do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "series_identifier.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("series_identifier.xml") end it "should correctly convert to a string" do diff --git a/spec/series_spec.rb b/spec/elements/series_spec.rb similarity index 73% rename from spec/series_spec.rb rename to spec/elements/series_spec.rb index 61d98d9..7e0fdd8 100644 --- a/spec/series_spec.rb +++ b/spec/elements/series_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Series do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "series.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("series.xml") end it "should correctly convert to a string" do diff --git a/spec/stock_spec.rb b/spec/elements/stock_spec.rb similarity index 78% rename from spec/stock_spec.rb rename to spec/elements/stock_spec.rb index 8867b1b..02cb09a 100644 --- a/spec/stock_spec.rb +++ b/spec/elements/stock_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Stock do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "stock.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("stock.xml") end it "should correctly convert to a string" do diff --git a/spec/subject_spec.rb b/spec/elements/subject_spec.rb similarity index 76% rename from spec/subject_spec.rb rename to spec/elements/subject_spec.rb index ff308c3..93ffc41 100644 --- a/spec/subject_spec.rb +++ b/spec/elements/subject_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Subject do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "subject.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("subject.xml") end it "should correctly convert to a string" do diff --git a/spec/supply_detail_spec.rb b/spec/elements/supply_detail_spec.rb similarity index 75% rename from spec/supply_detail_spec.rb rename to spec/elements/supply_detail_spec.rb index c56d272..1ad5834 100644 --- a/spec/supply_detail_spec.rb +++ b/spec/elements/supply_detail_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::SupplyDetail do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "supply_detail.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("supply_detail.xml") end it "should correctly convert to a string" do @@ -37,8 +34,8 @@ sd.supplier_role = 1 sd.to_xml.to_s.include?("01").should be_true - sd.availability_status_code = 2 - sd.to_xml.to_s.include?("02").should be_true + sd.availability_code = 2 + sd.to_xml.to_s.include?("02").should be_true sd.product_availability = 3 sd.to_xml.to_s.include?("03").should be_true diff --git a/spec/title_spec.rb b/spec/elements/title_spec.rb similarity index 77% rename from spec/title_spec.rb rename to spec/elements/title_spec.rb index 3dad7e3..e0c0a8e 100644 --- a/spec/title_spec.rb +++ b/spec/elements/title_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Title do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "title.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("title.xml") end it "should correctly convert to a string" do diff --git a/spec/website_spec.rb b/spec/elements/website_spec.rb similarity index 75% rename from spec/website_spec.rb rename to spec/elements/website_spec.rb index 1ae35d8..64f900d 100644 --- a/spec/website_spec.rb +++ b/spec/elements/website_spec.rb @@ -1,14 +1,11 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Website do before(:each) do - data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(data_path, "website.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @root = @doc.root + load_doc_and_root("website.xml") end it "should correctly convert to a string" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index cebd87e..f8859b5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,3 +8,65 @@ require 'stringio' require 'rubygems' require 'onix' + + +module ONIX::SpecHelpers + + def find_data_file(subpath) + data_path = File.join(File.dirname(__FILE__), '..', 'data') + File.join(data_path, subpath).tap { |fn| + raise "File not found: #{fn}" unless File.exists?(fn) + } + end + + def load_doc_and_root(subpath) + fn = find_data_file(subpath) + data = File.read(fn) + @doc = Nokogiri::XML::Document.parse(data) + @root = @doc.root + end + +end + +include ONIX::SpecHelpers + + +# Simple example interpretations +# +module ONIX::SpecInterpretations + module Getters + def title + titles.first.title_text.downcase + end + end + + module Setters + def title=(str) + composite = titles.first + titles << composite = ONIX::Title.new if composite.nil? + composite.title_type = 1 + composite.title_text = str + end + end +end + + +RSpec::Matchers.define(:produce_the_tag) do |expected| + match do |actual| + actual.to_xml.to_s[0, expected.size] == expected + end +end + +RSpec::Matchers.define(:include_the_xml) do |expected| + match do |actual| + actual.to_xml.to_s.include?(expected) + end + + failure_message_for_should do |actual| + "expected '#{actual.to_xml.to_s}' to include the xml '#{expected}'" + end + + failure_message_for_should_not do |actual| + "expected '#{actual.to_xml.to_s}' not to include the xml '#{expected}'" + end +end diff --git a/spec/normaliser_spec.rb b/spec/utils/normaliser_spec.rb similarity index 74% rename from spec/normaliser_spec.rb rename to spec/utils/normaliser_spec.rb index 405374d..068abc6 100644 --- a/spec/normaliser_spec.rb +++ b/spec/utils/normaliser_spec.rb @@ -1,13 +1,12 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' describe ONIX::Normaliser, "with a simple short tag file" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - @filename = File.join(@data_path, "short_tags.xml") - @outfile = @filename + ".new" + @filename = find_data_file("short_tags.xml") + @outfile = @filename + ".new" end after(:each) do @@ -27,9 +26,8 @@ describe ONIX::Normaliser, "with a short tag file that include HTML tags" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - @filename = File.join(@data_path, "short_tags_ivp.xml") - @outfile = @filename + ".new" + @filename = find_data_file("short_tags_ivp.xml") + @outfile = @filename + ".new" end after(:each) do @@ -51,9 +49,8 @@ describe ONIX::Normaliser, "with a utf8 file that has illegal control chars" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - @filename = File.join(@data_path, "control_chars.xml") - @outfile = @filename + ".new" + @filename = find_data_file("control_chars.xml") + @outfile = @filename + ".new" end after(:each) do diff --git a/spec/apa_product_spec.rb b/spec/wrappers/apa_product_spec.rb similarity index 79% rename from spec/apa_product_spec.rb rename to spec/wrappers/apa_product_spec.rb index 6badf75..69cee96 100644 --- a/spec/apa_product_spec.rb +++ b/spec/wrappers/apa_product_spec.rb @@ -1,15 +1,13 @@ # coding: utf-8 -require File.dirname(__FILE__) + '/spec_helper.rb' +require 'spec_helper.rb' require 'date' describe "ONIX::APAProduct" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(@data_path, "product.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @product_node = @doc.root + load_doc_and_root("product.xml") + @product_node = @root end it "should provide read access to attributes" do @@ -68,10 +66,8 @@ describe ONIX::APAProduct, "price method" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(@data_path, "usd.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @product_node = @doc.root + load_doc_and_root("usd.xml") + @product_node = @root end it "should return the first price in the file, regardless of type" do @@ -84,10 +80,8 @@ describe ONIX::APAProduct, "rrp_exc_sales_tax method" do before(:each) do - @data_path = File.join(File.dirname(__FILE__),"..","data") - file1 = File.join(@data_path, "usd.xml") - @doc = Nokogiri::XML::Document.parse(File.read(file1)) - @product_node = @doc.root + load_doc_and_root("usd.xml") + @product_node = @root end it "should return the first price in the file of type 1" do diff --git a/support/codes/001.tsv b/support/codes/001.tsv deleted file mode 100644 index c1d0a87..0000000 --- a/support/codes/001.tsv +++ /dev/null @@ -1,10 +0,0 @@ -01 Early notification Use for a complete record issued earlier than approximately six months before publication. -02 Advance notification (confirmed) Use for a complete record issued to confirm advance information approximately six months before publication; or for a complete record issued after that date and before information has been confirmed from the book-in-hand. -03 Notification confirmed from book-in-hand Use for a complete record issued to confirm advance information using the book-in-hand at or just before actual publication date; or for a complete record issued at any later date. -04 Update (partial) Intended to be used for an update to a part of the record which is sent without re-issuing the complete record. In practise, however, ONIX updating is invariably by complete record replacement using code 03, and code 04 is not used. -05 Delete Use when sending an instruction to delete a record which was previously issued. Note that a delete instruction should NOT be used when a product is cancelled, put out of print, or otherwise withdrawn from sale: this should be handled as a change of availability status, leaving the receiver to decide whether to retain or delete the record. A delete instruction is only used when there is a particular reason to withdraw a record completely, eg because it was issued in error. -08 Notice of sale Notice of sale of a product, from one publisher to another: sent by the publisher disposing of the product -09 Notice of acquisition Notice of acquisition of a product, by one publisher from another: sent by the acquiring publisher -12 Update - SupplyDetail only ONIX Books supply update - SupplyDetail only -13 Update - MarketRepresentation only ONIX Books supply update - MarketRepresentation only -14 Update - SupplyDetail and MarketRepresentation ONIX Books supply update - both SupplyDetail and MarketRepresentation diff --git a/support/codes/002.tsv b/support/codes/002.tsv deleted file mode 100644 index a4dc0c5..0000000 --- a/support/codes/002.tsv +++ /dev/null @@ -1,5 +0,0 @@ -00 Single-item retail product -10 Multiple-item retail product Multiple-item product retailed as a whole -11 Multiple-item collection, retailed as separate parts Used when an ONIX record is required for a collection-as-a-whole, even though it is not currently retailed as such -20 Trade-only product Product not for retail, and not carrying retail items, eg empty dumpbin, empty counterpack, promotional material -30 Multiple-item trade pack Carrying multiple copies for retailing as separate items, eg shrink-wrapped trade pack, filled dumpbin, filled counterpack diff --git a/support/codes/003.tsv b/support/codes/003.tsv deleted file mode 100644 index b66a926..0000000 --- a/support/codes/003.tsv +++ /dev/null @@ -1,7 +0,0 @@ -00 Unspecified -01 Publisher -02 Publisher's distributor Use to designate a distributor providing warehousing and fulfilment for a publisher or for a publisher’s sales agent, as distinct from a wholesaler -03 Wholesaler -04 Bibliographic agency -05 Library bookseller -06 Publisher’s sales agent Use for a publisher’s sales agent responsible for marketing the publisher’s products within a territory, as opposed to a publisher’s distributor who fulfils orders but does not market diff --git a/support/codes/005.tsv b/support/codes/005.tsv deleted file mode 100644 index 9a9c8ed..0000000 --- a/support/codes/005.tsv +++ /dev/null @@ -1,13 +0,0 @@ -01 Proprietary For example, a publisher’s or wholesaler’s product number. -02 ISBN-10 International Standard Book Number, pre-2007, unhyphenated (10 characters) -03 GTIN-13 GS1 Global Trade Item Number, formerly known as EAN article number (13 digits) -04 UPC UPC product number (12 digits) -05 ISMN International Standard Music Number (10 digits) -06 DOI Digital Object Identifier (variable length and character set) -13 LCCN Library of Congress Control Number (12 characters, alphanumeric) -14 GTIN-14 GS1 Global Trade Item Number (14 digits) -15 ISBN-13 International Standard Book Number, from 2007, unhyphenated (13 digits) -17 Legal deposit number The number assigned to a publication as part of a national legal deposit process -22 URN Uniform Resource Name: note that in trade applications an ISBN must be sent as a GTIN-13 and, where required, as an ISBN-13 - it should not be sent as a URN -23 OCLC number A unique number assigned to a bibliographic item by OCLC -24 Co-publisher’s ISBN-13 An ISBN-13 assigned by a co-publisher. The ‘main’ ISBN sent with ID type code 03 and/or 15 should always be the ISBN that is used for ordering from the supplier identified in Supply Detail. However, ISBN rules allow a co-published title to carry more than one ISBN. The co-publisher should be identified in an instance of the composite, with the applicable code. diff --git a/support/codes/006.tsv b/support/codes/006.tsv deleted file mode 100644 index ff4ae59..0000000 --- a/support/codes/006.tsv +++ /dev/null @@ -1,76 +0,0 @@ -00 Not barcoded -01 Barcoded, scheme unspecified -02 EAN13 Position unspecified -03 EAN13+5 (US dollar price encoded) Position unspecified -04 UPC12 Type and position unspecified. DEPRECATED: if possible, use more specific values below. -05 UPC12+5 Type and position unspecified. DEPRECATED: if possible, use more specific values below. -06 UPC12 (item-specific) AKA item/price: position unspecified -07 UPC12+5 (item-specific) AKA item/price: position unspecified -08 UPC12 (price-point) AKA price/item: position unspecified -09 UPC12+5 (price-point) AKA price/item: position unspecified -10 EAN13 on cover 4 ‘Cover 4’ is defined as the back cover of a book -11 EAN13+5 on cover 4 (US dollar price encoded) ‘Cover 4’ is defined as the back cover of a book -12 UPC12 (item-specific) on cover 4 AKA item/price; 'cover 4' is defined as the back cover of a book -13 UPC12+5 (item-specific) on cover 4 AKA item/price; 'cover 4' is defined as the back cover of a book -14 UPC12 (price-point) on cover 4 AKA price/item; 'cover 4' is defined as the back cover of a book -15 UPC12+5 (price-point) on cover 4 AKA price/item; 'cover 4' is defined as the back cover of a book -16 EAN13 on cover 3 ‘Cover 3’ is defined as the inside back cover of a book -17 EAN13+5 on cover 3 (US dollar price encoded) ‘Cover 3’ is defined as the inside back cover of a book -18 UPC12 (item-specific) on cover 3 AKA item/price; 'cover 3' is defined as the inside back cover of a book -19 UPC12+5 (item-specific) on cover 3 AKA item/price; 'cover 3' is defined as the inside back cover of a book -20 UPC12 (price-point) on cover 3 AKA price/item; 'cover 3' is defined as the inside back cover of a book -21 UPC12+5 (price-point) on cover 3 AKA price/item; 'cover 3' is defined as the inside back cover of a book -22 EAN13 on cover 2 ‘Cover 2’ is defined as the inside front cover of a book -23 EAN13+5 on cover 2 (US dollar price encoded) ‘Cover 2’ is defined as the inside front cover of a book -24 UPC12 (item-specific) on cover 2 AKA item/price; 'cover 2' is defined as the inside front cover of a book -25 UPC12+5 (item-specific) on cover 2 AKA item/price; 'cover 2' is defined as the inside front cover of a book -26 UPC12 (price-point) on cover 2 AKA price/item; 'cover 2' is defined as the inside front cover of a book -27 UPC12+5 (price-point) on cover 2 AKA price/item; 'cover 2' is defined as the inside front cover of a book -28 EAN13 on box To be used only on boxed products -29 EAN13+5 on box (US dollar price encoded) To be used only on boxed products -30 UPC12 (item-specific) on box AKA item/price; to be used only on boxed products -31 UPC12+5 (item-specific) on box AKA item/price; to be used only on boxed products -32 UPC12 (price-point) on box AKA price/item; to be used only on boxed products -33 UPC12+5 (price-point) on box AKA price/item; to be used only on boxed products -34 EAN13 on tag To be used only on products fitted with hanging tags -35 EAN13+5 on tag (US dollar price encoded) To be used only on products fitted with hanging tags -36 UPC12 (item-specific) on tag AKA item/price; to be used only on products fitted with hanging tags -37 UPC12+5 (item-specific) on tag AKA item/price; to be used only on products fitted with hanging tags -38 UPC12 (price-point) on tag AKA price/item; to be used only on products fitted with hanging tags -39 UPC12+5 (price-point) on tag AKA price/item; to be used only on products fitted with hanging tags -40 EAN13 on bottom Not be used on books unless they are contained within outer packaging -41 EAN13+5 on bottom (US dollar price encoded) Not be used on books unless they are contained within outer packaging -42 UPC12 (item-specific) on bottom AKA item/price; not be used on books unless they are contained within outer packaging -43 UPC12+5 (item-specific) on bottom AKA item/price; not be used on books unless they are contained within outer packaging -44 UPC12 (price-point) on bottom AKA price/item; not be used on books unless they are contained within outer packaging -45 UPC12+5 (price-point) on bottom AKA price/item; not be used on books unless they are contained within outer packaging -46 EAN13 on back Not be used on books unless they are contained within outer packaging -47 EAN13+5 on back (US dollar price encoded) Not be used on books unless they are contained within outer packaging -48 UPC12 (item-specific) on back AKA item/price; not be used on books unless they are contained within outer packaging -49 UPC12+5 (item-specific) on back AKA item/price; not be used on books unless they are contained within outer packaging -50 UPC12 (price-point) on back AKA price/item; not be used on books unless they are contained within outer packaging -51 UPC12+5 (price-point) on back AKA price/item; not be used on books unless they are contained within outer packaging -52 EAN13+5 on outer sleeve/back (US dollar price encoded) To be used only on products packaged in outer sleeves -53 EAN13+5 on outer sleeve/back To be used only on products packaged in outer sleeves -54 UPC12 (item-specific) on outer sleeve/back AKA item/price; to be used only on products packaged in outer sleeves -55 UPC12+5 (item-specific) on outer sleeve/back AKA item/price; to be used only on products packaged in outer sleeves -56 UPC12 (price-point) on outer sleeve/back AKA price/item; to be used only on products packaged in outer sleeves -57 UPC12+5 (price-point) on outer sleeve/back AKA price/item; to be used only on products packaged in outer sleeves -58 EAN13+5 (no price encoded) Position unspecified -59 EAN13+5 on cover 4 (no price encoded) ‘Cover 4’ is defined as the back cover of a book -60 EAN13+5 on cover 3 (no price encoded) ‘Cover 3’ is defined as the inside back cover of a book -61 EAN13+5 on cover 2 (no price encoded) ‘Cover 2’ is defined as the inside front cover of a book -62 EAN13+5 on box (no price encoded) To be used only on boxed products -63 EAN13+5 on tag (no price encoded) To be used only on products fitted with hanging tags -64 EAN13+5 on bottom (no price encoded) Not be used on books unless they are contained within outer packaging -65 EAN13+5 on back (no price encoded) Not be used on books unless they are contained within outer packaging -66 EAN13+5 on outer sleeve/back (no price encoded) To be used only on products packaged in outer sleeves -67 EAN13+5 (CAN dollar price encoded) Position unspecified -68 EAN13+5 on cover 4 (CAN dollar price encoded) ‘Cover 4’ is defined as the back cover of a book -69 EAN13+5 on cover 3 (CAN dollar price encoded) ‘Cover 3’ is defined as the inside back cover of a book -70 EAN13+5 on cover 2 (CAN dollar price encoded) ‘Cover 2’ is defined as the inside front cover of a book -71 EAN13+5 on box (CAN dollar price encoded) To be used only on boxed products -72 EAN13+5 on tag (CAN dollar price encoded) To be used only on products fitted with hanging tags -73 EAN13+5 on bottom (CAN dollar price encoded) Not be used on books unless they are contained within outer packaging -74 EAN13+5 on back (CAN dollar price encoded) Not be used on books unless they are contained within outer packaging -75 EAN13 on outer sleeve/back (CAN dollar price encoded) To be used only on products packaged in outer sleeves diff --git a/support/codes/007.tsv b/support/codes/007.tsv deleted file mode 100644 index 2712bc9..0000000 --- a/support/codes/007.tsv +++ /dev/null @@ -1,123 +0,0 @@ -00 Undefined -AA Audio Audio recording - detail unspecified -AB Audio cassette Audio cassette (analogue) -AC CD-Audio Audio compact disc, in any recording format: use coding from List 78 to specify the format, if required -AD DAT Digital audio tape cassette -AE Audio disc Audio disc (excluding CD) -AF Audio tape Audio tape (reel tape) -AG MiniDisc Sony MiniDisc format -AH CD-Extra Audio compact disc with part CD-ROM content -AI DVD Audio -AJ Downloadable audio file Audio recording downloadable online -AK Pre-recorded MP3 player For example, Playaway audiobook and player -AL Pre-recorded SD card For example, Audiofy audiobook chip -AZ Other audio format Other audio format not specified by AB to AK -BA Book Book - detail unspecified -BB Hardback Hardback or cased book -BC Paperback / softback Paperback or other softback book -BD Loose-leaf Loose-leaf book -BE Spiral bound Spiral, comb or coil bound book -BF Pamphlet Pamphlet or brochure, stapled; German 'geheftet' -BG Leather / fine binding -BH Board book Child’s book with all pages printed on board -BI Rag book Child’s book with all pages printed on textile -BJ Bath book Child’s book printed on waterproof material -BK Novelty book A book whose novelty consists wholly or partly in a format which cannot be described by any other available code – a ‘conventional’ format code is always to be preferred; one or more product form detail codes from List 78, eg from the B2nn group, should be used whenever possible to provide additional description. -BL Slide bound Slide bound book -BM Big book Extra-large format for teaching etc; this format and terminology may be specifically UK; required as a top-level differentiator -BN Part-work (fascículo) A part-work issued with its own ISBN and intended to be collected and bound into a complete book -BO Fold-out book or chart Concertina-folded book or chart, designed to fold to pocket or regular page size: use for German 'Leporello' -BP Foam book A children’s book whose cover and pages are made of foam -BZ Other book format Other book format or binding not specified by BB to BO -CA Sheet map Sheet map - detail unspecified -CB Sheet map, folded -CC Sheet map, flat -CD Sheet map, rolled See Code List 80 for 'rolled in tube' -CE Globe Globe or planisphere -CZ Other cartographic Other cartographic format not specified by CB to CE -DA Digital Digital or multimedia (detail unspecified) -DB CD-ROM -DC CD-I CD interactive -DD DVD DEPRECATED - use VI for DVD video, AI for DVD audio, DI for DVD-ROM -DE Game cartridge -DF Diskette AKA 'floppy disc' -DG Electronic book text Electronic book text in proprietary or open standard format -DH Online resource An electronic database or other resource or service accessible through online networks -DI DVD-ROM -DJ Secure Digital (SD) Memory Card -DK Compact Flash Memory Card -DL Memory Stick Memory Card -DM USB Flash Drive -DN Double-sided CD/DVD Double-sided disc, one side Audio CD/CD-ROM, other side DVD -DZ Other digital Other digital or multimedia not specified by DB to DN -FA Film or transparency Film or transparency – detail unspecified -FB Film Continuous film or filmstrip: DEPRECATED - use FE or FF -FC Slides Photographic transparencies mounted for projection -FD OHP transparencies Transparencies for overhead projector -FE Filmstrip -FF Film Continuous movie film as opposed to filmstrip -FZ Other film or transparency format Other film or transparency format not specified by FB to FF -MA Microform Microform – detail unspecified -MB Microfiche -MC Microfilm Roll microfilm -MZ Other microform Other microform not specified by MB or MC -PA Miscellaneous print Miscellaneous printed material – detail unspecified -PB Address book May use product form detail codes P201 to P204 to specify binding -PC Calendar -PD Cards Cards, flash cards (eg for teaching reading) -PE Copymasters Copymasters, photocopiable sheets -PF Diary May use product form detail codes P201 to P204 to specify binding -PG Frieze -PH Kit -PI Sheet music -PJ Postcard book or pack -PK Poster Poster for retail sale – see also XF -PL Record book Record book (eg 'birthday book', 'baby book'): may use product form detail codes P201 to P204 to specify binding -PM Wallet or folder Wallet or folder (containing loose sheets etc): it is preferable to code the contents and treat 'wallet' as packaging (List 80), but if this is not possible the product as a whole may be coded as a 'wallet' -PN Pictures or photographs -PO Wallchart -PP Stickers -PQ Plate (lámina) A book-sized (as opposed to poster-sized) sheet, usually in colour or high quality print -PR Notebook / blank book A book with all pages blank for the buyer's own use: may use product form detail codes P201 to P204 to specify binding -PS Organizer May use product form detail codes P201 to P204 to specify binding -PT Bookmark -PZ Other printed item Other printed item not specified by PB to PQ -VA Video Video – detail unspecified -VB Video, VHS, PAL DEPRECATED - use new VJ -VC Video, VHS, NTSC DEPRECATED - use new VJ -VD Video, Betamax, PAL DEPRECATED - use new VK -VE Video, Betamax, NTSC DEPRECATED - use new VK -VF Videodisc eg Laserdisc -VG Video, VHS, SECAM DEPRECATED - use new VJ -VH Video, Betamax, SECAM DEPRECATED - use new VK -VI DVD video DVD video: specify TV standard in List 78 -VJ VHS video VHS videotape: specify TV standard in List 78 -VK Betamax video Betamax videotape: specify TV standard in List 78 -VL VCD VideoCD -VM SVCD Super VideoCD -VN HD DVD High definition DVD disc, Toshiba HD DVD format -VO Blu-ray High definition DVD disc, Sony Blu-ray format -VP UMD Video Sony Universal Media disc -VZ Other video format Other video format not specified by VB to VP -WW Mixed media product A product consisting of two or more items in different media, eg book and CD-ROM, book and toy etc -WX Multiple copy pack A product containing multiple copies of one or more items packaged together for retail sale, consisting of either (a) several copies of a single item (eg 6 copies of a graded reader), or (b) several copies of each of several items (eg 3 copies each of 3 different graded readers), or (c) several copies of one or more single items plus a single copy of one or more related items (eg 30 copies of a pupil's textbook plus 1 of teacher's text). NOT TO BE CONFUSED WITH: multi-volume sets, or sets containing a single copy of a number of different items (boxed, slip-cased or otherwise); items with several components of different physical forms (see WW); or packs intended for trade distribution only, where the contents are retailed separately (see XC, XE, XL). -XA Trade-only material Trade-only material (unspecified) -XB Dumpbin – empty -XC Dumpbin – filled Dumpbin with contents -XD Counterpack – empty -XE Counterpack – filled Counterpack with contents -XF Poster, promotional Promotional poster for display, not for sale – see also PK -XG Shelf strip -XH Window piece Promotional piece for shop window display -XI Streamer -XJ Spinner -XK Large book display Large scale facsimile of book for promotional display -XL Shrink-wrapped pack A quantity pack with its own product code, for trade supply only: the retail items it contains are intended for sale individually – see also WX. For products or product bundles supplied shrink-wrapped for retail sale, use the Product Form code of the contents plus code 21 from List 80. -XZ Other point of sale Other point of sale material not specified by XB to XL -ZA General merchandise General merchandise – unspecified -ZB Doll -ZC Soft toy Soft or plush toy -ZD Toy -ZE Game Board game, or other game (except computer game: see DE) -ZF T-shirt -ZZ Other merchandize Other merchandize not specified by ZB to ZF diff --git a/support/codes/008.tsv b/support/codes/008.tsv deleted file mode 100644 index 273f515..0000000 --- a/support/codes/008.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 A-format paperback DEPRECATED -02 B-format paperback ‘B’ format paperback: UK 198 x 129 mm - DEPRECATED -03 C-format paperback ‘C’ format paperback: UK 216 x 135 mm - DEPRECATED -04 Paper over boards DEPRECATED -05 Cloth DEPRECATED -06 With dust jacket DEPRECATED -07 Reinforced binding DEPRECATED diff --git a/support/codes/009.tsv b/support/codes/009.tsv deleted file mode 100644 index 798fd87..0000000 --- a/support/codes/009.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 WCO Harmonized System World Customs Organization Harmonized Commodity Coding & Description System -02 UNSPSC UN Standard Product & Service Classification -03 HMC&E UK Customs & Excise classifications, based on the Harmonized System -04 Warenverzeichnis für die Außenhandelsstatistik German export trade classification, based on the Harmonised System -05 TARIC EU TARIC codes, an extended version of the Harmonized System -06 Fondsgroep Centraal Boekhuis free classification field for publishers -07 Sender's product category A product category (not a subject classification) assigned by the sender diff --git a/support/codes/010.tsv b/support/codes/010.tsv deleted file mode 100644 index 2eb0a6f..0000000 --- a/support/codes/010.tsv +++ /dev/null @@ -1,34 +0,0 @@ -000 Epublication “content package” An epublication viewed as a unique package of content which may be converted into any of a number of different types for delivery to the consumer. This code is used when an ONIX record describes the content package and lists within the record the different forms in which it is available. -001 HTML An epublication delivered in a basic, unprotected, HTML format. Do NOT use for HTML-based formats which include DRM protection. -002 PDF An epublication delivered in a basic, unprotected, PDF format. Do NOT use for PDF-based formats which include DRM protection. -003 PDF-Merchant An epublication delivered in PDF format, capable of being read in the standard Acrobat Reader, and protected by PDF-Merchant DRM features. (This format is no longer supported for new applications.) -004 Adobe Ebook Reader An epublication delivered in an enhanced PDF format, using Adobe’s proprietary EBX DRM, capable of being read in the Adobe Ebook Reader software, on any platform which can support this software, which was formerly known as Glassbook. -005 Microsoft Reader Level 1/Level 3 An epublication delivered in an unencrypted Microsoft .LIT format, capable of being read in the Microsoft Reader software at any level, on any platform which can support this software. (Level 3 differs from Level 1 only in that it embeds the name of the original purchaser.) -006 Microsoft Reader Level 5 An epublication delivered in the Microsoft .LIT format, with full encryption, capable of being read in the Microsoft Reader software at Level 5, on any platform which can support this software. -007 NetLibrary An epublication delivered in a proprietary HTML- or OEBF-based format, capable of being read only through subscription to the NetLibrary service. -008 MetaText An epublication delivered in a proprietary format through a web browser, capable of being read only through subscription to the MetaText service (the educational division of NetLibrary) -009 MightyWords An epublication delivered in a proprietary PDF-based format, capable of being read only through subscription to the MightyWords service. -010 Palm Reader An epublication delivered in a proprietary HTML-based format, capable of being read in reading software which may be used on handheld devices using the Palm OS or Pocket PC/Windows CE operating systems. -011 Softbook An epublication delivered in a proprietary format capable of being read in reading software which is specific to the Softbook hardware platform. Also capable of being read on the Softbook’s successor, the Gemstar REB 1200. -012 RocketBook An epublication delivered in a proprietary .RB format, capable of being read in reading software which is specific to the RocketBook hardware platform. Also capable of being read on the RocketBook’s successor, the Gemstar REB 1100. -013 Gemstar REB 1100 An epublication delivered in a proprietary .RB format, capable of being read in reading software which is specific to the Gemstar REB 1100 hardware platform. Also capable of being read on the RocketBook with some loss of functionality. -014 Gemstar REB 1200 An epublication delivered in a proprietary format, capable of being read in reading software which is specific to the Gemstar REB 1200 hardware platform. Also capable of being read on the Softbook with some loss of functionality. -015 Franklin eBookman An epublication delivered in Franklin’s proprietary HTML-based format, capable of being read in reading software which is specific to the Franklin eBookman platform. -016 Books24x7 An epublication delivered in a proprietary XML-based format and available for online access only through subscription to the Books24x7 service. -017 DigitalOwl An epublication available through DigitalOwl proprietary packaging, distribution and DRM software, delivered in a variety of formats across a range of platforms. -018 Handheldmed An epublication delivered in a proprietary HTML-based format, capable of being read in Handheldmed reader software on Palm OS, Windows, and EPOC/Psion handheld devices, available only through the Handheldmed service. -019 WizeUp An epublication delivered in a proprietary ???-based format and available for download only through the WizeUp service. -020 TK3 An epublication delivered in the proprietary TK3 format, capable of being read only in the TK3 reader software supplied by Night Kitchen Inc, on any platform which can support this software. -021 Litraweb An epublication delivered in an encrypted .RTF format, capable of being read only in the Litraweb Visor software, and available only from Litraweb.com. -022 MobiPocket An epublication delivered in a proprietary format, capable of being read in the MobiPocket software on PalmOS, WindowsCE /Pocket PC, Franklin eBookman, and EPOC32 handheld devices, available only through the MobiPocket service. -023 Open Ebook An epublication delivered in the standard distribution format specified in the Open Ebook Publication Structure (OEBPS) format and capable of being read in any OEBPS-compliant reading system. -024 Town Compass DataViewer An epublication delivered in a proprietary format, capable of being read in Town Compass DataViewer reader software on a Palm OS handheld device. -025 TXT An epublication delivered in an openly available .TXT format, with ASCII or UTF-8 encoding, as used for example in Project Gutenberg -026 ExeBook An epublication delivered as a self-executing file including its own reader software, and created with proprietary ExeBook Self-Publisher software -027 Sony BBeB An epublication delivered in a proprietary format, capable of being read on a Sony Reader handheld device -028 VitalSource Bookshelf -029 Adobe Digital Editions -030 MyiLibrary -031 Kindle -098 Multiple formats Product consists of parts in different formats -099 Unspecified Unknown, or no code yet assigned for this format diff --git a/support/codes/011.tsv b/support/codes/011.tsv deleted file mode 100644 index 40539f6..0000000 --- a/support/codes/011.tsv +++ /dev/null @@ -1,11 +0,0 @@ -01 HTML -02 PDF -03 Microsoft Reader ‘.LIT’ file format used by Microsoft Reader software -04 RocketBook -05 Rich text format (RTF) -06 Open Ebook Publication Structure (OEBPS) format standard -07 XML -08 SGML -09 EXE ‘.EXE’ file format used when an epublication is delivered as a self-executing package of software and content. -10 ASCII ‘.TXT’ file format -11 MobiPocket format Proprietary file format used for the MobiPocket reader software diff --git a/support/codes/012.tsv b/support/codes/012.tsv deleted file mode 100644 index 0812b02..0000000 --- a/support/codes/012.tsv +++ /dev/null @@ -1,11 +0,0 @@ -01 UK open market edition An edition from a UK publisher sold only in territories where exclusive rights are not held. Rights details should be carried in PR.21 (ONIX 2.1) OR P.21 (ONIX 3.0) as usual. -02 Airport edition In UK, an edition intended primarily for airside sales in UK airports, though it may be available for sale in other territories where exclusive rights are not held. Rights details should be carried in PR.21 (ONIX 2.1) OR P.21 (ONIX 3.0) as usual. -03 Sonderausgabe In Germany, a special printing sold at a lower price than the regular hardback -04 Pocket paperback In countries where recognised as a distinct trade category, eg France 'livre de poche', Germany 'Taschenbuch', Italy 'tascabile', Spain 'libro de bolsillo -05 International edition (US) Edition produced solely for sale in designated export markets -06 Library audio edition Audio product sold in special durable packaging and with a replacement guarantee for the contained cassettes or CDs for a specified shelf-life -07 US open market edition An edition from a US publisher sold only in territories where exclusive rights are not held. Rights details should be carried in PR.21 (ONIX 2.1) OR P.21 (ONIX 3.0) as usual. -08 Livre scolaire, déclaré par l'éditeur In France, a category of book that has a particular legal status, claimed by the publisher -09 Livre scolaire (non spécifié) In France, a category of book that has a particular legal status, designated independently of the publisher -10 Supplement to newspaper Edition published for sale only with a newspaper or periodical -11 Precio libre textbook In Spain, a school textbook for which there is no fixed or suggested retail price and which is supplied by the publisher on terms individually agreed with the bookseller diff --git a/support/codes/013.tsv b/support/codes/013.tsv deleted file mode 100644 index 9d3154e..0000000 --- a/support/codes/013.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Proprietary For example, publisher’s own series ID -02 ISSN International Standard Serial Number, unhyphenated, 8 digits -03 German National Bibliography series ID Maintained by the Deutsche Bibliothek -04 German Books in Print series ID Maintained by VLB -05 Electre series ID Maintained by Electre Information, France -06 DOI Digital Object Identifier (variable length and character set) -22 URN Uniform Resource Name diff --git a/support/codes/014.tsv b/support/codes/014.tsv deleted file mode 100644 index c0bbd9f..0000000 --- a/support/codes/014.tsv +++ /dev/null @@ -1,4 +0,0 @@ -00 Undefined Default -01 Sentence case Initial capitals on first word and subsequently on proper names only, eg The conquest of Mexico -02 Title case Initial capitals on first word and on all significant words thereafter, eg The Conquest of Mexico -03 All capitals For example, THE CONQUEST OF MEXICO diff --git a/support/codes/015.tsv b/support/codes/015.tsv deleted file mode 100644 index 625d8dc..0000000 --- a/support/codes/015.tsv +++ /dev/null @@ -1,13 +0,0 @@ -00 Undefined -01 Distinctive title (book); Cover title (serial); Title on item (serial content item or reviewed resource) The full text of the distinctive title of the item, without abbreviation or abridgement. For books, where the title alone is not distinctive, elements may be taken from a set or series title and part number etc to create a distinctive title. Where the item is an omnibus edition containing two or more works by the same author, and there is no separate combined title, a distinctive title may be constructed by concatenating the individual titles, with suitable punctuation, as in Pride and prejudice / Sense and sensibility / Northanger Abbey. -02 ISSN key title of serial Serials only -03 Title in original language Where the subject of the ONIX record is a translated item -04 Title acronym or initialism For serials: an acronym or initialism of Title Type 01, eg JAMA, JACM -05 Abbreviated title An abbreviated form of Title Type 01 -06 Title in other language A translation of Title Type 01 into another language -07 Thematic title of journal issue Serials only: when a journal issue is explicitly devoted to a specified topic -08 Former title Books or serials: when an item was previously published under another title -10 Distributor's title For books: the title carried in a book distributor's title file: frequently incomplete, and may include elements not properly part of the title -11 Alternative title on cover An alternative title that appears on the cover of a book -12 Alternative title on back An alternative title that appears on the back of a book -13 Expanded title An expanded form of the title, eg the title of a school text book with grade and type and other details added to make the title meaningful, where otherwise it would comprise only the curriculum subject. This title type is required for submissions to the Spanish ISBN Agency. diff --git a/support/codes/016.tsv b/support/codes/016.tsv deleted file mode 100644 index 2a2e360..0000000 --- a/support/codes/016.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 Proprietary -02 ISBN-10 10-character ISBN of manifestation of work, when this is the only identifier available -06 DOI Digital Object Identifier (variable length and character set) -11 ISTC International Standard Text Code (16 characters: numerals and letters A-F, unhyphenated) -15 ISBN-13 13-character ISBN of manifestation of work, when this is the only identifier available -18 ISRC International Standard Recording Code diff --git a/support/codes/017.tsv b/support/codes/017.tsv deleted file mode 100644 index 3beddfa..0000000 --- a/support/codes/017.tsv +++ /dev/null @@ -1,90 +0,0 @@ -A01 By (author) Author of a textual work -A02 With With or as told to: 'ghost' author of a literary work -A03 Screenplay by Writer of screenplay or script (film or video) -A04 Libretto by Writer of libretto (opera): see also A31 -A05 Lyrics by Author of lyrics (song): see also A31 -A06 By (composer) Composer of music -A07 By (artist) Visual artist when named as the primary creator of, eg, a book of reproductions of artworks -A08 By (photographer) Photographer when named as the primary creator of, eg, a book of photographs) -A09 Created by -A10 From an idea by -A11 Designed by -A12 Illustrated by Artist when named as the creator of artwork which illustrates a text, or of the artwork of a graphic novel or comic book -A13 Photographs by Photographer when named as the creator of photographs which illustrate a text -A14 Text by Author of text which accompanies art reproductions or photographs, or which is part of a graphic novel or comic book -A15 Preface by Author of preface -A16 Prologue by Author of prologue -A17 Summary by Author of summary -A18 Supplement by Author of supplement -A19 Afterword by Author of afterword -A20 Notes by Author of notes or annotations: see also A29 -A21 Commentaries by Author of commentaries on the main text -A22 Epilogue by Author of epilogue -A23 Foreword by Author of foreword -A24 Introduction by Author of introduction: see also A29 -A25 Footnotes by Author/compiler of footnotes -A26 Memoir by Author of memoir accompanying main text -A27 Experiments by Person who carried out experiments reported in the text -A29 Introduction and notes by Author of introduction and notes: see also A20 and A24 -A30 Software written by Writer of computer programs ancillary to the text -A31 Book and lyrics by Author of the textual content of a musical drama: see also A04 and A05 -A32 Contributions by Author of additional contributions to the text -A33 Appendix by Author of appendix -A34 Index by Compiler of index -A35 Drawings by -A36 Cover design or artwork by Use also for the cover artist of a graphic novel or comic book if named separately -A37 Preliminary work by Responsible for preliminary work on which the work is based -A38 Original author Author of the first edition (usually of a standard work) who is not an author of the current edition -A39 Maps by Maps drawn or otherwise contributed by -A40 Inked or colored by When separate persons are named as having respectively drawn and colored artwork, eg for a graphic novel or comic book, use A12 for 'drawn by' and A40 for 'colored by' -A41 Pop-ups by Designer of pop-ups in a pop-up book, who may be different from the illustrator -A42 Continued by Use where a standard work is being continued by somebody other than the original author -A43 Interviewer -A44 Interviewee -A99 Other primary creator Other type of primary creator not specified above -B01 Edited by -B02 Revised by -B03 Retold by -B04 Abridged by -B05 Adapted by -B06 Translated by -B07 As told by -B08 Translated with commentary by This code applies where a translator has provided a commentary on issues relating to the translation. If the translator has also provided a commentary on the work itself, codes B06 and A21 should be used. -B09 Series edited by Name of a series editor when the product belongs to a series -B10 Edited and translated by -B11 Editor-in-chief -B12 Guest editor -B13 Volume editor -B14 Editorial board member -B15 Editorial coordination by -B16 Managing editor -B17 Founded by Usually the founder editor of a serial publication: Begruendet von -B18 Prepared for publication by -B19 Associate editor -B20 Consultant editor Use also for 'advisory editor' -B21 General editor -B22 Dramatized by -B23 General rapporteur In Europe, an expert editor who takes responsibility for the legal content of a collaborative law volume -B24 Literary editor An editor who is responsible for establishing the text used in an edition of a literary work, where this is recognised as a distinctive role (in Spain, 'editor literario') -B25 Arranged by (music) -B99 Other adaptation by Other type of adaptation or editing not specified above -C01 Compiled by -C02 Selected by -C99 Other compilation by Other type of compilation not specified above -D01 Producer -D02 Director -D03 Conductor Conductor of a musical performance -D99 Other direction by Other type of direction not specified above -E01 Actor -E02 Dancer -E03 Narrator -E04 Commentator -E05 Vocal soloist Singer etc -E06 Instrumental soloist -E07 Read by Reader of recorded text, as in an audiobook -E08 Performed by (orchestra, band, ensemble) Name of a musical group in a performing role -E99 Performed by Other type of performer not specified above: use for a recorded performance which does not fit a category above, eg a performance by a stand-up comedian. -F01 Filmed/photographed by -F99 Other recording by Other type of recording not specified above -Z01 Assisted by May be associated with any contributor role, and placement should therefore be controlled by contributor sequence numbering -Z99 Other Other creative responsibility not falling within A to F above diff --git a/support/codes/018.tsv b/support/codes/018.tsv deleted file mode 100644 index c5b2731..0000000 --- a/support/codes/018.tsv +++ /dev/null @@ -1,3 +0,0 @@ -00 Unspecified -01 Pseudonym -02 Authority-controlled name diff --git a/support/codes/019.tsv b/support/codes/019.tsv deleted file mode 100644 index 64ff81e..0000000 --- a/support/codes/019.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Unknown -02 Anonymous -03 et al And others: additional contributors not listed -04 Various authors When the product is a pack of books by different authors -05 Synthesized voice - male Use with Contributor role code E07 “read by”, for audio books for the blind -06 Synthesized voice - female Use with Contributor role code E07 “read by”, for audio books for the blind -07 Synthesized voice - unspecified Use with Contributor role code E07 “read by”, for audio books for the blind diff --git a/support/codes/020.tsv b/support/codes/020.tsv deleted file mode 100644 index e69de29..0000000 diff --git a/support/codes/021.tsv b/support/codes/021.tsv deleted file mode 100644 index 2f8e323..0000000 --- a/support/codes/021.tsv +++ /dev/null @@ -1,31 +0,0 @@ -ABR Abridged Content has been shortened: use for abridged, shortened, concise, condensed. -ADP Adapted Content has been adapted to serve a different purpose or audience, or from one medium to another: use for dramatization, novelization etc. Use to describe the exact nature of the adaptation. -ALT Alternate Do not use. This code is now deprecated, but is retained in the list for reasons of upwards compatibility. -ANN Annotated Content is augmented by the addition of notes -BLL Bilingual edition Both languages should be specified in the 'Language' group. Use MLL for an edition in more than two languages. -BRL Braille Braille edition -CMB Combined volume An edition in which two or more works also published separately are combined in a single volume; aka 'omnibus' edition. -CRI Critical Content includes critical commentary on the text -CSP Coursepack Content was compiled for a specified educational course. -ENL Enlarged Content has been enlarged or expanded from that of a previous edition. -EXP Expurgated ‘Offensive' content has been removed -FAC Facsimile Exact reproduction of the content and format of a previous edition. -FST Festschrift A collection of writings published in honor of a person, an institution or a society. -ILL Illustrated Content includes extensive illustrations which are not part of other editions -LTE Large type / large print Large print edition, print sizes 14 to 19 pt - see also ULP -MCP Microprint A printed edition in a type size too small to be read without a magnifying glass -MDT Media tie-in An edition published to coincide with the release of a film, TV program, or electronic game based on the same work. Use to describe the exact nature of the tie-in. -MLL Multilingual edition All languages should be specified in the 'Language' group. Use BLL for a bilingual edition. -NED New edition Where no other information is given, or no other coded type is applicable -NUM Edition with numbered copies A limited edition in which each copy is individually numbered -PRB Prebound edition In the US, a book that was previously bound, normally as a paperback, and has been rebound with a library-quality hardcover binding by a supplier other than the original publisher. See also the and composites for other aspects of the treatment of prebound editions in ONIX. -REV Revised Content has been revised from that of a previous edition. -SCH School edition An edition intended specifically for use in schools. -SMP Simplified language edition An edition that uses simplified language (Finnish 'Selkokirja') -SPE Special edition Use for anniversary, collectors’, de luxe, gift, limited, numbered, autographed edition. Use to describe the exact nature of the special edition. -STU Student edition Where a text is available in both student and teacher’s editions. -TCH Teacher’s edition Where a text is available in both student and teacher’s editions; use also for instructor’s or leader’s editions. -UBR Unabridged Where a title has also been published in an abridged edition; also for audiobooks, regardless of whether an abridged audio version also exists. -ULP Ultra large print For print sizes 20pt and above, and with typefaces designed for the visually impaired - see also LTE -UXP Unexpurgated Content previously considered 'offensive' has been restored -VAR Variorum Content includes notes by various commentators, and/or includes and compares several variant texts of the same work. diff --git a/support/codes/022.tsv b/support/codes/022.tsv deleted file mode 100644 index 5631767..0000000 --- a/support/codes/022.tsv +++ /dev/null @@ -1,9 +0,0 @@ -01 Language of text -02 Original language of a translated text Where the text in the original language is NOT part of the current product -03 Language of abstracts Where different from language of text: used mainly for serials -04 Rights language Language to which specified rights apply -05 Rights-excluded language Language to which specified rights do not apply -06 Original language in a multilingual edition Where the text in the original language is part of a bilingual or multilingual edition -07 Translated language in a multilingual edition Where the text in a translated language is part of a bilingual or multilingual edition -08 Language of audio track For example, on a DVD -09 Language of subtitles For example, on a DVD diff --git a/support/codes/023.tsv b/support/codes/023.tsv deleted file mode 100644 index 623ac7c..0000000 --- a/support/codes/023.tsv +++ /dev/null @@ -1,9 +0,0 @@ -00 Main content page count The highest-numbered page in a single numbered sequence of main content, usually the highest Arabic-numbered page in a book; or, for books without page numbers or (rarely) with multiple numbered sequences of main content, the total number of pages that carry the main content of the book. This is the preferred page count for most books for the general reader. For books with substantial front and/or back matter, include also Front matter and Back matter page counts, or Total numbered pages. -02 Number of words Number of words of natural language text -03 Front matter page count The total number of numbered (usually Roman-numbered) pages that precede the main content of a book. This usually consists of an introduction, preface, foreword, etc. -04 Back matter page count The total number of numbered (usually Roman-numbered) pages that follow the main content of a book. This usually consists of an afterword, appendices, endnotes, index, etc. -05 Total numbered pages The sum of all Roman- and Arabic-numbered pages. -06 Production page count The total number of pages in a book, including unnumbered pages, front matter, back matter, etc. -07 Absolute page count The total number of pages of the book counting the cover as page 1. This page count type should be used only for digital publications. -09 Duration Duration in time, expressed in the specified extent unit -22 Filesize The size of a digital file, expressed in the specified extent unit diff --git a/support/codes/024.tsv b/support/codes/024.tsv deleted file mode 100644 index 695d473..0000000 --- a/support/codes/024.tsv +++ /dev/null @@ -1,11 +0,0 @@ -02 Words Words of natural language text -03 Pages -04 Hours (integer and decimals) -05 Minutes (integer and decimals) -06 Seconds (integer only) -14 Hours HHH Fill with zeroes if any elements are missing -15 Hours and minutes HHHMM Fill with zeroes if any elements are missing -16 Hours minutes seconds HHHMMSS Fill with zeroes if any elements are missing -17 Bytes -18 Kbytes -19 Mbytes diff --git a/support/codes/025.tsv b/support/codes/025.tsv deleted file mode 100644 index 85b9926..0000000 --- a/support/codes/025.tsv +++ /dev/null @@ -1,29 +0,0 @@ -00 Unspecified, see description See description in the element -01 Illustrations, black & white -02 Illustrations, color -03 Halftones, black & white Including black & white photographs -04 Halftones, color Including color photographs -05 Line drawings, black & white -06 Line drawings, color -07 Tables, black & white -08 Tables, color -09 Illustrations, unspecified -10 Halftones, unspecified Including photographs -11 Tables, unspecified -12 Line drawings, unspecified -13 Halftones, duotone -14 Maps -15 Frontispiece -16 Diagrams -17 Figures -18 Charts -19 Recorded music items Recorded music extracts or examples, or complete recorded work(s), accompanying textual or other content -20 Printed music items Printed music extracts or examples, or complete music score(s), accompanying textual or other content -21 Graphs To be used in the mathematical sense of a diagram that represents numerical values plotted against an origin and axes, cf codes 16 and 18 -22 Plates, unspecified ‘Plates’ means illustrations that are on separate pages bound into the body of a book -23 Plates, black & white ‘Plates’ means illustrations that are on separate pages bound into the body of a book -24 Plates, color ‘Plates’ means illustrations that are on separate pages bound into the body of a book -25 Index -26 Bibliography -27 Inset maps Larger-scale inset maps of places or features of interest included in a map product -28 GPS grids GPS grids included in a map product diff --git a/support/codes/026.tsv b/support/codes/026.tsv deleted file mode 100644 index 3cc9dda..0000000 --- a/support/codes/026.tsv +++ /dev/null @@ -1,75 +0,0 @@ -01 Dewey Dewey Decimal Classification. Code -02 Abridged Dewey Code -03 LC classification US Library of Congress classification. Code -04 LC subject heading US Library of Congress subject heading. Text -05 NLM classification US National Library of Medicine medical classification -06 MeSH heading US National Library of Medicine Medical subject heading -07 NAL subject heading US National Agricultural Library subject heading -08 AAT Getty Art & Architecture Thesaurus heading -09 UDC Universal Decimal Classification. Code -10 BISAC Subject Heading BISAC Subject Headings are used in the North American market to categorize books based on topical content. They serve as a guideline for shelving books in physical stores and browsing books in online stores. -11 BISAC region code A geographical qualifier used with a BISAC subject category. Code -12 BIC subject category For all BIC subject codes and qualifiers, see http://www.bic.org.uk/subcats.html. Code -13 BIC geographical qualifier Code -14 BIC language qualifier (language as subject) Code -15 BIC time period qualifier Code -16 BIC educational purpose qualifier Code -17 BIC reading level & special interest qualifier Code -18 DDC-Sachgruppen der Deutschen Nationalbibliografie Used for German National Bibliography since 2004 (100 subjects). Is different from value 30. -19 LC fiction genre heading Text -20 Keywords Text -21 BIC children’s book marketing category See http://www.bic.org.uk/cbmc.html. Code -22 BISAC Merchandising Theme BISAC Merchandising Themes are used in addition to BISAC Subject Headings to denote an audience to which a work may be of particular appeal, a time of year or event for which a work may be especially appropriate, or to further describe fictional works that have been subject-coded by genre -23 Publisher’s own category code Code -24 Proprietary subject scheme As specified in -25 Tabla de materias ISBN Latin America. Code -26 Warengruppen-Systematik des deutschen Buchhandels Code -27 Schlagwort-Normdatei (SWD) Subject heading text -28 Thèmes Electre Subject classification used by Electre (France). Code -29 CLIL France. Code -30 DNB-Sachgruppen Deutsche Bibliothek subject groups. Code. Used for German National Bibliography until 2003 (65 subjects). Is different from value 18. -31 NUGI Nederlandse Uniforme Genre-Indeling (former Dutch book trade classification). Code -32 NUR Nederlandstalige Uniforme Rubrieksindeling (Dutch book trade classification, from 2002). Code -33 ECPA Christian Book Category ECPA Christian Product Category Book Codes, consisting of up to three x 3-letter blocks, for Super Category, Primary Category and Sub-Category. See http://www.ecpa.org/ECPA/cbacategories.xls. Code -34 SISO Schema Indeling Systematische Catalogus Openbare Bibliotheken (Dutch library classification). Code -35 Korean Decimal Classification (KDC) A modified Dewey Decimal Classification used in the Republic of Korea. Code -36 DDC 22 ger Code. German Translation of DDC 22. Also known as DDC Deutsch 22 -37 Bokgrupper Norwegian book trade product categories (4701) -38 Varegrupper Norwegian bookselling subject categories (4702) -39 Læreplaner Norwegian school curriculum version (4703) -40 Nippon Decimal Classification Japanese subject classification scheme. Code -41 BSQ BookSelling Qualifier: Russian book trade classification. Code -42 ANELE Materias Spain: subject coding scheme of the Asociación Nacional de Editores de Libros y Material de Enseñanza. Code -43 Skolefag Norwegian primary and secondary school subject categories (4705) -44 Videregående Norwegian list of categories used in higher secondary education and vocational training (4706) -45 Undervisningsmateriell Norwegian list of categories for books and other material used in education (4707) -46 Norsk DDK Norwegian version of Dewey Decimal Classification -47 Varugrupper Swedish bookselling subject categories. Code -48 SAB Swedish classification scheme. Text -49 Läromedel Swedish bookselling educational subject. Code -50 Förhandsbeskrivning Swedish publishers preliminary subject classification. Code -51 Spanish ISBN UDC subset Controlled subset of UDC codes used by the Spanish ISBN Agency. Code -52 ECI subject categories Subject categories defined by El Corte Inglés and used widely in the Spanish book trade. Code -53 Soggetto CCE Classificazione commerciale editoriale (Italian book trade subject category based on BIC). Code -54 Qualificatore geografico CCE Code -55 Qualificatore di lingua CCE Code -56 Qualificatore di periodo storico CCE Code -57 Qualificatore di livello scolastico CCE Code -58 Qualificatore di età di lettura CCE Code -59 VdS Bildungsmedien Fächer Subject code list of the German association of educational media publishers -60 Fagkoder Undervisningsdirektoratets fagkoder for kunnskapsløftet I videregående (Norwegian educational curriculum for secondary schools) (4708) -61 JEL classification Journal of Economic Literature classification scheme -62 CSH National Library of Canada subject heading (English) -63 RVM Répertoire de vedettes-matière (Bibliothèque et Archives Canada et Bibliothèque de l'Université Laval) (French) -64 YSA Yleinen suomalainen asiasanasto: Finnish General Thesaurus -65 Allärs Allmän tesaurus på svenska: Swedish translation of the Finnish General Thesaurus -66 YKL Yleisten kirjastojen luokitusjärjestelmä: Finnish Public Libraries Classification System -67 MUSA Musiikin asiasanasto: Finnish Music Thesaurus -68 CILLA Specialtesaurus för musik: Swedish translation of the Finnish Music Thesaurus -69 Kaunokki Fiktiivisen aineiston asiasanasto: Finnish thesaurus for fiction -70 Bella Specialtesaurus för fiktivt material: Swedish translation of the Finnish thesaurus for fiction -71 YSO Yleinen suomalainen ontologia: Finnish General Upper Ontology -72 Paikkatieto ontologia Finnish Place Ontology -73 Suomalainen kirja-alan luokitus Finnish book trade categorisation -74 Sears Sears List of Subject Headings -75 BIC E4L BIC E4Libraries Category Headings diff --git a/support/codes/027.tsv b/support/codes/027.tsv deleted file mode 100644 index 3cc9dda..0000000 --- a/support/codes/027.tsv +++ /dev/null @@ -1,75 +0,0 @@ -01 Dewey Dewey Decimal Classification. Code -02 Abridged Dewey Code -03 LC classification US Library of Congress classification. Code -04 LC subject heading US Library of Congress subject heading. Text -05 NLM classification US National Library of Medicine medical classification -06 MeSH heading US National Library of Medicine Medical subject heading -07 NAL subject heading US National Agricultural Library subject heading -08 AAT Getty Art & Architecture Thesaurus heading -09 UDC Universal Decimal Classification. Code -10 BISAC Subject Heading BISAC Subject Headings are used in the North American market to categorize books based on topical content. They serve as a guideline for shelving books in physical stores and browsing books in online stores. -11 BISAC region code A geographical qualifier used with a BISAC subject category. Code -12 BIC subject category For all BIC subject codes and qualifiers, see http://www.bic.org.uk/subcats.html. Code -13 BIC geographical qualifier Code -14 BIC language qualifier (language as subject) Code -15 BIC time period qualifier Code -16 BIC educational purpose qualifier Code -17 BIC reading level & special interest qualifier Code -18 DDC-Sachgruppen der Deutschen Nationalbibliografie Used for German National Bibliography since 2004 (100 subjects). Is different from value 30. -19 LC fiction genre heading Text -20 Keywords Text -21 BIC children’s book marketing category See http://www.bic.org.uk/cbmc.html. Code -22 BISAC Merchandising Theme BISAC Merchandising Themes are used in addition to BISAC Subject Headings to denote an audience to which a work may be of particular appeal, a time of year or event for which a work may be especially appropriate, or to further describe fictional works that have been subject-coded by genre -23 Publisher’s own category code Code -24 Proprietary subject scheme As specified in -25 Tabla de materias ISBN Latin America. Code -26 Warengruppen-Systematik des deutschen Buchhandels Code -27 Schlagwort-Normdatei (SWD) Subject heading text -28 Thèmes Electre Subject classification used by Electre (France). Code -29 CLIL France. Code -30 DNB-Sachgruppen Deutsche Bibliothek subject groups. Code. Used for German National Bibliography until 2003 (65 subjects). Is different from value 18. -31 NUGI Nederlandse Uniforme Genre-Indeling (former Dutch book trade classification). Code -32 NUR Nederlandstalige Uniforme Rubrieksindeling (Dutch book trade classification, from 2002). Code -33 ECPA Christian Book Category ECPA Christian Product Category Book Codes, consisting of up to three x 3-letter blocks, for Super Category, Primary Category and Sub-Category. See http://www.ecpa.org/ECPA/cbacategories.xls. Code -34 SISO Schema Indeling Systematische Catalogus Openbare Bibliotheken (Dutch library classification). Code -35 Korean Decimal Classification (KDC) A modified Dewey Decimal Classification used in the Republic of Korea. Code -36 DDC 22 ger Code. German Translation of DDC 22. Also known as DDC Deutsch 22 -37 Bokgrupper Norwegian book trade product categories (4701) -38 Varegrupper Norwegian bookselling subject categories (4702) -39 Læreplaner Norwegian school curriculum version (4703) -40 Nippon Decimal Classification Japanese subject classification scheme. Code -41 BSQ BookSelling Qualifier: Russian book trade classification. Code -42 ANELE Materias Spain: subject coding scheme of the Asociación Nacional de Editores de Libros y Material de Enseñanza. Code -43 Skolefag Norwegian primary and secondary school subject categories (4705) -44 Videregående Norwegian list of categories used in higher secondary education and vocational training (4706) -45 Undervisningsmateriell Norwegian list of categories for books and other material used in education (4707) -46 Norsk DDK Norwegian version of Dewey Decimal Classification -47 Varugrupper Swedish bookselling subject categories. Code -48 SAB Swedish classification scheme. Text -49 Läromedel Swedish bookselling educational subject. Code -50 Förhandsbeskrivning Swedish publishers preliminary subject classification. Code -51 Spanish ISBN UDC subset Controlled subset of UDC codes used by the Spanish ISBN Agency. Code -52 ECI subject categories Subject categories defined by El Corte Inglés and used widely in the Spanish book trade. Code -53 Soggetto CCE Classificazione commerciale editoriale (Italian book trade subject category based on BIC). Code -54 Qualificatore geografico CCE Code -55 Qualificatore di lingua CCE Code -56 Qualificatore di periodo storico CCE Code -57 Qualificatore di livello scolastico CCE Code -58 Qualificatore di età di lettura CCE Code -59 VdS Bildungsmedien Fächer Subject code list of the German association of educational media publishers -60 Fagkoder Undervisningsdirektoratets fagkoder for kunnskapsløftet I videregående (Norwegian educational curriculum for secondary schools) (4708) -61 JEL classification Journal of Economic Literature classification scheme -62 CSH National Library of Canada subject heading (English) -63 RVM Répertoire de vedettes-matière (Bibliothèque et Archives Canada et Bibliothèque de l'Université Laval) (French) -64 YSA Yleinen suomalainen asiasanasto: Finnish General Thesaurus -65 Allärs Allmän tesaurus på svenska: Swedish translation of the Finnish General Thesaurus -66 YKL Yleisten kirjastojen luokitusjärjestelmä: Finnish Public Libraries Classification System -67 MUSA Musiikin asiasanasto: Finnish Music Thesaurus -68 CILLA Specialtesaurus för musik: Swedish translation of the Finnish Music Thesaurus -69 Kaunokki Fiktiivisen aineiston asiasanasto: Finnish thesaurus for fiction -70 Bella Specialtesaurus för fiktivt material: Swedish translation of the Finnish thesaurus for fiction -71 YSO Yleinen suomalainen ontologia: Finnish General Upper Ontology -72 Paikkatieto ontologia Finnish Place Ontology -73 Suomalainen kirja-alan luokitus Finnish book trade categorisation -74 Sears Sears List of Subject Headings -75 BIC E4L BIC E4Libraries Category Headings diff --git a/support/codes/028.tsv b/support/codes/028.tsv deleted file mode 100644 index 06eed64..0000000 --- a/support/codes/028.tsv +++ /dev/null @@ -1,8 +0,0 @@ -01 General/trade For a non-specialist adult audience -02 Children/juvenile For a juvenile audience, not specifically for any educational purpose -03 Young adult For a teenage audience, not specifically for any educational purpose -04 Primary & secondary/elementary & high school Kindergarten, pre-school, primary/elementary or secondary/high school education -05 College/higher education For universities and colleges of further and higher education -06 Professional and scholarly For an expert adult audience, including academic research -07 ELT/ESL Intended for use in teaching English as a second language -08 Adult education For centres providing academic, vocational or recreational courses for adults diff --git a/support/codes/029.tsv b/support/codes/029.tsv deleted file mode 100644 index e10525d..0000000 --- a/support/codes/029.tsv +++ /dev/null @@ -1,16 +0,0 @@ -01 ONIX audience codes Using List 28 -02 Proprietary -03 MPAA rating Motion Picture Association of America rating applied to movies -04 BBFC rating British Board of Film Classification rating applied to movies -05 FSK rating German FSK (Freiwillige Selbstkontrolle der Filmwirtschaft) rating applied to movies -06 BTLF audience code French Canadian audience code list, used by BTLF for Memento -07 Electre audience code Audience code used by Electre (France) -08 ANELE Tipo Spain: educational audience and material type code of the Asociación Nacional de Editores de Libros y Material de Enseñanza -09 AVI Code list used to specify reading levels for children's books, used in Flanders and the Netherlands -10 USK rating German USK (Unterhaltungssoftware Selbstkontrolle) rating applied to video or computer games -11 AWS Audience code used in Flanders -12 Schulform Type of school: codelist maintained by VdS Bildungsmedien eV, the German association of educational media publishers -13 Bundesland School region: codelist maintained by VdS Bildungsmedien eV, the German association of educational media publishers, indicating where products are licensed to be used in schools -14 Ausbildungsberuf Occupation: codelist for vocational training materials, maintained by VdS Bildungsmedien eV, the German association of educational media publishers -15 Suomalainen kouluasteluokitus Finnish school or college level -16 CBG age guidance UK Publishers Association, Children’s Book Group, coded indication of intended reader age, carried on book covers diff --git a/support/codes/030.tsv b/support/codes/030.tsv deleted file mode 100644 index 27955f2..0000000 --- a/support/codes/030.tsv +++ /dev/null @@ -1,15 +0,0 @@ -11 US school grade range Values for are specified in List 77 -12 UK school grade Values are defined by BIC for England & Wales, Scotland and N Ireland -15 Reading speed, words per minute Values in must be integers -16 Interest age, months For use up to 30 months only: values in must be integers -17 Interest age, years Values in must be integers -18 Reading age, years Values in must be integers -19 Spanish school grade Spain: combined grade and region code, maintained by the Ministerio de Educación -20 Skoletrinn Norwegian educational grades (4704) -21 Nivå Swedish educational qualifier (code) -22 Italian school grade -23 Schulform DEPRECATED - assigned in error: see List 29 -24 Bundesland DEPRECATED - assigned in error: see List 29 -25 Ausbildungsberuf DEPRECATED - assigned in error: see List 29 -26 Canadian school grade range Values for are specified in List 77 -27 Finnish school grade range diff --git a/support/codes/031.tsv b/support/codes/031.tsv deleted file mode 100644 index 40456ae..0000000 --- a/support/codes/031.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 Exact -03 From -04 To diff --git a/support/codes/032.tsv b/support/codes/032.tsv deleted file mode 100644 index 8c00531..0000000 --- a/support/codes/032.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Lexile code -02 Lexile number diff --git a/support/codes/033.tsv b/support/codes/033.tsv deleted file mode 100644 index 7533cfa..0000000 --- a/support/codes/033.tsv +++ /dev/null @@ -1,36 +0,0 @@ -01 Main description -02 Short description/annotation Limited to a maximum of 350 characters -03 Long description -04 Table of contents Used for a table of contents sent as a single text field, which may or may not carry structure expressed through HTML etc. Alternatively, a fully structured table of contents may be sent by using the composite. -05 Review quote, restricted length A review quote that is restricted to a maximum length agreed between the sender and receiver of an ONIX file -06 Quote from review of previous edition A review quote taken from a review of a previous edition of the work -07 Review text Full text of a review of the product -08 Review quote A quote from a review of the product -09 Promotional “headline” A promotional phrase which is intended to headline a description of the product -10 Previous review quote A quote from a review of a previous work by the same author(s) or in the same series -11 Author comments May be part of Reading Group Guide material: for other commentary, see code 42 -12 Description for reader -13 Biographical note A note referring to all contributors to a product – NOT linked to a single contributor -14 Description for Reading Group Guide For linking to a complete Reading Group Guide, see code 41 -15 Discussion question for Reading Group Guide Each instance must carry a single question: for linking to a complete Reading Group Guide, see code 41 -16 Competing titles Free text listing of other titles with which the product is in competition: although this text might not appear in “public” ONIX records, it could be required where ONIX Is used as a communication format within a group of publishing and distribution companies -17 Flap copy -18 Back cover copy -19 Feature Text describing a feature of a product to which the publisher wishes to draw attention for promotional purposes. Each separate feature should be described by a separate repeat, so that formatting can be applied at the discretion of the receiver of the ONIX record. -20 New feature As code 19, but used for a feature which is new in a new edition of the product. -21 Publisher's notice A statement included by a publisher in fulfilment of its contractual obligations, such as a disclaimer, sponsor statement, or legal notice of any sort. Note that the inclusion of such a notice cannot and does not imply that a user of the ONIX record is obliged to reproduce it. -23 Excerpt from book -24 First chapter -25 Description for sales people -26 Description for press or other media -27 Description for subsidiary rights department -28 Description for teachers/educators -30 Unpublished endorsement A quote usually provided by a celebrity to promote a new book, not from a review -31 Description for bookstore -32 Description for library -33 Introduction or preface -34 Full text -35 Promotional text Promotional text not covered elsewhere -40 Author interview / Q&A -41 Reading Group Guide Complete guide: see also codes 14 and 15 -42 Commentary / discussion Other than author comments: see code 11 diff --git a/support/codes/034.tsv b/support/codes/034.tsv deleted file mode 100644 index 7c65bba..0000000 --- a/support/codes/034.tsv +++ /dev/null @@ -1,14 +0,0 @@ -00 ASCII text DEPRECATED: use code 06 or 07 as appropriate -01 SGML -02 HTML Other than XHTML -03 XML Other than XHTML -04 PDF DEPRECATED: was formerly assigned both to PDF and to XHTML -05 XHTML -06 Default text format Default: text in the encoding declared at the head of the message or in the XML default (UTF-8 or UTF-16) if there is no explicit declaration -07 Basic ASCII text Plain text containing no tags of any kind, except for the tags & and < that XML insists must be used to represent ampersand and less-than characters in text; and with the character set limited to the ASCII range, i.e. valid UTF-8 characters whose character number lies between 32 (space) and 126 (tilde) -08 PDF Replaces 04 for the element, but cannot of course be used as a textformat attribute -09 Microsoft rich text format (RTF) -10 Microsoft Word binary format (DOC) -11 ECMA 376 WordprocessingML Office Open XML file format / OOXML / DOCX -12 ISO 26300 ODF ISO Open Document Format -13 Corel Wordperfect binary format (DOC) diff --git a/support/codes/035.tsv b/support/codes/035.tsv deleted file mode 100644 index 4b343ca..0000000 --- a/support/codes/035.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 URL -02 DOI -03 PURL -04 URN -05 FTP address -06 filename diff --git a/support/codes/036.tsv b/support/codes/036.tsv deleted file mode 100644 index 882aabc..0000000 --- a/support/codes/036.tsv +++ /dev/null @@ -1,3 +0,0 @@ -02 GIF -03 JPEG -05 TIF diff --git a/support/codes/037.tsv b/support/codes/037.tsv deleted file mode 100644 index 4b343ca..0000000 --- a/support/codes/037.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 URL -02 DOI -03 PURL -04 URN -05 FTP address -06 filename diff --git a/support/codes/038.tsv b/support/codes/038.tsv deleted file mode 100644 index 44eb94b..0000000 --- a/support/codes/038.tsv +++ /dev/null @@ -1,36 +0,0 @@ -01 Whole product Link to a location where the whole product may be found – used for epublications -02 Application: software demo -04 Image: front cover Quality unspecified: if sending both a standard quality and a high quality image, use 04 for standard quality and 06 for high quality -06 Image: front cover, high quality Should have a minimum resolution of 300 dpi when rendered at the intended size for display or print -07 Image: front cover thumbnail -08 Image: contributor(s) -10 Image: for series Use for an image, other than a logo, that is part of the 'branding' of a series -11 Image: series logo -12 Image: product logo Use only for a logo which is specific to an individual product -17 Image: publisher logo -18 Image: imprint logo -23 Image: sample content Use for inside page image for book, or screenshot for software or game (revised definition from Issue 8) -24 Image: back cover Quality unspecified: if sending both a standard quality and a high quality image, use 24 for standard quality and 26 for high quality -25 Image: back cover, high quality Should have a minimum resolution of 300 dpi when rendered at the intended size for display or print -26 Image: back cover thumbnail -27 Image: other cover material -28 Image: promotional material -29 Video segment: unspecified -30 Audio segment: unspecified -31 Video: author presentation / commentary -32 Video: author interview -33 Video: author reading -34 Video: cover material -35 Video: sample content -36 Video: promotional material -37 Video: review -38 Video: other commentary / discussion -41 Audio: author presentation / commentary -42 Audio: author interview -43 Audio: author reading -44 Audio: sample content -45 Audio: promotional material -46 Audio: review -47 Audio: other commentary / discussion -51 Application: sample content Use for ‘look inside’ facility or ‘widget’ -52 Application: promotional material diff --git a/support/codes/039.tsv b/support/codes/039.tsv deleted file mode 100644 index 741697d..0000000 --- a/support/codes/039.tsv +++ /dev/null @@ -1,8 +0,0 @@ -02 GIF -03 JPEG -04 PDF -05 TIF -06 RealAudio 28.8 -07 MP3 -08 MPEG-4 MPEG-4 video file -09 PNG Portable Network Graphics bitmapped image format (.png) diff --git a/support/codes/040.tsv b/support/codes/040.tsv deleted file mode 100644 index 4b343ca..0000000 --- a/support/codes/040.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 URL -02 DOI -03 PURL -04 URN -05 FTP address -06 filename diff --git a/support/codes/041.tsv b/support/codes/041.tsv deleted file mode 100644 index 85d9d09..0000000 --- a/support/codes/041.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 Winner -02 Runner-up Named as being in second place -03 Commended -04 Short-listed Nominated by the judging process to be one of the final 'short-list' from which the winner is selected -05 Long-listed Nominated by the judging process to be one of the preliminary 'long-list' from which first a short-list and then the winner is selected -06 Joint winner Or co-winner diff --git a/support/codes/042.tsv b/support/codes/042.tsv deleted file mode 100644 index d45c308..0000000 --- a/support/codes/042.tsv +++ /dev/null @@ -1,16 +0,0 @@ -01 Textual work A complete work which is published as a content item in a product which carries two or more such works, eg when two or three novels are published in a single omnibus volume -02 Front matter Text components such as Preface, Introduction etc which appear as preliminaries to the main body of text content in a product -03 Body matter Text components such as Part, Chapter, Section etc which appear as part of the main body of text content in a product -04 Back matter Text components such as Index which appear after the main body of text in a product -10 Serial item, miscellaneous or unspecified For journals -11 Research article For journals -12 Review article For journals -13 Letter For journals -14 Short communication For journals -15 Erratum For journals -16 Abstract For journals -17 Book review (or review of other publication) For journals -18 Editorial For journals -19 Product review For journals -20 Index -21 Obituary For journals diff --git a/support/codes/043.tsv b/support/codes/043.tsv deleted file mode 100644 index 4016bce..0000000 --- a/support/codes/043.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 Proprietary For example, a publisher’s own identifier -06 DOI -09 PII -10 SICI For serial items only diff --git a/support/codes/044.tsv b/support/codes/044.tsv deleted file mode 100644 index e87f906..0000000 --- a/support/codes/044.tsv +++ /dev/null @@ -1,13 +0,0 @@ -01 Proprietary -02 Proprietary DEPRECATED - use 01 -03 DNB publisher identifier Deutsche Nationalbibliothek publisher identifier -04 Börsenverein Verkehrsnummer -05 German ISBN Agency publisher identifier -06 GLN GS1 global location number (formerly EAN location number) -07 SAN Book trade Standard Address Number - US, UK etc -10 Centraal Boekhuis Relatie ID Trading party identifier used in the Netherlands -13 Fondscode Boekenbank Flemish publisher code -15 Y-tunnus Business Identity Code (Finland) -16 ISNI International Standard Name Identifier -17 DNB-PND Deutsche Nationalbibliothek Personennamendatei - person name code of the German national library -18 LCCN A control number assigned to a Library of Congress Name Authority record diff --git a/support/codes/045.tsv b/support/codes/045.tsv deleted file mode 100644 index e1f30d4..0000000 --- a/support/codes/045.tsv +++ /dev/null @@ -1,12 +0,0 @@ -01 Publisher -02 Co-publisher -03 Sponsor -04 Publisher of original-language version Of a translated work -05 Host/distributor of electronic content -06 Published for/on behalf of -07 Published in association with Use also for “Published in cooperation with” -08 Published on behalf of DEPRECATED: use code 06 -09 New or acquiring publisher When ownership of a product or title is transferred from one publisher to another -10 Publishing group The group to which a publisher (publishing role 01) belongs: use only if a publisher has been identified with role code 01 -11 Publisher of facsimile original The publisher of the edition of which a product is a facsimile -12 Repackager of prebound edition The repackager of a prebound edition that has been assigned its own identifier. (In the US, a 'prebound edition' is a book that was previously bound, normally as a paperback, and has been rebound with a library-quality hardcover binding by a supplier other than the original publisher.) Required when the is coded PRB. The original publisher should be named as the ‘publisher’. diff --git a/support/codes/046.tsv b/support/codes/046.tsv deleted file mode 100644 index 5a4d76e..0000000 --- a/support/codes/046.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 For sale with exclusive rights in the specified country/ies -02 For sale with non-exclusive rights in the specified country/ies -03 Not for sale in the specified country/ies diff --git a/support/codes/047.tsv b/support/codes/047.tsv deleted file mode 100644 index c588ad9..0000000 --- a/support/codes/047.tsv +++ /dev/null @@ -1,4 +0,0 @@ -000 World -001 World except territories specified elsewhere in rights statements -002 UK airports -003 UK 'open market' Use when an open market edition is published under its own ISBN diff --git a/support/codes/048.tsv b/support/codes/048.tsv deleted file mode 100644 index aa4f2b0..0000000 --- a/support/codes/048.tsv +++ /dev/null @@ -1,11 +0,0 @@ -01 Height For a book, the spine height when standing on a shelf. For a folded map, the height when folded. In general, the height of a product in the form in which it is presented or packaged for retail sale. -02 Width For a book, the horizontal dimension of the cover when standing upright. For a folded map, the width when folded. In general, the width of a product in the form in which it is presented or packaged for retail sale. -03 Thickness For a book, the thickness of the spine. For a folded map, the thickness when folded. In general, the thickness or depth of a product in the form in which it is presented or packaged for retail sale. -04 Page trim height Not recommended for general use -05 Page trim width Not recommended for general use -08 Unit weight -09 Diameter (sphere) Of a globe, for example -10 Unfolded/unrolled sheet height The height of a folded or rolled sheet map, poster etc when unfolded -11 Unfolded/unrolled sheet width The width of a folded or rolled sheet map, poster etc when unfolded -12 Diameter (tube or cylinder) The diameter of the cross-section of a tube or cylinder, usually carrying a rolled sheet product. Use 01 “height” for the height or length of the tube. -13 Rolled sheet package side measure The length of a side of the cross-section of a long triangular or square package, usually carrying a rolled sheet product. Use 01 “height” for the height or length of the package. diff --git a/support/codes/049.tsv b/support/codes/049.tsv deleted file mode 100644 index f62eb7f..0000000 --- a/support/codes/049.tsv +++ /dev/null @@ -1,84 +0,0 @@ -AU-CT Australian Capital Territory -AU-NS New South Wales -AU-NT Northern Territory -AU-QL Queensland -AU-SA South Australia -AU-TS Tasmania -AU-VI Victoria -AU-WA Western Australia -CA-AB Alberta -CA-BC British Columbia -CA-MB Manitoba -CA-NB New Brunswick -CA-NL Newfoundland and Labrador -CA-NS Nova Scotia -CA-NT Northwest Territories -CA-NU Nunavut -CA-ON Ontario -CA-PE Prince Edward Island -CA-QC Quebec -CA-SK Saskatchewan -CA-YT Yukon Territory -ES-CN Canary Islands -GB-AIR UK airside Airside outlets at UK international airports only -GB-APS UK airports All UK airports, including both airside and other outlets -GB-CHA Channel Islands -GB-ENG England -GB-EWS England, Wales, Scotland UK excluding Northern Ireland -GB-IOM Isle of Man -GB-NIR Northern Ireland -GB-SCT Scotland -GB-WLS Wales -US-AK  Alaska  -US-AL  Alabama  -US-AR  Arkansas  -US-AZ  Arizona  -US-CA  California  -US-CO  Colorado  -US-CT  Connecticut  -US-DC  District of Columbia  -US-DE  Delaware  -US-FL  Florida  -US-GA  Georgia  -US-HI  Hawaii  -US-IA  Iowa  -US-ID  Idaho  -US-IL  Illinois  -US-IN  Indiana  -US-KS  Kansas  -US-KY  Kentucky  -US-LA  Louisiana  -US-MA  Massachusetts  -US-MD  Maryland  -US-ME  Maine  -US-MI  Michigan  -US-MN  Minnesota  -US-MO  Missouri  -US-MS  Mississippi  -US-MT  Montana  -US-NC  North Carolina  -US-ND  North Dakota  -US-NE  Nebraska  -US-NH  New Hampshire  -US-NJ  New Jersey  -US-NM  New Mexico  -US-NV  Nevada  -US-NY  New York  -US-OH  Ohio  -US-OK  Oklahoma  -US-OR  Oregon  -US-PA  Pennsylvania  -US-RI  Rhode Island  -US-SC  South Carolina  -US-SD  South Dakota  -US-TN  Tennessee  -US-TX  Texas  -US-UT  Utah  -US-VA  Virginia  -US-VT  Vermont  -US-WA  Washington  -US-WI  Wisconsin  -US-WV  West Virginia  -US-WY  Wyoming  -ROW Rest of world World except as otherwise specified -WORLD World diff --git a/support/codes/050.tsv b/support/codes/050.tsv deleted file mode 100644 index 4a26f93..0000000 --- a/support/codes/050.tsv +++ /dev/null @@ -1,8 +0,0 @@ -cm Centimeters -gr Grams -in Inches (US) -kg Kilograms -lb Pounds (US) -mm Millimeters -oz Ounces (US) -px Pixels diff --git a/support/codes/051.tsv b/support/codes/051.tsv deleted file mode 100644 index 7289c51..0000000 --- a/support/codes/051.tsv +++ /dev/null @@ -1,27 +0,0 @@ -00 Unspecified X is related to Y in a way that cannot be specified by another code value -01 Includes X includes Y (where the product described in the ONIX record is X and the related product is Y) -02 Is part of X is part of Y – use for 'also available as part of' -03 Replaces X replaces, or is new edition of, Y -05 Replaced by X is replaced by, or has new edition, Y -06 Alternative format X is available in an alternative format as Y – indicates an alternative format of the same content which is or may be available. -07 Has ancillary product X has an ancillary or supplementary product Y -08 Is ancillary to X is ancillary or supplementary to Y -09 Is remaindered as X is remaindered as Y, when a remainder merchant assigns its own identifier to the product -10 Is remainder of X was originally sold as Y, indicating the publisher's original identifier for a title which is offered as a remainder under a different identifier -11 Is other-language version of X is an other-language version of Y -12 Publisher’s suggested alternative X has a publisher's suggested alternative Y, which does not, however, carry the same content (cf 05 and 06) -13 Epublication based on (print product) X is an epublication based on printed product Y -14 Epublication is distributed as X is an epublication 'rendered' as Y – use when the ONIX record describes a package of electronic content which is available in multiple 'renderings' -15 Epublication is a rendering of X is a 'rendering' of an epublication Y – use when the ONIX record describes a specific rendering of an epublication content package, to identify the package -16 POD replacement for X is a POD replacement for Y – Y is an out-of-print product replaced by a print-on-demand version under a new ISBN -17 Replaced by POD X is replaced by POD Y – Y is a print-on-demand replacement, under a new ISBN, for an out-of-print product X -18 Is special edition of X is a special edition of Y - used for a special edition (German: Sonderausgabe) with different cover, binding etc - more than ‘alternative format’ - which may be available in limited quantity and for a limited time -19 Has special edition X has a special edition Y - the reciprocal of code 18 -20 Is prebound edition of X is a prebound edition of Y (in the US, a prebound edition is ‘a book that was previously bound and has been rebound with a library quality hardcover binding. In almost all commercial cases, the book in question began as a paperback.’) -21 Is original of prebound edition X is the regular edition of which Y is a prebound edition -22 Product by same author X and Y have a common author -23 Similar product Y is another product that is suggested as similar to X (‘if you liked X, you may also like Y’) -24 Is facsimile of X is a facsimile edition of Y -25 Is original of facsimile X is the original edition from which a facsimile edition Y is taken -26 Is license for X is a license for digital product Y, traded or supplied separately -27 Electronic version available as Y is an electronic version of print product X (reciprocal of code 13) diff --git a/support/codes/052.tsv b/support/codes/052.tsv deleted file mode 100644 index 9fff5ab..0000000 --- a/support/codes/052.tsv +++ /dev/null @@ -1 +0,0 @@ -004 UK 'open market' When the same ISBN is used for open market and UK editions diff --git a/support/codes/053.tsv b/support/codes/053.tsv deleted file mode 100644 index d5c4748..0000000 --- a/support/codes/053.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 French book trade returns conditions code Maintained by CLIL (Commission Interprofessionnel du Livre) -02 BISAC Returnable Indicator code Maintained by BISAC: see List 66 -03 UK book trade returns conditions code NOT CURRENTLY USED - BIC has decided that it will not maintain a code list for this purpose, since returns conditions are usually at least partly based on the trading relationship diff --git a/support/codes/054.tsv b/support/codes/054.tsv deleted file mode 100644 index 66871f9..0000000 --- a/support/codes/054.tsv +++ /dev/null @@ -1,23 +0,0 @@ -AB Cancelled Publication abandoned after having been announced -AD Available direct from publisher only Apply direct to publisher, item not available to trade -CS Availability uncertain Check with customer service -EX No longer stocked by us Wholesaler or vendor only -IP Available In-print and in stock -MD Manufactured on demand May be accompanied by an estimated average time to supply -NP Not yet published MUST be accompanied by an expected availability date -NY Newly catalogued, not yet in stock Wholesaler or vendor only: MUST be accompanied by expected availability date -OF Other format available This format is out of print, but another format is available: should be accompanied by an identifier for the alternative product -OI Out of stock indefinitely No current plan to reprint -OP Out of print Discontinued, deleted from catalogue -OR Replaced by new edition This edition is out of print, but a new edition has been or will soon be published: should be accompanied by an identifier for the new edition -PP Publication postponed indefinitely Publication has been announced, and subsequently postponed with no new date -RF Refer to another supplier Supply of this item has been transferred to another publisher or distributor: should be accompanied by an identifier for the new supplier -RM Remaindered -RP Reprinting MUST be accompanied by an expected availability date -RU Reprinting, undated Use instead of RP as a last resort, only if it is really impossible to give an expected availability date -TO Special order This item is not stocked but has to be specially ordered from a supplier (eg import item not stocked locally): may be accompanied by an estimated average time to supply -TP Temporarily out of stock because publisher cannot supply Wholesaler or vendor only -TU Temporarily unavailable MUST be accompanied by an expected availability date -UR Unavailable, awaiting reissue The item is out of stock but will be reissued under the same ISBN: MUST be accompanied by an expected availability date and by the reissue date in the composite. See notes on the composite for details on treatment of availability status during reissue. -WR Will be remaindered as of (date) MUST be accompanied by the remainder date -WS Withdrawn from sale Typically, withdrawn indefinitely for legal reasons diff --git a/support/codes/055.tsv b/support/codes/055.tsv deleted file mode 100644 index 9e4ef5c..0000000 --- a/support/codes/055.tsv +++ /dev/null @@ -1,13 +0,0 @@ -00 YYYYMMDD Year month day (default) -01 YYYYMM Year and month -02 YYYYWW Year and week number -03 YYYYQ Year and quarter (Q = 1, 2, 3, 4) -04 YYYYS Year and season (S = 1, 2, 3, 4, with 1 = “Spring”) -05 YYYY Year -06 YYYYMMDDYYYYMMDD Spread of exact dates -07 YYYYMMYYYYMM Spread of months -08 YYYYWWYYYYWW Spread of week numbers -09 YYYYQYYYYQ Spread of quarters -10 YYYYSYYYYS Spread of seasons -11 YYYYYYYY Spread of years -12 Text string For complex, approximate or uncertain dates diff --git a/support/codes/056.tsv b/support/codes/056.tsv deleted file mode 100644 index 28d7e44..0000000 --- a/support/codes/056.tsv +++ /dev/null @@ -1,2 +0,0 @@ -R Restrictions apply, see note -X Indiziert Indexed for the German market - in Deutschland indiziert diff --git a/support/codes/057.tsv b/support/codes/057.tsv deleted file mode 100644 index 8c0558e..0000000 --- a/support/codes/057.tsv +++ /dev/null @@ -1,5 +0,0 @@ -01 Free of charge -02 Price to be announced -03 Not sold separately -04 Contact supplier May be used for books that do not carry a recommended retail price, when an ONIX file is “broadcast” rather than sent one-to-one to a single trading partner; or for digital products offered on subscription or with pricing which is too complex to specify in ONIX -05 Not sold as set When a collection that is not sold as a set nevertheless has its own ONIX record diff --git a/support/codes/058.tsv b/support/codes/058.tsv deleted file mode 100644 index 4eb4bf6..0000000 --- a/support/codes/058.tsv +++ /dev/null @@ -1,21 +0,0 @@ -01 RRP excluding tax RRP excluding any sales tax or value-added tax -02 RRP including tax RRP including sales or value-added tax if applicable -03 Fixed retail price excluding tax In countries where retail price maintenance applies by law to certain products: not used in USA -04 Fixed retail price including tax In countries where retail price maintenance applies by law to certain products: not used in USA -05 Supplier’s net price excluding tax Unit price charged by supplier to reseller excluding any sales tax or value-added tax: goods for retail sale -06 Supplier’s net price excluding tax: rental goods Unit price charged by supplier to reseller / rental outlet, excluding any sales tax or value-added tax: goods for rental (used for video and DVD) -07 Supplier’s net price including tax Unit price charged by supplier to reseller including any sales tax or value-added tax if applicable: goods for retail sale -08 Supplier’s alternative net price excluding tax Unit price charged by supplier to a specified class of reseller excluding any sales tax or value-added tax: goods for retail sale (this value is for use only in countries, eg Finland, where trade practice requires two different net prices to be listed for different classes of resellers, and where national guidelines specify how the code should be used) -09 Supplier’s alternative net price including tax Unit price charged by supplier to a specified class of reseller including any sales tax or value-added tax: goods for retail sale (this value is for use only in countries, eg Finland, where trade practice requires two different net prices to be listed for different classes of resellers, and where national guidelines specify how the code should be used) -11 Special sale RRP excluding tax Special sale RRP excluding any sales tax or value-added tax -12 Special sale RRP including tax Special sale RRP including sales or value-added tax if applicable -13 Special sale fixed retail price excluding tax In countries where retail price maintenance applies by law to certain products: not used in USA -14 Special sale fixed retail price including tax In countries where retail price maintenance applies by law to certain products: not used in USA -15 Supplier’s net price for special sale excluding tax Unit price charged by supplier to reseller for special sale excluding any sales tax or value-added tax -21 Pre-publication RRP excluding tax Pre-publication RRP excluding any sales tax or value-added tax -22 Pre-publication RRP including tax Pre-publication RRP including sales or value-added tax if applicable -23 Pre-publication fixed retail price excluding tax In countries where retail price maintenance applies by law to certain products: not used in USA -24 Pre-publication fixed retail price including tax In countries where retail price maintenance applies by law to certain products: not used in USA -25 Supplier’s pre-publication net price excluding tax Unit price charged by supplier to reseller pre-publication excluding any sales tax or value-added tax -31 Freight-pass-through RRP excluding tax In the US, books are sometimes supplied on 'freight-pass-through' terms, where a price that is different from the RRP is used as the basis for calculating the supplier’s charge to a reseller. To make it clear when such terms are being invoked, code 31 is used instead of code 01 to indicate the RRP. Code 32 is used for the 'billing price'. -32 Freight-pass-through billing price excluding tax When freight-pass-through terms apply, the price on which the supplier’s charge to a reseller is calculated, ie the price to which trade discount terms are applied. See also code 31. diff --git a/support/codes/059.tsv b/support/codes/059.tsv deleted file mode 100644 index 7118af1..0000000 --- a/support/codes/059.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 Member/subscriber price Price applies to a designated group membership -02 Export price Price applies to sales outside the territory in which the supplier is located -03 Reduced price applicable when the item is purchased as part of a set Use in cases where there is no combined set price, but a lower price is offered for each part if the whole set is purchased -04 Voucher price In the Netherlands (or any other market where similar arrangements exist): a reduced fixed price available for a limited time on presentation of a voucher published in a specified medium, eg a newspaper. Should be accompanied by 13 and additional detail in , and by validity dates in and . diff --git a/support/codes/060.tsv b/support/codes/060.tsv deleted file mode 100644 index c804d83..0000000 --- a/support/codes/060.tsv +++ /dev/null @@ -1,2 +0,0 @@ -00 Per copy of whole product Default -01 Per page for printed loose-leaf content only diff --git a/support/codes/061.tsv b/support/codes/061.tsv deleted file mode 100644 index da9226b..0000000 --- a/support/codes/061.tsv +++ /dev/null @@ -1,3 +0,0 @@ -00 Unspecified Default -01 Provisional -02 Firm diff --git a/support/codes/062.tsv b/support/codes/062.tsv deleted file mode 100644 index 713e8a6..0000000 --- a/support/codes/062.tsv +++ /dev/null @@ -1,5 +0,0 @@ -H Higher rate Specifies that tax is applied at a higher rate than standard -P Tax paid at source (Italy) Under Italian tax rules, VAT on books may be paid at source by the publisher, and subsequent transactions through the supply chain are tax-exempt. -R Lower rate Specifies that tax is applied at a lower rate than standard -S Standard rate -Z Zero-rated diff --git a/support/codes/063.tsv b/support/codes/063.tsv deleted file mode 100644 index e69de29..0000000 diff --git a/support/codes/064.tsv b/support/codes/064.tsv deleted file mode 100644 index 017dbfb..0000000 --- a/support/codes/064.tsv +++ /dev/null @@ -1,13 +0,0 @@ -00 Unspecified Status is not specified (as distinct from unknown): the default if the element is not sent. Also to be used in applications where the element is considered mandatory, but the sender of the ONIX message chooses not to pass on status information. -01 Cancelled The product was announced, and subsequently abandoned; the element must not be sent. -02 Forthcoming Not yet published, must be accompanied by expected date in . -03 Postponed indefinitely The product was announced, and subsequently postponed with no expected publication date; the element must not be sent. -04 Active The product was published, and is still active in the sense that the publisher will accept orders for it, though it may or may not be immediately available, for which see . -05 No longer our product Ownership of the product has been transferred to another publisher (with details of acquiring publisher if possible in PR.19 (ONIX 2.1) OR P.19 (ONIX 3.0)). -06 Out of stock indefinitely The product was active, but is now inactive in the sense that (a) the publisher cannot fulfil orders for it, though stock may still be available elsewhere in the supply chain, and (b) there are no current plans to bring it back into stock. Use this code for ‘reprint under consideration’. Code 06 does not specifically imply that returns are or are not still accepted. -07 Out of print The product was active, but is now permanently inactive in the sense that (a) the publisher will not accept orders for it, though stock may still be available elsewhere in the supply chain, and (b) the product will not be made available again under the same ISBN. Code 07 normally implies that the publisher will not accept returns beyond a specified date. -08 Inactive The product was active, but is now permanently or indefinitely inactive in the sense that the publisher will not accept orders for it, though stock may still be available elsewhere in the supply chain. Code 08 covers both of codes 06 and 07, and may be used where the distinction between those values is either unnecessary or meaningless. -09 Unknown The sender of the ONIX record does not know the current publishing status. -10 Remaindered The product is no longer available from the current publisher, under the current ISBN, at the current price. It may be available to be traded through another channel. A Publishing Status code 10 'Remaindered' usually but not always means that the publisher has decided to sell off excess inventory of the book. Copies of books that are remaindered are often made available in the supply chain at a reduced price. However, such remainders are often sold under a product identifier that differs from the ISBN on the full-priced copy of the book. A Publishing Status code 10 'Remaindered' on a given product record may or may not be followed by a Publishing Status code 06 'Out of Stock Indefinitely' or 07 'Out of Print': the practise varies from one publisher to another. Some publishers may revert to a Publishing Status code 04 “Active” if a desired inventory level on the product in question has subsequently been reached. No change in rights should ever be inferred from this (or any other) Publishing Status code value. -11 Withdrawn from sale Withdrawn, typically for legal reasons or to avoid giving offence -12 Recalled Recalled for reasons of consumer safety diff --git a/support/codes/065.tsv b/support/codes/065.tsv deleted file mode 100644 index c4e2bfc..0000000 --- a/support/codes/065.tsv +++ /dev/null @@ -1,25 +0,0 @@ -01 Cancelled Cancelled: product was announced, and subsequently abandoned -10 Not yet available Not yet available (requires , except in exceptional circumstances where no date is known) -11 Awaiting stock Not yet available, but will be a stock item when available (requires , except in exceptional circumstances where no date is known). Used particularly for imports which have been published in the country of origin but have not yet arrived in the importing country. -12 Not yet available, will be POD Not yet available, to be published as print-on-demand only. May apply either to a POD successor to an existing conventional edition, when the successor will be published under a different ISBN (normally because different trade terms apply); or to a title that is being published as a POD original. -20 Available Available from us (form of availability unspecified) -21 In stock Available from us as a stock item -22 To order Available from us as a non-stock item, by special order -23 POD Available from us by print-on-demand -30 Temporarily unavailable Temporarily unavailable: temporarily unavailable from us (reason unspecified) (requires , except in exceptional circumstances where no date is known) -31 Out of stock Stock item, temporarily out of stock (requires , except in exceptional circumstances where no date is known) -32 Reprinting Temporarily unavailable, reprinting (requires , except in exceptional circumstances where no date is known) -33 Awaiting reissue Temporarily unavailable, awaiting reissue (requires the composite, and , except in exceptional circumstances where no date is known) -40 Not available Not available from us (reason unspecified; if the reason is rights-related, it should be specified in PR.21 (ONIX 2.1) OR P.21 (ONIX 3.0)) -41 Replaced by new product This product is unavailable, but a successor product or edition is or will be available from us (identify successor in ) -42 Other format available This product is unavailable, but the same content is or will be available from us in an alternative format (identify other format product in ) -43 No longer supplied by us Identify new supplier in if possible -44 Apply direct Not available to trade, apply direct to publisher -45 Not sold separately Must be bought as part of a set (identify set in ) -46 Withdrawn from sale May be for legal reasons or to avoid giving offence -47 Remaindered Remaindered -48 Out of print, replaced by POD Out of print, but a print-on-demand edition is or will be available under a different ISBN. Use only when the POD successor has a different ISBN, normally because different trade terms apply. -49 Recalled Recalled for reasons of consumer safety -50 Not sold as set When a collection that is not sold as a set nevertheless has its own ONIX record -98 No longer receiving updates Publisher/supplier is no longer providing updates to sender -99 Contact supplier Availability not known to sender diff --git a/support/codes/066.tsv b/support/codes/066.tsv deleted file mode 100644 index 37b9066..0000000 --- a/support/codes/066.tsv +++ /dev/null @@ -1,4 +0,0 @@ -Y Yes, returnable, full copies only -N No, not returnable -C Conditional Contact publisher for requirements and/or authorization -S Yes, returnable, stripped cover diff --git a/support/codes/067.tsv b/support/codes/067.tsv deleted file mode 100644 index f78251f..0000000 --- a/support/codes/067.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Publication date The nominal date of publication in this market. If there is a strict embargo on retail sales before the expected date, it should be specified separately as an embargo date. -08 Embargo date If there is an embargo on retail sales in this market before a certain date, the date from which the embargo is lifted and retail sales are permitted diff --git a/support/codes/068.tsv b/support/codes/068.tsv deleted file mode 100644 index a5f8273..0000000 --- a/support/codes/068.tsv +++ /dev/null @@ -1,15 +0,0 @@ -00 Unspecified Status is not specified (as distinct from unknown): the default if the element is not sent. -01 Cancelled The product was announced for publication in this market, and subsequently abandoned. -02 Forthcoming Not yet published in this market, should be accompanied by expected local publication date.. -03 Postponed indefinitely The product was announced for publication in this market, and subsequently postponed with no expected local publication date. -04 Active The product was published in this market, and is still active in the sense that the publisher will accept orders for it, though it may or may not be immediately available, for which see . -05 No longer our product Responsibility for the product in this market has been transferred elsewhere. -06 Out of stock indefinitely The product was active, but is now inactive in the sense that (a) no further stock is expected to be made available in this market, though stock may still be available elsewhere in the supply chain, and (b) there are no current plans to bring it back into stock. -07 Out of print The product was active, but is now permanently inactive in the sense that (a) no further stock is expected to be made available in this market, though stock may still be available elsewhere in the supply chain, and (b) the product will not be made available again under the same ISBN. -08 Inactive The product was active, but is now permanently or indefinitely inactive in the sense that no further stock is expected to be made available in this market, though stock may still be available elsewhere in the supply chain. Code 08 covers both of codes 06 and 07, and may be used where the distinction between those values is either unnecessary or meaningless. -09 Unknown The sender of the ONIX record does not know the current publishing status in this market. -10 Remaindered The product is no longer available in this market from the local publisher, under the current ISBN, at the current price. It may be available to be traded through another channel, usually at a reduced price. -11 Withdrawn from sale Withdrawn from sale in this market, typically for legal reasons -12 Not available in this market Either no rights are held for the product in this market, or for other reasons the publisher has decided not to make it available in this market -13 Active, but not sold separately The product is published in this market and active but, as a publishing decision, it is not sold separately – only in an assembly or as part of a package -14 Active, with market restrictions The product is published in this market and active, but is not available to all customer types, typically because the market is split between exclusive sales agents for different market segments. In ONIX 2.1, should be accompanied by a free-text statement in describing the nature of the restriction. In ONIX 3.0, the composite in Group P.24 should be used. diff --git a/support/codes/069.tsv b/support/codes/069.tsv deleted file mode 100644 index 5886d8e..0000000 --- a/support/codes/069.tsv +++ /dev/null @@ -1,4 +0,0 @@ -05 Exclusive sales agent Publisher's exclusive sales agent in a specified territory -06 Non-exclusive sales agent Publisher's non-exclusive sales agent in a specified territory -07 Local publisher Publisher for a specified territory -08 Sales agent Publisher's sales agent in a specific territory. Use only where exclusive / non-exclusive status is not known. Prefer 05 or 06 as appropriate, where possible. diff --git a/support/codes/070.tsv b/support/codes/070.tsv deleted file mode 100644 index 30bd5b6..0000000 --- a/support/codes/070.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Proprietary -02 APA stock quantity code Code scheme defined by the Australian Publishers Association diff --git a/support/codes/071.tsv b/support/codes/071.tsv deleted file mode 100644 index 0d4e83e..0000000 --- a/support/codes/071.tsv +++ /dev/null @@ -1,9 +0,0 @@ -00 Unspecified - see text Restriction must be described in -01 Retailer exclusive / own brand For sale only through designated retailer. Retailer must be named in . Use only when it is not possible to assign the more explicit code 04 or 05. -02 Office supplies edition For editions sold only though office supplies wholesalers. Retailer(s) and/or distributor(s) may be named in -03 Internal publisher use only: do not list For an ISBN that is assigned for a publisher's internal purposes -04 Retailer exclusive For sale only through designated retailer, though not under retailer's own brand/imprint. Retailer must be named in . -05 Retailer own brand For sale only through designated retailer under retailer's own brand/imprint. Retailer must be named in . -06 Library edition For sale to libraries only; not for sale through retail trade -07 Schools only edition For sale directly to schools only; not for sale through retail trade -08 Indiziert Indexed for the German market - in Deutschland indiziert diff --git a/support/codes/072.tsv b/support/codes/072.tsv deleted file mode 100644 index ca0df58..0000000 --- a/support/codes/072.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Habilitationsschrift Professorial dissertation (thesis for postdoctoral lecturing qualification) -02 Dissertationsschrift Doctoral thesis -03 Staatsexamensarbeit State examination thesis -04 Magisterarbeit Magisters degree thesis -05 Diplomarbeit Diploma degree thesis -06 Bachelorarbeit Bachelors degree thesis -07 Masterarbeit Masters degree thesis diff --git a/support/codes/073.tsv b/support/codes/073.tsv deleted file mode 100644 index cec9029..0000000 --- a/support/codes/073.tsv +++ /dev/null @@ -1,36 +0,0 @@ -00 Unspecified, see website description -01 Publisher’s corporate website See also codes 17 and 18 -02 Publisher’s website for a specified work A publisher’s informative and/or promotional webpage relating to a specified work (book, journal, online resource or other publication type) -03 Online hosting service home page A webpage giving access to an online content hosting service as a whole -04 Journal home page A webpage giving general information about a serial, in print or electronic format or both. -05 Online journal 'available contents' page A webpage giving direct access to the content that is available online for a specified serial version. -06 Contributor’s own website A webpage maintained by an author or other contributor about her/his publications and personal background -07 Publisher’s website relating to specified contributor A publisher’s webpage devoted to a specific author or other contributor -08 Other publisher’s website relating to specified contributor A webpage devoted to a specific author or other contributor, and maintained by a publisher other than the publisher of the item described in the ONIX record -09 Third-party website relating to specified contributor A webpage devoted to a specific author or other contributor, and maintained by a third party (eg a fan site) -10 Contributor’s own website for specified work A webpage maintained by an author or other contributor and specific to an individual work -11 Other publisher’s website relating to specified work A webpage devoted to an individual work, and maintained by a publisher other than the publisher of the item described in the ONIX record -12 Third-party website relating to specified work A webpage devoted to an individual work, and maintained by a third party (eg a fan site) -13 Contributor’s own website for group or series of works A webpage maintained by an author or other contributor and specific to a group or series of works -14 Publisher’s website relating to group or series of works A publisher’s webpage devoted to a group or series of works -15 Other publisher’s website relating to group or series of works A webpage devoted to a group or series of works, and maintained by a publisher other than the publisher of the item described in the ONIX record -16 Third-party website relating to group or series of works (eg a fan site) A webpage devoted to a group or series of works, and maintained by a third party (eg a fan site) -17 Publisher’s B2B website Use instead of code 01 to specify a publisher’s website for trade users -18 Publisher’s B2C website Use instead of code 01 to specify a publisher’s website for consumers -23 Author blog -24 Web page for author presentation / commentary -25 Web page for author interview -26 Web page for author reading -27 Web page for cover material -28 Web page for sample content -29 Web page for full content -30 Web page for other commentary / discussion -31 Transfer-URL URL needed by the German National Library for direct access, harvesting and storage of an electronic resource. -32 DOI Website Link Link needed by German Books in Print (VLB) for DOI registration and ONIX DOI conversion. -33 Supplier’s corporate website A corporate website operated by a distributor or other supplier (not the publisher) -34 Supplier’s B2B website A website operated by a distributor or other supplier (not the publisher) and aimed at trade customers -35 Supplier’s B2C website A website operated by a distributor or other supplier (not the publisher) and aimed at consumers -36 Supplier’s website for a specified work A distributor or supplier’s webpage describing a specified work -37 Supplier’s B2B website for a specified work A distributor or supplier’s webpage describing a specified work, and aimed at trade customers -38 Supplier’s B2C website for a specified work A distributor or supplier’s webpage describing a specified work, and aimed at consumers -39 Supplier’s website for a group or series of works A distributor or supplier’s webpage describing a group or series of works diff --git a/support/codes/074.tsv b/support/codes/074.tsv deleted file mode 100644 index c972d0d..0000000 --- a/support/codes/074.tsv +++ /dev/null @@ -1,489 +0,0 @@ -aar Afar -abk Abkhaz -ace Achinese -ach Acoli -ada Adangme -ady Adygei -afa Afroasiatic languages -afh Afrihili (Artificial language) -afr Afrikaans -ain Ainu -aka Akan -akk Akkadian -alb Albanian -ale Aleut -alg Algonquian languages -alt Southern Altai -amh Amharic -ang English, Old (ca. 450-1100) -anp Angika -apa Apache languages -ara Arabic -arc Official Aramaic; Imperial Aramaic (700-300 BCE) -arg Aragonese Spanish -arm Armenian -arn Mapudungun; Mapuche -arp Arapaho -art Artificial languages -arw Arawak -asm Assamese -ast Asturian; Bable; Leonese; Asturleonese -ath Athapascan languages -aus Australian languages -ava Avaric -ave Avestan -awa Awadhi -aym Aymara -aze Azerbaijani -bad Banda languages -bai Bamileke languages -bak Bashkir -bal Baluchi -bam Bambara -ban Balinese -baq Basque -bas Basa -bat Baltic languages -bej Beja; Bedawiyet -bel Belarusian -bem Bemba -ben Bengali -ber Berber languages -bho Bhojpuri -bih Bihari -bik Bikol -bin Bini; Edo -bis Bislama -bla Siksika -bnt Bantu languages -bos Bosnian -bra Braj -bre Breton -btk Batak languages -bua Buriat -bug Bugis -bul Bulgarian -bur Burmese -byn Blin; Bilin -cad Caddo -cai Central American Indian languages -car Galibi Carib -cat Catalan -cau Caucasian languages -ceb Cebuano -cel Celtic languages -cha Chamorro -chb Chibcha -che Chechen -chg Chagatai -chi Chinese -chk Truk -chm Mari -chn Chinook jargon -cho Choctaw -chp Chipewyan; Dene Suline -chr Cherokee -chu Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic -chv Chuvash -chy Cheyenne -cmc Chamic languages -cop Coptic -cor Cornish -cos Corsican -cpe Creoles and pidgins, English-based -cpf Creoles and pidgins, French-based -cpp Creoles and pidgins, Portuguese-based -cre Cree -crh Crimean Turkish; Crimean Tatar -crp Creoles and pidgins -csb Kashubian -cus Cushitic languages -cze Czech -dak Dakota -dan Danish -dar Dargwa -day Land Dayak languages -del Delaware -den Slave -dgr Dogrib -din Dinka -div Divehi; Dhivehi; Maldivian -doi Dogri -dra Dravidian languages -dsb Lower Sorbian -dua Duala -dum Dutch, Middle (ca. 1050-1350) -dut Dutch; Flemish -dyu Dyula -dzo Dzongkha -efi Efik -egy Egyptian -eka Ekajuk -elx Elamite -eng English -enm English, Middle (1100-1500) -epo Esperanto -est Estonian -ewe Ewe -ewo Ewondo -fan Fang -fao Faroese -fat Fanti -fij Fijian -fil Filipino; Pilipino -fin Finnish -fiu Finno-Ugrian languages -fon Fon -fre French -frm French, Middle (ca. 1400-1600) -fro French, Old (ca. 842-1400) -frr Northern Frisian -frs Eastern Frisian -fry Western Frisian -ful Fula -fur Friulian -gaa Gã -gay Gayo -gba Gbaya -gem Germanic languages -geo Georgian -ger German -gez Ethiopic -gil Gilbertese -gla Scottish Gaelic -gle Irish -glg Galician -glv Manx -gmh German, Middle High (ca. 1050-1500) -goh German, Old High (ca. 750-1050) -gon Gondi -gor Gorontalo -got Gothic -grb Grebo -grc Greek, Ancient (to 1453) -gre Greek, Modern (1453-) -grn Guarani -gsw Swiss German; Alemannic -guj Gujarati -gwi Gwich'in -hai Haida -hat Haitian French Creole -hau Hausa -haw Hawaiian -heb Hebrew -her Herero -hil Hiligaynon -him Himachali -hin Hindi -hit Hittite -hmn Hmong -hmo Hiri Motu -hrv Croatian -hsb Upper Sorbian -hun Hungarian -hup Hupa -iba Iban -ibo Igbo -ice Icelandic -ido Ido -iii Sichuan Yi; Nuosu -ijo Ijo languages -iku Inuktitut -ile Interlingue; Occidental -ilo Iloko -ina Interlingua (International Auxiliary Language Association) -inc Indic languages -ind Indonesian -ine Indo-European languages -inh Ingush -ipk Inupiaq -ira Iranian languages -iro Iroquoian languages -ita Italian -jav Javanese -jbo Lojban -jpn Japanese -jpr Judeo-Persian -jrb Judeo-Arabic -kaa Kara-Kalpak -kab Kabyle -kac Kachin; Jingpho -kal Kalâtdlisut -kam Kamba -kan Kannada -kar Karen languages -kas Kashmiri -kau Kanuri -kaw Kawi -kaz Kazakh -kbd Kabardian -kha Khasi -khi Khoisan languages -khm Central Khmer -kho Khotanese; Sakan -kik Kikuyu; Gikuyu -kin Kinyarwanda -kir Kirghiz; Kyrgyz -kmb Kimbundu -kok Konkani -kom Komi -kon Kongo -kor Korean -kos Kusaie -kpe Kpelle -krc Karachay-Balkar -krl Karelian -kro Kru languages -kru Kurukh -kua Kuanyama -kum Kumyk -kur Kurdish -kut Kutenai -lad Ladino -lah Lahnda -lam Lamba -lao Lao -lat Latin -lav Latvian -lez Lezgian -lim Limburgish -lin Lingala -lit Lithuanian -lol Mongo-Nkundu -loz Lozi -ltz Luxembourgish; Letzeburgesch -lua Luba-Lulua -lub Luba-Katanga -lug Ganda -lui Luiseño -lun Lunda -luo Luo (Kenya and Tanzania) -lus Lushai -mac Macedonian -mad Madurese -mag Magahi -mah Marshall -mai Maithili -mak Makasar -mal Malayalam -man Mandingo -mao Maori -map Austronesian languages -mar Marathi -mas Masai -may Malay -mdf Moksha -mdr Mandar -men Mende -mga Irish, Middle (ca. 1100-1550) -mic Mi'kmaq; Micmac -min Minangkabau -mis Uncoded languages -mkh Mon-Khmer languages -mlg Malagasy -mlt Maltese -mnc Manchu -mni Manipuri -mno Manobo languages -moh Mohawk -mol Moldavian; Moldovan DEPRECATED - use rum -mon Mongolian -mos Mooré -mul Multiple languages -mun Munda languages -mus Creek -mwl Mirandese -mwr Marwari -myn Mayan languages -myv Erzya -nah Nahuatl languages -nai North American Indian languages -nap Neapolitan -nau Nauru -nav Navajo -nbl Ndebele, South -nde Ndebele, North -ndo Ndonga -nds Low German; Low Saxon -nep Nepali -new Newari -nia Nias -nic Niger-Kordofanian languages -niu Niuean -nno Norwegian Nynorsk -nob Norwegian Bokmål -nog Nogai -non Old Norse -nor Norwegian -nqo N'Ko -nso Pedi; Sepedi; Northern Sotho -nub Nubian languages -nwc Classical Newari; Old Newari; Classical Nepal Bhasa -nya Chichewa; Chewa; Nyanja -nym Nyamwezi -nyn Nyankole -nyo Nyoro -nzi Nzima -oci Occitan (post 1500) -oji Ojibwa -ori Oriya -orm Oromo -osa Osage -oss Ossetian; Ossetic -ota Turkish, Ottoman -oto Otomian languages -paa Papuan languages -pag Pangasinan -pal Pahlavi -pam Pampanga; Kapampangan -pan Panjabi -pap Papiamento -pau Palauan -peo Old Persian (ca. 600-400 B.C.) -per Persian -phi Philippine languages -phn Phoenician -pli Pali -pol Polish -pon Ponape -por Portuguese -pra Prakrit languages -pro Provençal (to 1500);Occitan, Old (to 1500) -pus Pushto; Pashto -qar Aranés ONIX local code -qav Valencian ONIX local code -que Quechua -raj Rajasthani -rap Rapanui -rar Rarotongan; Cook Islands Maori -roa Romance languages -roh Romansh -rom Romany -rum Romanian -run Rundi -rup Aromanian; Arumanian; Macedo-Romanian -rus Russian -sad Sandawe -sag Sango -sah Yakut -sai South American Indian languages -sal Salishan languages -sam Samaritan Aramaic -san Sanskrit -sas Sasak -sat Santali -scc Serbian DEPRECATED - use srp -scn Sicilian -sco Scots -scr Croatian DEPRECATED - use hrv -sel Selkup -sem Semitic languages -sga Irish, Old (to 1100) -sgn Sign languages -shn Shan -sid Sidamo -sin Sinhala; Sinhalese -sio Siouan languages -sit Sino-Tibetan languages -sla Slavic languages -slo Slovak -slv Slovenian -sma Southern Sami -sme Northern Sami -smi Sami languages -smj Lule Sami -smn Inari Sami -smo Samoan -sms Skolt Sami -sna Shona -snd Sindhi -snk Soninke -sog Sogdian -som Somali -son Songhai languages -sot Sotho aka Sesotho -spa Spanish -srd Sardinian -srn Sranan Tongo -srp Serbian -srr Serer -ssa Nilo-Saharan languages -ssw Swazi aka Swati, siSwati -suk Sukuma -sun Sundanese -sus Susu -sux Sumerian -swa Swahili -swe Swedish -syc Classical Syriac -syr Syriac -tah Tahitian -tai Tai languages -tam Tamil -tat Tatar -tel Telugu -tem Temne -ter Terena -tet Tetum -tgk Tajik -tgl Tagalog -tha Thai -tib Tibetan -tig Tigré -tir Tigrinya -tiv Tiv -tkl Tokelauan -tlh Klingon; tlhIngan-Hol -tli Tlingit -tmh Tamashek -tog Tonga (Nyasa) -ton Tongan -tpi Tok Pisin -tsi Tsimshian -tsn Tswana aka Setswana -tso Tsonga -tuk Turkmen -tum Tumbuka -tup Tupi languages -tur Turkish -tut Altaic languages -tvl Tuvaluan -twi Twi -tyv Tuvinian -udm Udmurt -uga Ugaritic -uig Uighur; Uyghur -ukr Ukrainian -umb Umbundu -und Undetermined -urd Urdu -uzb Uzbek -vai Vai -ven Venda -vie Vietnamese -vol Volapük -vot Votic -wak Wakashan languages -wal Wolaitta; Wolaytta -war Waray -was Washo -wel Welsh -wen Sorbian languages -wln Walloon -wol Wolof -xal Kalmyk -xho Xhosa -yao Yao -yap Yapese -yid Yiddish -yor Yoruba -ypk Yupik languages -zap Zapotec -zbl Blissymbols; Blissymbolics; Bliss -zen Zenaga -zha Zhuang; Chuang -znd Zande languages -zul Zulu -zun Zuni -zxx No linguistic content -zza Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki diff --git a/support/codes/075.tsv b/support/codes/075.tsv deleted file mode 100644 index 25aa3f7..0000000 --- a/support/codes/075.tsv +++ /dev/null @@ -1,2 +0,0 @@ -007 Date of birth -008 Date of death diff --git a/support/codes/076.tsv b/support/codes/076.tsv deleted file mode 100644 index 9937678..0000000 --- a/support/codes/076.tsv +++ /dev/null @@ -1,12 +0,0 @@ -0 All regions DVD or Blu-Ray -1 DVD region 1 US, US Territories, Canada -2 DVD region 2 Japan, Europe, South Africa and Middle East (including Egypt) -3 DVD region 3 Southeast Asia, Hong Kong, Macau, South Korea, and Taiwan -4 DVD region 4 Australia, New Zealand, Pacific Islands, Central America, Mexico, South America and the Caribbean -5 DVD region 5 Eastern Europe (former Soviet Union), Indian subcontinent, Africa, North Korea and Mongolia -6 DVD region 6 People's Republic of China (except Macau and Hong Kong) -7 DVD region 7 Reserved for future use -8 DVD region 8 International venues: aircraft, cruise ships etc -A Blu-Ray region A North America, Central America, South America, Japan, Taiwan, North Korea, South Korea, Hong Kong, and Southeast Asia. -B Blu-Ray region B Most of Europe, Greenland, French territories, Middle East, Africa, Australia, and New Zealand, plus all of Oceania. -C Blu-Ray region C India, Bangladesh, Nepal, Mainland China, Pakistan, Russia, Ukraine, Belarus, Central, and South Asia. diff --git a/support/codes/077.tsv b/support/codes/077.tsv deleted file mode 100644 index 0248e06..0000000 --- a/support/codes/077.tsv +++ /dev/null @@ -1,19 +0,0 @@ -P Preschool Age typically 0-4 years -K Kindergarten Age typically 5 years -1 First Grade Age typically 6 years -2 Second Grade Age typically 7 years -3 Third Grade Age typically 8 years -4 Fourth Grade Age typically 9 years -5 Fifth Grade Age typically 10 years -6 Sixth Grade Age typically 11 years -7 Seventh Grade Age typically 12 years -8 Eighth Grade Age typically 13 years -9 Ninth Grade High School Freshman - age typically 14 years -10 Tenth Grade High School Sophomore - age typically 15 years -11 Eleventh Grade High School Junior - age typically 16 years -12 Twelfth Grade High School Senior - age typically 17 years -13 College Freshman Age typically 18 years -14 College Sophomore Age typically 19 years -15 College Junior Age typically 20 years -16 College Senior Age typically 21 years -17 College Graduate Student Age typically 22+ years diff --git a/support/codes/078.tsv b/support/codes/078.tsv deleted file mode 100644 index 78fd6e0..0000000 --- a/support/codes/078.tsv +++ /dev/null @@ -1,148 +0,0 @@ -A101 CD standard audio format CD 'red book' format -A102 SACD super audio format -A103 MP3 format -A104 WAV format -A105 Real Audio format -A106 WMA Windows Media Audio format -A107 AAC Advanced Audio Coding format -A108 Ogg/Vorbis Vorbis audio format in the Ogg container -A109 Audible Audio format proprietary to Audible.com -A110 FLAC Free lossless audio codec -A111 AIFF Audio Interchangeable File Format -A112 ALAC Apple Lossless Audio Codec -A201 DAISY 2: full audio with title only (no navigation) -A202 DAISY 2: full audio with navigation -A203 DAISY 2: full audio with navigation and partial text -A204 DAISY 2: full audio and full text -A205 DAISY 2: full text and some audio -A206 DAISY 2: full text and no audio -A207 DAISY 3: full audio with title only (no navigation) -A208 DAISY 3: full audio with navigation -A209 DAISY 3: full audio with navigation and partial text -A210 DAISY 3: full audio and full text -A211 DAISY 3: full text and some audio -A212 DAISY 3: full text and no audio -B101 Mass market (rack) paperback In North America, a category of paperback characterized partly by page size (typically 4¼ x 7 1/8 inches) and partly by target market and terms of trade. Use with Product Form code BC. -B102 Trade paperback (US) In North America, a category of paperback characterized partly by page size and partly by target market and terms of trade. AKA 'quality paperback', and including textbooks. Most paperback books sold in North America except 'mass-market' (B101) and 'tall rack' (B107) are correctly described with this code. Use with Product Form code BC. -B103 Digest format paperback In North America, a category of paperback characterized by page size and generally used for children's books; use with Product Form code BC. Note: was wrongly shown as B102 (duplicate entry) in Issue 3. -B104 A-format paperback In UK, a category of paperback characterized by page size (normally 178 x 111 mm approx); use with Product Form code BC -B105 B-format paperback In UK, a category of paperback characterized by page size (normally 198 x 129 mm approx); use with Product Form code BC -B106 Trade paperback (UK) In UK, a category of paperback characterized partly by size (usually in traditional hardback dimensions), and often used for paperback originals; use with Product Form code BC (replaces 'C-format' from former List 8) -B107 Tall rack paperback (US) In North America, a category of paperback characterised partly by page size and partly by target market and terms of trade; use with Product Form code BC -B108 A5: Tankobon Japanese hardcover format -B109 B5: Tankobon Japanese hardcover format -B110 B6: Tankobon Japanese hardcover format -B111 A6: Bunko Japanese paperback format -B112 B40-dori: Shinsho Japanese paperback format -B113 Pocket (Sweden) A Swedish paperback format, use with Product Form Code BC -B114 Storpocket (Sweden) A Swedish paperback format, use with Product Form Code BC -B115 Kartonnage (Sweden) A Swedish hardback format, use with Product Form Code BB -B116 Flexband (Sweden) A Swedish softback format, use with Product Form Code BC -B201 Coloring / join-the-dot book -B202 Lift-the-flap book -B203 Fuzzy book DEPRECATED because of ambiguity - use B210, B214 or B215 as appropriate -B204 Miniature book Note: was wrongly shown as B203 (duplicate entry) in Issue 3 -B205 Moving picture / flicker book -B206 Pop-up book -B207 Scented / 'smelly' book -B208 Sound story / 'noisy' book -B209 Sticker book -B210 Touch-and-feel book A book whose pages have a variety of textured inserts designed to stimulate tactile exploration: see also B214 and B215 -B211 Toy / die-cut book DEPRECATED - use B212 or B213 as appropriate -B212 Die-cut book A book which is cut into a distinctive non-rectilinear shape and/or in which holes or shapes have been cut internally. (‘Die-cut’ is used here as a convenient shorthand, and does not imply strict limitation to a particular production process.) -B213 Book-as-toy A book which is also a toy, or which incorporates a toy as an integral part. (Do not, however, use B213 for a multiple-item product which includes a book and a toy as separate items.) -B214 Soft-to-touch book A book whose cover has a soft textured finish, typically over board -B215 Fuzzy-felt book A book with detachable felt pieces and textured pages on which they can be arranged -B221 Picture book Children's picture book: use with applicable Product Form code -B301 Loose leaf - sheets & binder Use with Product Form code BD -B302 Loose leaf - binder only Use with Product Form code BD -B303 Loose leaf - sheets only Use with Product Form code BD -B304 Sewn AKA stitched; for 'saddle-sewn', see code B310 -B305 Unsewn / adhesive bound Including 'perfect bound', 'glued' -B306 Library binding Strengthened binding intended for libraries -B307 Reinforced binding Strengthened binding, not specifically intended for libraries -B308 Half bound Must be accompanied by a code specifiying a material, eg 'half-bound real leather' -B309 Quarter bound Must be accompanied by a code specifiying a material, eg 'quarter bound real leather' -B310 Saddle-sewn AKA 'saddle-stitched' or 'wire-stitched' -B311 Comb bound Round or oval plastic forms in a clamp-like configuration: use with code BE from List 7 -B312 Wire-O Twin loop metal or plastic spine: use with code BE from List 7 -B313 Concealed wire Cased over Wire-O binding: use with code BE from List 7 -B401 Cloth over boards AKA fabric, linen over boards -B402 Paper over boards -B403 Leather, real -B404 Leather, imitation -B405 Leather, bonded -B406 Vellum -B407 Plastic DEPRECATED - use new B412 or B413 as appropriate -B408 Vinyl DEPRECATED - use new B412 or B414 as appropriate -B409 Cloth Cloth, not necessarily over boards – cf B401 -B410 Imitation cloth Spanish 'simil-tela' -B411 Velvet -B412 Flexible plastic/vinyl cover AKA “flexibound”: use with code BC from List 7 -B413 Plastic-covered -B414 Vinyl-covered -B415 Laminated cover Book, laminating material unspecified: use L101 for "whole product laminated", eg a laminated sheet map or wallchart -B501 With dust jacket Type unspecified -B502 With printed dust jacket Used to distinguish from B503 -B503 With translucent dust cover With translucent paper or plastic protective cover -B504 With flaps For paperback with flaps -B505 With thumb index -B506 With ribbon marker(s) If the number of markers is significant, it can be stated as free text in -B507 With zip fastener -B508 With button snap fastener -B509 With leather edge lining AKA yapp edge? -B601 Turn-around book A book in which half the content is printed upside-down, to be read the other way round -B602 Unflipped manga format Manga with pages and panels in the sequence of the original Japanese, but with Western text -B701 UK Braille Grade 1 Single letters only -B702 UK Braille Grade 2 With some letter combinations -B703 US Braille -D101 Real Video format -D102 Quicktime format -D103 AVI format -D104 Windows Media Video format -D105 MPEG-4 -D201 MS-DOS Use with an applicable Product Form code D*; note that more detail of operating system requirements can be given in a Product Form Feature composite -D202 Windows Use with an applicable Product Form code D*; see note on D201 -D203 Macintosh Use with an applicable Product Form code D*; see note on D201 -D204 UNIX / LINUX Use with an applicable Product Form code D*; see note on D201 -D205 Other operating system(s) Use with an applicable Product Form code D*; see note on D201 -D206 Palm OS Use with an applicable Product Form code D*; see note on D201 -D207 Windows Mobile Use with an applicable Product Form code D*; see note on D201 -D301 Microsoft XBox Use with Product Form code DE or DB as applicable -D302 Nintendo Gameboy Color Use with Product Form code DE or DB as applicable -D303 Nintendo Gameboy Advanced Use with Product Form code DE or DB as applicable -D304 Nintendo Gameboy Use with Product Form code DE or DB as applicable -D305 Nintendo Gamecube Use with Product Form code DE or DB as applicable -D306 Nintendo 64 Use with Product Form code DE or DB as applicable -D307 Sega Dreamcast Use with Product Form code DE or DB as applicable -D308 Sega Genesis/Megadrive Use with Product Form code DE or DB as applicable -D309 Sega Saturn Use with Product Form code DE or DB as applicable -D310 Sony PlayStation 1 Use with Product Form code DE or DB as applicable -D311 Sony PlayStation 2 Use with Product Form code DE or DB as applicable -D312 Nintendo Dual Screen -D313 Sony PlayStation 3 -D314 Xbox 360 -D315 Nintendo Wii -D316 Sony PlayStation Portable (PSP) -L101 Laminated Whole product laminated (eg laminated map, fold-out chart, wallchart, etc): use B415 for book with laminated cover -P101 Desk calendar Use with Product Form code PC -P102 Mini calendar Use with Product Form code PC -P103 Engagement calendar Use with Product Form code PC -P104 Day by day calendar Use with Product Form code PC -P105 Poster calendar Use with Product Form code PC -P106 Wall calendar Use with Product Form code PC -P107 Perpetual calendar Use with Product Form code PC -P108 Advent calendar Use with Product Form code PC -P109 Bookmark calendar Use with Product Form code PC -P110 Student calendar Use with Product Form code PC -P111 Project calendar Use with Product Form code PC -P112 Almanac calendar Use with Product Form code PC -P113 Other calendar A calendar that is not one of the types specified elsewhere: use with Product Form code PC -P114 Other calendar or organiser product A product that is associated with or ancillary to a calendar or organiser, eg a deskstand for a calendar, or an insert for an organiser: use with Product Form code PC or PS -P201 Hardback (stationery) Stationery item in hardback book format -P202 Paperback / softback (stationery) Stationery item in paperback/softback book format -P203 Spiral bound (stationery) Stationery item in spiral-bound book format -P204 Leather / fine binding (stationery) Stationery item in leather-bound book format, or other fine binding -V201 PAL TV standard for video or DVD -V202 NTSC TV standard for video or DVD -V203 SECAM TV standard for video or DVD diff --git a/support/codes/079.tsv b/support/codes/079.tsv deleted file mode 100644 index a51a87d..0000000 --- a/support/codes/079.tsv +++ /dev/null @@ -1,17 +0,0 @@ -01 Color of cover For Product Form Feature values see code list 98 -02 Color of page edge For Product Form Feature values see code list 98 -03 Text font The principal font used for body text, when this is a significant aspect of product description, eg for some Bibles. The accompanying Product Form Feature value is text specifying font size and, if desired, style. -04 Special cover material For Product Form Feature values see code list 99 -05 DVD region For Product Form Feature values see code list 76 -06 Operating system A computer or handheld device operating system required to use a digital product, with version detail if applicable. The accompanying Product Form Feature Value is a code from List 178. Version detail, when applicable, is carried in Product Form Feature Description. -07 Other system requirements Other system requirements for a digital product, described by free text in Product Form Feature Detail. -11 CPSIA choking hazard warning DEPRECATED - use code 12 and List 143 -12 CPSIA choking hazard warning Choking hazard warning required by US Consumer Product Safety Improvement Act (CPSIA) of 2008. Required, when applicable, for products sold in the US. The Product Form Feature Value is a code from List 143. Further explanation may be given in Product Form Feature Description. -30 Not FSC or PEFC certified Product does not carry FSC or PEFC logo. The product may, however, have a claimed Post-Consumer-Waste (PCW) content (type code 37). The Value and Description elements are not used. -31 FSC certified – pure Product carries FSC logo (pure). is the Chain Of Custody (COC) number printed on the book. Format: two to five letters-COC-six numerals, eg AB-COC-123456 or ABCDE-COC-123456. By definition, a product certified pure does not contain Post-Consumer-Waste (PCW), so type code 31 can only occur on its own. -32 FSC certified – mixed sources Product carries FSC logo (mixed sources). is the Chain Of Custody (COC) number printed on the book. Format: two to five letters-COC-six numerals, eg AB-COC-123456 or ABCDE-COC-123456. May be accompanied by a Post-Consumer-Waste (PCW) percentage value, to be reported in another instance of with type code 36. -33 FSC certified – recycled Product carries FSC logo (recycled). is the Chain Of Custody (COC) number printed on the book. Format: two to five letters-COC-six numerals, eg AB-COC-123456 or ABCDE-COC-123456. Should be accompanied by a Post-Consumer-Waste (PCW) percentage value, to be reported in another instance of with type code 36. -34 PEFC certified Product carries PEFC logo (certified). is the Chain Of Custody (COC) number printed on the book. May be accompanied by a Post-Consumer-Waste (PCW) percentage value, to be reported in another instance of with type code 36. -35 PEFC recycled Product carries PEFC logo (recycled). is the Chain Of Custody (COC) number printed on the book. Should be accompanied by a Post-Consumer-Waste (PCW) percentage value, to be reported in another instance of with type code 36. -36 FSC or PEFC certified Post Consumer Waste (PCW) percentage The percentage of Post-Consumer-Waste (PCW) used in a product where the composition is certified by FSC or PEFC. is an integer. May occur together with type code 32, 33, 34 or 35. -37 Claimed Post Consumer Waste (PCW) percentage The percentage of Post-Consumer-Waste (PCW) claimed to be used in a product where the composition is not certified by FSC or PEFC. is an integer. may carry free text supporting the claim. Must be accompanied by type code 30. diff --git a/support/codes/080.tsv b/support/codes/080.tsv deleted file mode 100644 index b87aded..0000000 --- a/support/codes/080.tsv +++ /dev/null @@ -1,19 +0,0 @@ -01 Slip-sleeve -02 Clamshell -03 Keep case -05 Jewel case -09 In box Individual item or set in box with lid: not to be confused with the commonly-used 'boxed set' - see below -10 Slip-cased Slip-case for single item only: German 'Schuber' -11 Slip-cased set Slip-case for multi-volume set: German 'Kassette'; also commonly referred to as 'boxed set' -12 Tube Rolled in tube or cylinder: eg sheet map or poster -13 Binder Use for miscellaneous items such as slides, microfiche, when presented in a binder -14 In wallet or folder Use for miscellaneous items such as slides, microfiche, when presented in a wallet or folder -15 Long triangular package Long package with triangular cross-section used for rolled sheet maps, posters etc -16 Long square package Long package with square cross-section used for rolled sheet maps, posters, etc -17 Softbox (for DVD) -18 Pouch In pouch, eg teaching materials in a plastic bag or pouch -19 Rigid plastic case In duroplastic or other rigid plastic case, eg for a class set. -20 Cardboard case In cardboard case, eg for a class set. -21 Shrink-wrapped Use for products or product bundles supplied for retail sale in shrink-wrapped packaging. For shrink-wrapped packs of multiple products for trade supply only, see code XL in List 7. -22 Blister pack A pack comprising a pre-formed plastic blister and a printed card with a heat-seal coating -23 Carry case A case with carrying handle, typically for a set of educational books and/or learning materials diff --git a/support/codes/081.tsv b/support/codes/081.tsv deleted file mode 100644 index 54c48e9..0000000 --- a/support/codes/081.tsv +++ /dev/null @@ -1,11 +0,0 @@ -01 Audiobook Audio recording of a reading of a book or other text -02 Performance - spoken word Audio recording of a drama or other spoken word performance -03 Music recording Audio recording of a music performance, including musical drama and opera -04 Other audio Audio recording of other sound, eg birdsong -05 Game -06 Moving images Film, video etc -07 Still images / graphics -08 Software -09 Data Data files -10 Text (eye-readable) Readable text: this value is required, together with applicable and values, to designate an e-book or other digital product whose primary content is eye-readable text -11 Musical notation diff --git a/support/codes/082.tsv b/support/codes/082.tsv deleted file mode 100644 index 1a5e904..0000000 --- a/support/codes/082.tsv +++ /dev/null @@ -1,17 +0,0 @@ -AP Apocrypha (Catholic canon) The seven portions of the Apocrypha added to the Catholic canon at the Council of Trent in 1546: Tobit; Judith; Wisdom of Solomon; Sirach (Ecclesiasticus); Baruch, including the Letter of Jeremiah; I & II Maccabees; Extra portions of Esther and Daniel (Additions to Esther; the Prayer of Azariah; Song of the Three Jews; Susannah; Bel and the Dragon). These are not generally included in the Protestant canon. -AQ Apocrypha (canon unspecified) A collection of Apocryphal texts, canon not specified -AX Additional Apocryphal texts: Greek Orthodox canon I Esdras; Prayer of Manasseh; Psalm 151; III Maccabees. -AY Additional Apocryphal texts: Slavonic Orthodox canon I & II Esdras; Prayer of Manasseh; Psalm 151; III & IV Maccabees. -AZ Additional Apocryphal texts Additional Apocryphal texts included in some Bible versions: I & II Esdras; Prayer of Manasseh. -GA General canon with Apocrypha (Catholic canon) The 66 books included in the Protestant, Catholic and Orthodox canons, together with the seven portions of the Apocrypha included in the Catholic canon. -GC General canon with Apocryphal texts (canon unspecified) The 66 books included in the Protestant, Catholic and Orthodox canons, together with Apocryphal texts, canon not specified. -GE General canon The 66 books included in the Protestant, Catholic and Orthodox canons, 39 from the Old Testament and 27 from the New Testament. The sequence of books may differ in different canons. -GS Gospels The books of Matthew, Mark, Luke and John. -OT Old Testament Those 39 books which were included in the Jewish canon by the rabbinical academy established at Jamma in 90 CE. Also known as the Jewish or Hebrew scriptures. -NT New Testament The 27 books included in the Christian canon through the Easter Letter of Athanasius, Bishop of Alexandria and also by a general council of the Christian church held near the end of the 4th century CE. -NP New Testament with Psalms and Proverbs Includes the 27 books of the New Testament plus Psalms and Proverbs from the Old Testament. -PE Paul’s Epistles The books containing the letters of Paul to the various early Christian churches. -PP Psalms and Proverbs The book of Psalms and the book of Proverbs combined. -PS Psalms The book of Psalms. -PT Pentateuch The first five books of the Bible: Genesis, Exodus, Numbers, Leviticus, Deuteronomy. Also applied to the Torah. -ZZ Other portions Selected books of either the OT or NT not otherwise noted. diff --git a/support/codes/083.tsv b/support/codes/083.tsv deleted file mode 100644 index e1c682e..0000000 --- a/support/codes/083.tsv +++ /dev/null @@ -1,68 +0,0 @@ -ALV Alberto Vaccari Alberto Vaccari - Pontificio Istituto Biblico -AMP Amplified A translation based on the American Standard Version and showing multiple options for the translation of ancient text. Published in full in 1965. Sponsored by the Lockman Foundation. -ANM Antonio Martini -ASV American Standard A 1901 translation using verbal equivalence techniques with the purpose of Americanizing the King James version. -CEI C.E.I. - Conferenza Episcopale Italiana (Revised description of existing code) -CEN C.E.I. - Conferenza Episcopale Italiana 2008 Nuova traduzione C.E.I. 2008 -CEV Contemporary English A translation completed in 1995 and sponsored by the American Bible Society under the leadership of Barclay Newman. -CNC Concordata -DDI Diodati -DDN Nuova Diodati -DOU Douay-Rheims An early (1580-1609) English translation from the Latin Vulgate designed for Catholics and performed by George Martin. -EIN Einheitsübersetzung A German translation of the Bible for use in Roman Catholic churches -ESV English Standard An update of the Revised Standard Version that makes 'modest' use of gender-free terminology. -FBB Biblia (1776) Finnish Bible translation -FRA Raamattu (1933/1938) Finnish Bible translation -FRK Raamattu kansalle Finnish Bible translation -FRM Raamattu (1992) Finnish Bible translation -GDW God’s Word A 1995 translation by the World Bible Publishing Company using the English language in a manner to communicate to the late 20th century American. -GEN Geneva An early (1560) English version of the Bible translated by William Whittingham with strong Protestant leanings. -GNB Good News A translation sponsored by the American Bible Society. The New Testament was first published (as “Today’s English Version” TEV) in 1966. The Old Testament was completed in 1976, and the whole was published as the “Good News Bible”. -GPR Galbiati, Penna, Rossano E. Galbiati A. Penna P. Rossano – UTET -GRK Original Greek New Testament text in an original Greek version -GRM Garofano, Rinaldi – Marietti S. Garofano S. Rinaldi – Marietti -HBR Original Hebrew Old Testament text in an original Hebrew version -HCS Holman Christian Standard Published by Broadman and Holman this translation rejects all forms of gender-neutral wording and is written with strong influences from the Southern Baptist perspective of biblical scholarship. -ICB International Children’s A translation completed in 1986 targeting readability at the US third grade level. -ILC Traduzione Interconfessionale in Lingua Corrente -JER Jerusalem A translation designed for English speaking Catholics based on the original languages. It is based on French as well as ancient texts and was first published in 1966. -KJV King James A translation commissioned by King James I of England and first published in 1611. -KJT 21st Century King James A verbal translation led by William Prindele. Published in 1994, it was designed to modernize the language of the King James Version based on Webster’s New International Dictionary, 2nd edition, unabridged. -LVB Living Bible A paraphrase translation led by Kenneth N Taylor and first published in 1972. -LZZ Luzzi -MSG Message Bible A paraphrase translation of the New Testament by Eugene Peterson first published in 1993. -NAB New American A translation aimed at Catholic readers first published in its entirely in 1970. A revised New Testament was issued in 1986. -NAS New American Standard A translation commissioned by the Lockman Foundation. The New Testament was published in 1960 followed by the entire Bible in 1971. -NAU New American Standard, Updated A 1995 translation using more modern language than the NASB. -NBA Bibelen 1895 Norwegian Bible translation -NBB Bibelen 1930 Norwegian Bible translation -NBC Bibelen 1938 Norwegian Bible translation -NBD Bibelen 1978-85 Norwegian Bible translation -NBE Bibelen 1978 Norwegian Bible translation -NBF Bibelen 1985 Norwegian Bible translation -NBG Bibelen 1988 Norwegian Bible translation -NBH Bibelen 1978-85/rev. 2005 Norwegian Bible translation -NCV New Century A translation inspired by the International Children’s version. First published by World Publishing in 1991. -NEB New English A translation first issued in 1970 as a result of a proposal at the 1946 General Assembly of the Church of Scotland. -NGO Bibelen Guds ord Norwegian Bible translation -NIV New International A translation underwritten by the International Bible Society (formerly New York Bible Society). The New Testament was published in 1973 followed by the entire Bible in 1978. -NIR New International Reader’s A 1996 translation designed for people with limited literacy in English and based on the NIV. -NJB New Jerusalem A revision of the Jerusalem Bible. First published in 1986. -NKJ New King James A version issued by Thomas Nelson Publishers in 1982-83 designed to update the language of the King James Version while maintaining the phrasing and rhythm and using the same sources as its predecessor. -NNK Bibelen, nynorsk Norwegian 'nynorsk' Bible translation -NLV New Living A translation sponsored by Tyndale House and first released in 1996. It is considered a revision and updating of the Living Bible. -NRS New Revised Standard A revision of the Revised Standard based on ancient texts but updating language to American usage of the 1980s. -NTV Nueva Traduccion Vivienta A Spanish translation from the original Greek and Hebrew, sponsored by Tyndale House. -NVB Novissima Versione della Bibbia -NVD Nueva Biblia al Dia A Spanish translation from the original Greek and Hebrew, sponsored by the International Bible Society/Sociedad Bíblica Internacional. -NVI Nueva Version Internacional A Spanish translation underwritten by the International Bible Society. -PHP New Testament in Modern English (Phillips) An idiomatic translation by J B Phillips, first completed in 1966 -REB Revised English A 1989 revision of the NEB. A significant effort was made to reduce the British flavor present in the NEB. -REV Revised Version The first major revision of the King James Version, the Revised Version incorporates insights from early manuscripts discovered between 1611 and 1870, and corrects readings in the KJV which nineteenth-century scholarship deemed mistaken. The New Testament was published in 1881, the Old Testament in 1885, and the Apocrypha in 1895. -RSV Revised Standard A translation authorized by the National Council of Churches of Christ in the USA. The New Testament was published in 1946 followed by a complete Protestant canon in 1951. -RVL Reina Valera A Spanish translation based on the original texts. -SBB Bibel 2000 Swedish Bible translation -SMK Bibelen, samisk Norwegian 'samisk' Bible translation -TEV Today’s English A translation of the New Testament sponsored by the American Bible Society and first published in 1966. It was incorporated into the “Good News Bible” GNB in 1976. -TNI Today’s New International An updating of the New International Version. The New Testament was published in 2002, and the entire Bible is scheduled for 2005. -ZZZ Other Other translations not otherwise noted. diff --git a/support/codes/084.tsv b/support/codes/084.tsv deleted file mode 100644 index bfe28e2..0000000 --- a/support/codes/084.tsv +++ /dev/null @@ -1,10 +0,0 @@ -CAM Cambridge Annotated Contains the work of Howard Clark Kee including a summary of the development of the canon, introductions to the books, notes and cross references. Originally published in 1993, NRSV. -LIF Life Application A project of Tyndale House Publishers and Zondervan intended to help readers apply the Bible to daily living. Living Bible, King James, New International, NASB -MAC Macarthur A King James version study Bible with notes by James Macarthur first published in 1997. -OXF Oxford Annotated A study Bible originally published in the 1960s and based on the RSV / NRSV. -NNT Studiebibel, Det Nye testamentet Norwegian study Bible, New Testament -NOX New Oxford Annotated Published in 1991 and based on the New Revised Standard version. -NSB Norsk studiebibel Norwegian study Bible -RYR Ryrie Based on the work of Charles C. Ryrie. King James, NI, NASB -SCO Scofield A study Bible based on the early 20th century work of C.I. Scofield. Based on the King James version. -SPR Spirit Filled A transdenominational study Bible for persons from the Pentecostal/Charismatic traditions. diff --git a/support/codes/085.tsv b/support/codes/085.tsv deleted file mode 100644 index 4ca569b..0000000 --- a/support/codes/085.tsv +++ /dev/null @@ -1,23 +0,0 @@ -AW Award A Bible (or selected Biblical text) designed for presentation from a religious organization. -BB Baby A Bible (or selected Biblical text) designed to be a gift to commemorate a child’s birth. -BR Bride A special gift Bible (or selected Biblical text) designed for the bride on her wedding day. Usually white. -CF Confirmation A Bible (or selected Biblical text) designed to be used in the confirmation reading or as a gift to a confirmand -CH Children’s A text Bible (or selected Biblical text) designed in presentation and readability for a child. -CM Compact A small Bible (or selected Biblical text) with a trim height of five inches or less. -CR Cross-reference A Bible (or selected Biblical text) which includes text conveying cross-references to related scripture passages. -DR Daily readings A Bible (or selected Biblical text) laid out to provide readings for each day of the year. -DV Devotional A Bible (or selected Biblical text) containing devotional content together with the scripture. -FM Family A Bible (or selected Biblical text) containing family record pages and/or additional study material for family devotion -GT General/Text A standard Bible (or selected Biblical text) of any version with no distinguishing characteristics beyond the canonical text. -GF Gift A Bible (or selected Biblical text) designed for gift or presentation, often including a presentation page. -LP Lectern/Pulpit A large Bible (or selected Biblical text) with large print designed for use in reading scriptures in public worship from either the pulpit or lectern. -MN Men’s A Bible (or selected Biblical text) especially designed with helps and study guides oriented to the adult male. -PS Primary school A Bible (or selected Biblical text) designed for use in primary school -PW Pew Usually inexpensive but sturdy, a Bible (or selected Biblical text) designed for use in church pews. -SC Scholarly A Bible (or selected Biblical text) including texts in Greek and/or Hebrew and designed for scholarly study. -SL Slimline -ST Student A Bible (or selected Biblical text) with study articles and helps especially for use in the classroom. -SU Study A Bible (or selected Biblical text) with many extra features, e.g. book introductions, dictionary, concordance, references, maps, etc., to help readers better understand the scripture. -WG Wedding gift A special gift Bible (or selected Biblical text) designed as a gift to the couple on their wedding day -WM Women’s A devotional or study Bible (or selected Biblical text) with helps targeted at the adult woman. -YT Youth A Bible (or selected Biblical text) containing special study and devotional helps designed specifically for the needs of teenagers. diff --git a/support/codes/086.tsv b/support/codes/086.tsv deleted file mode 100644 index 52e15c7..0000000 --- a/support/codes/086.tsv +++ /dev/null @@ -1,5 +0,0 @@ -CHR Chronological A Bible with the text organized in the order in which events are believed to have happened. -CHA Chain reference A Bible which explores keywords or themes by referring text to preceding or following text. -INT Interlinear A Bible or other text in which different versions are printed one line above the other, so that the variations can easily be detected. -PAR Parallel A Bible with two or more versions printed side by side. -STN Standard A Bible in which the text is presented in the traditional order. diff --git a/support/codes/087.tsv b/support/codes/087.tsv deleted file mode 100644 index c59165b..0000000 --- a/support/codes/087.tsv +++ /dev/null @@ -1,6 +0,0 @@ -CCL Center column References are printed in a narrow column in the center of the page between two columns of text. -PGE Page end References are printed at the foot of the page. -SID Side column References are printed in a column to the side of the scripture. -VER Verse end References are printed at the end of the applicable verse. -UNK Unknown The person creating the ONIX record does not know where the references are located. -ZZZ Other Other locations not otherwise identified diff --git a/support/codes/088.tsv b/support/codes/088.tsv deleted file mode 100644 index e69de29..0000000 diff --git a/support/codes/089.tsv b/support/codes/089.tsv deleted file mode 100644 index 7b7b4fb..0000000 --- a/support/codes/089.tsv +++ /dev/null @@ -1 +0,0 @@ -01 Church season or activity A church season or activity for which a religious text is intended diff --git a/support/codes/090.tsv b/support/codes/090.tsv deleted file mode 100644 index 55ef805..0000000 --- a/support/codes/090.tsv +++ /dev/null @@ -1,11 +0,0 @@ -01 Academic year Use with code 01 in -02 Catechistic year Use with code 01 in -03 Liturgical year Use with code 01 in -04 Advent and Christmas Use with code 01 in -05 Blessings Use with code 01 in -06 Scholastic cycles Use with code 01 in -07 Confirmation and Holy Communion Use with code 01 in -08 Summer activites For example, summer camps and other youth recreational activities: use with code 01 in -09 Easter Use with code 01 in -10 Lent Use with code 01 in -11 Marian themes Use with code 01 in diff --git a/support/codes/091.tsv b/support/codes/091.tsv deleted file mode 100644 index 1a81757..0000000 --- a/support/codes/091.tsv +++ /dev/null @@ -1,248 +0,0 @@ -AD Andorra -AE United Arab Emirates -AF Afghanistan -AG Antigua and Barbuda -AI Anguilla -AL Albania -AM Armenia -AN Netherlands Antilles -AO Angola -AQ Antarctica -AR Argentina -AS American Samoa -AT Austria -AU Australia -AW Aruba -AX Aland Islands -AZ Azerbaijan -BA Bosnia and Herzegovina -BB Barbados -BD Bangladesh -BE Belgium -BF Burkina Faso -BG Bulgaria -BH Bahrain -BI Burundi -BJ Benin -BL Saint Barthelemy -BM Bermuda -BN Brunei Darussalam -BO Bolivia -BR Brazil -BS Bahamas -BT Bhutan -BV Bouvet Island -BW Botswana -BY Belarus -BZ Belize -CA Canada -CC Cocos (Keeling) Islands -CD Congo, Democratic Republic of the -CF Central African Republic -CG Congo -CH Switzerland -CI Cote D'Ivoire -CK Cook Islands -CL Chile -CM Cameroon -CN China -CO Colombia -CR Costa Rica -CS Serbia and Montenegro DEPRECATED, replaced by ME - Montenegro and RS - Serbia -CU Cuba -CV Cape Verde -CX Christmas Island -CY Cyprus -CZ Czech Republic -DE Germany -DJ Djibouti -DK Denmark -DM Dominica -DO Dominican Republic -DZ Algeria -EC Ecuador -EE Estonia -EG Egypt -EH Western Sahara -ER Eritrea -ES Spain -ET Ethiopia -FI Finland -FJ Fiji -FK Falkland Islands (Malvinas) -FM Micronesia, Federated States of -FO Faroe Islands -FR France -GA Gabon -GB United Kingdom -GD Grenada -GE Georgia -GF French Guiana -GG Guernsey -GH Ghana -GI Gibraltar -GL Greenland -GM Gambia -GN Guinea -GP Guadeloupe -GQ Equatorial Guinea -GR Greece -GS South Georgia and the South Sandwich Islands -GT Guatemala -GU Guam -GW Guinea-Bissau -GY Guyana -HK Hong Kong -HM Heard Island and McDonald Islands -HN Honduras -HR Croatia -HT Haiti -HU Hungary -ID Indonesia -IE Ireland -IL Israel -IM Isle of Man -IN India -IO British Indian Ocean Territory -IQ Iraq -IR Iran, Islamic Republic of -IS Iceland -IT Italy -JE Jersey -JM Jamaica -JO Jordan -JP Japan -KE Kenya -KG Kyrgyzstan -KH Cambodia -KI Kiribati -KM Comoros -KN Saint Kitts and Nevis -KP Korea, Democratic People's Republic of -KR Korea, Republic of -KW Kuwait -KY Cayman Islands -KZ Kazakhstan -LA Lao People's Democratic Republic -LB Lebanon -LC Saint Lucia -LI Liechtenstein -LK Sri Lanka -LR Liberia -LS Lesotho -LT Lithuania -LU Luxembourg -LV Latvia -LY Libyan Arab Jamahiriya -MA Morocco -MC Monaco -MD Moldova, Republic of -ME Montenegro -MF Saint Martin, French part -MG Madagascar -MH Marshall Islands -MK Macedonia, the former Yugoslav Republic of -ML Mali -MM Myanmar -MN Mongolia -MO Macao -MP Northern Mariana Islands -MQ Martinique -MR Mauritania -MS Montserrat -MT Malta -MU Mauritius -MV Maldives -MW Malawi -MX Mexico -MY Malaysia -MZ Mozambique -NA Namibia -NC New Caledonia -NE Niger -NF Norfolk Island -NG Nigeria -NI Nicaragua -NL Netherlands -NO Norway -NP Nepal -NR Nauru -NU Niue -NZ New Zealand -OM Oman -PA Panama -PE Peru -PF French Polynesia -PG Papua New Guinea -PH Philippines -PK Pakistan -PL Poland -PM Saint Pierre and Miquelon -PN Pitcairn -PR Puerto Rico -PS Palestinian Territory, Occupied -PT Portugal -PW Palau -PY Paraguay -QA Qatar -RE Reunion -RO Romania -RS Serbia -RU Russian Federation -RW Rwanda -SA Saudi Arabia -SB Solomon Islands -SC Seychelles -SD Sudan -SE Sweden -SG Singapore -SH Saint Helena -SI Slovenia -SJ Svalbard and Jan Mayen -SK Slovakia -SL Sierra Leone -SM San Marino -SN Senegal -SO Somalia -SR Suriname -ST Sao Tome and Principe -SV El Salvador -SY Syrian Arab Republic -SZ Swaziland -TC Turks and Caicos Islands -TD Chad -TF French Southern Territories -TG Togo -TH Thailand -TJ Tajikistan -TK Tokelau -TL Timor-Leste -TM Turkmenistan -TN Tunisia -TO Tonga -TR Turkey -TT Trinidad and Tobago -TV Tuvalu -TW Taiwan, Province of China -TZ Tanzania, United Republic of -UA Ukraine -UG Uganda -UM United States Minor Outlying Islands -US United States -UY Uruguay -UZ Uzbekistan -VA Holy See (Vatican City State) -VC Saint Vincent and the Grenadines -VE Venezuela, Bolivarian Republic of -VG Virgin Islands, British -VI Virgin Islands, US -VN Viet Nam -VU Vanuatu -WF Wallis and Futuna -WS Samoa -YE Yemen -YT Mayotte -YU Yugoslavia DEPRECATED, replaced by ME - Montenegro and RS - Serbia -ZA South Africa -ZM Zambia -ZW Zimbabwe diff --git a/support/codes/092.tsv b/support/codes/092.tsv deleted file mode 100644 index add2109..0000000 --- a/support/codes/092.tsv +++ /dev/null @@ -1,7 +0,0 @@ -02 Proprietary -04 Börsenverein Verkehrsnummer -05 German ISBN Agency publisher identifier -06 GLN GS1 global location number (formerly EAN location number) -07 SAN Book trade Standard Address Number - US, UK etc -12 Distributeurscode Boekenbank Flemish supplier code -13 Fondscode Boekenbank Flemish publisher code diff --git a/support/codes/093.tsv b/support/codes/093.tsv deleted file mode 100644 index 64325df..0000000 --- a/support/codes/093.tsv +++ /dev/null @@ -1,13 +0,0 @@ -00 Unspecified Default -01 Publisher to retailers Publisher as supplier to retail trade outlets -02 Publisher's exclusive distributor to retailers -03 Publisher's non-exclusive distributor to retailers -04 Wholesaler Wholesaler supplying retail trade outlets  -05 Sales agent DEPRECATED - use (ONIX 2.1) or (ONIX 3.0) to specify a sales agent -06 Publisher's distributor to retailers In a specified supply territory. Use only where exclusive/non-exclusive status is not known. Prefer 02 or 03 as appropriate, where possible. -07 POD supplier Where a POD product is supplied to retailers and/or consumers direct from a POD source. -08 Retailer -09 Publisher to end-customers Publisher as supplier direct to consumers and/or institutional customers -10 Exclusive distributor to end-customers Intermediary as exclusive distributor direct to consumers and/or institutional customers -11 Non-exclusive distributor to end-customers Intermediary as non-exclusive distributor direct to consumers and/or institutional customers -12 Distributor to end-customers Use only where exclusive/non-exclusive status is not known. Prefer 10 or 11 as appropriate, where possible. diff --git a/support/codes/094.tsv b/support/codes/094.tsv deleted file mode 100644 index 2d135c2..0000000 --- a/support/codes/094.tsv +++ /dev/null @@ -1,3 +0,0 @@ -cm Centimeters -in Inches (US) -mm Millimeters diff --git a/support/codes/095.tsv b/support/codes/095.tsv deleted file mode 100644 index 95e130d..0000000 --- a/support/codes/095.tsv +++ /dev/null @@ -1,3 +0,0 @@ -lb Pounds (US) -gr Grams -oz Ounces (US) diff --git a/support/codes/096.tsv b/support/codes/096.tsv deleted file mode 100644 index 1c31a53..0000000 --- a/support/codes/096.tsv +++ /dev/null @@ -1,185 +0,0 @@ -AED UAE Dirham United Arab Emirates -AFA Afghani DEPRECATED, replaced by AFN -AFN Afghani Afghanistan -ALL Lek Albania -AMD Armenian Dram Armenia -ANG Netherlands Antillian Guilder Netherlands Antilles -AOA Kwanza Angola -ARS Argentine Peso Argentina -ATS Austria, Schilling Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -AUD Australian Dollar Australia, Christmas Island, Cocos (Keeling) Islands, Heard Island and McDonald Islands, Kiribati, Nauru, Norfolk Island, Tuvalu -AWG Aruban Guilder Aruba -AZN Azerbaijanian Manat Azerbaijan -BAM Convertible Marks Bosnia & Herzegovina -BBD Barbados Dollar Barbados -BDT Taka Bangladesh -BEF Belgium, Franc Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -BGL Lev DEPRECATED, replaced by BGN -BGN Lev Bulgaria -BHD Bahraini Dinar Bahrain -BIF Burundi Franc Burundi -BMD Bermuda Dollar Bermuda -BND Brunei Dollar Brunei Darussalam -BOB Boliviano Bolivia -BRL Brazilian Real Brazil -BSD Bahamian Dollar Bahamas -BTN Ngultrun Bhutan -BWP Pula Botswana -BYR Belarussian Ruble Belarus -BZD Belize Dollar Belize -CAD Canadian Dollar Canada -CDF Franc Congolais Congo (Democratic Republic of the) -CHF Swiss Franc Switzerland, Liechtenstein -CLP Chilean Peso Chile -CNY Yuan Renminbi China -COP Colombian Peso Colombia -CRC Costa Rican Colon Costa Rica -CSD Serbian Dinar Serbia -CUC Cuban Convertible Peso Cuba (alternative currency) -CUP Cuban Peso Cuba -CVE Cape Verde Escudo Cape Verde -CYP Cyprus Pound Cyprus -CZK Czech Koruna Czech Republic -DEM Germany, Mark Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -DJF Djibouti Franc Djibouti -DKK Danish Krone Denmark, Faroe Islands, Greenland -DOP Dominican Peso Dominican Republic -DZD Algerian Dinar Algeria -EEK Kroon Estonia -EGP Egyptian Pound Egypt -ERN Nakfa Eritrea -ESP Spain, Peseta Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -ETB Ethiopian Birr Ethiopia -EUR Euro Andorra, Austria, Belgium, Finland, France, Fr Guiana, Fr S Territories, Germany, Greece, Guadeloupe, Holy See (Vatican City), Ireland, Italy, Luxembourg, Martinique, Mayotte, Monaco, Netherlands, Portugal, Réunion, St Pierre & Miquelon, San Marino, Spain -FIM Finland, Markka Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -FJD Fiji Dollar Fiji -FKP Falkland Islands Pound Falkland Islands (Malvinas) -FRF France, Franc Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -GBP Pound Sterling United Kingdom -GEL Lari Georgia -GHC Cedi Ghana -GIP Gibraltar Pound Gibraltar -GMD Dalasi Gambia -GNF Guinea Franc Guinea -GRD Greece, Drachma Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -GTQ Quetzal Guatemala -GWP Guinea-Bissau Peso Guinea-Bissau -GYD Guyana Dollar Guyana -HKD Hong Kong Dollar Hong Kong -HNL Lempira Honduras -HRK Croatian Kuna Croatia -HTG Gourde Haiti -HUF Forint Hungary -IDR Rupiah Indonesia -IEP Ireland, Punt Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -ILS Israeli Sheqel Israel -INR Indian Rupee India -IQD Iraqi Dinar Iraq -IRR Iranian Rial Iran (Islamic Republic of) -ISK Iceland Krona Iceland -ITL Italy, Lira Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -JMD Jamaican Dollar Jamaica -JOD Jordanian Dinar Jordan -JPY Yen Japan -KES Kenyan Shilling Kenya -KGS Som Kyrgyzstan -KHR Riel Cambodia -KMF Comoro Franc Comoros -KPW North Korean Won Korea (Democratic People’s Republic of) -KRW Won Korea (Republic of) -KWD Kuwaiti Dinar Kuwait -KYD Cayman Islands Dollar Cayman Islands -KZT Tenge Kazakstan -LAK Kip Lao People’s Democratic Republic -LBP Lebanese Pound Lebanon -LKR Sri Lanka Rupee Sri Lanka -LRD Liberian Dollar Liberia -LSL Loti Lesotho -LTL Lithuanian Litus Lithuania -LUF Luxembourg, Franc Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -LVL Latvian Lats Latvia -LYD Libyan Dinar Libyan Arab Jamahiriya -MAD Moroccan Dirham Morocco, Western Sahara -MDL Moldovan Leu Moldova, Republic of -MGA Ariary Madagascar -MGF Malagasy Franc Madagascar -MKD Denar Macedonia (former Yugoslav Republic of) -MMK Kyat Myanmar -MNT Tugrik Mongolia -MOP Pataca Macau -MRO Ouguiya Mauritania -MTL Maltese Lira Malta -MUR Mauritius Rupee Mauritius -MVR Rufiyaa Maldives -MWK Kwacha Malawi -MXN Mexican Peso Mexico -MYR Malaysian Ringgit Malaysia -MZN Metical Mozambique -NAD Namibia Dollar Namibia -NGN Naira Nigeria -NIO Cordoba Oro Nicaragua -NLG Netherlands, Guilder Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -NOK Norwegian Krone Norway, Bouvet Island, Svalbard and Jan Mayen -NPR Nepalese Rupee Nepal -NZD New Zealand Dollar New Zealand, Cook Islands, Niue, Pitcairn, Tokelau -OMR Rial Omani Oman -PAB Balboa Panama -PEN Nuevo Sol Peru -PGK Kina Papua New Guinea -PHP Philippine Peso Philippines -PKR Pakistan Rupee Pakistan -PLN Zloty Poland -PTE Portugal, Escudo Now replaced by the Euro (EUR): use only for historical prices that pre-date the introduction of the Euro -PYG Guarani Paraguay -QAR Qatari Rial Qatar -ROL Old Leu Romania -RON New Leu Romania -RUB Russian Ruble Russian Federation -RUR Russian Ruble DEPRECATED, replaced by RUB -RWF Rwanda Franc Rwanda -SAR Saudi Riyal Saudi Arabia -SBD Solomon Islands Dollar Solomon Islands -SCR Seychelles Rupee Seychelles -SDD Sudanese Dinar Sudan -SEK Swedish Krona Sweden -SGD Singapore Dollar Singapore -SHP Saint Helena Pound Saint Helena -SIT Tolar Slovenia -SKK Slovak Koruna Slovakia -SLL Leone Sierra Leone -SOS Somali Shilling Somalia -SRD Suriname Guilder Suriname -SRG Suriname Guilder DEPRECATED, replaced by SRD -STD Dobra São Tome and Principe -SVC El Salvador Colon El Salvador -SYP Syrian Pound Syrian Arab Republic -SZL Lilangeni Swaziland -THB Baht Thailand -TJS Somoni Tajikistan -TMM Manat Turkmenistan -TND Tunisian Dinar Tunisia -TOP Pa’anga Tonga -TPE Timor Escudo NO LONGER VALID, Timor-Leste now uses the US Dollar -TRL Turkish Lira (old) Turkey -TRY Turkish Lira (new) Turkey, from 1 January 2005 -TTD Trinidad and Tobago Dollar Trinidad and Tobago -TWD New Taiwan Dollar Taiwan (Province of China) -TZS Tanzanian Shilling Tanzania (United Republic of) -UAH Hryvnia Ukraine -UGX Uganda Shilling Uganda -USD US Dollar United States, American Samoa, British Indian Ocean Territory, Ecuador, Guam, Marshall Is, Micronesia (Federated States of), Northern Mariana Is, Palau, Puerto Rico, Timor-Leste, Turks & Caicos Is, US Minor Outlying Is, Virgin Is (British), Virgin Is (US) -UYU Peso Uruguayo Uruguay -UZS Uzbekistan Sum Uzbekistan -VEB Bolivar Venezuela -VND Dong Viet Nam -VUV Vatu Vanuatu -WST Tala Samoa -XAF CFA Franc BEAC Cameroon, Central African Republic, Chad, Congo, Equatorial Guinea, Gabon -XCD East Caribbean Dollar Anguilla, Antigua and Barbuda, Dominica, Grenada, Montserrat, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines -XOF CFA Franc BCEAO Benin, Burkina Faso, Côte D'Ivoire, Mali, Niger, Senegal, Togo -XPF CFP Franc French Polynesia, New Caledonia, Wallis and Futuna -YER Yemeni Rial Yemen -YUM Yugoslavian Dinar DEPRECATED, replaced by CSD -ZAR Rand South Africa -ZMK Kwacha Zambia -ZWD Zimbabwe Dollar Zimbabwe diff --git a/support/codes/097.tsv b/support/codes/097.tsv deleted file mode 100644 index f2568ae..0000000 --- a/support/codes/097.tsv +++ /dev/null @@ -1 +0,0 @@ -RL Red letter Words spoken by Christ are printed in red diff --git a/support/codes/098.tsv b/support/codes/098.tsv deleted file mode 100644 index 14aa8be..0000000 --- a/support/codes/098.tsv +++ /dev/null @@ -1,21 +0,0 @@ -BLK Black -BLU Blue -BRN Brown -BUR Burgundy/maroon -CRE Cream -FCO Four-color -FCS Four-color and spot-color -GLD Gold -GRN Green -GRY Grey -MUL Multicolor -NAV Navy -ORG Orange -PNK Pink -PUR Purple -RED Red -SLV Silver -TAN Tan -WHI White -YEL Yellow -ZZZ Other diff --git a/support/codes/099.tsv b/support/codes/099.tsv deleted file mode 100644 index 225459e..0000000 --- a/support/codes/099.tsv +++ /dev/null @@ -1,24 +0,0 @@ -01 Berkshire leather Pigskin -02 Calfskin -03 French Morocco Calf split or sheep split -04 Morocco Goatskin -05 Bonded buffalo grain -06 Bonded calf grain -07 Bonded Cordova -08 Bonded eelskin -09 Bonded Ostraleg -10 Bonded ostrich -11 Bonded reptile grain -12 Bonded leather -13 Cowhide -14 Eelskin -15 Kivar -16 Leatherflex -17 Moleskin -18 Softhide leather -19 Metal -20 Velvet German 'Samt' -21 Mother-of-pearl Spanish 'nácar' -22 Papyrus -23 Géltex An imitation cloth binding material -24 Guaflex An imitation leather binding material diff --git a/support/codes/100.tsv b/support/codes/100.tsv deleted file mode 100644 index ebde40d..0000000 --- a/support/codes/100.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 BIC discount group code UK publisher's or distributor's discount group code in a format specified by BIC to ensure uniqueness -02 Proprietary -03 Boeksoort Terms code used in the Netherlands book trade -04 German terms code Terms code used in German ONIX applications diff --git a/support/codes/101.tsv b/support/codes/101.tsv deleted file mode 100644 index 2cf965a..0000000 --- a/support/codes/101.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Proprietary -02 DNB-PND Deutsche Bibliothek Personennormdatei - person name code of the German national library diff --git a/support/codes/102.tsv b/support/codes/102.tsv deleted file mode 100644 index 3c36411..0000000 --- a/support/codes/102.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 Proprietary -02 BIC sales outlet ID code DEPRECATED - use code 03 -03 ONIX sales outlet ID code From List 139 diff --git a/support/codes/121.tsv b/support/codes/121.tsv deleted file mode 100644 index a1fe756..0000000 --- a/support/codes/121.tsv +++ /dev/null @@ -1,127 +0,0 @@ -Arab Arabic -Armi Imperial Aramaic -Armn Armenian -Avst Avestan -Bali Balinese -Batk Batak -Beng Bengali -Blis Blissymbols -Bopo Bopomofo -Brah Brahmi -Brai Braille -Bugi Buginese -Buhd Buhid -Cakm Chakmachakma -Cans Unified Canadian Aboriginal Syllabics -Cari Carian -Cham Cham -Cher Cherokee -Cirt Cirth -Copt Coptic -Cprt Cypriot -Cyrl Cyrillic -Cyrs Cyrillic (Old Church Slavonic variant) -Deva Devanagari (Nagari) -Dsrt Deseret (Mormon) -Egyd Egyptian demotic -Egyh Egyptian hieratic -Egyp Egyptian hieroglyphs -Ethi Ethiopic (Ge‘ez) -Geok Khutsuri (Asomtavruli and Khutsuri) -Geor Georgian (Mkhedruli) -Glag Glagolitic -Goth Gothic -Grek Greek -Gujr Gujarati -Guru Gurmukhi -Hang Hangul (Hangŭl, Hangeul) -Hani Han (Hanzi, Kanji, Hanja) -Hano Hanunoo (Hanunóo) -Hans Han (Simplified variant) -Hant Han (Traditional variant) -Hebr Hebrew -Hira Hiragana -Hmng Pahawh -Hrkt (alias for Hiragana + Katakana) -Hung Old Hungarian -Inds Indus (Harappan) -Ital Old Italic (Etruscan, Oscan, etc) -Java Javanese -Kali Kayah Likayah li -Kana Katakana -Khar Kharoshthi -Khmr Khmer -Knda Kannada -Kore Korean (alias for Hangul + Han) -Kthi Kaithikaithî -Lana Lanna, Tai Tham -Laoo Lao -Latf Latin (Fraktur variant) -Latg Latin (Gaelic variant) -Latn Latin -Lepc Lepcha (Róng) -Limb Limbu -Lina Linear A -Linb Linear B -Lyci Lycian -Lydi Lydian -Mand Mandaic, Mandaean -Mani Manichaean -Maya Mayan hieroglyphs  -Mero Meroitic -Mlym Malayalam -Mong Mongolian -Mymr Myanmar (Burmese) -Nkoo N’Ko -Ogam Ogham -Olck Ol Chiki (Ol Cemet', Ol, Santali) -Orkh Orkhon -Orya Oriya -Osma Osmanya -Perm Old Permic -Phag Phags-pa -Phli Inscriptional Pahlavi -Phlp Psalter Pahlavi -Phlv Book Pahlavi -Phnx Phoenician -Plrd Pollard Phonetic -Prti Inscriptional Parthian -Qaaa Reserved for private use (start) -Qabx Reserved for private use (end) -Rjng Rejang, Redjang, Kaganga -Roro Rongorongo -Runr Runic -Samr Samaritan -Sara Sarati -Saur Saurashtra -Shaw Shavian (Shaw) -Sinh Sinhala -Sund Sundanese -Sylo Syloti Nagri -Syrc Syriac -Syre Syriac (Estrangelo variant) -Syrj Syriac (Western variant) -Syrn Syriac (Eastern variant) -Tagb Tagbanwa -Tale Tai Le -Talu New Tai Lue -Taml Tamil -Tavt Tai Viet -Telu Telugu -Teng Tengwar -Tfng Tifinagh (Berber) -Tglg Tagalog -Thaa Thaana -Thai Thai -Tibt Tibetan -Ugar Ugaritic -Vaii Vai -Visp Visible Speech -Xpeo Old Persian -Xsux Cuneiform, Sumero-Akkadian -Yiii Yi -Zmth Mathematical notation -Zsym Symbols -Zxxx Code for unwritten languages -Zyyy Code for undetermined script -Zzzz Code for uncoded script diff --git a/support/codes/138.tsv b/support/codes/138.tsv deleted file mode 100644 index ad29246..0000000 --- a/support/codes/138.tsv +++ /dev/null @@ -1,6 +0,0 @@ -SFS4900 Finnish standard SFS 4900 Transliteration of Cyrillic characters - Slavic languages -SFS5807 Finnish standard SFS 5807 Transliteration and transcription of Greek characters -SFS5755 Finnish standard SFS 5755 Transliteration of Arabic characters -SFS3602 Finnish standard SFS 5824 Transliteration of Hebrew characters -ISO3602 ISO 3602 Documentation - Romanization of Japanese (kana script) -ISO7098 ISO 7098 Information and documentation - Romanization of Chinese diff --git a/support/codes/139.tsv b/support/codes/139.tsv deleted file mode 100644 index 3cda358..0000000 --- a/support/codes/139.tsv +++ /dev/null @@ -1,70 +0,0 @@ -ACM A C Moore -AAP A&P -ALB Albertson’s -AMZ Amazon -ANR Angus & Robertson -APC Apple Computer stores -ASD Asda -AUD Audible -BDL B Dalton -BNO Barnes & Noble -BBB Bed Bath & Beyond -BST Best Buy -BJW BJ’s Wholesale Club -BLK Blackwell’s -BCA Book Club Associates -BKP Bookpeople -BKM Books-A-Million -BRD Borders -BRB Borders/Books Etc -BRT British Bookshops -CST Costco -CRB Crate & Barrel -CVS CVS Drug Stores -DSG Dick’s Sporting Goods -DYM Dymocks -ELC Early Learning Centre -ESN Eason -ENH English Heritage -FRY Fry’s Electronics -GMS Gamestop -HST Hastings Entertainment -HMV HMV -HMD Home Depot -IND Indigo-Chapters -JSM John Smith & Son -KMT K-Mart -KRG Kroger -LWE Lowe’s -MKS Marks & Spencer -MCR Microcenter -MRR Morrisons -MTC Mothercare -NTR National Trust -OFD Office Depot -OFM Office Max -PST Past Times -PTS Pet Smart -PTC Petco -PLY Play.com -PTB Pottery Barn -RST Restoration Hardware -RTZ Ritz Camera -SFW Safeway -SNS Sainsbury’s -SLF Selfridges -STP Staples -TRG Target -TES Tesco -TSR Toys ‘R’ Us -TSO TSO (The Stationery Office) -VRG Virgin Megastores -WHS W H Smith -WTR Waitrose -WLM Wal-Mart -WST Waterstone’s -WHT Whitcoul’s -WLS Williams Sonoma -WLW Woolworths -ZVV Zavvi Formerly Virgin Megastores (UK) -ZZZ Other Include retailer name in diff --git a/support/codes/140.tsv b/support/codes/140.tsv deleted file mode 100644 index 03a81a4..0000000 --- a/support/codes/140.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 WARNING: CHOKING HAZARD -- Small parts | Not for children under 3 yrs. List withdrawn - use List 143 -02 WARNING: CHOKING HAZARD -- This toy is a small ball | Not for children under 3 yrs. List withdrawn - use List 143 -03 WARNING: CHOKING HAZARD -- Toy contains a small ball | Not for children under 3 yrs. List withdrawn - use List 143 -04 WARNING: CHOKING HAZARD -- Children under 8 yrs. can choke or suffocate on uninflated or broken balloons. Adult supervision required | Keep uninflated balloons from children. Discard broken balloons at once. List withdrawn - use List 143 -05 WARNING: CHOKING HAZARD -- This toy is a marble | Not for children under 3 yrs. List withdrawn - use List 143 -06 WARNING: CHOKING HAZARD -- Toy contains a marble | Not for children under 3 yrs. List withdrawn - use List 143 -07 No choking hazard warning necessary List withdrawn - use List 143 diff --git a/support/codes/141.tsv b/support/codes/141.tsv deleted file mode 100644 index 27c2f29..0000000 --- a/support/codes/141.tsv +++ /dev/null @@ -1,10 +0,0 @@ -00 Not barcoded -01 Barcoded, scheme unspecified -02 GTIN-13 -03 GTIN-13+5 (US dollar price encoded) -04 GTIN-13+5 (CAN dollar price encoded) -05 GTIN-13+5 (no price encoded) -06 UPC-12 (item-specific) AKA item/price -07 UPC-12+5 (item-specific) AKA item/price -08 UPC-12 (price-point) AKA price/item -09 UPC-12+5 (price-point) AKA price/item diff --git a/support/codes/142.tsv b/support/codes/142.tsv deleted file mode 100644 index f07eeff..0000000 --- a/support/codes/142.tsv +++ /dev/null @@ -1,12 +0,0 @@ -00 Unknown / unspecified Position unknown or unspecified -01 Cover 4 The back cover of a book -02 Cover 3 The inside back cover of a book -03 Cover 2 The inside front cover of a book -04 Cover 1 The front cover of a book -05 On spine The spine of a book -06 On box Used only for boxed products -07 On tag Used only for products fitted with hanging tags -08 On bottom Not be used for books unless they are contained within outer packaging -09 On back Not be used for books unless they are contained within outer packaging -10 On outer sleeve / back Used only for products packaged in outer sleeves -11 On removable wrapping Used only for products packaged in shrink-wrap or other removable wrapping diff --git a/support/codes/143.tsv b/support/codes/143.tsv deleted file mode 100644 index 9e7cb60..0000000 --- a/support/codes/143.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 WARNING: CHOKING HAZARD -- Small parts | Not for children under 3 yrs. Required on applicable products sold in the US -02 WARNING: CHOKING HAZARD -- Children under 8 yrs. can choke or suffocate on uninflated or broken balloons. Adult supervision required | Keep uninflated balloons from children. Discard broken balloons at once. Required on applicable products sold in the US -03 WARNING: CHOKING HAZARD -- This toy is a small ball | Not for children under 3 yrs. Required on applicable products sold in the US -04 WARNING: CHOKING HAZARD -- Toy contains a small ball | Not for children under 3 yrs. Required on applicable products sold in the US -05 WARNING: CHOKING HAZARD -- This toy is a marble | Not for children under 3 yrs. Required on applicable products sold in the US -06 WARNING: CHOKING HAZARD -- Toy contains a marble | Not for children under 3 yrs. Required on applicable products sold in the US -07 No choking hazard warning necessary To be used when a supplier wishes to make a clear statement that no such warning is applicable to product. diff --git a/support/codes/144.tsv b/support/codes/144.tsv deleted file mode 100644 index 4c34bdc..0000000 --- a/support/codes/144.tsv +++ /dev/null @@ -1,4 +0,0 @@ -00 None Has no technical protection -01 DRM Has DRM protection -02 Digital watermarking Has digital watermarking -03 Adobe DRM Has DRM protection applied by the Adobe CS4 Content Server Package or by the Adobe ADEPT hosted service diff --git a/support/codes/145.tsv b/support/codes/145.tsv deleted file mode 100644 index bd60458..0000000 --- a/support/codes/145.tsv +++ /dev/null @@ -1,5 +0,0 @@ -01 Preview Preview before purchase -02 Print Print paper copy of extract -03 Copy / paste Make digital copy of extract -04 Share Share product across multiple concurrent devices -05 Text to speech ‘Read aloud’ with text to speech functionality diff --git a/support/codes/146.tsv b/support/codes/146.tsv deleted file mode 100644 index 3097766..0000000 --- a/support/codes/146.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 Permitted unlimited -02 Permitted subject to limit Limit should be specified in -03 Prohibited diff --git a/support/codes/147.tsv b/support/codes/147.tsv deleted file mode 100644 index c586abe..0000000 --- a/support/codes/147.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Copies Maximum number of copies that may be made of a permitted extract -02 Characters Maximum number of characters in a permitted extract for a specified usage -03 Words Maximum number of words in a permitted extract for a specified usage -04 Pages Maximum number of pages in a permitted extract for a specified usage -05 Percentage Maximum percentage of total content in a permitted extract for a specified usage -06 Devices Maximum number of devices in ‘share group’ -07 Concurrent users Maximum number of concurrent users diff --git a/support/codes/148.tsv b/support/codes/148.tsv deleted file mode 100644 index d0a309d..0000000 --- a/support/codes/148.tsv +++ /dev/null @@ -1,3 +0,0 @@ -00 Unspecified (default) Collection type is not determined -10 Publisher collection The collection is a bibliographic collection (eg a series) defined and identified by a publisher, either on the product itself or in product information supplied by the publisher -20 Ascribed collection The collection has been defined and identified by a party in the metadata supply chain other than the publisher, typically an aggregator diff --git a/support/codes/149.tsv b/support/codes/149.tsv deleted file mode 100644 index 7e45da5..0000000 --- a/support/codes/149.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 Product The title element refers to an individual product -02 Collection level The title element refers to the top level of a bibliographic collection. -03 Subcollection The title element refers to an intermediate level of a bibliographic collection that comprises two or more ‘sub-collections’ -04 Content item The title element refers to a content item within a product, eg a work included in a combined or ‘omnibus’ edition, or a chapter in a book. diff --git a/support/codes/150.tsv b/support/codes/150.tsv deleted file mode 100644 index 338ef0c..0000000 --- a/support/codes/150.tsv +++ /dev/null @@ -1,124 +0,0 @@ -00 Undefined -AA Audio Audio recording - detail unspecified -AB Audio cassette Audio cassette (analogue) -AC CD-Audio Audio compact disc, in any recording format: use coding from List 78 to specify the format, if required -AD DAT Digital audio tape cassette -AE Audio disc Audio disc (excluding CD) -AF Audio tape Audio tape (reel tape) -AG MiniDisc Sony MiniDisc format -AH CD-Extra Audio compact disc with part CD-ROM content -AI DVD Audio -AJ Downloadable audio file Audio recording downloadable online -AK Pre-recorded MP3 player For example, Playaway audiobook and player -AL Pre-recorded SD card For example, Audiofy audiobook chip -AZ Other audio format Other audio format not specified by AB to AK -BA Book Book - detail unspecified -BB Hardback Hardback or cased book -BC Paperback / softback Paperback or other softback book -BD Loose-leaf Loose-leaf book -BE Spiral bound Spiral, comb or coil bound book -BF Pamphlet Pamphlet or brochure, stapled; German 'geheftet' -BG Leather / fine binding -BH Board book Child’s book with all pages printed on board -BI Rag book Child’s book with all pages printed on textile -BJ Bath book Child’s book printed on waterproof material -BK Novelty book A book whose novelty consists wholly or partly in a format which cannot be described by any other available code – a ‘conventional’ format code is always to be preferred; one or more product form detail codes from List 78 / 175, eg from the B2nn group, should be used whenever possible to provide additional description. -BL Slide bound Slide bound book -BM Big book Extra-large format for teaching etc; this format and terminology may be specifically UK; required as a top-level differentiator -BN Part-work (fascículo) A part-work issued with its own ISBN and intended to be collected and bound into a complete book -BO Fold-out book or chart Concertina-folded book or chart, designed to fold to pocket or regular page size: use for German 'Leporello' -BP Foam book A children’s book whose cover and pages are made of foam -BZ Other book format Other book format or binding not specified by BB to BO -CA Sheet map Sheet map - detail unspecified -CB Sheet map, folded -CC Sheet map, flat -CD Sheet map, rolled See Code List 80 for 'rolled in tube' -CE Globe Globe or planisphere -CZ Other cartographic Other cartographic format not specified by CB to CE -DA Digital (on physical carrier) Digital content delivered on a physical carrier (detail unspecified) -DB CD-ROM -DC CD-I CD interactive -DE Game cartridge -DF Diskette AKA 'floppy disc' -DI DVD-ROM -DJ Secure Digital (SD) Memory Card -DK Compact Flash Memory Card -DL Memory Stick Memory Card -DM USB Flash Drive -DN Double-sided CD/DVD Double-sided disc, one side Audio CD/CD-ROM, other side DVD -DZ Other digital carrier Other carrier of digital content not specified by DB to DN -EA Digital (delivered electronically) Digital content delivered electronically (delivery method unspecified) -EB Digital download and online Digital content available both by download and by online access -EC Digital online Digital content accessed online only -ED Digital download Digital content delivered by download only -FA Film or transparency Film or transparency – detail unspecified -FC Slides Photographic transparencies mounted for projection -FD OHP transparencies Transparencies for overhead projector -FE Filmstrip -FF Film Continuous movie film as opposed to filmstrip -FZ Other film or transparency format Other film or transparency format not specified by FB to FF -LA Digital product license Digital product license (delivery method not encoded) -LB Digital product license key Digital product license delivered through the retail supply chain as a physical “key”, typically a card or booklet containing a code enabling the purchaser to download the associated product -LC Digital product license code Digital product license delivered by email or other electronic distribution, typically providing a code enabling the purchaser to upgrade or extend the license supplied with the associated product -MA Microform Microform – detail unspecified -MB Microfiche -MC Microfilm Roll microfilm -MZ Other microform Other microform not specified by MB or MC -PA Miscellaneous print Miscellaneous printed material – detail unspecified -PB Address book May use product form detail codes P201 to P204 to specify binding -PC Calendar -PD Cards Cards, flash cards (eg for teaching reading) -PE Copymasters Copymasters, photocopiable sheets -PF Diary May use product form detail codes P201 to P204 to specify binding -PG Frieze -PH Kit -PI Sheet music -PJ Postcard book or pack -PK Poster Poster for retail sale – see also XF -PL Record book Record book (eg 'birthday book', 'baby book'): binding unspecified; may use product form detail codes P201 to P204 to specify binding -PM Wallet or folder Wallet or folder (containing loose sheets etc): it is preferable to code the contents and treat 'wallet' as packaging (List 80), but if this is not possible the product as a whole may be coded as a 'wallet' -PN Pictures or photographs -PO Wallchart -PP Stickers -PQ Plate (lámina) A book-sized (as opposed to poster-sized) sheet, usually in colour or high quality print -PR Notebook / blank book A book with all pages blank for the buyer's own use; may use product form detail codes P201 to P204 to specify binding -PS Organizer May use product form detail codes P201 to P204 to specify binding -PT Bookmark -PZ Other printed item Other printed item not specified by PB to PQ -SA Multiple-item product Presentation unspecified: format of product items must be given in -SB Multiple-item product, boxed Format of product items must be given in -SC Multiple-item product, slip-cased Format of product items must be given in -SD Multiple-item product, shrinkwrapped Format of product items must be given in -SE Multiple-item product, loose Format of product items must be given in -SF Multiple-item product, part(s) enclosed Multiple item product where subsidiary product part(s) is/are supplied as enclosures to the primary part. eg a book with a CD packaged in a sleeve glued within the back cover. Format of product items must be given in -VA Video Video – detail unspecified -VF Videodisc eg Laserdisc -VI DVD video DVD video: specify TV standard in List 78 -VJ VHS video VHS videotape: specify TV standard in List 78 -VK Betamax video Betamax videotape: specify TV standard in List 78 -VL VCD VideoCD -VM SVCD Super VideoCD -VN HD DVD High definition DVD disc, Toshiba HD DVD format -VO Blu-ray High definition DVD disc, Sony Blu-ray format -VP UMD Video Sony Universal Media disc -VZ Other video format Other video format not specified by VB to VP -XA Trade-only material Trade-only material (unspecified) -XB Dumpbin – empty -XC Dumpbin – filled Dumpbin with contents -XD Counterpack – empty -XE Counterpack – filled Counterpack with contents -XF Poster, promotional Promotional poster for display, not for sale – see also PK -XG Shelf strip -XH Window piece Promotional piece for shop window display -XI Streamer -XJ Spinner -XK Large book display Large scale facsimile of book for promotional display -XL Shrink-wrapped pack A quantity pack with its own product code, for trade supply only: the retail items it contains are intended for sale individually – see also WX. For products or product bundles supplied shrink-wrapped for retail sale, use the Product Form code of the contents plus code 21 from List 80. -XZ Other point of sale Other point of sale material not specified by XB to XL -ZA General merchandise General merchandise – unspecified -ZB Doll -ZC Soft toy Soft or plush toy -ZD Toy -ZE Game Board game, or other game (except computer game: see DE) -ZF T-shirt -ZZ Other merchandise Other merchandise not specified by ZB to ZF diff --git a/support/codes/151.tsv b/support/codes/151.tsv deleted file mode 100644 index abae34d..0000000 --- a/support/codes/151.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Born in -02 Died in -03 Resided in -04 Currently resides in -05 Educated in -06 Worked in -07 Flourished in diff --git a/support/codes/152.tsv b/support/codes/152.tsv deleted file mode 100644 index e0ef550..0000000 --- a/support/codes/152.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 No Not illustrated -02 Yes Illustrated diff --git a/support/codes/153.tsv b/support/codes/153.tsv deleted file mode 100644 index 8e1dccb..0000000 --- a/support/codes/153.tsv +++ /dev/null @@ -1,14 +0,0 @@ -01 Sender-defined text To be used only in circumstances where the parties to an exchange have agreed to include text which (a) is not for general distribution, and (b) cannot be coded elsewhere. If more than one type of text is sent, it must be identified by tagging within the text itself. -02 Short description/annotation Limited to a maximum of 350 characters -03 Description Length unrestricted -04 Table of contents Used for a table of contents sent as a single text field, which may or may not carry structure expressed as XHTML -05 Flap / cover copy Descriptive blurb taken from the back cover and/or flaps -06 Review quote A quote taken from a review of the product or of the work in question where there is no need to take account of different editions -07 Review quote: previous edition A quote taken from a review of a previous edition of the work, where it is -08 Review quote: previous work A quote taken from a review of a previous work by the same author(s) or in the same series -09 Endorsement A quote usually provided by a celebrity to promote a new book, not from a review -10 Promotional headline A promotional phrase which is intended to headline a description of the product -11 Feature Text describing a feature of a product to which the publisher wishes to draw attention for promotional purposes -12 Biographical note A note referring to all contributors to a product – NOT linked to a single contributor -13 Publisher's notice A statement included by a publisher in fulfilment of contractual obligations, such as a disclaimer, sponsor statement, or legal notice of any sort. Note that the inclusion of such a notice cannot and does not imply that a user of the ONIX record is obliged to reproduce it. -14 Excerpt A short excerpt from the work diff --git a/support/codes/154.tsv b/support/codes/154.tsv deleted file mode 100644 index a7c577c..0000000 --- a/support/codes/154.tsv +++ /dev/null @@ -1,9 +0,0 @@ -00 Unrestricted Any audience -01 Restricted Distribution by agreement between the parties to the ONIX exchange (this value is provided to cover applications where ONIX content includes material which is not for general distribution) -02 Booktrade Distributors, bookstores, publisher’s own staff etc -03 End-customers -04 Librarians -05 Teachers -06 Students -07 Press Press or other media -08 Shopping comparison service Where a specially formatted description is required for this audience diff --git a/support/codes/155.tsv b/support/codes/155.tsv deleted file mode 100644 index 1b2acec..0000000 --- a/support/codes/155.tsv +++ /dev/null @@ -1,5 +0,0 @@ -01 Publication date Nominal date of publication -04 Broadcast date Date when a TV or radio program was / will be broadcast -14 From date Date from which a content item or supporting resource may be referenced or used -15 Until date Date until which a content item or supporting resource may be referenced or used -17 Last updated Date when a resource was last changed or updated diff --git a/support/codes/156.tsv b/support/codes/156.tsv deleted file mode 100644 index 373ef88..0000000 --- a/support/codes/156.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 Review -02 Bestseller list -03 Media mention Other than a review -04 ‘One locality, one book’ program (North America) Inclusion in a program such as “Chicago Reads”, “Seattle Reads” diff --git a/support/codes/157.tsv b/support/codes/157.tsv deleted file mode 100644 index 2196032..0000000 --- a/support/codes/157.tsv +++ /dev/null @@ -1,4 +0,0 @@ -01 Printed media -02 Website -03 Radio -04 TV diff --git a/support/codes/158.tsv b/support/codes/158.tsv deleted file mode 100644 index 2194e03..0000000 --- a/support/codes/158.tsv +++ /dev/null @@ -1,24 +0,0 @@ -01 Front cover -02 Back cover -03 Cover / pack Not limited to front or back -04 Contributor picture Photograph or portrait of contributor(s) -05 Series image / artwork -06 Series logo -07 Product image / artwork -08 Product logo -09 Publisher logo -10 Imprint logo -11 Author interview -12 Author presentation Author presentation and/or commentary -13 Author reading -14 Author event schedule -15 Sample content For example: sample chapter text, page images, screenshots -16 Widget A ‘look inside’ feature presented as a small embeddable application -17 Review -18 Other commentary / discussion -19 Reading group guide -20 Teacher’s guide -21 Feature article Feature article provided by publisher -22 Character ‘interview’ Fictional character ‘interview’ -23 Wallpaper / screensaver -24 Press release diff --git a/support/codes/159.tsv b/support/codes/159.tsv deleted file mode 100644 index aee6127..0000000 --- a/support/codes/159.tsv +++ /dev/null @@ -1,6 +0,0 @@ -01 Application An executable together with data on which it operates -02 Audio A sound recording -03 Image A still image -04 Text Readable text, with or without associated images etc -05 Video Moving images, with or without accompanying sound -06 Multi-mode A website or other supporting resource delivering content in a variety of modes diff --git a/support/codes/160.tsv b/support/codes/160.tsv deleted file mode 100644 index e69de29..0000000 diff --git a/support/codes/161.tsv b/support/codes/161.tsv deleted file mode 100644 index ef6822f..0000000 --- a/support/codes/161.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 Linkable resource A resource that may be accessed by a hyperlink -02 Downloadable file A file that may be downloaded on demand for third-party use -03 Embeddable application An application which is supplied in a form which can be embedded into a third-party webpage diff --git a/support/codes/162.tsv b/support/codes/162.tsv deleted file mode 100644 index 7dd09a6..0000000 --- a/support/codes/162.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 File format Resource Form Feature Value carries a code from List 178 -02 Image height in pixels Resource Form Feature Value carries an integer -03 Image width in pixels Resource Form Feature Value carries an integer diff --git a/support/codes/163.tsv b/support/codes/163.tsv deleted file mode 100644 index c7ac527..0000000 --- a/support/codes/163.tsv +++ /dev/null @@ -1,7 +0,0 @@ -01 Publication date Nominal date of publication -09 Public announcement date Date when a new product may be announced to the general public -10 Trade announcement date Date when a new product may be announced for trade only -11 Date of first publication Date when the work incorporated in a product was first published -12 Last reprint date Date when a product was last reprinted -13 Out-of-print / deletion date Date when a product was declared out-of-print or deleted -16 Last reissue date Date when a product was last reissued diff --git a/support/codes/164.tsv b/support/codes/164.tsv deleted file mode 100644 index 64a9d06..0000000 --- a/support/codes/164.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Manifestation of Product X is or includes a manifestation of work Y -02 Derived from Product X is or includes a manifestation of a work derived from work Y in one or more of the ways specified in ISTC rules. This relation type is intended to enable products with a common 'parent' work to be linked without specifying the precise nature of their derivation. diff --git a/support/codes/165.tsv b/support/codes/165.tsv deleted file mode 100644 index 33b689c..0000000 --- a/support/codes/165.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Supplier’s sales classification A rating applied by a supplier (typically a wholesaler) to indicate its assessment of the expected or actual sales performance of a product -02 Supplier’s bonus eligibility A supplier’s coding of the eligibility of a product for a bonus scheme on overall sales diff --git a/support/codes/166.tsv b/support/codes/166.tsv deleted file mode 100644 index 982c005..0000000 --- a/support/codes/166.tsv +++ /dev/null @@ -1,2 +0,0 @@ -02 Embargo date If there is an embargo on retail sales before a certain date, the date from which the embargo is lifted and retail sales are permitted -08 Expected availability date The date on which physical stock is expected to be available to be shipped to retailers, or a digital product is expected to be released diff --git a/support/codes/167.tsv b/support/codes/167.tsv deleted file mode 100644 index c51bd38..0000000 --- a/support/codes/167.tsv +++ /dev/null @@ -1,3 +0,0 @@ -01 Includes updates Purchase at this price includes specified updates -02 Must also purchase updates Purchase at this price requires commitment to purchase specified updates, not included in price -03 Updates available Updates may be purchased separately, no minimum commitment required diff --git a/support/codes/168.tsv b/support/codes/168.tsv deleted file mode 100644 index 59d678b..0000000 --- a/support/codes/168.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 Time period The price condition quantity represents a time period -02 Number of updates The price condition quantity is a number of updates diff --git a/support/codes/169.tsv b/support/codes/169.tsv deleted file mode 100644 index 21800e4..0000000 --- a/support/codes/169.tsv +++ /dev/null @@ -1,3 +0,0 @@ -00 Units The quantity refers to a unit implied by the quantity type -08 Weeks -09 Months diff --git a/support/codes/170.tsv b/support/codes/170.tsv deleted file mode 100644 index e69de29..0000000 diff --git a/support/codes/171.tsv b/support/codes/171.tsv deleted file mode 100644 index 848257f..0000000 --- a/support/codes/171.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 VAT Value added tax (TVA, IVA, MwSt etc) -02 GST General sales tax diff --git a/support/codes/172.tsv b/support/codes/172.tsv deleted file mode 100644 index 02a3b65..0000000 --- a/support/codes/172.tsv +++ /dev/null @@ -1 +0,0 @@ -EU Eurozone Countries that at the time being have the Euro as their national currency diff --git a/support/codes/173.tsv b/support/codes/173.tsv deleted file mode 100644 index 0d920cd..0000000 --- a/support/codes/173.tsv +++ /dev/null @@ -1,2 +0,0 @@ -14 From date Date on which a price becomes effective -15 Until date Date on which a price ceases to be effective diff --git a/support/codes/174.tsv b/support/codes/174.tsv deleted file mode 100644 index 2bcb3ca..0000000 --- a/support/codes/174.tsv +++ /dev/null @@ -1,2 +0,0 @@ -01 No Price not printed on product -02 Yes Price printed on product diff --git a/support/codes/175.tsv b/support/codes/175.tsv deleted file mode 100644 index 3506eed..0000000 --- a/support/codes/175.tsv +++ /dev/null @@ -1,175 +0,0 @@ -A101 CD standard audio format CD 'red book' format -A102 SACD super audio format -A103 MP3 format -A104 WAV format -A105 Real Audio format -A106 WMA Windows Media Audio format -A107 AAC Advanced Audio Coding format -A108 Ogg/Vorbis Vorbis audio format in the Ogg container -A109 Audible Audio format proprietary to Audible.com -A110 FLAC Free lossless audio codec -A111 AIFF Audio Interchangeable File Format -A112 ALAC Apple Lossless Audio Codec -A201 DAISY 2: full audio with title only (no navigation) -A202 DAISY 2: full audio with navigation -A203 DAISY 2: full audio with navigation and partial text -A204 DAISY 2: full audio and full text -A205 DAISY 2: full text and some audio -A206 DAISY 2: full text and no audio -A207 DAISY 3: full audio with title only (no navigation) -A208 DAISY 3: full audio with navigation -A209 DAISY 3: full audio with navigation and partial text -A210 DAISY 3: full audio and full text -A211 DAISY 3: full text and some audio -A212 DAISY 3: full text and no audio -B101 Mass market (rack) paperback In North America, a category of paperback characterized partly by page size (typically 4¼ x 7 1/8 inches) and partly by target market and terms of trade. Use with Product Form code BC. -B102 Trade paperback (US) In North America, a category of paperback characterized partly by page size and partly by target market and terms of trade. AKA 'quality paperback', and including textbooks. Most paperback books sold in North America except 'mass-market' (B101) and 'tall rack' (B107) are correctly described with this code. Use with Product Form code BC. -B103 Digest format paperback In North America, a category of paperback characterized by page size and generally used for children's books; use with Product Form code BC. Note: was wrongly shown as B102 (duplicate entry) in Issue 3. -B104 A-format paperback In UK, a category of paperback characterized by page size (normally 178 x 111 mm approx); use with Product Form code BC -B105 B-format paperback In UK, a category of paperback characterized by page size (normally 198 x 129 mm approx); use with Product Form code BC -B106 Trade paperback (UK) In UK, a category of paperback characterized partly by size (usually in traditional hardback dimensions), and often used for paperback originals; use with Product Form code BC (replaces 'C-format' from former List 8) -B107 Tall rack paperback (US) In North America, a category of paperback characterised partly by page size and partly by target market and terms of trade; use with Product Form code BC -B108 A5: Tankobon Japanese hardcover format -B109 B5: Tankobon Japanese hardcover format -B110 B6: Tankobon Japanese hardcover format -B111 A6: Bunko Japanese paperback format -B112 B40-dori: Shinsho Japanese paperback format -B113 Pocket (Sweden) A Swedish paperback format, use with Product Form Code BC -B114 Storpocket (Sweden) A Swedish paperback format, use with Product Form Code BC -B115 Kartonnage (Sweden) A Swedish hardback format, use with Product Form Code BB -B116 Flexband (Sweden) A Swedish softback format, use with Product Form Code BC -B201 Coloring / join-the-dot book -B202 Lift-the-flap book -B204 Miniature book Note: was wrongly shown as B203 (duplicate entry) in Issue 3 -B205 Moving picture / flicker book -B206 Pop-up book -B207 Scented / 'smelly' book -B208 Sound story / 'noisy' book -B209 Sticker book -B210 Touch-and-feel book A book whose pages have a variety of textured inserts designed to stimulate tactile exploration: see also B214 and B215 -B212 Die-cut book A book which is cut into a distinctive non-rectilinear shape and/or in which holes or shapes have been cut internally. (‘Die-cut’ is used here as a convenient shorthand, and does not imply strict limitation to a particular production process.) -B213 Book-as-toy A book which is also a toy, or which incorporates a toy as an integral part. (Do not, however, use B213 for a multiple-item product which includes a book and a toy as separate items.) -B214 Soft-to-touch book A book whose cover has a soft textured finish, typically over board -B215 Fuzzy-felt book A book with detachable felt pieces and textured pages on which they can be arranged -B221 Picture book Children's picture book: use with applicable Product Form code -B301 Loose leaf - sheets & binder Use with Product Form code BD -B302 Loose leaf - binder only Use with Product Form code BD -B303 Loose leaf - sheets only Use with Product Form code BD -B304 Sewn AKA stitched; for 'saddle-sewn', see code B310 -B305 Unsewn / adhesive bound Including 'perfect bound', 'glued' -B306 Library binding Strengthened binding intended for libraries -B307 Reinforced binding Strengthened binding, not specifically intended for libraries -B308 Half bound Must be accompanied by a code specifiying a material, eg 'half-bound real leather' -B309 Quarter bound Must be accompanied by a code specifiying a material, eg 'quarter bound real leather' -B310 Saddle-sewn AKA 'saddle-stitched' or 'wire-stitched' -B311 Comb bound Round or oval plastic forms in a clamp-like configuration: use with code BE from List 7 -B312 Wire-O Twin loop metal or plastic spine: use with code BE from List 7 -B313 Concealed wire Cased over Wire-O binding: use with code BE from List 7 -B401 Cloth over boards AKA fabric, linen over boards -B402 Paper over boards -B403 Leather, real -B404 Leather, imitation -B405 Leather, bonded -B406 Vellum -B409 Cloth Cloth, not necessarily over boards – cf B401 -B410 Imitation cloth Spanish 'simil-tela' -B411 Velvet -B412 Flexible plastic/vinyl cover AKA “flexibound”: use with code BC from List 7 -B413 Plastic-covered -B414 Vinyl-covered -B415 Laminated cover Book, laminating material unspecified: use L101 for "whole product laminated", eg a laminated sheet map or wallchart -B501 With dust jacket Type unspecified -B502 With printed dust jacket Used to distinguish from B503 -B503 With translucent dust cover With translucent paper or plastic protective cover -B504 With flaps For paperback with flaps -B505 With thumb index -B506 With ribbon marker(s) If the number of markers is significant, it can be stated as free text in -B507 With zip fastener -B508 With button snap fastener -B509 With leather edge lining AKA yapp edge? -B601 Turn-around book A book in which half the content is printed upside-down, to be read the other way round -B602 Unflipped manga format Manga with pages and panels in the sequence of the original Japanese, but with Western text -B701 UK Braille Grade 1 Single letters only -B702 UK Braille Grade 2 With some letter combinations -B703 US Braille -D101 Real Video format -D102 Quicktime format -D103 AVI format -D104 Windows Media Video format -D105 MPEG-4 -D201 MS-DOS Use with an applicable Product Form code D*; note that more detail of operating system requirements can be given in a Product Form Feature composite -D202 Windows Use with an applicable Product Form code D*; see note on D201 -D203 Macintosh Use with an applicable Product Form code D*; see note on D201 -D204 UNIX / LINUX Use with an applicable Product Form code D*; see note on D201 -D205 Other operating system(s) Use with an applicable Product Form code D*; see note on D201 -D206 Palm OS Use with an applicable Product Form code D*; see note on D201 -D207 Windows Mobile Use with an applicable Product Form code D*; see note on D201 -D301 Microsoft XBox Use with Product Form code DE or DB as applicable -D302 Nintendo Gameboy Color Use with Product Form code DE or DB as applicable -D303 Nintendo Gameboy Advanced Use with Product Form code DE or DB as applicable -D304 Nintendo Gameboy Use with Product Form code DE or DB as applicable -D305 Nintendo Gamecube Use with Product Form code DE or DB as applicable -D306 Nintendo 64 Use with Product Form code DE or DB as applicable -D307 Sega Dreamcast Use with Product Form code DE or DB as applicable -D308 Sega Genesis/Megadrive Use with Product Form code DE or DB as applicable -D309 Sega Saturn Use with Product Form code DE or DB as applicable -D310 Sony PlayStation 1 Use with Product Form code DE or DB as applicable -D311 Sony PlayStation 2 Use with Product Form code DE or DB as applicable -D312 Nintendo Dual Screen -D313 Sony PlayStation 3 -D314 Xbox 360 -D315 Nintendo Wii -D316 Sony PlayStation Portable (PSP) -E101 EPUB The Open Publication Structure / OPS Container Format standard of the International Digital Publishing Forum (IDPF) [File extension .epub] -E102 OEB The Open EBook format of the IDPF, a predecessor of the full EPUB format, still (2008) supported as part of the latter [File extension .opf] -E103 DOC Microsoft Word binary document format [File extension .doc] -E104 DOCX Office Open XML / Microsoft Word XML document format (ISO/IEC 29500:2008) [File extension .docx] -E105 HTML HyperText Mark-up Language [File extension .html, .htm] -E106 ODF Open Document Format [File extension .odt] -E107 PDF Portable Document Format (ISO 32000-1:2008) [File extension .pdf] -E108 PDF/A PDF archiving format defined by ISO 19005-1:2005 [File extension .pdf] -E109 RTF Rich Text Format [File extension .rtf] -E110 SGML Standard Generalized Mark-up Language -E111 TCR A compressed text format mainly used on Psion handheld devices [File extension .tcr] -E112 TXT Text file format [File extension .txt] -E113 XHTML Extensible Hypertext Markup Language [File extension .xhtml, .xht, .xml, .html, .htm] -E114 zTXT A compressed text format mainly used on Palm handheld devices [File extension .pdb – see also E121, E125, E130] -E115 XPS XML Paper Specification format [File extension .xps] -E116 Amazon Kindle A format proprietary to Amazon for use with its Kindle reading device [File extension .azw] -E117 BBeB A Sony proprietary format for use with the Sony Reader and LIBRIé reading devices [File extension .lrf] -E118 DXReader A proprietary format for use with DXReader software -E119 EBL A format proprietary to the Ebook Library service -E120 Ebrary A format proprietary to the Ebrary service -E121 eReader A proprietary format for use with eReader (aka ‘Palm Reader’) software on various hardware platforms [File extension .pdb – see also E114, E125, E130] -E122 Exebook A proprietary format with its own reading system for Windows platforms [File extension .exe] -E123 Franklin eBookman A proprietary format for use with the Franklin eBookman reader -E124 Gemstar Rocketbook A proprietary format for use with the Gemstar Rocketbook reader [File extension .rb] -E125 iSilo A proprietary format for use with iSilo software on various hardware platforms [File extension .pdb – see also E114, E121, E130] -E126 Microsoft Reader A proprietary format for use with Microsoft Reader software on Windows and Pocket PC platforms [File extension .lit] -E127 Mobipocket A proprietary format for use with Mobipocket software on various hardware platforms [File extension .prc] -E128 MyiLibrary A format proprietary to the MyiLibrary service -E129 NetLibrary A format proprietary to the NetLibrary service -E130 Plucker A proprietary format for use with Plucker reader software on Palm and other handheld devices [File extension .pdb – see also E114, E121, E125] -E131 VitalBook A format proprietary to the VitalSource service -L101 Laminated Whole product laminated (eg laminated map, fold-out chart, wallchart, etc): use B415 for book with laminated cover -P101 Desk calendar Use with Product Form code PC -P102 Mini calendar Use with Product Form code PC -P103 Engagement calendar Use with Product Form code PC -P104 Day by day calendar Use with Product Form code PC -P105 Poster calendar Use with Product Form code PC -P106 Wall calendar Use with Product Form code PC -P107 Perpetual calendar Use with Product Form code PC -P108 Advent calendar Use with Product Form code PC -P109 Bookmark calendar Use with Product Form code PC -P110 Student calendar Use with Product Form code PC -P111 Project calendar Use with Product Form code PC -P112 Almanac calendar Use with Product Form code PC -P113 Other calendar A calendar that is not one of the types specified elsewhere: use with Product Form code PC -P114 Other calendar or organiser product A product that is associated with or ancillary to a calendar or organiser, eg a deskstand for a calendar, or an insert for an organiser: use with Product Form code PC or PS -P201 Hardback (stationery) Stationery item in hardback book format -P202 Paperback / softback (stationery) Stationery item in paperback/softback book format -P203 Spiral bound (stationery) Stationery item in spiral-bound book format -P204 Leather / fine binding (stationery) Stationery item in leather-bound book format, or other fine binding -V201 PAL TV standard for video or DVD -V202 NTSC TV standard for video or DVD -V203 SECAM TV standard for video or DVD diff --git a/support/codes/176.tsv b/support/codes/176.tsv deleted file mode 100644 index de67935..0000000 --- a/support/codes/176.tsv +++ /dev/null @@ -1,12 +0,0 @@ -01 Android An Open Source mobile device operating system originally developed by Google and supported by the Open Handset Alliance -02 BlackBerry OS A proprietary operating system supplied by Research In Motion for its BlackBerry handheld devices -03 iPhone OS A proprietary operating system based on Mac OS X supplied by Apple for its iPhone and iPod Touch handheld devices -04 Linux An operating system based on the Linux kernel -05 Mac OS A proprietary operating system supplied by Apple on Macintosh computers up to 2002 -06 Mac OS X A proprietary operating system supplied by Apple on Macintosh computers up to 2002 -07 Palm OS A proprietary operating system (aka Garnet OS) originally developed for handheld devices -08 Palm webOS A Linux-based operating system for handheld devices -09 Symbian An operating system for hand-held devices, originally developed as a proprietary system, but planned to become wholly Open Source by 2010 -10 Windows A proprietary operating system supplied by Microsoft -11 Windows CE A proprietary operating system (aka Windows Embedded Compact, WinCE) supplied by Microsoft for small-scale devices -12 Windows Mobile A proprietary operating system supplied by Microsoft for mobile devices diff --git a/support/codes/177.tsv b/support/codes/177.tsv deleted file mode 100644 index c22dc44..0000000 --- a/support/codes/177.tsv +++ /dev/null @@ -1,2 +0,0 @@ -50 Date of birth -51 Date of death diff --git a/support/codes/178.tsv b/support/codes/178.tsv deleted file mode 100644 index 53f0b8f..0000000 --- a/support/codes/178.tsv +++ /dev/null @@ -1,17 +0,0 @@ -A103 MP3 -A104 WAV -A105 Real Audio -A106 WMA Windows Media Audio format -A107 AAC Advanced Audio Coding format -D101 Real Video -D102 QuickTime -D103 AVI -D104 WMV Windows Media Video format -D105 MPEG-4 -D106 FLV Flash Video -D107 SWF ShockWave -D401 PDF -D501 GIF -D502 JPEG -D503 PNG -D504 TIFF