enterprisifier 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,38 @@
1
+ require "e_business_for_media/iab/types/iab_partner_info_type"
2
+ require "enterprisifier/marshalling/xsd/schema/complex_content"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
4
+ require "enterprisifier/marshalling/xsd/schema/element"
5
+ require "enterprisifier/marshalling/xsd/schema/extension"
6
+ require "enterprisifier/marshalling/xsd/schema/sequence"
7
+ require "enterprisifier/marshalling/xsd/types/string"
8
+
9
+
10
+ module EBusinessForMedia
11
+ module IAB
12
+ module Types
13
+ class IABAdvertiserInfoType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "IABAdvertiserInfoType"
16
+
17
+ complex_content do
18
+ extension EBusinessForMedia::IAB::Types::IABPartnerInfoType do
19
+ sequence do
20
+ # e.g. Ford - no standard industry lookup tables - for partners' use only
21
+ element "BrandName" => Enterprisifier::Marshalling::XSD::Types::String do
22
+ min_occurs "0"
23
+ end
24
+ # e.g. Automotive - no standard industry lookup tables - for partners' use only
25
+ element "Industry" => Enterprisifier::Marshalling::XSD::Types::String do
26
+ min_occurs "0"
27
+ end
28
+ # e.g. F150 - no standard industry lookup tables - for partners' use only
29
+ element "ProductName" => Enterprisifier::Marshalling::XSD::Types::String do
30
+ min_occurs "0"
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,54 @@
1
+ require "e_business_for_media/iab/types/iab_distribution_type"
2
+ require "e_business_for_media/iab/types/iab_partner_info_type"
3
+ require "e_business_for_media/iab/types/iab_payment_terms_type"
4
+ require "e_business_for_media/iab/types/iab_payment_type_enumerated_type"
5
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
6
+ require "enterprisifier/marshalling/xsd/schema/element"
7
+ require "enterprisifier/marshalling/xsd/schema/sequence"
8
+ require "enterprisifier/marshalling/xsd/types/string"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Types
14
+ class IABBillingInfoType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "IABBillingInfoType"
17
+
18
+ sequence do
19
+ element "PaymentTerms" => EBusinessForMedia::IAB::Types::IABPaymentTermsType
20
+
21
+ element "PaymentType" => EBusinessForMedia::IAB::Types::IABPaymentTypeEnumeratedType
22
+
23
+ element "BillingFrequency" => Enterprisifier::Marshalling::XSD::Types::String
24
+
25
+ element "Distribution" => EBusinessForMedia::IAB::Types::IABDistributionType
26
+
27
+ element "Basis" do
28
+ complex_type do
29
+ sequence do
30
+ element "Value" => Enterprisifier::Marshalling::XSD::Types::String
31
+
32
+ element "Notes" => Enterprisifier::Marshalling::XSD::Types::String do
33
+ min_occurs "0"
34
+ end
35
+ end
36
+ end
37
+ end
38
+ element "AdServer" => Enterprisifier::Marshalling::XSD::Types::String do
39
+ min_occurs "0"
40
+ max_occurs "unbounded"
41
+ end
42
+ # Billable numbers source e.g. Publisher, Third-Party, etc.
43
+ element "BillingStatisticsSource" => Enterprisifier::Marshalling::XSD::Types::String
44
+
45
+ # Information on who to bill, where invoice comes from, etc
46
+ element "BillingPartner" => EBusinessForMedia::IAB::Types::IABPartnerInfoType
47
+
48
+ element "Notes" => Enterprisifier::Marshalling::XSD::Types::String
49
+
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,44 @@
1
+ require "e_business_for_media/iab/elements/iab_type_of_contact"
2
+ require "e_business_for_media/iab/elements/person_name"
3
+ require "e_business_for_media/iab/types/contact_method_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
+ require "enterprisifier/marshalling/xsd/types/string"
10
+
11
+
12
+ module EBusinessForMedia
13
+ module IAB
14
+ module Types
15
+ # IABContactMethodType is a structure allowing for the grouping of contact
16
+ # information data by usage, location, and availability. The IAB extension to the
17
+ # base HR-XML type allows for defining the IAB contact type atribute, as defined
18
+ # below.
19
+ class IABContactMethodType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
20
+ namespace "iab" => "http://ns.iab.net"
21
+ complex_type "IABContactMethodType"
22
+
23
+ complex_content do
24
+ mixed "false"
25
+ extension EBusinessForMedia::IAB::Types::ContactMethodType do
26
+ sequence do
27
+ # The specific type of contact represented in the data. Examples being Primary,
28
+ # Sales, and Technical.
29
+ element EBusinessForMedia::IAB::Elements::IABTypeOfContact
30
+
31
+ # The person being contacted.
32
+ element EBusinessForMedia::IAB::Elements::PersonName
33
+
34
+ # The business title of the person.
35
+ element "Title" => Enterprisifier::Marshalling::XSD::Types::String do
36
+ min_occurs "0"
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,28 @@
1
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+ require "enterprisifier/marshalling/xsd/schema/sequence"
4
+ require "enterprisifier/marshalling/xsd/types/date"
5
+ require "enterprisifier/marshalling/xsd/types/time"
6
+
7
+
8
+ module EBusinessForMedia
9
+ module IAB
10
+ module Types
11
+ # Date time structure allowing for an optional time.
12
+ class IABDateTimeType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
13
+ namespace "iab" => "http://ns.iab.net"
14
+ complex_type "IABDateTimeType"
15
+
16
+ sequence do
17
+ # A date.
18
+ element "Date" => Enterprisifier::Marshalling::XSD::Types::Date
19
+
20
+ # A time value.
21
+ element "Time" => Enterprisifier::Marshalling::XSD::Types::Time do
22
+ min_occurs "0"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
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
+ class IABDistributionEnumeratedType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
10
+ namespace "iab" => "http://ns.iab.net"
11
+ simple_type "IABDistributionEnumeratedType"
12
+
13
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
14
+ enumeration "Straightline"
15
+ enumeration "Prorated"
16
+ enumeration "Weighted"
17
+ enumeration "Scheduled"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ require "e_business_for_media/iab/types/iab_distribution_enumerated_type"
2
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
3
+ require "enterprisifier/marshalling/xsd/schema/union"
4
+ require "enterprisifier/marshalling/xsd/types/string"
5
+
6
+
7
+ module EBusinessForMedia
8
+ module IAB
9
+ module Types
10
+ class IABDistributionType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "IABDistributionType"
13
+
14
+ union do
15
+ member_types EBusinessForMedia::IAB::Types::IABDistributionEnumeratedType, Enterprisifier::Marshalling::XSD::Types::String
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,47 @@
1
+ require "e_business_for_media/iab/elements/campaign_reference_info"
2
+ require "e_business_for_media/iab/elements/iab_message_header"
3
+ require "e_business_for_media/iab/types/iab_advertiser_info_type"
4
+ require "e_business_for_media/iab/types/iab_partner_info_type"
5
+ require "e_business_for_media/iab/types/iab_publisher_info_type"
6
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
7
+ require "enterprisifier/marshalling/xsd/schema/element"
8
+ require "enterprisifier/marshalling/xsd/schema/sequence"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Types
14
+ class IABMessageBaseType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "IABMessageBaseType"
17
+
18
+ sequence do
19
+ element EBusinessForMedia::IAB::Elements::IABMessageHeader
20
+
21
+ # Includes all information, including contacts, brand and product, on proposal's
22
+ # advertiser.
23
+ element "Advertiser" => EBusinessForMedia::IAB::Types::IABAdvertiserInfoType
24
+
25
+ # Contains all information on agency including contact and role. Multiple agencies
26
+ # can be attached to a proposal.
27
+ element "Agency" => EBusinessForMedia::IAB::Types::IABPartnerInfoType do
28
+ min_occurs "0"
29
+ max_occurs "3"
30
+ end
31
+ # Conations all information on publisher including contact and properties for
32
+ # proposal.
33
+ element "Publisher" => EBusinessForMedia::IAB::Types::IABPublisherInfoType
34
+
35
+ # Used to add contact and role information for additional companies involved in
36
+ # the campaign/proposal.
37
+ element "Partner" => EBusinessForMedia::IAB::Types::IABPartnerInfoType do
38
+ min_occurs "0"
39
+ max_occurs "unbounded"
40
+ end
41
+ element EBusinessForMedia::IAB::Elements::CampaignReferenceInfo
42
+
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,34 @@
1
+ require "e_business_for_media/aaaa/types/aaaa_message_type"
2
+ require "enterprisifier/marshalling/xsd/schema/complex_content"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
4
+ require "enterprisifier/marshalling/xsd/schema/element"
5
+ require "enterprisifier/marshalling/xsd/schema/extension"
6
+ require "enterprisifier/marshalling/xsd/schema/sequence"
7
+ require "enterprisifier/marshalling/xsd/types/date_time"
8
+ require "enterprisifier/marshalling/xsd/types/string"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Types
14
+ class IABMessageHeaderType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "IABMessageHeaderType" do
17
+ mixed "false"
18
+ end
19
+ complex_content do
20
+ mixed "false"
21
+ extension EBusinessForMedia::AAAA::Types::AaaaMessageType do
22
+ sequence do
23
+ # Party that created the message being sent. For problem solving purposes.
24
+ element "CreatingSystem" => Enterprisifier::Marshalling::XSD::Types::String
25
+
26
+ element "CreatedDate" => Enterprisifier::Marshalling::XSD::Types::DateTime
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,67 @@
1
+ require "e_business_for_media/iab/types/entity_id_type"
2
+ require "e_business_for_media/iab/types/iab_contact_method_type"
3
+ require "e_business_for_media/iab/types/postal_address_type"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
5
+ require "enterprisifier/marshalling/xsd/schema/element"
6
+ require "enterprisifier/marshalling/xsd/schema/restriction"
7
+ require "enterprisifier/marshalling/xsd/schema/sequence"
8
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
9
+ require "enterprisifier/marshalling/xsd/types/string"
10
+
11
+
12
+ module EBusinessForMedia
13
+ module IAB
14
+ module Types
15
+ # Structure containing partner information used to identify trading partners in a
16
+ # exchange scenario. Examples would be Advertiser, Agency, Billing Partner, and
17
+ # Publisher.
18
+ class IABPartnerInfoType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
19
+ namespace "iab" => "http://ns.iab.net"
20
+ complex_type "IABPartnerInfoType"
21
+
22
+ sequence do
23
+ # The role the partner is playng in the context of the message.
24
+ element "Role" do
25
+ simple_type do
26
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
27
+ enumeration "Advertiser"
28
+ enumeration "Agency"
29
+ enumeration "Billing"
30
+ enumeration "BuyingAgency"
31
+ enumeration "CreativeAgency"
32
+ enumeration "PlanningAgency"
33
+ enumeration "Publisher"
34
+ enumeration "Broker"
35
+ enumeration "OtherPartner"
36
+ end
37
+ end
38
+ end
39
+ # The primary identifier of the partner. This should be a neutral third-party
40
+ # issued value such as a Guid.
41
+ element "PrimaryID" => EBusinessForMedia::IAB::Types::EntityIdType
42
+
43
+ # A repeatable series of other system identities for the partner. This can be used
44
+ # to transmit system specific identifiers between partners.
45
+ element "OtherID" => EBusinessForMedia::IAB::Types::EntityIdType do
46
+ min_occurs "0"
47
+ max_occurs "unbounded"
48
+ end
49
+ # Legal entity name of the partner (business name).
50
+ element "Name" => Enterprisifier::Marshalling::XSD::Types::String
51
+
52
+ # Address of the partner.
53
+ element "Address" => EBusinessForMedia::IAB::Types::PostalAddressType
54
+
55
+ # Primary contact within the partner organization.
56
+ element "PrimaryContact" => EBusinessForMedia::IAB::Types::IABContactMethodType
57
+
58
+ # Optional list of other contacts for within the partner organization.
59
+ element "OtherContacts" => EBusinessForMedia::IAB::Types::IABContactMethodType do
60
+ min_occurs "0"
61
+ max_occurs "unbounded"
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,23 @@
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
+ class IABPaymentTermsEnumeratedType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
10
+ namespace "iab" => "http://ns.iab.net"
11
+ simple_type "IABPaymentTermsEnumeratedType"
12
+
13
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
14
+ enumeration "Advance"
15
+ enumeration "Net15"
16
+ enumeration "Net30"
17
+ enumeration "Net60"
18
+ enumeration "EndOfContract"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ require "e_business_for_media/iab/types/iab_payment_terms_enumerated_type"
2
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
3
+ require "enterprisifier/marshalling/xsd/schema/union"
4
+ require "enterprisifier/marshalling/xsd/types/string"
5
+
6
+
7
+ module EBusinessForMedia
8
+ module IAB
9
+ module Types
10
+ class IABPaymentTermsType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "IABPaymentTermsType"
13
+
14
+ union do
15
+ member_types EBusinessForMedia::IAB::Types::IABPaymentTermsEnumeratedType, Enterprisifier::Marshalling::XSD::Types::String
16
+ end
17
+ end
18
+ end
19
+ end
20
+ 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
+ class IABPaymentTypeEnumeratedType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
10
+ namespace "iab" => "http://ns.iab.net"
11
+ simple_type "IABPaymentTypeEnumeratedType"
12
+
13
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
14
+ enumeration "Cash"
15
+ enumeration "Trade"
16
+ enumeration "Other"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+ require "e_business_for_media/iab/types/iab_partner_info_type"
2
+ require "e_business_for_media/iab/types/internet_web_address_type"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_content"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
5
+ require "enterprisifier/marshalling/xsd/schema/element"
6
+ require "enterprisifier/marshalling/xsd/schema/extension"
7
+ require "enterprisifier/marshalling/xsd/schema/sequence"
8
+
9
+
10
+ module EBusinessForMedia
11
+ module IAB
12
+ module Types
13
+ class IABPublisherInfoType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "IABPublisherInfoType"
16
+
17
+ complex_content do
18
+ extension EBusinessForMedia::IAB::Types::IABPartnerInfoType do
19
+ sequence do
20
+ element "PropertyName" => EBusinessForMedia::IAB::Types::InternetWebAddressType do
21
+ max_occurs "unbounded"
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end