milkfarm-onix 0.8.6 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. data/CHANGELOG +21 -0
  2. data/README.markdown +1 -0
  3. data/lib/onix.rb +4 -17
  4. data/lib/onix/code_list_extractor.rb +69 -0
  5. data/lib/onix/lists.rb +134 -0
  6. data/lib/onix/product.rb +14 -0
  7. data/lib/onix/sl_product.rb +24 -1
  8. data/lib/onix/version.rb +3 -0
  9. data/lib/onix/work_identifier.rb +28 -0
  10. data/spec/apa_product_spec.rb +9 -9
  11. data/spec/audience_range_spec.rb +4 -4
  12. data/spec/contributor_spec.rb +4 -4
  13. data/spec/header_spec.rb +7 -7
  14. data/spec/imprint_spec.rb +4 -4
  15. data/spec/language_spec.rb +4 -4
  16. data/spec/lists_spec.rb +33 -0
  17. data/spec/market_representation_spec.rb +4 -6
  18. data/spec/measure_spec.rb +4 -4
  19. data/spec/media_file_spec.rb +4 -4
  20. data/spec/normaliser_spec.rb +28 -4
  21. data/spec/other_text_spec.rb +4 -4
  22. data/spec/price_spec.rb +4 -4
  23. data/spec/product_identifier_spec.rb +4 -4
  24. data/spec/product_spec.rb +8 -8
  25. data/spec/publisher_spec.rb +4 -4
  26. data/spec/reader_spec.rb +11 -11
  27. data/spec/sales_restriction_spec.rb +4 -5
  28. data/spec/sender_identifier.rb +4 -4
  29. data/spec/series_identifier_spec.rb +4 -4
  30. data/spec/series_spec.rb +4 -4
  31. data/spec/spec_helper.rb +4 -1
  32. data/spec/stock_spec.rb +4 -4
  33. data/spec/subject_spec.rb +4 -5
  34. data/spec/supply_detail_spec.rb +4 -4
  35. data/spec/title_spec.rb +4 -4
  36. data/spec/website_spec.rb +4 -4
  37. data/spec/work_identifier_spec.rb +39 -0
  38. data/spec/writer_spec.rb +7 -7
  39. data/support/codes/001.tsv +10 -0
  40. data/support/codes/002.tsv +5 -0
  41. data/support/codes/003.tsv +7 -0
  42. data/support/codes/005.tsv +13 -0
  43. data/support/codes/006.tsv +76 -0
  44. data/support/codes/007.tsv +123 -0
  45. data/support/codes/008.tsv +7 -0
  46. data/support/codes/009.tsv +7 -0
  47. data/support/codes/010.tsv +34 -0
  48. data/support/codes/011.tsv +11 -0
  49. data/support/codes/012.tsv +11 -0
  50. data/support/codes/013.tsv +7 -0
  51. data/support/codes/014.tsv +4 -0
  52. data/support/codes/015.tsv +13 -0
  53. data/support/codes/016.tsv +6 -0
  54. data/support/codes/017.tsv +90 -0
  55. data/support/codes/018.tsv +3 -0
  56. data/support/codes/019.tsv +7 -0
  57. data/support/codes/020.tsv +0 -0
  58. data/support/codes/021.tsv +31 -0
  59. data/support/codes/022.tsv +9 -0
  60. data/support/codes/023.tsv +9 -0
  61. data/support/codes/024.tsv +11 -0
  62. data/support/codes/025.tsv +29 -0
  63. data/support/codes/026.tsv +75 -0
  64. data/support/codes/027.tsv +75 -0
  65. data/support/codes/028.tsv +8 -0
  66. data/support/codes/029.tsv +16 -0
  67. data/support/codes/030.tsv +15 -0
  68. data/support/codes/031.tsv +3 -0
  69. data/support/codes/032.tsv +2 -0
  70. data/support/codes/033.tsv +36 -0
  71. data/support/codes/034.tsv +14 -0
  72. data/support/codes/035.tsv +6 -0
  73. data/support/codes/036.tsv +3 -0
  74. data/support/codes/037.tsv +6 -0
  75. data/support/codes/038.tsv +36 -0
  76. data/support/codes/039.tsv +8 -0
  77. data/support/codes/040.tsv +6 -0
  78. data/support/codes/041.tsv +6 -0
  79. data/support/codes/042.tsv +16 -0
  80. data/support/codes/043.tsv +4 -0
  81. data/support/codes/044.tsv +13 -0
  82. data/support/codes/045.tsv +12 -0
  83. data/support/codes/046.tsv +3 -0
  84. data/support/codes/047.tsv +4 -0
  85. data/support/codes/048.tsv +11 -0
  86. data/support/codes/049.tsv +84 -0
  87. data/support/codes/050.tsv +8 -0
  88. data/support/codes/051.tsv +27 -0
  89. data/support/codes/052.tsv +1 -0
  90. data/support/codes/053.tsv +3 -0
  91. data/support/codes/054.tsv +23 -0
  92. data/support/codes/055.tsv +13 -0
  93. data/support/codes/056.tsv +2 -0
  94. data/support/codes/057.tsv +5 -0
  95. data/support/codes/058.tsv +21 -0
  96. data/support/codes/059.tsv +4 -0
  97. data/support/codes/060.tsv +2 -0
  98. data/support/codes/061.tsv +3 -0
  99. data/support/codes/062.tsv +5 -0
  100. data/support/codes/063.tsv +0 -0
  101. data/support/codes/064.tsv +13 -0
  102. data/support/codes/065.tsv +25 -0
  103. data/support/codes/066.tsv +4 -0
  104. data/support/codes/067.tsv +2 -0
  105. data/support/codes/068.tsv +15 -0
  106. data/support/codes/069.tsv +4 -0
  107. data/support/codes/070.tsv +2 -0
  108. data/support/codes/071.tsv +9 -0
  109. data/support/codes/072.tsv +7 -0
  110. data/support/codes/073.tsv +36 -0
  111. data/support/codes/074.tsv +489 -0
  112. data/support/codes/075.tsv +2 -0
  113. data/support/codes/076.tsv +12 -0
  114. data/support/codes/077.tsv +19 -0
  115. data/support/codes/078.tsv +148 -0
  116. data/support/codes/079.tsv +17 -0
  117. data/support/codes/080.tsv +19 -0
  118. data/support/codes/081.tsv +11 -0
  119. data/support/codes/082.tsv +17 -0
  120. data/support/codes/083.tsv +68 -0
  121. data/support/codes/084.tsv +10 -0
  122. data/support/codes/085.tsv +23 -0
  123. data/support/codes/086.tsv +5 -0
  124. data/support/codes/087.tsv +6 -0
  125. data/support/codes/088.tsv +0 -0
  126. data/support/codes/089.tsv +1 -0
  127. data/support/codes/090.tsv +11 -0
  128. data/support/codes/091.tsv +248 -0
  129. data/support/codes/092.tsv +7 -0
  130. data/support/codes/093.tsv +13 -0
  131. data/support/codes/094.tsv +3 -0
  132. data/support/codes/095.tsv +3 -0
  133. data/support/codes/096.tsv +185 -0
  134. data/support/codes/097.tsv +1 -0
  135. data/support/codes/098.tsv +21 -0
  136. data/support/codes/099.tsv +24 -0
  137. data/support/codes/100.tsv +4 -0
  138. data/support/codes/101.tsv +2 -0
  139. data/support/codes/102.tsv +3 -0
  140. data/support/codes/121.tsv +127 -0
  141. data/support/codes/138.tsv +6 -0
  142. data/support/codes/139.tsv +70 -0
  143. data/support/codes/140.tsv +7 -0
  144. data/support/codes/141.tsv +10 -0
  145. data/support/codes/142.tsv +12 -0
  146. data/support/codes/143.tsv +7 -0
  147. data/support/codes/144.tsv +4 -0
  148. data/support/codes/145.tsv +5 -0
  149. data/support/codes/146.tsv +3 -0
  150. data/support/codes/147.tsv +7 -0
  151. data/support/codes/148.tsv +3 -0
  152. data/support/codes/149.tsv +4 -0
  153. data/support/codes/150.tsv +124 -0
  154. data/support/codes/151.tsv +7 -0
  155. data/support/codes/152.tsv +2 -0
  156. data/support/codes/153.tsv +14 -0
  157. data/support/codes/154.tsv +9 -0
  158. data/support/codes/155.tsv +5 -0
  159. data/support/codes/156.tsv +4 -0
  160. data/support/codes/157.tsv +4 -0
  161. data/support/codes/158.tsv +24 -0
  162. data/support/codes/159.tsv +6 -0
  163. data/support/codes/160.tsv +0 -0
  164. data/support/codes/161.tsv +3 -0
  165. data/support/codes/162.tsv +3 -0
  166. data/support/codes/163.tsv +7 -0
  167. data/support/codes/164.tsv +2 -0
  168. data/support/codes/165.tsv +2 -0
  169. data/support/codes/166.tsv +2 -0
  170. data/support/codes/167.tsv +3 -0
  171. data/support/codes/168.tsv +2 -0
  172. data/support/codes/169.tsv +3 -0
  173. data/support/codes/170.tsv +0 -0
  174. data/support/codes/171.tsv +2 -0
  175. data/support/codes/172.tsv +1 -0
  176. data/support/codes/173.tsv +2 -0
  177. data/support/codes/174.tsv +2 -0
  178. data/support/codes/175.tsv +175 -0
  179. data/support/codes/176.tsv +12 -0
  180. data/support/codes/177.tsv +2 -0
  181. data/support/codes/178.tsv +17 -0
  182. data/support/switch-onix-2.1-short-to-reference.xsl +3 -2
  183. metadata +226 -38
  184. data/lib/onix/lists/audience_code.rb +0 -17
  185. data/lib/onix/lists/contributor_role.rb +0 -99
  186. data/lib/onix/lists/country_code.rb +0 -257
  187. data/lib/onix/lists/language_code.rb +0 -498
  188. data/lib/onix/lists/language_role.rb +0 -18
  189. data/lib/onix/lists/notification_type.rb +0 -19
  190. data/lib/onix/lists/product_availability.rb +0 -32
  191. data/lib/onix/lists/product_form.rb +0 -99
  192. data/lib/onix/lists/product_form_detail.rb +0 -157
