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,22 @@
1
+ require "e_business_for_media/iab/types/contact_method_location_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
+ # Extension to the enumerated list of locations allowing for any string value to
11
+ # be used.
12
+ class ContactMethodLocationPatternExtensionType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
13
+ namespace "iab" => "http://ns.iab.net"
14
+ simple_type "contactMethodLocationPatternExtensionType"
15
+
16
+ union do
17
+ member_types EBusinessForMedia::IAB::Types::ContactMethodLocationType, Enterprisifier::Marshalling::XSD::Types::String
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
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
+ # Describes the general physical location of the contact information destination,
10
+ # such as "office", "home', or "onPerson".
11
+ class ContactMethodLocationType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ simple_type "contactMethodLocationType"
14
+
15
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
16
+ enumeration "office"
17
+ enumeration "vehicle"
18
+ enumeration "onPerson"
19
+ enumeration "home"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,81 @@
1
+ require "e_business_for_media/iab/elements/fax"
2
+ require "e_business_for_media/iab/elements/internet_email_address"
3
+ require "e_business_for_media/iab/elements/internet_web_address"
4
+ require "e_business_for_media/iab/elements/location"
5
+ require "e_business_for_media/iab/elements/mobile"
6
+ require "e_business_for_media/iab/elements/pager"
7
+ require "e_business_for_media/iab/elements/postal_address"
8
+ require "e_business_for_media/iab/elements/telephone"
9
+ require "e_business_for_media/iab/elements/ttytdd"
10
+ require "e_business_for_media/iab/elements/use"
11
+ require "e_business_for_media/iab/elements/when_available"
12
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
13
+ require "enterprisifier/marshalling/xsd/schema/element"
14
+ require "enterprisifier/marshalling/xsd/schema/sequence"
15
+
16
+
17
+ module EBusinessForMedia
18
+ module IAB
19
+ module Types
20
+ # ContactMethodType is a structure allowing for the grouping of contact
21
+ # information data by usage, location, and availability.
22
+ class ContactMethodType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
23
+ namespace "iab" => "http://ns.iab.net"
24
+ complex_type "ContactMethodType"
25
+
26
+ sequence do
27
+ # Describes the usage of the contact, such as "business", "businessDirect", or
28
+ # "personal". It does not include the device type.
29
+ element EBusinessForMedia::IAB::Elements::Use do
30
+ min_occurs "0"
31
+ end
32
+ # Describes the general physical location of the contact information destination,
33
+ # such as "office", "home', or "onPerson".
34
+ element EBusinessForMedia::IAB::Elements::Location do
35
+ min_occurs "0"
36
+ end
37
+ # Text string suggesting an appropriate time frame when the use of the addresses
38
+ # in this ContactMethod is relevant. For example: 24x7, weekdays, or weekends.
39
+ element EBusinessForMedia::IAB::Elements::WhenAvailable do
40
+ min_occurs "0"
41
+ end
42
+ # Voice Device TelcomNumber
43
+ element EBusinessForMedia::IAB::Elements::Telephone do
44
+ min_occurs "0"
45
+ end
46
+ # Mobile Device TelcomNumber
47
+ element EBusinessForMedia::IAB::Elements::Mobile do
48
+ min_occurs "0"
49
+ end
50
+ # Facsimile Device TelcomNumber
51
+ element EBusinessForMedia::IAB::Elements::Fax do
52
+ min_occurs "0"
53
+ end
54
+ # Pager Device TelcomNumber
55
+ element EBusinessForMedia::IAB::Elements::Pager do
56
+ min_occurs "0"
57
+ end
58
+ # TTY is the acronym for Teletypewriter. TDD is the acronym for Telecommunication
59
+ # Device for the Deaf. Both are devices of TelcomNumber.
60
+ element EBusinessForMedia::IAB::Elements::TTYTDD do
61
+ min_occurs "0"
62
+ end
63
+ # Internet email address.
64
+ element EBusinessForMedia::IAB::Elements::InternetEmailAddress do
65
+ min_occurs "0"
66
+ end
67
+ # Universal Resource Locator (URL) for a web site. Usually in the form
68
+ # http://www.hr-xml.org. This should include "http://".
69
+ element EBusinessForMedia::IAB::Elements::InternetWebAddress do
70
+ min_occurs "0"
71
+ end
72
+ # Describes a postal address used for delivery of mail. See PostalAddress
73
+ # specification for details.
74
+ element EBusinessForMedia::IAB::Elements::PostalAddress do
75
+ min_occurs "0"
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,22 @@
1
+ require "e_business_for_media/iab/types/contact_method_use_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
+ # Extension to the enumerated list of uses allowing for any string value to be
11
+ # used.
12
+ class ContactMethodUsePatternExtensionType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
13
+ namespace "iab" => "http://ns.iab.net"
14
+ simple_type "contactMethodUsePatternExtensionType"
15
+
16
+ union do
17
+ member_types EBusinessForMedia::IAB::Types::ContactMethodUseType, Enterprisifier::Marshalling::XSD::Types::String
18
+ end
19
+ end
20
+ end
21
+ end
22
+ 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
+ # Describes the usage of the contact, such as "business", "businessDirect", or
10
+ # "personal". It does not include the device type.
11
+ class ContactMethodUseType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ simple_type "contactMethodUseType"
14
+
15
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
16
+ enumeration "business"
17
+ enumeration "businessDirect"
18
+ enumeration "personal"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
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
+ # Text string suggesting an appropriate time frame when the use of the addresses
10
+ # in this ContactMethod is relevant. For example: 24x7, weekdays, or weekends.
11
+ class ContactMethodWhenAvailableType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ simple_type "contactMethodWhenAvailableType"
14
+
15
+ restriction Enterprisifier::Marshalling::XSD::Types::String
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,46 @@
1
+ require "e_business_for_media/iab/elements/terms_and_conditions"
2
+ require "e_business_for_media/iab/types/discount_type"
3
+ require "e_business_for_media/iab/types/iab_billing_info_type"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
5
+ require "enterprisifier/marshalling/xsd/schema/element"
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 ContractDetailsType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "ContractDetailsType"
16
+
17
+ sequence do
18
+ element "BillingInfo" => EBusinessForMedia::IAB::Types::IABBillingInfoType do
19
+ min_occurs "0"
20
+ end
21
+ # Can be included inline or as a reference to an external document
22
+ element EBusinessForMedia::IAB::Elements::TermsAndConditions
23
+
24
+ element "OutClause" => Enterprisifier::Marshalling::XSD::Types::String do
25
+ min_occurs "0"
26
+ end
27
+ element "MakeGoodPolicy" => Enterprisifier::Marshalling::XSD::Types::String do
28
+ min_occurs "0"
29
+ end
30
+ # Used to designate whether a discount is being applied according to agency
31
+ # commission practices. If not applicable, then this element should be provided
32
+ # with discount set to 0. Other types of discounts should be listed in
33
+ # OtherDiscount.
34
+ element "AgencyCommission" => EBusinessForMedia::IAB::Types::DiscountType
35
+
36
+ # Used for discounts not related to Agency commissions. For example, volume
37
+ # discounts, sales incentives, etc.
38
+ element "Discount" => EBusinessForMedia::IAB::Types::DiscountType do
39
+ min_occurs "0"
40
+ max_occurs "unbounded"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,29 @@
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 cost method types used in the industry.
10
+ class CostMethodEnumeration < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "CostMethodEnumeration"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
15
+ enumeration "CPM"
16
+ enumeration "CPC"
17
+ enumeration "CPA"
18
+ enumeration "Sponsorship"
19
+ enumeration "RevenueShare"
20
+ enumeration "CostPlusCPC"
21
+ enumeration "CostPlusCPA"
22
+ enumeration "CostPlusRevenueShare"
23
+ enumeration "PercentOfPayout"
24
+ enumeration "FlatFee"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ require "e_business_for_media/iab/types/cost_method_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 the cost method for a line item. Can
12
+ # be either one of the enumerated values or a non-standard value (string).
13
+ class CostMethodType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "CostMethodType"
16
+
17
+ choice do
18
+ # One of the standard enumerated values for cost method.
19
+ element "StandardValue" => EBusinessForMedia::IAB::Types::CostMethodEnumeration
20
+
21
+ # A non-standard value for cost method.
22
+ element "NonStandardValue" => Enterprisifier::Marshalling::XSD::Types::String
23
+
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,20 @@
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
+ # ISO 4217 - Representation of Currency and Funds.
10
+ class CurrencyCodeType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "CurrencyCodeType"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
15
+ pattern "[A-Z][A-Z][A-Z]"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,36 @@
1
+ require "e_business_for_media/iab/types/monetary_type"
2
+ require "e_business_for_media/iab/types/percentage_type"
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
+ require "enterprisifier/marshalling/xsd/types/string"
8
+
9
+
10
+ module EBusinessForMedia
11
+ module IAB
12
+ module Types
13
+ # A discounting structure. Allows for specifying either a monetary discount or a
14
+ # percentage discount.
15
+ class DiscountType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
16
+ namespace "iab" => "http://ns.iab.net"
17
+ complex_type "DiscountType"
18
+
19
+ sequence do
20
+ # Description of the discount.
21
+ element "Description" => Enterprisifier::Marshalling::XSD::Types::String do
22
+ min_occurs "0"
23
+ end
24
+ choice do
25
+ # A percentage represented as a decimal value betwee 0 and 100 inclusive.
26
+ element "Percent" => EBusinessForMedia::IAB::Types::PercentageType
27
+
28
+ # Monetary amount of the discount.
29
+ element "Amount" => EBusinessForMedia::IAB::Types::MonetaryType
30
+
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,57 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
3
+ require "enterprisifier/marshalling/xsd/schema/element"
4
+ require "enterprisifier/marshalling/xsd/schema/extension"
5
+ require "enterprisifier/marshalling/xsd/schema/sequence"
6
+ require "enterprisifier/marshalling/xsd/schema/simple_content"
7
+ require "enterprisifier/marshalling/xsd/types/date"
8
+ require "enterprisifier/marshalling/xsd/types/string"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Types
14
+ # Data Type used to represent any Entity Identifier.
15
+ class EntityIdType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
16
+ namespace "iab" => "http://ns.iab.net"
17
+ complex_type "EntityIdType"
18
+
19
+ sequence do
20
+ # A sequence of characters that one or more systems use as an identifier for the
21
+ # given entity. This could be numeric, alpha, and may include punctuation.
22
+ element "IdValue" do
23
+ max_occurs "unbounded"
24
+ complex_type do
25
+ simple_content do
26
+ extension Enterprisifier::Marshalling::XSD::Types::String do
27
+ # A description of the type of identifier or the portion of an identifier that
28
+ # “IdValue” represents. If used, values should be determined by trading
29
+ # partner agreement.
30
+ attribute "name" => Enterprisifier::Marshalling::XSD::Types::String do
31
+ use "optional"
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ # A method for “effective dating” identifiers. Use should be determined by
39
+ # trading partner agreement.
40
+ attribute "validFrom" => Enterprisifier::Marshalling::XSD::Types::Date do
41
+ use "optional"
42
+ end
43
+ # A method for “effective dating” identifiers. Use should be determined by
44
+ # trading partner agreement.
45
+ attribute "validTo" => Enterprisifier::Marshalling::XSD::Types::Date do
46
+ use "optional"
47
+ end
48
+ # A description of who “owns” the identifier. This usually will be the company
49
+ # and/or system name that utilizes the given value(s) for uniqueness. Use should
50
+ # be by trading partner agreement.
51
+ attribute "idOwner" => Enterprisifier::Marshalling::XSD::Types::String do
52
+ use "required"
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,31 @@
1
+ require "e_business_for_media/iab/types/base_target_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
+ # An extended target type allowing for an additional category value.
14
+ class GenericTargetType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "GenericTargetType"
17
+
18
+ complex_content do
19
+ mixed "false"
20
+ extension EBusinessForMedia::IAB::Types::BaseTargetType do
21
+ sequence do
22
+ # Category associated with the target, such as Audience, Site, and Behavior.
23
+ element "Category" => Enterprisifier::Marshalling::XSD::Types::String
24
+
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end