enterprisifier 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/LICENSE +20 -0
  4. data/README.md +3 -0
  5. data/Rakefile +57 -0
  6. data/VERSION +1 -0
  7. data/lib/enterprisifier.rb +7 -0
  8. data/lib/enterprisifier/code_generation.rb +1 -0
  9. data/lib/enterprisifier/code_generation/code_builder.rb +33 -0
  10. data/lib/enterprisifier/code_generation/code_generator.rb +281 -0
  11. data/lib/enterprisifier/code_generation/generator.rb +102 -0
  12. data/lib/enterprisifier/code_generation/generators/attribute_generator.rb +22 -0
  13. data/lib/enterprisifier/code_generation/generators/choice_generator.rb +12 -0
  14. data/lib/enterprisifier/code_generation/generators/complex_content_generator.rb +12 -0
  15. data/lib/enterprisifier/code_generation/generators/complex_type_generator.rb +12 -0
  16. data/lib/enterprisifier/code_generation/generators/element_generator.rb +28 -0
  17. data/lib/enterprisifier/code_generation/generators/extension_generator.rb +11 -0
  18. data/lib/enterprisifier/code_generation/generators/group_generator.rb +27 -0
  19. data/lib/enterprisifier/code_generation/generators/restriction_generator.rb +11 -0
  20. data/lib/enterprisifier/code_generation/generators/sequence_generator.rb +12 -0
  21. data/lib/enterprisifier/code_generation/generators/simple_content_generator.rb +12 -0
  22. data/lib/enterprisifier/code_generation/generators/simple_type_generator.rb +11 -0
  23. data/lib/enterprisifier/code_generation/generators/union_generator.rb +34 -0
  24. data/lib/enterprisifier/constants.rb +3 -0
  25. data/lib/enterprisifier/logging.rb +5 -0
  26. data/lib/enterprisifier/marshalling.rb +0 -0
  27. data/lib/enterprisifier/marshalling/builder.rb +11 -0
  28. data/lib/enterprisifier/marshalling/instantiatable_element.rb +170 -0
  29. data/lib/enterprisifier/marshalling/namespace.rb +23 -0
  30. data/lib/enterprisifier/marshalling/reification.rb +30 -0
  31. data/lib/enterprisifier/marshalling/schema_composition.rb +170 -0
  32. data/lib/enterprisifier/marshalling/xsd/schema/attribute.rb +48 -0
  33. data/lib/enterprisifier/marshalling/xsd/schema/choice.rb +18 -0
  34. data/lib/enterprisifier/marshalling/xsd/schema/complex_content.rb +18 -0
  35. data/lib/enterprisifier/marshalling/xsd/schema/complex_type.rb +28 -0
  36. data/lib/enterprisifier/marshalling/xsd/schema/element.rb +92 -0
  37. data/lib/enterprisifier/marshalling/xsd/schema/extension.rb +29 -0
  38. data/lib/enterprisifier/marshalling/xsd/schema/group.rb +22 -0
  39. data/lib/enterprisifier/marshalling/xsd/schema/restriction.rb +29 -0
  40. data/lib/enterprisifier/marshalling/xsd/schema/sequence.rb +21 -0
  41. data/lib/enterprisifier/marshalling/xsd/schema/simple_content.rb +18 -0
  42. data/lib/enterprisifier/marshalling/xsd/schema/simple_type.rb +23 -0
  43. data/lib/enterprisifier/marshalling/xsd/schema/union.rb +23 -0
  44. data/lib/enterprisifier/marshalling/xsd/types/boolean.rb +14 -0
  45. data/lib/enterprisifier/marshalling/xsd/types/date.rb +13 -0
  46. data/lib/enterprisifier/marshalling/xsd/types/date_time.rb +13 -0
  47. data/lib/enterprisifier/marshalling/xsd/types/decimal.rb +13 -0
  48. data/lib/enterprisifier/marshalling/xsd/types/string.rb +14 -0
  49. data/lib/enterprisifier/marshalling/xsd/types/time.rb +14 -0
  50. data/lib/enterprisifier/schema.rb +1 -0
  51. data/lib/enterprisifier/schema/base_element.rb +156 -0
  52. data/lib/enterprisifier/schema/element_factory.rb +29 -0
  53. data/lib/enterprisifier/schema/elements/annotation.rb +20 -0
  54. data/lib/enterprisifier/schema/elements/attribute.rb +22 -0
  55. data/lib/enterprisifier/schema/elements/choice.rb +13 -0
  56. data/lib/enterprisifier/schema/elements/complex_content.rb +13 -0
  57. data/lib/enterprisifier/schema/elements/complex_type.rb +13 -0
  58. data/lib/enterprisifier/schema/elements/documentation.rb +12 -0
  59. data/lib/enterprisifier/schema/elements/element.rb +23 -0
  60. data/lib/enterprisifier/schema/elements/enumeration.rb +12 -0
  61. data/lib/enterprisifier/schema/elements/extension.rb +12 -0
  62. data/lib/enterprisifier/schema/elements/fraction_digits.rb +12 -0
  63. data/lib/enterprisifier/schema/elements/group.rb +12 -0
  64. data/lib/enterprisifier/schema/elements/import.rb +28 -0
  65. data/lib/enterprisifier/schema/elements/include.rb +28 -0
  66. data/lib/enterprisifier/schema/elements/max_inclusive.rb +12 -0
  67. data/lib/enterprisifier/schema/elements/min_inclusive.rb +12 -0
  68. data/lib/enterprisifier/schema/elements/pattern.rb +12 -0
  69. data/lib/enterprisifier/schema/elements/restriction.rb +12 -0
  70. data/lib/enterprisifier/schema/elements/schema.rb +71 -0
  71. data/lib/enterprisifier/schema/elements/sequence.rb +12 -0
  72. data/lib/enterprisifier/schema/elements/simple_content.rb +12 -0
  73. data/lib/enterprisifier/schema/elements/simple_type.rb +12 -0
  74. data/lib/enterprisifier/schema/elements/union.rb +17 -0
  75. data/lib/enterprisifier/schema/elements/unknown_element.rb +12 -0
  76. data/lib/enterprisifier/schema/loader.rb +61 -0
  77. data/test/enterprisifier_test.rb +35 -0
  78. data/test/example/e_business_for_media/aaaa/elements/aaaa_message_header.rb +15 -0
  79. data/test/example/e_business_for_media/aaaa/elements/aaaa_values.rb +52 -0
  80. data/test/example/e_business_for_media/aaaa/elements/action.rb +17 -0
  81. data/test/example/e_business_for_media/aaaa/elements/business_object.rb +17 -0
  82. data/test/example/e_business_for_media/aaaa/elements/media.rb +17 -0
  83. data/test/example/e_business_for_media/aaaa/elements/schema_name.rb +17 -0
  84. data/test/example/e_business_for_media/aaaa/elements/schema_version.rb +17 -0
  85. data/test/example/e_business_for_media/aaaa/elements/unique_message_id.rb +19 -0
  86. data/test/example/e_business_for_media/aaaa/types/aaaa_message_type.rb +58 -0
  87. data/test/example/e_business_for_media/aaaa/types/action_string.rb +18 -0
  88. data/test/example/e_business_for_media/aaaa/types/business_object_string.rb +18 -0
  89. data/test/example/e_business_for_media/aaaa/types/guid.rb +20 -0
  90. data/test/example/e_business_for_media/aaaa/types/media_string.rb +19 -0
  91. data/test/example/e_business_for_media/aaaa/types/schema_name_string.rb +18 -0
  92. data/test/example/e_business_for_media/aaaa/types/schema_version_string.rb +18 -0
  93. data/test/example/e_business_for_media/aaaa/types/unique_message_id.rb +18 -0
  94. data/test/example/e_business_for_media/iab/attributes/currency.rb +17 -0
  95. data/test/example/e_business_for_media/iab/attributes/id_owner.rb +19 -0
  96. data/test/example/e_business_for_media/iab/attributes/name.rb +19 -0
  97. data/test/example/e_business_for_media/iab/attributes/prefix.rb +18 -0
  98. data/test/example/e_business_for_media/iab/attributes/primary.rb +33 -0
  99. data/test/example/e_business_for_media/iab/attributes/script.rb +23 -0
  100. data/test/example/e_business_for_media/iab/attributes/sms_enabled.rb +20 -0
  101. data/test/example/e_business_for_media/iab/attributes/type.rb +30 -0
  102. data/test/example/e_business_for_media/iab/attributes/valid_from.rb +18 -0
  103. data/test/example/e_business_for_media/iab/attributes/valid_to.rb +18 -0
  104. data/test/example/e_business_for_media/iab/elements/ad_server.rb +17 -0
  105. data/test/example/e_business_for_media/iab/elements/additional_metrics.rb +16 -0
  106. data/test/example/e_business_for_media/iab/elements/address.rb +16 -0
  107. data/test/example/e_business_for_media/iab/elements/address_line.rb +22 -0
  108. data/test/example/e_business_for_media/iab/elements/advertiser.rb +17 -0
  109. data/test/example/e_business_for_media/iab/elements/affix.rb +53 -0
  110. data/test/example/e_business_for_media/iab/elements/agency.rb +19 -0
  111. data/test/example/e_business_for_media/iab/elements/agency_commission.rb +19 -0
  112. data/test/example/e_business_for_media/iab/elements/alternate_script.rb +147 -0
  113. data/test/example/e_business_for_media/iab/elements/amount.rb +16 -0
  114. data/test/example/e_business_for_media/iab/elements/area_city_code.rb +18 -0
  115. data/test/example/e_business_for_media/iab/elements/attachments.rb +18 -0
  116. data/test/example/e_business_for_media/iab/elements/audience.rb +17 -0
  117. data/test/example/e_business_for_media/iab/elements/background.rb +15 -0
  118. data/test/example/e_business_for_media/iab/elements/basis.rb +26 -0
  119. data/test/example/e_business_for_media/iab/elements/billing_frequency.rb +15 -0
  120. data/test/example/e_business_for_media/iab/elements/billing_info.rb +16 -0
  121. data/test/example/e_business_for_media/iab/elements/billing_notes.rb +16 -0
  122. data/test/example/e_business_for_media/iab/elements/billing_partner.rb +16 -0
  123. data/test/example/e_business_for_media/iab/elements/billing_statistics_source.rb +16 -0
  124. data/test/example/e_business_for_media/iab/elements/brand_name.rb +17 -0
  125. data/test/example/e_business_for_media/iab/elements/budget.rb +16 -0
  126. data/test/example/e_business_for_media/iab/elements/building_number.rb +23 -0
  127. data/test/example/e_business_for_media/iab/elements/campaign_brief.rb +38 -0
  128. data/test/example/e_business_for_media/iab/elements/campaign_reference_id.rb +18 -0
  129. data/test/example/e_business_for_media/iab/elements/campaign_reference_info.rb +16 -0
  130. data/test/example/e_business_for_media/iab/elements/category.rb +16 -0
  131. data/test/example/e_business_for_media/iab/elements/context.rb +17 -0
  132. data/test/example/e_business_for_media/iab/elements/contract_details.rb +17 -0
  133. data/test/example/e_business_for_media/iab/elements/count.rb +16 -0
  134. data/test/example/e_business_for_media/iab/elements/country_code.rb +23 -0
  135. data/test/example/e_business_for_media/iab/elements/created_date.rb +15 -0
  136. data/test/example/e_business_for_media/iab/elements/creating_system.rb +16 -0
  137. data/test/example/e_business_for_media/iab/elements/date.rb +16 -0
  138. data/test/example/e_business_for_media/iab/elements/delivery.rb +17 -0
  139. data/test/example/e_business_for_media/iab/elements/delivery_address.rb +72 -0
  140. data/test/example/e_business_for_media/iab/elements/description.rb +16 -0
  141. data/test/example/e_business_for_media/iab/elements/desired_positioning_notes.rb +16 -0
  142. data/test/example/e_business_for_media/iab/elements/destination_system.rb +16 -0
  143. data/test/example/e_business_for_media/iab/elements/discount.rb +19 -0
  144. data/test/example/e_business_for_media/iab/elements/distribution.rb +15 -0
  145. data/test/example/e_business_for_media/iab/elements/document_id.rb +20 -0
  146. data/test/example/e_business_for_media/iab/elements/document_name.rb +16 -0
  147. data/test/example/e_business_for_media/iab/elements/document_sender.rb +17 -0
  148. data/test/example/e_business_for_media/iab/elements/due_date.rb +15 -0
  149. data/test/example/e_business_for_media/iab/elements/end_date.rb +16 -0
  150. data/test/example/e_business_for_media/iab/elements/extension.rb +17 -0
  151. data/test/example/e_business_for_media/iab/elements/family_name.rb +55 -0
  152. data/test/example/e_business_for_media/iab/elements/fax.rb +16 -0
  153. data/test/example/e_business_for_media/iab/elements/flight_exclusivity_guidelines.rb +16 -0
  154. data/test/example/e_business_for_media/iab/elements/format.rb +16 -0
  155. data/test/example/e_business_for_media/iab/elements/formatted_name.rb +22 -0
  156. data/test/example/e_business_for_media/iab/elements/formatted_number.rb +18 -0
  157. data/test/example/e_business_for_media/iab/elements/geographic_considerations.rb +15 -0
  158. data/test/example/e_business_for_media/iab/elements/given_name.rb +19 -0
  159. data/test/example/e_business_for_media/iab/elements/goal.rb +29 -0
  160. data/test/example/e_business_for_media/iab/elements/gross_cost.rb +16 -0
  161. data/test/example/e_business_for_media/iab/elements/iab_advertiser_info.rb +15 -0
  162. data/test/example/e_business_for_media/iab/elements/iab_billing_info.rb +15 -0
  163. data/test/example/e_business_for_media/iab/elements/iab_message_base.rb +15 -0
  164. data/test/example/e_business_for_media/iab/elements/iab_message_header.rb +17 -0
  165. data/test/example/e_business_for_media/iab/elements/iab_publisher_info.rb +15 -0
  166. data/test/example/e_business_for_media/iab/elements/iab_type_of_contact.rb +17 -0
  167. data/test/example/e_business_for_media/iab/elements/id.rb +17 -0
  168. data/test/example/e_business_for_media/iab/elements/id_value.rb +34 -0
  169. data/test/example/e_business_for_media/iab/elements/in_reference_to.rb +33 -0
  170. data/test/example/e_business_for_media/iab/elements/industry.rb +17 -0
  171. data/test/example/e_business_for_media/iab/elements/instructions.rb +15 -0
  172. data/test/example/e_business_for_media/iab/elements/international_country_code.rb +17 -0
  173. data/test/example/e_business_for_media/iab/elements/internet_email_address.rb +16 -0
  174. data/test/example/e_business_for_media/iab/elements/internet_web_address.rb +17 -0
  175. data/test/example/e_business_for_media/iab/elements/legal_name.rb +19 -0
  176. data/test/example/e_business_for_media/iab/elements/link.rb +16 -0
  177. data/test/example/e_business_for_media/iab/elements/location.rb +17 -0
  178. data/test/example/e_business_for_media/iab/elements/make_good_policy.rb +16 -0
  179. data/test/example/e_business_for_media/iab/elements/middle_name.rb +17 -0
  180. data/test/example/e_business_for_media/iab/elements/mobile.rb +17 -0
  181. data/test/example/e_business_for_media/iab/elements/municipality.rb +17 -0
  182. data/test/example/e_business_for_media/iab/elements/name.rb +16 -0
  183. data/test/example/e_business_for_media/iab/elements/national_number.rb +19 -0
  184. data/test/example/e_business_for_media/iab/elements/net_cost.rb +16 -0
  185. data/test/example/e_business_for_media/iab/elements/non_standard_value.rb +16 -0
  186. data/test/example/e_business_for_media/iab/elements/notes.rb +16 -0
  187. data/test/example/e_business_for_media/iab/elements/order_status.rb +17 -0
  188. data/test/example/e_business_for_media/iab/elements/other_contacts.rb +18 -0
  189. data/test/example/e_business_for_media/iab/elements/other_id.rb +20 -0
  190. data/test/example/e_business_for_media/iab/elements/other_target.rb +17 -0
  191. data/test/example/e_business_for_media/iab/elements/out_clause.rb +16 -0
  192. data/test/example/e_business_for_media/iab/elements/pager.rb +16 -0
  193. data/test/example/e_business_for_media/iab/elements/partner.rb +19 -0
  194. data/test/example/e_business_for_media/iab/elements/payment_terms.rb +16 -0
  195. data/test/example/e_business_for_media/iab/elements/payment_type.rb +15 -0
  196. data/test/example/e_business_for_media/iab/elements/percent.rb +16 -0
  197. data/test/example/e_business_for_media/iab/elements/person_name.rb +16 -0
  198. data/test/example/e_business_for_media/iab/elements/post_office_box.rb +18 -0
  199. data/test/example/e_business_for_media/iab/elements/postal_address.rb +16 -0
  200. data/test/example/e_business_for_media/iab/elements/postal_code.rb +18 -0
  201. data/test/example/e_business_for_media/iab/elements/preferred_given_name.rb +18 -0
  202. data/test/example/e_business_for_media/iab/elements/primary_contact.rb +16 -0
  203. data/test/example/e_business_for_media/iab/elements/primary_id.rb +17 -0
  204. data/test/example/e_business_for_media/iab/elements/primary_success_metric.rb +15 -0
  205. data/test/example/e_business_for_media/iab/elements/product_name.rb +17 -0
  206. data/test/example/e_business_for_media/iab/elements/property_name.rb +16 -0
  207. data/test/example/e_business_for_media/iab/elements/publisher.rb +17 -0
  208. data/test/example/e_business_for_media/iab/elements/referenced_document_id.rb +15 -0
  209. data/test/example/e_business_for_media/iab/elements/referenced_version.rb +22 -0
  210. data/test/example/e_business_for_media/iab/elements/region.rb +21 -0
  211. data/test/example/e_business_for_media/iab/elements/request_for_proposal.rb +16 -0
  212. data/test/example/e_business_for_media/iab/elements/rfp_details.rb +15 -0
  213. data/test/example/e_business_for_media/iab/elements/rfp_response_requirements.rb +15 -0
  214. data/test/example/e_business_for_media/iab/elements/role.rb +31 -0
  215. data/test/example/e_business_for_media/iab/elements/selection_criteria.rb +16 -0
  216. data/test/example/e_business_for_media/iab/elements/sent_date.rb +15 -0
  217. data/test/example/e_business_for_media/iab/elements/standard_value.rb +16 -0
  218. data/test/example/e_business_for_media/iab/elements/start_date.rb +16 -0
  219. data/test/example/e_business_for_media/iab/elements/street_name.rb +21 -0
  220. data/test/example/e_business_for_media/iab/elements/subscriber_number.rb +19 -0
  221. data/test/example/e_business_for_media/iab/elements/target_audience.rb +15 -0
  222. data/test/example/e_business_for_media/iab/elements/targeting.rb +42 -0
  223. data/test/example/e_business_for_media/iab/elements/telephone.rb +16 -0
  224. data/test/example/e_business_for_media/iab/elements/terms_and_conditions.rb +27 -0
  225. data/test/example/e_business_for_media/iab/elements/terms_attachment.rb +15 -0
  226. data/test/example/e_business_for_media/iab/elements/terms_text.rb +15 -0
  227. data/test/example/e_business_for_media/iab/elements/time.rb +17 -0
  228. data/test/example/e_business_for_media/iab/elements/title.rb +17 -0
  229. data/test/example/e_business_for_media/iab/elements/ttytdd.rb +17 -0
  230. data/test/example/e_business_for_media/iab/elements/type.rb +15 -0
  231. data/test/example/e_business_for_media/iab/elements/unit.rb +21 -0
  232. data/test/example/e_business_for_media/iab/elements/use.rb +17 -0
  233. data/test/example/e_business_for_media/iab/elements/value.rb +15 -0
  234. data/test/example/e_business_for_media/iab/elements/version.rb +24 -0
  235. data/test/example/e_business_for_media/iab/elements/when_available.rb +19 -0
  236. data/test/example/e_business_for_media/iab/elements/zero_cost.rb +15 -0
  237. data/test/example/e_business_for_media/iab/groups/telcom_number_group.rb +52 -0
  238. data/test/example/e_business_for_media/iab/types/attachment_type.rb +32 -0
  239. data/test/example/e_business_for_media/iab/types/base_cost.rb +32 -0
  240. data/test/example/e_business_for_media/iab/types/base_target_type.rb +31 -0
  241. data/test/example/e_business_for_media/iab/types/base_unit.rb +27 -0
  242. data/test/example/e_business_for_media/iab/types/campaign_reference_info_type.rb +81 -0
  243. data/test/example/e_business_for_media/iab/types/contact_method_location_pattern_extension_type.rb +22 -0
  244. data/test/example/e_business_for_media/iab/types/contact_method_location_type.rb +24 -0
  245. data/test/example/e_business_for_media/iab/types/contact_method_type.rb +81 -0
  246. data/test/example/e_business_for_media/iab/types/contact_method_use_pattern_extension_type.rb +22 -0
  247. data/test/example/e_business_for_media/iab/types/contact_method_use_type.rb +23 -0
  248. data/test/example/e_business_for_media/iab/types/contact_method_when_available_type.rb +20 -0
  249. data/test/example/e_business_for_media/iab/types/contract_details_type.rb +46 -0
  250. data/test/example/e_business_for_media/iab/types/cost_method_enumeration.rb +29 -0
  251. data/test/example/e_business_for_media/iab/types/cost_method_type.rb +28 -0
  252. data/test/example/e_business_for_media/iab/types/currency_code_type.rb +20 -0
  253. data/test/example/e_business_for_media/iab/types/discount_type.rb +36 -0
  254. data/test/example/e_business_for_media/iab/types/entity_id_type.rb +57 -0
  255. data/test/example/e_business_for_media/iab/types/generic_target_type.rb +31 -0
  256. data/test/example/e_business_for_media/iab/types/iab_advertiser_info_type.rb +38 -0
  257. data/test/example/e_business_for_media/iab/types/iab_billing_info_type.rb +54 -0
  258. data/test/example/e_business_for_media/iab/types/iab_contact_method_type.rb +44 -0
  259. data/test/example/e_business_for_media/iab/types/iab_date_time_type.rb +28 -0
  260. data/test/example/e_business_for_media/iab/types/iab_distribution_enumerated_type.rb +22 -0
  261. data/test/example/e_business_for_media/iab/types/iab_distribution_type.rb +20 -0
  262. data/test/example/e_business_for_media/iab/types/iab_message_base_type.rb +47 -0
  263. data/test/example/e_business_for_media/iab/types/iab_message_header_type.rb +34 -0
  264. data/test/example/e_business_for_media/iab/types/iab_partner_info_type.rb +67 -0
  265. data/test/example/e_business_for_media/iab/types/iab_payment_terms_enumerated_type.rb +23 -0
  266. data/test/example/e_business_for_media/iab/types/iab_payment_terms_type.rb +20 -0
  267. data/test/example/e_business_for_media/iab/types/iab_payment_type_enumerated_type.rb +21 -0
  268. data/test/example/e_business_for_media/iab/types/iab_publisher_info_type.rb +29 -0
  269. data/test/example/e_business_for_media/iab/types/iab_type_of_contact_type.rb +30 -0
  270. data/test/example/e_business_for_media/iab/types/internet_email_address_type.rb +19 -0
  271. data/test/example/e_business_for_media/iab/types/internet_web_address_type.rb +20 -0
  272. data/test/example/e_business_for_media/iab/types/mobile_telcom_number_type.rb +33 -0
  273. data/test/example/e_business_for_media/iab/types/monetary_type.rb +28 -0
  274. data/test/example/e_business_for_media/iab/types/percentage_type.rb +21 -0
  275. data/test/example/e_business_for_media/iab/types/person_name_type.rb +282 -0
  276. data/test/example/e_business_for_media/iab/types/postal_address_type.rb +120 -0
  277. data/test/example/e_business_for_media/iab/types/request_for_proposal_type.rb +35 -0
  278. data/test/example/e_business_for_media/iab/types/rfp_details_type.rb +118 -0
  279. data/test/example/e_business_for_media/iab/types/rfp_response_requirements_type.rb +33 -0
  280. data/test/example/e_business_for_media/iab/types/telcom_number_type.rb +34 -0
  281. data/test/example/e_business_for_media/iab/types/unit_type.rb +28 -0
  282. data/test/example/e_business_for_media/iab/types/unit_type_enumeration.rb +27 -0
  283. data/test/example/e_business_for_media/iab/types/zero_cost_type.rb +29 -0
  284. data/test/example/e_business_for_media/iab/types/zero_cost_type_enumeration.rb +21 -0
  285. data/test/marshalling_test.rb +13 -0
  286. data/test/mocks.rb +10 -0
  287. data/test/teststrap.rb +23 -0
  288. data/test/xsd/AAAA_Common.xsd +76 -0
  289. data/test/xsd/HRXMLlicense.txt +32 -0
  290. data/test/xsd/IAB_Acknowledgement.xsd +181 -0
  291. data/test/xsd/IAB_AdvertiserCommon.xsd +40 -0
  292. data/test/xsd/IAB_BillingCommon.xsd +75 -0
  293. data/test/xsd/IAB_CampaignCommon.xsd +80 -0
  294. data/test/xsd/IAB_Common.xsd +1176 -0
  295. data/test/xsd/IAB_ContractCommon.xsd +54 -0
  296. data/test/xsd/IAB_InsertionOrderCommon.xsd +40 -0
  297. data/test/xsd/IAB_LineItemCommon.xsd +328 -0
  298. data/test/xsd/IAB_MessageCommon.xsd +66 -0
  299. data/test/xsd/IAB_OrderCommon.xsd +98 -0
  300. data/test/xsd/IAB_ProposalCommon.xsd +30 -0
  301. data/test/xsd/IAB_PublisherCommon.xsd +26 -0
  302. data/test/xsd/IAB_RFPCommon.xsd +126 -0
  303. metadata +626 -0
