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,27 @@
1
+ require "e_business_for_media/iab/types/attachment_type"
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 Elements
11
+ # Can be included inline or as a reference to an external document
12
+ class TermsAndConditions < Enterprisifier::Marshalling::XSD::Schema::Element
13
+ namespace "iab" => "http://ns.iab.net"
14
+ element "TermsAndConditions"
15
+
16
+ complex_type do
17
+ choice do
18
+ element "TermsText" => Enterprisifier::Marshalling::XSD::Types::String
19
+
20
+ element "TermsAttachment" => EBusinessForMedia::IAB::Types::AttachmentType
21
+
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ require "e_business_for_media/iab/types/attachment_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ class TermsAttachment < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "TermsAttachment" => EBusinessForMedia::IAB::Types::AttachmentType
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ class TermsText < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "TermsText" => Enterprisifier::Marshalling::XSD::Types::String
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/time"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # A time value.
9
+ class Time < Enterprisifier::Marshalling::XSD::Schema::Element
10
+ namespace "iab" => "http://ns.iab.net"
11
+ element "Time" => Enterprisifier::Marshalling::XSD::Types::Time do
12
+ min_occurs "0"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # The business title of the person.
9
+ class Title < Enterprisifier::Marshalling::XSD::Schema::Element
10
+ namespace "iab" => "http://ns.iab.net"
11
+ element "Title" => Enterprisifier::Marshalling::XSD::Types::String do
12
+ min_occurs "0"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ require "e_business_for_media/iab/types/telcom_number_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # TTY is the acronym for Teletypewriter. TDD is the acronym for Telecommunication
9
+ # Device for the Deaf. Both are devices of TelcomNumber.
10
+ class TTYTDD < Enterprisifier::Marshalling::XSD::Schema::Element
11
+ namespace "iab" => "http://ns.iab.net"
12
+ element "TTYTDD" => EBusinessForMedia::IAB::Types::TelcomNumberType
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ class Type < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "Type" => Enterprisifier::Marshalling::XSD::Types::String
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Contains the Apartment, Suite, Unit, Room, Floor, Trailer, Level, Hanger, etc.
9
+ # This may be used for verification, building the address, or storing in a
10
+ # database. If the address is decomposed into StreetName, BuildingNumber and Unit,
11
+ # do not use AddressLine to duplicate that part of the address information.
12
+ # Examples may include: Apt. 124, Ste. 300, Upper, Hanger A.
13
+ class Unit < Enterprisifier::Marshalling::XSD::Schema::Element
14
+ namespace "iab" => "http://ns.iab.net"
15
+ element "Unit" => Enterprisifier::Marshalling::XSD::Types::String do
16
+ min_occurs "0"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ require "e_business_for_media/iab/types/contact_method_use_pattern_extension_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Describes the usage of the contact, such as "business", "businessDirect", or
9
+ # "personal". It does not include the device type.
10
+ class Use < Enterprisifier::Marshalling::XSD::Schema::Element
11
+ namespace "iab" => "http://ns.iab.net"
12
+ element "Use" => EBusinessForMedia::IAB::Types::ContactMethodUsePatternExtensionType
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ class Value < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "Value" => Enterprisifier::Marshalling::XSD::Types::String
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,24 @@
1
+ require "enterprisifier/marshalling/xsd/schema/element"
2
+ require "enterprisifier/marshalling/xsd/schema/restriction"
3
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
4
+ require "enterprisifier/marshalling/xsd/types/decimal"
5
+
6
+
7
+ module EBusinessForMedia
8
+ module IAB
9
+ module Elements
10
+ # Version of document. See IAB E-Business Tech Specs for version control
11
+ # instructions.
12
+ class Version < Enterprisifier::Marshalling::XSD::Schema::Element
13
+ namespace "iab" => "http://ns.iab.net"
14
+ element "Version"
15
+
16
+ simple_type do
17
+ restriction Enterprisifier::Marshalling::XSD::Types::Decimal do
18
+ fraction_digits "2"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ require "e_business_for_media/iab/types/contact_method_when_available_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # IABContactMethodType is a structure allowing for the grouping of contact
9
+ # information data by usage, location, and availability. The IAB extension to the
10
+ # base HR-XML type allows for defining the IAB contact type atribute, as defined
11
+ # below.
12
+ class WhenAvailable < Enterprisifier::Marshalling::XSD::Schema::Element
13
+ namespace "iab" => "http://ns.iab.net"
14
+ element "WhenAvailable" => EBusinessForMedia::IAB::Types::ContactMethodWhenAvailableType
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require "e_business_for_media/iab/types/zero_cost_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ class ZeroCost < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "ZeroCost" => EBusinessForMedia::IAB::Types::ZeroCostType
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,52 @@
1
+ require "e_business_for_media/iab/elements/area_city_code"
2
+ require "e_business_for_media/iab/elements/extension"
3
+ require "e_business_for_media/iab/elements/international_country_code"
4
+ require "e_business_for_media/iab/elements/national_number"
5
+ require "e_business_for_media/iab/elements/subscriber_number"
6
+ require "enterprisifier/marshalling/xsd/schema/element"
7
+ require "enterprisifier/marshalling/xsd/schema/group"
8
+ require "enterprisifier/marshalling/xsd/schema/sequence"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Groups
14
+ class TelcomNumberGroup < Enterprisifier::Marshalling::XSD::Schema::Group
15
+ namespace "iab" => "http://ns.iab.net"
16
+ group "TelcomNumberGroup"
17
+
18
+ sequence do
19
+ # This is the ITU's country code that identifies a specific country, countries in
20
+ # an integrated numbering plan, or a specific geographic area.
21
+ element EBusinessForMedia::IAB::Elements::InternationalCountryCode do
22
+ min_occurs "0"
23
+ end
24
+ # National (Trunk) Number. This is the code used to indicate that the following
25
+ # numbers are for another AreaCityCode outside the Originating AreaCityCode, but
26
+ # within the originating country. This can usually be inferred from the
27
+ # TelcomCountryCode. It is included for those cases were derivation is not used.
28
+ element EBusinessForMedia::IAB::Elements::NationalNumber do
29
+ min_occurs "0"
30
+ end
31
+ # This defines either a numbering area within a country (or group of countries
32
+ # included in one integrated numbering plan or a specific geographic area) or
33
+ # network/service.
34
+ element EBusinessForMedia::IAB::Elements::AreaCityCode do
35
+ min_occurs "0"
36
+ end
37
+ # The number identifying a subscriber in a network or numbering area. The
38
+ # SubscriberNumber MUST contain at least one digit. The SubscriberNumber MAY
39
+ # contain hyphens, period, and spaces in addition to the digits. This number may
40
+ # also be known as the "local number".
41
+ element EBusinessForMedia::IAB::Elements::SubscriberNumber
42
+
43
+ # This may contain a PBX extension, a pager PIN, a fax sub-address, or other
44
+ # extended addressing information.
45
+ element EBusinessForMedia::IAB::Elements::Extension do
46
+ min_occurs "0"
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,32 @@
1
+ require "e_business_for_media/iab/types/internet_web_address_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
+ # Originating system's ID for this version of the document. During a
12
+ # 'conversation' between the buy and sell side this value should uniquely identify
13
+ # this version of the document. If Publisher sent proposal, should stay publisher
14
+ # ID. Use of 'name' attribute allows for additional system-ID mapping and
15
+ # identification.
16
+ class AttachmentType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
17
+ namespace "iab" => "http://ns.iab.net"
18
+ complex_type "AttachmentType"
19
+
20
+ sequence do
21
+ # Description of the attachment.
22
+ element "Description" => Enterprisifier::Marshalling::XSD::Types::String do
23
+ min_occurs "0"
24
+ end
25
+ # Internet link to the attachment.
26
+ element "Link" => EBusinessForMedia::IAB::Types::InternetWebAddressType
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ require "e_business_for_media/iab/elements/gross_cost"
2
+ require "e_business_for_media/iab/elements/net_cost"
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/sequence"
7
+
8
+
9
+ module EBusinessForMedia
10
+ module IAB
11
+ module Types
12
+ # Basic gross and net cost information. Allows for includsion of gross only, net
13
+ # only, or both values.
14
+ class BaseCost < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "BaseCost"
17
+
18
+ choice do
19
+ sequence do
20
+ element EBusinessForMedia::IAB::Elements::GrossCost
21
+
22
+ element EBusinessForMedia::IAB::Elements::NetCost do
23
+ min_occurs "0"
24
+ end
25
+ end
26
+ element EBusinessForMedia::IAB::Elements::NetCost
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ require "e_business_for_media/iab/types/entity_id_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
+ # A targeting structure for use in defining campaign/media targeting.
12
+ class BaseTargetType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
13
+ namespace "iab" => "http://ns.iab.net"
14
+ complex_type "BaseTargetType"
15
+
16
+ sequence do
17
+ # Optional identifier of the target option.
18
+ element "ID" => EBusinessForMedia::IAB::Types::EntityIdType do
19
+ min_occurs "0"
20
+ end
21
+ # Type of target option.
22
+ element "Type" => Enterprisifier::Marshalling::XSD::Types::String
23
+
24
+ # Value of the target option.
25
+ element "Value" => Enterprisifier::Marshalling::XSD::Types::String
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ require "e_business_for_media/iab/types/unit_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/int"
6
+
7
+
8
+ module EBusinessForMedia
9
+ module IAB
10
+ module Types
11
+ # Basic information about units, including type and number.
12
+ class BaseUnit < Enterprisifier::Marshalling::XSD::Schema::ComplexType
13
+ namespace "iab" => "http://ns.iab.net"
14
+ complex_type "BaseUnit"
15
+
16
+ sequence do
17
+ # Type of units being detailed.
18
+ element "Type" => EBusinessForMedia::IAB::Types::UnitType
19
+
20
+ # CPM, CPC, Sponsorship, etc
21
+ element "Count" => Enterprisifier::Marshalling::XSD::Types::Int
22
+
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,81 @@
1
+ require "e_business_for_media/iab/types/entity_id_type"
2
+ require "e_business_for_media/iab/types/iab_date_time_type"
3
+ require "e_business_for_media/iab/types/person_name_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/decimal"
10
+ require "enterprisifier/marshalling/xsd/types/string"
11
+
12
+
13
+ module EBusinessForMedia
14
+ module IAB
15
+ module Types
16
+ class CampaignReferenceInfoType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
17
+ namespace "iab" => "http://ns.iab.net"
18
+ complex_type "CampaignReferenceInfoType"
19
+
20
+ sequence do
21
+ # Name of campaign
22
+ element "DocumentName" => Enterprisifier::Marshalling::XSD::Types::String
23
+
24
+ # Originating system's ID for this campaign. Throughout a 'conversation' between
25
+ # the buy and sell side, this value should uniquely identify the campaign. Use of
26
+ # 'name' attribute allows for additional system-ID mapping and identification.
27
+ element "CampaignReferenceId" => EBusinessForMedia::IAB::Types::EntityIdType
28
+
29
+ # Originating system's ID for this version of the document. During a
30
+ # 'conversation' between the buy and sell side this value should uniquely identify
31
+ # this version of the document. If Publisher sent proposal, should stay publisher
32
+ # ID. Use of 'name' attribute allows for additional system-ID mapping and
33
+ # identification.
34
+ element "DocumentId" => EBusinessForMedia::IAB::Types::EntityIdType
35
+
36
+ # Additional IDs for use by other systems. In this case, Agency and/or partner
37
+ # systems would attach its own document ID here. Use of 'name' attribute allows
38
+ # for additional system-ID mapping and identification.
39
+ element "OtherID" => EBusinessForMedia::IAB::Types::EntityIdType do
40
+ min_occurs "0"
41
+ max_occurs "unbounded"
42
+ end
43
+ # Version of document. See IAB E-Business Tech Specs for version control
44
+ # instructions.
45
+ element "Version" do
46
+ simple_type do
47
+ restriction Enterprisifier::Marshalling::XSD::Types::Decimal do
48
+ fraction_digits "2"
49
+ end
50
+ end
51
+ end
52
+ element "InReferenceTo" do
53
+ complex_type do
54
+ sequence do
55
+ element "ReferencedDocumentId" => EBusinessForMedia::IAB::Types::EntityIdType
56
+
57
+ element "ReferencedVersion" do
58
+ simple_type do
59
+ restriction Enterprisifier::Marshalling::XSD::Types::Decimal do
60
+ fraction_digits "2"
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ # Can be used for communicating varying status of proposal.
68
+ element "OrderStatus" => Enterprisifier::Marshalling::XSD::Types::String do
69
+ min_occurs "0"
70
+ end
71
+ # The name of the person originating and sending the document. Used for problem
72
+ # solving.
73
+ element "DocumentSender" => EBusinessForMedia::IAB::Types::PersonNameType
74
+
75
+ element "SentDate" => EBusinessForMedia::IAB::Types::IABDateTimeType
76
+
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end