data/spec/website_spec.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require File.dirname(__FILE__) + '/spec_helper.rb'
4
4
 
5
- context "ONIX::Website" do
5
+ describe ONIX::Website do
6
6
 
7
7
  before(:each) do
8
8
  data_path = File.join(File.dirname(__FILE__),"..","data")
@@ -11,19 +11,19 @@ context "ONIX::Website" do
11
11
  @root = @doc.root
12
12
  end
13
13
 
14
- specify "should correctly convert to a string" do
14
+ it "should correctly convert to a string" do
15
15
  web = ONIX::Website.from_xml(@root.to_s)
16
16
  web.to_xml.to_s[0,9].should eql("<Website>")
17
17
  end
18
18
 
19
- specify "should provide read access to first level attributes" do
19
+ it "should provide read access to first level attributes" do
20
20
  web = ONIX::Website.from_xml(@root.to_s)
21
21
 
22
22
  web.website_role.should eql(1)
23
23
  web.website_link.should eql("http://www.rainbowbooks.com.au")
24
24
  end
25
25
 
26
- specify "should provide write access to first level attributes" do
26
+ it "should provide write access to first level attributes" do
27
27
  web = ONIX::Website.new
28
28
 
29
29
  web.website_role = 2
@@ -0,0 +1,39 @@
1
+ # coding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/spec_helper.rb'
4
+
5
+ describe ONIX::WorkIdentifier do
6
+
7
+ before(:each) do
8
+ data_path = File.join(File.dirname(__FILE__), "..", "data")
9
+ file1 = File.join(data_path, "work_identifier.xml")
10
+ @doc = Nokogiri::XML::Document.parse(File.read(file1))
11
+ @root = @doc.root
12
+ end
13
+
14
+ it "should correctly convert to a string" do
15
+ t = ONIX::WorkIdentifier.from_xml(@root.to_s)
16
+ t.to_xml.to_s[0,16].should eql("<WorkIdentifier>")
17
+ end
18
+
19
+ it "should provide read access to first level attributes" do
20
+ t = ONIX::WorkIdentifier.from_xml(@root.to_s)
21
+ t.work_id_type.should eql(1)
22
+ t.id_type_name.should eql("Proprietary Publisher Scheme")
23
+ t.id_value.should eql("ABC123")
24
+ end
25
+
26
+ it "should provide write access to first level attributes" do
27
+ t = ONIX::WorkIdentifier.new
28
+
29
+ t.work_id_type = 1
30
+ t.to_xml.to_s.include?("<WorkIDType>01</WorkIDType>").should be_true
31
+
32
+ t.id_type_name = "Proprietary Publisher Scheme"
33
+ t.to_xml.to_s.include?("<IDTypeName>Proprietary Publisher Scheme</IDTypeName>").should be_true
34
+
35
+ t.id_value = "ABC123"
36
+ t.to_xml.to_s.include?("<IDValue>ABC123</IDValue>").should be_true
37
+ end
38
+
39
+ end
data/spec/writer_spec.rb CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  require File.dirname(__FILE__) + '/spec_helper.rb'
4
4
 