@@ -0,0 +1,35 @@
1
+ require "e_business_for_media/iab/elements/rfp_details"
2
+ require "e_business_for_media/iab/elements/rfp_response_requirements"
3
+ require "e_business_for_media/iab/types/iab_message_base_type"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_content"
5
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
6
+ require "enterprisifier/marshalling/xsd/schema/element"
7
+ require "enterprisifier/marshalling/xsd/schema/extension"
8
+ require "enterprisifier/marshalling/xsd/schema/sequence"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Types
14
+ class RequestForProposalType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "RequestForProposalType" do
17
+ mixed "false"
18
+ end
19
+ complex_content do
20
+ mixed "false"
21
+ extension EBusinessForMedia::IAB::Types::IABMessageBaseType do
22
+ sequence do
23
+ # Details of the requested media campaign
24
+ element EBusinessForMedia::IAB::Elements::RFPDetails
25
+
26
+ # Instructions for replying to the RFP
27
+ element EBusinessForMedia::IAB::Elements::RFPResponseRequirements
28
+
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,118 @@
1
+ require "e_business_for_media/iab/elements/terms_and_conditions"
2
+ require "e_business_for_media/iab/types/attachment_type"
3
+ require "e_business_for_media/iab/types/base_target_type"
4
+ require "e_business_for_media/iab/types/generic_target_type"
5
+ require "e_business_for_media/iab/types/iab_payment_terms_type"
6
+ require "e_business_for_media/iab/types/monetary_type"
7
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
8
+ require "enterprisifier/marshalling/xsd/schema/element"
9
+ require "enterprisifier/marshalling/xsd/schema/sequence"
10
+ require "enterprisifier/marshalling/xsd/types/date"
11
+ require "enterprisifier/marshalling/xsd/types/string"
12
+
13
+
14
+ module EBusinessForMedia
15
+ module IAB
16
+ module Types
17
+ class RFPDetailsType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
18
+ namespace "iab" => "http://ns.iab.net"
19
+ complex_type "RFPDetailsType"
20
+
21
+ sequence do
22
+ # Budget that the publisher should build towards
23
+ element "Budget" => EBusinessForMedia::IAB::Types::MonetaryType
24
+
25
+ # Anticipated start date of campaign
26
+ element "StartDate" => Enterprisifier::Marshalling::XSD::Types::Date
27
+
28
+ # Anticipated end date of campaign
29
+ element "EndDate" => Enterprisifier::Marshalling::XSD::Types::Date
30
+
31
+ element "CampaignBrief" do
32
+ complex_type do
33
+ sequence do
34
+ element "Background" => Enterprisifier::Marshalling::XSD::Types::String
35
+
36
+ # Can be used for a full description of the campign goals and publisher requests.
37
+ element "Description" => Enterprisifier::Marshalling::XSD::Types::String
38
+
39
+ element "GeographicConsiderations" => Enterprisifier::Marshalling::XSD::Types::String
40
+
41
+ element "TargetAudience" => Enterprisifier::Marshalling::XSD::Types::String
42
+
43
+ element "PrimarySuccessMetric" => Enterprisifier::Marshalling::XSD::Types::String
44
+
45
+ element "AdditionalMetrics" => Enterprisifier::Marshalling::XSD::Types::String do
46
+ min_occurs "0"
47
+ end
48
+ element "DesiredPositioningNotes" => Enterprisifier::Marshalling::XSD::Types::String do
49
+ min_occurs "0"
50
+ end
51
+ end
52
+ end
53
+ end
54
+ # The RFP can be submitted as an attachment as well or instead.
55
+ element "Attachments" => EBusinessForMedia::IAB::Types::AttachmentType do
56
+ min_occurs "0"
57
+ max_occurs "unbounded"
58
+ end
59
+ # A generic object that can be used in repetition to state specific campaign goals
60
+ # and the measurement of that goal.
61
+ element "Goal" do
62
+ min_occurs "0"
63
+ max_occurs "unbounded"
64
+ complex_type do
65
+ sequence do
66
+ element "Value" => Enterprisifier::Marshalling::XSD::Types::String
67
+
68
+ element "Type" => Enterprisifier::Marshalling::XSD::Types::String
69
+
70
+ end
71
+ end
72
+ end
73
+ # Similar to Proposal Line Item Targeting - no industry standards exist for
74
+ # communicating targeting so this flexible framework can be used for providing
75
+ # text representations of the targeting being requested.
76
+ element "Targeting" do
77
+ min_occurs "0"
78
+ complex_type do
79
+ sequence do
80
+ element "Audience" => EBusinessForMedia::IAB::Types::BaseTargetType do
81
+ min_occurs "0"
82
+ max_occurs "unbounded"
83
+ end
84
+ element "Context" => EBusinessForMedia::IAB::Types::BaseTargetType do
85
+ min_occurs "0"
86
+ max_occurs "unbounded"
87
+ end
88
+ element "Delivery" => EBusinessForMedia::IAB::Types::BaseTargetType do
89
+ min_occurs "0"
90
+ max_occurs "unbounded"
91
+ end
92
+ element "OtherTarget" => EBusinessForMedia::IAB::Types::GenericTargetType do
93
+ min_occurs "0"
94
+ max_occurs "unbounded"
95
+ end
96
+ end
97
+ end
98
+ end
99
+ element "Notes" => Enterprisifier::Marshalling::XSD::Types::String do
100
+ min_occurs "0"
101
+ end
102
+ element "FlightExclusivityGuidelines" => Enterprisifier::Marshalling::XSD::Types::String do
103
+ min_occurs "0"
104
+ end
105
+ element "PaymentTerms" => EBusinessForMedia::IAB::Types::IABPaymentTermsType do
106
+ min_occurs "0"
107
+ end
108
+ element "BillingNotes" => Enterprisifier::Marshalling::XSD::Types::String do
109
+ min_occurs "0"
110
+ end
111
+ element EBusinessForMedia::IAB::Elements::TermsAndConditions do
112
+ min_occurs "0"
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,33 @@
1
+ require "e_business_for_media/iab/types/iab_date_time_type"
2
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
3
+ require "enterprisifier/marshalling/xsd/schema/element"
4
+ require "enterprisifier/marshalling/xsd/schema/sequence"
5
+ require "enterprisifier/marshalling/xsd/types/string"
6
+
7
+
8
+ module EBusinessForMedia
9
+ module IAB
10
+ module Types
11
+ class RFPResponseRequirementsType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ complex_type "RFPResponseRequirementsType"
14
+
15
+ sequence do
16
+ element "DueDate" => EBusinessForMedia::IAB::Types::IABDateTimeType
17
+
18
+ # Excel spreadsheet, presentation, any notes on format of response.
19
+ element "Format" => Enterprisifier::Marshalling::XSD::Types::String
20
+
21
+ element "Instructions" => Enterprisifier::Marshalling::XSD::Types::String
22
+
23
+ element "DestinationSystem" => Enterprisifier::Marshalling::XSD::Types::String do
24
+ min_occurs "0"
25
+ end
26
+ element "SelectionCriteria" => Enterprisifier::Marshalling::XSD::Types::String do
27
+ min_occurs "0"
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,34 @@
1
+ require "e_business_for_media/iab/elements/formatted_number"
2
+ require "e_business_for_media/iab/groups/telcom_number_group"
3
+ require "enterprisifier/marshalling/xsd/schema/choice"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
5
+ require "enterprisifier/marshalling/xsd/schema/element"
6
+ require "enterprisifier/marshalling/xsd/schema/group"
7
+
8
+
9
+ module EBusinessForMedia
10
+ module IAB
11
+ module Types
12
+ # The TelcomNumberType is used to store a telephone number. Telephone numbers can
13
+ # be used to address any device on the Public Switched Telephone Network. Such
14
+ # devices include voice telephones, facsimile machines, and pagers. The number may
15
+ # be either a formatted string or a -set of structured elements. Telephone, Fax,
16
+ # Pager, and TTYTDD elements in this standard are all of type TelcomNumberType.
17
+ class TelcomNumberType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
18
+ namespace "iab" => "http://ns.iab.net"
19
+ complex_type "TelcomNumberType"
20
+
21
+ choice do
22
+ # Formatted string. Contains a telecommunication number string representation.
23
+ # This de-normalized form cannot easily be parsed. When formatted number is
24
+ # present, the non-formatted number MUST not be present.
25
+ element EBusinessForMedia::IAB::Elements::FormattedNumber
26
+
27
+ group do
28
+ ref EBusinessForMedia::IAB::Groups::TelcomNumberGroup
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,28 @@
1
+ require "e_business_for_media/iab/types/unit_type_enumeration"
2
+ require "enterprisifier/marshalling/xsd/schema/choice"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
4
+ require "enterprisifier/marshalling/xsd/schema/element"
5
+ require "enterprisifier/marshalling/xsd/types/string"
6
+
7
+
8
+ module EBusinessForMedia
9
+ module IAB
10
+ module Types
11
+ # Provides a metric for units wherever used in the standards. Can be either one of
12
+ # the enumerated values or a non-standard value (string).
13
+ class UnitType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "UnitType"
16
+
17
+ choice do
18
+ # One of the standard enumerated values for Unit Type.
19
+ element "StandardValue" => EBusinessForMedia::IAB::Types::UnitTypeEnumeration
20
+
21
+ # A non-standard value for Unit Type.
22
+ element "NonStandardValue" => Enterprisifier::Marshalling::XSD::Types::String
23
+
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,27 @@
1
+ require "enterprisifier/marshalling/xsd/schema/restriction"
2
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
3
+ require "enterprisifier/marshalling/xsd/types/string"
4
+
5
+
6
+ module EBusinessForMedia
7
+ module IAB
8
+ module Types
9
+ # Enumeration of standard unit types used in the industry.
10
+ class UnitTypeEnumeration < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "UnitTypeEnumeration"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
15
+ enumeration "Impressions"
16
+ enumeration "Clicks"
17
+ enumeration "Actions"
18
+ enumeration "Uniques"
19
+ enumeration "ShareOfVoice"
20
+ enumeration "Downloads"
21
+ enumeration "Emails"
22
+ enumeration "Leads"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ require "e_business_for_media/iab/types/zero_cost_type_enumeration"
2
+ require "enterprisifier/marshalling/xsd/schema/choice"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
4
+ require "enterprisifier/marshalling/xsd/schema/element"
5
+ require "enterprisifier/marshalling/xsd/types/string"
6
+
7
+
8
+ module EBusinessForMedia
9
+ module IAB
10
+ module Types
11
+ # Provides a set of values to use to indicate zero cost types for items wherever
12
+ # used in the standards. Can be either one of the enumerated values or a
13
+ # non-standard value (string).
14
+ class ZeroCostType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "ZeroCostType"
17
+
18
+ choice do
19
+ # One of the standard enumerated values for zero cost.
20
+ element "StandardValue" => EBusinessForMedia::IAB::Types::ZeroCostTypeEnumeration
21
+
22
+ # A non-standard value for zero cost.
23
+ element "NonStandardValue" => Enterprisifier::Marshalling::XSD::Types::String
24
+
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ require "enterprisifier/marshalling/xsd/schema/restriction"
2
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
3
+ require "enterprisifier/marshalling/xsd/types/string"
4
+
5
+
6
+ module EBusinessForMedia
7
+ module IAB
8
+ module Types
9
+ # Enumeration of standard zero cost item types used in the industry.
10
+ class ZeroCostTypeEnumeration < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "ZeroCostTypeEnumeration"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
15
+ enumeration "MakeGood"
16
+ enumeration "AddedValue"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ require 'teststrap'
2
+ require 'e_business_for_media/iab/elements/request_for_proposal'
3
+
4
+ context "enterprisifier marshalling of an rfp" do
5
+ setup do
6
+ root = Mocks.new_rfp
7
+ root.to_xml
8
+ end
9
+
10
+ should "validate against the appropriate xsd" do
11
+ XSDValidator.validate(topic, "IAB_RFPCommon")
12
+ end
13
+ end # enterprisifier marshalling
@@ -0,0 +1,10 @@
1
+ require 'faker'
2
+ require 'e_business_for_media/iab/elements/request_for_proposal'
3
+
4
+ module Mocks
5
+ class << self
6
+ def new_rfp
7
+ EBusinessForMedia::IAB::Elements::RequestForProposal.create
8
+ end
9
+ end # << self
10
+ end
@@ -0,0 +1,23 @@
1
+ require 'pathname'
2
+ $: << (Pathname(__FILE__).parent + "example").to_s
3
+ require 'rubygems'
4
+ require 'riot'
5
+ require 'enterprisifier'
6
+ require 'ruby-debug'
7
+ require 'mocks'
8
+ require 'nokogiri'
9
+
10
+ module XSDValidator
11
+ XSDPath = Pathname(__FILE__).parent + "xsd"
12
+
13
+ def self.validate(xml, xsd_name)
14
+ schema = Nokogiri::XML::Schema((XSDPath + "#{xsd_name}.xsd").open('r'))
15
+ doc = Nokogiri::XML(xml)
16
+ validates = true
17
+ schema.validate(doc).each do |error|
18
+ validates = false
19
+ puts error.message
20
+ end
21
+ return validates
22
+ end
23
+ end
@@ -0,0 +1,76 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Created with Liquid XML Studio 1.0.8.0 (http://www.liquid-technologies.com) -->
3
+ <xs:schema xmlns="http://ns.ebizformedia.com" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ns.ebizformedia.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
4
+ <xs:element name="AaaaMessageHeader" type="aaaaMessageType" />
5
+ <xs:simpleType name="schemaNameString">
6
+ <xs:restriction base="xs:string" />
7
+ </xs:simpleType>
8
+ <xs:simpleType name="schemaVersionString">
9
+ <xs:restriction base="xs:string" />
10
+ </xs:simpleType>
11
+ <xs:simpleType name="mediaString">
12
+ <xs:restriction base="xs:string">
13
+ <xs:enumeration value="Interactive" />
14
+ </xs:restriction>
15
+ </xs:simpleType>
16
+ <xs:simpleType name="businessObjectString">
17
+ <xs:restriction base="xs:string" />
18
+ </xs:simpleType>
19
+ <xs:simpleType name="actionString">
20
+ <xs:restriction base="xs:string" />
21
+ </xs:simpleType>
22
+ <xs:simpleType name="guid">
23
+ <xs:annotation>
24
+ <xs:documentation xml:lang="en">The representation of a GUID, generally the id of an element.</xs:documentation>
25
+ </xs:annotation>
26
+ <xs:restriction base="xs:string">
27
+ <xs:pattern value="[a-fA-F\d]{8}-[a-fA-F\d]{4}-[a-fA-F\d]{4}-[a-fA-F\d]{4}-[a-fA-F\d]{12}" />
28
+ </xs:restriction>
29
+ </xs:simpleType>
30
+ <xs:simpleType name="uniqueMessageId">
31
+ <xs:restriction base="guid" />
32
+ </xs:simpleType>
33
+ <xs:complexType name="aaaaMessageType">
34
+ <xs:annotation>
35
+ <xs:documentation>The root of all media documents, this element will be extended to include the media content - THIS IS THE STANDARD HEADER FROM THE AAAA</xs:documentation>
36
+ </xs:annotation>
37
+ <xs:sequence>
38
+ <xs:element name="AAAA-Values">
39
+ <xs:complexType>
40
+ <xs:sequence>
41
+ <xs:element name="SchemaName" type="schemaNameString">
42
+ <xs:annotation>
43
+ <xs:documentation>Name of the Schema (XSD) file used for validation of the data. This value will be restricted in the media document. For example: spotRadioOrder</xs:documentation>
44
+ </xs:annotation>
45
+ </xs:element>
46
+ <xs:element name="SchemaVersion" type="schemaVersionString">
47
+ <xs:annotation>
48
+ <xs:documentation>Version number of the Schema (XSD) file used for validation of the data. This value will be restricted in the media document. For example: 0.2e.2</xs:documentation>
49
+ </xs:annotation>
50
+ </xs:element>
51
+ <xs:element name="Media" type="mediaString">
52
+ <xs:annotation>
53
+ <xs:documentation>Identifies the media for this transmission. This value will be restricted in the media document. For example: SpotRadio</xs:documentation>
54
+ </xs:annotation>
55
+ </xs:element>
56
+ <xs:element name="BusinessObject" type="businessObjectString">
57
+ <xs:annotation>
58
+ <xs:documentation>Identifies the object for this message. This value will be restricted in the media document. For example: Order, Invoice.</xs:documentation>
59
+ </xs:annotation>
60
+ </xs:element>
61
+ <xs:element name="Action" type="actionString">
62
+ <xs:annotation>
63
+ <xs:documentation>The action to apply to the business object e.g. Create, Revise, Delete, etc. This value will be restricted in the media document.</xs:documentation>
64
+ </xs:annotation>
65
+ </xs:element>
66
+ <xs:element name="UniqueMessageID" type="uniqueMessageId">
67
+ <xs:annotation>
68
+ <xs:documentation>Unique message id. Created by message originator and used throughout message lifetime. Message acknowledgement from receiver must include it. Intermediaries (hub, gateway, etc.) use and reference for troubleshooting purposes in the routing and delivery of the message.</xs:documentation>
69
+ </xs:annotation>
70
+ </xs:element>
71
+ </xs:sequence>
72
+ </xs:complexType>
73
+ </xs:element>
74
+ </xs:sequence>
75
+ </xs:complexType>
76
+ </xs:schema>