5
- context "ONIX::Writer" do
5
+ describe ONIX::Writer do
6
6
 
7
7
  before(:each) do
8
8
  @output = StringIO.new
9
9
  end
10
10
 
11
- specify "should output the correct xml metadata" do
11
+ it "should output the correct xml metadata" do
12
12
  header = ONIX::Header.new
13
13
  writer = ONIX::Writer.new(@output, header)
14
14
  writer.end_document
@@ -22,7 +22,7 @@ context "ONIX::Writer" do
22
22
  lines[1][0,9].should eql("<!DOCTYPE")
23
23
  end
24
24
 
25
- specify "should output the correct xml metadata when used in block form" do
25
+ it "should output the correct xml metadata when used in block form" do
26
26
  header = ONIX::Header.new
27
27
  ONIX::Writer.open(@output, header) { |writer| }
28
28
 
@@ -35,7 +35,7 @@ context "ONIX::Writer" do
35
35
  lines[1][0,9].should eql("<!DOCTYPE")
36
36
  end
37
37
 
38
- specify "should output the header node" do
38
+ it "should output the header node" do
39
39
  header = ONIX::Header.new
40
40
 
41
41
  ONIX::Writer.open(@output, header) { |writer| }
@@ -45,7 +45,7 @@ context "ONIX::Writer" do
45
45
  lines[3][0,7].should eql("<Header")
46
46
  end
47
47
 
48
- specify "should output the product node" do
48
+ it "should output the product node" do
49
49
  header = ONIX::Header.new
50
50
  product = ONIX::Product.new
51
51
 
@@ -58,7 +58,7 @@ context "ONIX::Writer" do
58
58
  lines[4][0,8].should eql("<Product")
59
59
  end
60
60
 
61
- specify "should correctly store finished state" do
61
+ it "should correctly store finished state" do
62
62
  header = ONIX::Header.new
63
63
  writer = ONIX::Writer.new(@output, header)
64
64
  writer.finished?.should be_false
@@ -67,7 +67,7 @@ context "ONIX::Writer" do
67
67
  end
68
68
 
69
69
  =begin
70
- specify "should convert non-ASCII chars to references when outputting as a string" do
70
+ it "should convert non-ASCII chars to references when outputting as a string" do
71
71
  header = ONIX::Header.new
72
72
  header.from_person = "Hans Küng"
73
73
  ONIX::Writer.open(@output, header) { |writer| }
@@ -0,0 +1,10 @@
1
+ 01 Early notification Use for a complete record issued earlier than approximately six months before publication.
2
+ 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.
3
+ 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.
4
+ 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.
5
+ 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.
6
+ 08 Notice of sale Notice of sale of a product, from one publisher to another: sent by the publisher disposing of the product
7
+ 09 Notice of acquisition Notice of acquisition of a product, by one publisher from another: sent by the acquiring publisher
8
+ 12 Update - SupplyDetail only ONIX Books supply update - SupplyDetail only
9
+ 13 Update - MarketRepresentation only ONIX Books supply update - MarketRepresentation only
10
+ 14 Update - SupplyDetail and MarketRepresentation ONIX Books supply update - both SupplyDetail and MarketRepresentation
@@ -0,0 +1,5 @@
1
+ 00 Single-item retail product
2
+ 10 Multiple-item retail product Multiple-item product retailed as a whole
3
+ 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
4
+ 20 Trade-only product Product not for retail, and not carrying retail items, eg empty dumpbin, empty counterpack, promotional material
5
+ 30 Multiple-item trade pack Carrying multiple copies for retailing as separate items, eg shrink-wrapped trade pack, filled dumpbin, filled counterpack
@@ -0,0 +1,7 @@
1
+ 00 Unspecified
2
+ 01 Publisher
3
+ 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
4
+ 03 Wholesaler
5
+ 04 Bibliographic agency
6
+ 05 Library bookseller
7
+ 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
@@ -0,0 +1,13 @@
1
+ 01 Proprietary For example, a publisher’s or wholesaler’s product number.
2
+ 02 ISBN-10 International Standard Book Number, pre-2007, unhyphenated (10 characters)
3
+ 03 GTIN-13 GS1 Global Trade Item Number, formerly known as EAN article number (13 digits)
4
+ 04 UPC UPC product number (12 digits)
5
+ 05 ISMN International Standard Music Number (10 digits)
6
+ 06 DOI Digital Object Identifier (variable length and character set)
7
+ 13 LCCN Library of Congress Control Number (12 characters, alphanumeric)
8
+ 14 GTIN-14 GS1 Global Trade Item Number (14 digits)
9
+ 15 ISBN-13 International Standard Book Number, from 2007, unhyphenated (13 digits)
10
+ 17 Legal deposit number The number assigned to a publication as part of a national legal deposit process
11
+ 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
12
+ 23 OCLC number A unique number assigned to a bibliographic item by OCLC
13
+ 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 <Publisher> composite, with the applicable <PublishingRole> code.
@@ -0,0 +1,76 @@
1
+ 00 Not barcoded
2
+ 01 Barcoded, scheme unspecified
3
+ 02 EAN13 Position unspecified
4
+ 03 EAN13+5 (US dollar price encoded) Position unspecified
5
+ 04 UPC12 Type and position unspecified. DEPRECATED: if possible, use more specific values below.
6
+ 05 UPC12+5 Type and position unspecified. DEPRECATED: if possible, use more specific values below.
7
+ 06 UPC12 (item-specific) AKA item/price: position unspecified
8
+ 07 UPC12+5 (item-specific) AKA item/price: position unspecified
9
+ 08 UPC12 (price-point) AKA price/item: position unspecified
10
+ 09 UPC12+5 (price-point) AKA price/item: position unspecified
11
+ 10 EAN13 on cover 4 ‘Cover 4’ is defined as the back cover of a book
12
+ 11 EAN13+5 on cover 4 (US dollar price encoded) ‘Cover 4’ is defined as the back cover of a book
13
+ 12 UPC12 (item-specific) on cover 4 AKA item/price; 'cover 4' is defined as the back cover of a book
14
+ 13 UPC12+5 (item-specific) on cover 4 AKA item/price; 'cover 4' is defined as the back cover of a book
15
+ 14 UPC12 (price-point) on cover 4 AKA price/item; 'cover 4' is defined as the back cover of a book
16
+ 15 UPC12+5 (price-point) on cover 4 AKA price/item; 'cover 4' is defined as the back cover of a book
17
+ 16 EAN13 on cover 3 ‘Cover 3’ is defined as the inside back cover of a book
18
+ 17 EAN13+5 on cover 3 (US dollar price encoded) ‘Cover 3’ is defined as the inside back cover of a book
19
+ 18 UPC12 (item-specific) on cover 3 AKA item/price; 'cover 3' is defined as the inside back cover of a book
20
+ 19 UPC12+5 (item-specific) on cover 3 AKA item/price; 'cover 3' is defined as the inside back cover of a book
21
+ 20 UPC12 (price-point) on cover 3 AKA price/item; 'cover 3' is defined as the inside back cover of a book
22
+ 21 UPC12+5 (price-point) on cover 3 AKA price/item; 'cover 3' is defined as the inside back cover of a book
23
+ 22 EAN13 on cover 2 ‘Cover 2’ is defined as the inside front cover of a book
24
+ 23 EAN13+5 on cover 2 (US dollar price encoded) ‘Cover 2’ is defined as the inside front cover of a book
25
+ 24 UPC12 (item-specific) on cover 2 AKA item/price; 'cover 2' is defined as the inside front cover of a book
26
+ 25 UPC12+5 (item-specific) on cover 2 AKA item/price; 'cover 2' is defined as the inside front cover of a book
27
+ 26 UPC12 (price-point) on cover 2 AKA price/item; 'cover 2' is defined as the inside front cover of a book
28
+ 27 UPC12+5 (price-point) on cover 2 AKA price/item; 'cover 2' is defined as the inside front cover of a book
29
+ 28 EAN13 on box To be used only on boxed products
30
+ 29 EAN13+5 on box (US dollar price encoded) To be used only on boxed products
31
+ 30 UPC12 (item-specific) on box AKA item/price; to be used only on boxed products
32
+ 31 UPC12+5 (item-specific) on box AKA item/price; to be used only on boxed products
33
+ 32 UPC12 (price-point) on box AKA price/item; to be used only on boxed products
34
+ 33 UPC12+5 (price-point) on box AKA price/item; to be used only on boxed products
35
+ 34 EAN13 on tag To be used only on products fitted with hanging tags
36
+ 35 EAN13+5 on tag (US dollar price encoded) To be used only on products fitted with hanging tags
37
+ 36 UPC12 (item-specific) on tag AKA item/price; to be used only on products fitted with hanging tags
38
+ 37 UPC12+5 (item-specific) on tag AKA item/price; to be used only on products fitted with hanging tags
39
+ 38 UPC12 (price-point) on tag AKA price/item; to be used only on products fitted with hanging tags
40
+ 39 UPC12+5 (price-point) on tag AKA price/item; to be used only on products fitted with hanging tags
41
+ 40 EAN13 on bottom Not be used on books unless they are contained within outer packaging
42
+ 41 EAN13+5 on bottom (US dollar price encoded) Not be used on books unless they are contained within outer packaging
43
+ 42 UPC12 (item-specific) on bottom AKA item/price; not be used on books unless they are contained within outer packaging
44
+ 43 UPC12+5 (item-specific) on bottom AKA item/price; not be used on books unless they are contained within outer packaging
45
+ 44 UPC12 (price-point) on bottom AKA price/item; not be used on books unless they are contained within outer packaging
46
+ 45 UPC12+5 (price-point) on bottom AKA price/item; not be used on books unless they are contained within outer packaging
47
+ 46 EAN13 on back Not be used on books unless they are contained within outer packaging
48
+ 47 EAN13+5 on back (US dollar price encoded) Not be used on books unless they are contained within outer packaging
49
+ 48 UPC12 (item-specific) on back AKA item/price; not be used on books unless they are contained within outer packaging
50
+ 49 UPC12+5 (item-specific) on back AKA item/price; not be used on books unless they are contained within outer packaging
51
+ 50 UPC12 (price-point) on back AKA price/item; not be used on books unless they are contained within outer packaging
52
+ 51 UPC12+5 (price-point) on back AKA price/item; not be used on books unless they are contained within outer packaging
53
+ 52 EAN13+5 on outer sleeve/back (US dollar price encoded) To be used only on products packaged in outer sleeves
54
+ 53 EAN13+5 on outer sleeve/back To be used only on products packaged in outer sleeves
55
+ 54 UPC12 (item-specific) on outer sleeve/back AKA item/price; to be used only on products packaged in outer sleeves
56
+ 55 UPC12+5 (item-specific) on outer sleeve/back AKA item/price; to be used only on products packaged in outer sleeves
57
+ 56 UPC12 (price-point) on outer sleeve/back AKA price/item; to be used only on products packaged in outer sleeves
58
+ 57 UPC12+5 (price-point) on outer sleeve/back AKA price/item; to be used only on products packaged in outer sleeves
59
+ 58 EAN13+5 (no price encoded) Position unspecified
60
+ 59 EAN13+5 on cover 4 (no price encoded) ‘Cover 4’ is defined as the back cover of a book
61
+ 60 EAN13+5 on cover 3 (no price encoded) ‘Cover 3’ is defined as the inside back cover of a book
62
+ 61 EAN13+5 on cover 2 (no price encoded) ‘Cover 2’ is defined as the inside front cover of a book
63
+ 62 EAN13+5 on box (no price encoded) To be used only on boxed products
64
+ 63 EAN13+5 on tag (no price encoded) To be used only on products fitted with hanging tags
65
+ 64 EAN13+5 on bottom (no price encoded) Not be used on books unless they are contained within outer packaging
66
+ 65 EAN13+5 on back (no price encoded) Not be used on books unless they are contained within outer packaging
67
+ 66 EAN13+5 on outer sleeve/back (no price encoded) To be used only on products packaged in outer sleeves
68
+ 67 EAN13+5 (CAN dollar price encoded) Position unspecified
69
+ 68 EAN13+5 on cover 4 (CAN dollar price encoded) ‘Cover 4’ is defined as the back cover of a book
70
+ 69 EAN13+5 on cover 3 (CAN dollar price encoded) ‘Cover 3’ is defined as the inside back cover of a book
71
+ 70 EAN13+5 on cover 2 (CAN dollar price encoded) ‘Cover 2’ is defined as the inside front cover of a book
72
+ 71 EAN13+5 on box (CAN dollar price encoded) To be used only on boxed products
73
+ 72 EAN13+5 on tag (CAN dollar price encoded) To be used only on products fitted with hanging tags
74
+ 73 EAN13+5 on bottom (CAN dollar price encoded) Not be used on books unless they are contained within outer packaging
75
+ 74 EAN13+5 on back (CAN dollar price encoded) Not be used on books unless they are contained within outer packaging
76
+ 75 EAN13 on outer sleeve/back (CAN dollar price encoded) To be used only on products packaged in outer sleeves
@@ -0,0 +1,123 @@
1
+ 00 Undefined
2
+ AA Audio Audio recording - detail unspecified
3
+ AB Audio cassette Audio cassette (analogue)
4
+ AC CD-Audio Audio compact disc, in any recording format: use coding from List 78 to specify the format, if required
5
+ AD DAT Digital audio tape cassette
6
+ AE Audio disc Audio disc (excluding CD)
7
+ AF Audio tape Audio tape (reel tape)
8
+ AG MiniDisc Sony MiniDisc format
9
+ AH CD-Extra Audio compact disc with part CD-ROM content
10
+ AI DVD Audio
11
+ AJ Downloadable audio file Audio recording downloadable online
12
+ AK Pre-recorded MP3 player For example, Playaway audiobook and player
13
+ AL Pre-recorded SD card For example, Audiofy audiobook chip
14
+ AZ Other audio format Other audio format not specified by AB to AK
15
+ BA Book Book - detail unspecified
16
+ BB Hardback Hardback or cased book
17
+ BC Paperback / softback Paperback or other softback book
18
+ BD Loose-leaf Loose-leaf book
19
+ BE Spiral bound Spiral, comb or coil bound book
20
+ BF Pamphlet Pamphlet or brochure, stapled; German 'geheftet'
21
+ BG Leather / fine binding
22
+ BH Board book Child’s book with all pages printed on board
23
+ BI Rag book Child’s book with all pages printed on textile
24
+ BJ Bath book Child’s book printed on waterproof material
25
+ 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.
26
+ BL Slide bound Slide bound book
27
+ BM Big book Extra-large format for teaching etc; this format and terminology may be specifically UK; required as a top-level differentiator
28
+ BN Part-work (fascículo) A part-work issued with its own ISBN and intended to be collected and bound into a complete book
29
+ BO Fold-out book or chart Concertina-folded book or chart, designed to fold to pocket or regular page size: use for German 'Leporello'
30
+ BP Foam book A children’s book whose cover and pages are made of foam
31
+ BZ Other book format Other book format or binding not specified by BB to BO
32
+ CA Sheet map Sheet map - detail unspecified
33
+ CB Sheet map, folded
34
+ CC Sheet map, flat
35
+ CD Sheet map, rolled See Code List 80 for 'rolled in tube'
36
+ CE Globe Globe or planisphere
37
+ CZ Other cartographic Other cartographic format not specified by CB to CE
38
+ DA Digital Digital or multimedia (detail unspecified)
39
+ DB CD-ROM
40
+ DC CD-I CD interactive
41
+ DD DVD DEPRECATED - use VI for DVD video, AI for DVD audio, DI for DVD-ROM
42
+ DE Game cartridge
43
+ DF Diskette AKA 'floppy disc'
44
+ DG Electronic book text Electronic book text in proprietary or open standard format
45
+ DH Online resource An electronic database or other resource or service accessible through online networks
46
+ DI DVD-ROM
47
+ DJ Secure Digital (SD) Memory Card
48
+ DK Compact Flash Memory Card
49
+ DL Memory Stick Memory Card
50
+ DM USB Flash Drive
51
+ DN Double-sided CD/DVD Double-sided disc, one side Audio CD/CD-ROM, other side DVD
52
+ DZ Other digital Other digital or multimedia not specified by DB to DN
53
+ FA Film or transparency Film or transparency – detail unspecified
54
+ FB Film Continuous film or filmstrip: DEPRECATED - use FE or FF
55
+ FC Slides Photographic transparencies mounted for projection
56
+ FD OHP transparencies Transparencies for overhead projector
57
+ FE Filmstrip
58
+ FF Film Continuous movie film as opposed to filmstrip
59
+ FZ Other film or transparency format Other film or transparency format not specified by FB to FF
60
+ MA Microform Microform – detail unspecified
61
+ MB Microfiche
62
+ MC Microfilm Roll microfilm
63
+ MZ Other microform Other microform not specified by MB or MC
64
+ PA Miscellaneous print Miscellaneous printed material – detail unspecified
65
+ PB Address book May use product form detail codes P201 to P204 to specify binding
66
+ PC Calendar
67
+ PD Cards Cards, flash cards (eg for teaching reading)
68
+ PE Copymasters Copymasters, photocopiable sheets
69
+ PF Diary May use product form detail codes P201 to P204 to specify binding
70
+ PG Frieze
71
+ PH Kit
72
+ PI Sheet music
73
+ PJ Postcard book or pack
74
+ PK Poster Poster for retail sale – see also XF
75
+ PL Record book Record book (eg 'birthday book', 'baby book'): may use product form detail codes P201 to P204 to specify binding
76
+ 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'
77
+ PN Pictures or photographs
78
+ PO Wallchart
79
+ PP Stickers
80
+ PQ Plate (lámina) A book-sized (as opposed to poster-sized) sheet, usually in colour or high quality print
81
+ 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
82
+ PS Organizer May use product form detail codes P201 to P204 to specify binding
83
+ PT Bookmark
84
+ PZ Other printed item Other printed item not specified by PB to PQ
85
+ VA Video Video – detail unspecified
86
+ VB Video, VHS, PAL DEPRECATED - use new VJ
87
+ VC Video, VHS, NTSC DEPRECATED - use new VJ
88
+ VD Video, Betamax, PAL DEPRECATED - use new VK
89
+ VE Video, Betamax, NTSC DEPRECATED - use new VK
90
+ VF Videodisc eg Laserdisc
91
+ VG Video, VHS, SECAM DEPRECATED - use new VJ
92
+ VH Video, Betamax, SECAM DEPRECATED - use new VK
93
+ VI DVD video DVD video: specify TV standard in List 78
94
+ VJ VHS video VHS videotape: specify TV standard in List 78
95
+ VK Betamax video Betamax videotape: specify TV standard in List 78
96
+ VL VCD VideoCD
97
+ VM SVCD Super VideoCD
98
+ VN HD DVD High definition DVD disc, Toshiba HD DVD format
99
+ VO Blu-ray High definition DVD disc, Sony Blu-ray format
100
+ VP UMD Video Sony Universal Media disc
101
+ VZ Other video format Other video format not specified by VB to VP
102
+ WW Mixed media product A product consisting of two or more items in different media, eg book and CD-ROM, book and toy etc
103
+ 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).
104
+ XA Trade-only material Trade-only material (unspecified)
105
+ XB Dumpbin – empty
106
+ XC Dumpbin – filled Dumpbin with contents
107
+ XD Counterpack – empty
108
+ XE Counterpack – filled Counterpack with contents
109
+ XF Poster, promotional Promotional poster for display, not for sale – see also PK
110
+ XG Shelf strip
111
+ XH Window piece Promotional piece for shop window display
112
+ XI Streamer
113
+ XJ Spinner
114
+ XK Large book display Large scale facsimile of book for promotional display
115
+ 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.
116
+ XZ Other point of sale Other point of sale material not specified by XB to XL
117
+ ZA General merchandise General merchandise – unspecified
118
+ ZB Doll
119
+ ZC Soft toy Soft or plush toy
120
+ ZD Toy
121
+ ZE Game Board game, or other game (except computer game: see DE)
122
+ ZF T-shirt
123
+ ZZ Other merchandize Other merchandize not specified by ZB to ZF
@@ -0,0 +1,7 @@
1
+ 01 A-format paperback DEPRECATED
2
+ 02 B-format paperback ‘B’ format paperback: UK 198 x 129 mm - DEPRECATED
3
+ 03 C-format paperback ‘C’ format paperback: UK 216 x 135 mm - DEPRECATED
4
+ 04 Paper over boards DEPRECATED
5
+ 05 Cloth DEPRECATED
6
+ 06 With dust jacket DEPRECATED
7
+ 07 Reinforced binding DEPRECATED
@@ -0,0 +1,7 @@
1
+ 01 WCO Harmonized System World Customs Organization Harmonized Commodity Coding & Description System
2
+ 02 UNSPSC UN Standard Product & Service Classification
3
+ 03 HMC&E UK Customs & Excise classifications, based on the Harmonized System
4
+ 04 Warenverzeichnis für die Außenhandelsstatistik German export trade classification, based on the Harmonised System
5
+ 05 TARIC EU TARIC codes, an extended version of the Harmonized System
6
+ 06 Fondsgroep Centraal Boekhuis free classification field for publishers
7
+ 07 Sender's product category A product category (not a subject classification) assigned by the sender
@@ -0,0 +1,34 @@
1
+ 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 <Product> record describes the content package and lists within the record the different forms in which it is available.
2
+ 001 HTML An epublication delivered in a basic, unprotected, HTML format. Do NOT use for HTML-based formats which include DRM protection.
3
+ 002 PDF An epublication delivered in a basic, unprotected, PDF format. Do NOT use for PDF-based formats which include DRM protection.
4
+ 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.)
5
+ 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.
6
+ 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.)
7
+ 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.
8
+ 007 NetLibrary An epublication delivered in a proprietary HTML- or OEBF-based format, capable of being read only through subscription to the NetLibrary service.
9
+ 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)
10
+ 009 MightyWords An epublication delivered in a proprietary PDF-based format, capable of being read only through subscription to the MightyWords service.
11
+ 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.
12
+ 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.
13
+ 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.
14
+ 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.
15
+ 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.
16
+ 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.
17
+ 016 Books24x7 An epublication delivered in a proprietary XML-based format and available for online access only through subscription to the Books24x7 service.
18
+ 017 DigitalOwl An epublication available through DigitalOwl proprietary packaging, distribution and DRM software, delivered in a variety of formats across a range of platforms.
19
+ 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.
20
+ 019 WizeUp An epublication delivered in a proprietary ???-based format and available for download only through the WizeUp service.
21
+ 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.
22
+ 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.
23
+ 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.
24
+ 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.
25
+ 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.
26
+ 025 TXT An epublication delivered in an openly available .TXT format, with ASCII or UTF-8 encoding, as used for example in Project Gutenberg
27
+ 026 ExeBook An epublication delivered as a self-executing file including its own reader software, and created with proprietary ExeBook Self-Publisher software
28
+ 027 Sony BBeB An epublication delivered in a proprietary format, capable of being read on a Sony Reader handheld device
29
+ 028 VitalSource Bookshelf
30
+ 029 Adobe Digital Editions
31
+ 030 MyiLibrary
32
+ 031 Kindle
33
+ 098 Multiple formats Product consists of parts in different formats
34
+ 099 Unspecified Unknown, or no code yet assigned for this format
@@ -0,0 +1,11 @@
1
+ 01 HTML
2
+ 02 PDF
3
+ 03 Microsoft Reader ‘.LIT’ file format used by Microsoft Reader software
4
+ 04 RocketBook
5
+ 05 Rich text format (RTF)
6
+ 06 Open Ebook Publication Structure (OEBPS) format standard
7
+ 07 XML
8
+ 08 SGML
9
+ 09 EXE ‘.EXE’ file format used when an epublication is delivered as a self-executing package of software and content.
10
+ 10 ASCII ‘.TXT’ file format
11
+ 11 MobiPocket format Proprietary file format used for the MobiPocket reader software
@@ -0,0 +1,11 @@
1
+ 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.
2
+ 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.
3
+ 03 Sonderausgabe In Germany, a special printing sold at a lower price than the regular hardback
4
+ 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
5
+ 05 International edition (US) Edition produced solely for sale in designated export markets
6
+ 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
7
+ 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.
8
+ 08 Livre scolaire, déclaré par l'éditeur In France, a category of book that has a particular legal status, claimed by the publisher
9
+ 09 Livre scolaire (non spécifié) In France, a category of book that has a particular legal status, designated independently of the publisher
10
+ 10 Supplement to newspaper Edition published for sale only with a newspaper or periodical
11
+ 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