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,33 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/schema/restriction"
3
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
4
+ require "enterprisifier/marshalling/xsd/types/string"
5
+
6
+
7
+ module EBusinessForMedia
8
+ module IAB
9
+ module Attributes
10
+ # Defines the order when multiple family names are used.
11
+ # Defines the order when multiple family names are used.
12
+ # primary=”true” Specifies that this occurrence of familyName is primary. It
13
+ # would appear first when multiple familyNames are used.
14
+ # primary=”false” Specifies that this occurrence of familyName is not primary.
15
+ # It would appear after the primary familyName. When multiple ‘False’ primary
16
+ # familyNames are used, the order is implied.
17
+ # primary=”undefined” Specifies that multiple familyNames do not apply. If
18
+ # multiple familyNames are used with this type, order is implied.
19
+ class Primary < Enterprisifier::Marshalling::XSD::Schema::Attribute
20
+ namespace "iab" => "http://ns.iab.net"
21
+ attribute "primary"
22
+
23
+ simple_type do
24
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
25
+ enumeration "true"
26
+ enumeration "false"
27
+ enumeration "undefined"
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,23 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/types/string"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Attributes
8
+ # A code identifying a character script used in the associated elements. A script
9
+ # is a set of graphic characters used for the written form of one or more
10
+ # languages. A script, as opposed to an arbitrary subset of characters, is defined
11
+ # in distinction to other scripts where readers of one script may be unable to
12
+ # read the individual character glyphs of another script.
13
+ # [BusinessRule(s): This attribute contains an ISO 15924 code (4 letters). ]
14
+ # [Example(s): “Latn” for the Latin alphabet, “Hani” for Asian ideograph
15
+ # characters, and “Arab” for the Arabic alphabet. ]
16
+ class Script < Enterprisifier::Marshalling::XSD::Schema::Attribute
17
+ namespace "iab" => "http://ns.iab.net"
18
+ attribute "script" => Enterprisifier::Marshalling::XSD::Types::String
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/types/boolean"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Attributes
8
+ # SMS (Short Message Service) is a service for sending messages of up to 160
9
+ # characters (224 characters if using a 5-bit mode) to mobile phones that use
10
+ # Global System for Mobile (GSM) communication.This boolean elements determines if
11
+ # the contact method is sms enabled or not (True/False).
12
+ class SmsEnabled < Enterprisifier::Marshalling::XSD::Schema::Attribute
13
+ namespace "iab" => "http://ns.iab.net"
14
+ attribute "smsEnabled" => Enterprisifier::Marshalling::XSD::Types::Boolean do
15
+ use "optional"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,30 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/schema/restriction"
3
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
4
+ require "enterprisifier/marshalling/xsd/types/string"
5
+
6
+
7
+ module EBusinessForMedia
8
+ module IAB
9
+ module Attributes
10
+ # Defines if the postal address is a street address, military, or post office box.
11
+ # type = postOfficeBoxAddress
12
+ # type = streetAddress
13
+ # type = militaryAddress
14
+ # type = undefined
15
+ class Type < Enterprisifier::Marshalling::XSD::Schema::Attribute
16
+ namespace "iab" => "http://ns.iab.net"
17
+ attribute "type"
18
+
19
+ simple_type do
20
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
21
+ enumeration "postOfficeBoxAddress"
22
+ enumeration "streetAddress"
23
+ enumeration "militaryAddress"
24
+ enumeration "undefined"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,18 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/types/date"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Attributes
8
+ # A method for “effective dating” identifiers. Use should be determined by
9
+ # trading partner agreement.
10
+ class ValidFrom < Enterprisifier::Marshalling::XSD::Schema::Attribute
11
+ namespace "iab" => "http://ns.iab.net"
12
+ attribute "validFrom" => Enterprisifier::Marshalling::XSD::Types::Date do
13
+ use "optional"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
2
+ require "enterprisifier/marshalling/xsd/types/date"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Attributes
8
+ # A method for “effective dating” identifiers. Use should be determined by
9
+ # trading partner agreement.
10
+ class ValidTo < Enterprisifier::Marshalling::XSD::Schema::Attribute
11
+ namespace "iab" => "http://ns.iab.net"
12
+ attribute "validTo" => Enterprisifier::Marshalling::XSD::Types::Date do
13
+ use "optional"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ 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
+ class AdServer < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "AdServer" => Enterprisifier::Marshalling::XSD::Types::String do
11
+ min_occurs "0"
12
+ max_occurs "unbounded"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
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 AdditionalMetrics < Enterprisifier::Marshalling::XSD::Schema::Element
9
+ namespace "iab" => "http://ns.iab.net"
10
+ element "AdditionalMetrics" => Enterprisifier::Marshalling::XSD::Types::String do
11
+ min_occurs "0"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ require "e_business_for_media/iab/types/postal_address_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Address of the partner.
9
+ class Address < Enterprisifier::Marshalling::XSD::Schema::Element
10
+ namespace "iab" => "http://ns.iab.net"
11
+ element "Address" => EBusinessForMedia::IAB::Types::PostalAddressType
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,22 @@
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
+ # AddressLine is used for delivery by the postal service. May contain the name or
9
+ # number of the building, house, and/or street. If the address is decomposed into
10
+ # StreetName and BuildingNumber, do not use AddressLine to store the address.
11
+ # Examples may include: Hancock Building; 5223 Oak Street; 213; East 23rd Avenue;
12
+ # P.O. Box 241; Suite 200.
13
+ class AddressLine < Enterprisifier::Marshalling::XSD::Schema::Element
14
+ namespace "iab" => "http://ns.iab.net"
15
+ element "AddressLine" => Enterprisifier::Marshalling::XSD::Types::String do
16
+ min_occurs "0"
17
+ max_occurs "unbounded"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ require "e_business_for_media/iab/types/iab_advertiser_info_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Includes all information, including contacts, brand and product, on proposal's
9
+ # advertiser.
10
+ class Advertiser < Enterprisifier::Marshalling::XSD::Schema::Element
11
+ namespace "iab" => "http://ns.iab.net"
12
+ element "Advertiser" => EBusinessForMedia::IAB::Types::IABAdvertiserInfoType
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,53 @@
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/restriction"
6
+ require "enterprisifier/marshalling/xsd/schema/simple_content"
7
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
8
+ require "enterprisifier/marshalling/xsd/types/string"
9
+
10
+
11
+ module EBusinessForMedia
12
+ module IAB
13
+ module Elements
14
+ # Contains the remaining parts of the PersonName as defined by the type attribute.
15
+ class Affix < Enterprisifier::Marshalling::XSD::Schema::Element
16
+ namespace "iab" => "http://ns.iab.net"
17
+ element "Affix" do
18
+ min_occurs "0"
19
+ max_occurs "unbounded"
20
+ end
21
+ complex_type do
22
+ simple_content do
23
+ extension Enterprisifier::Marshalling::XSD::Types::String do
24
+ # Defines the context for the affix.
25
+ # type=aristocraticTitle.
26
+ # e.g. Baron, Graf, Earl, etc.
27
+ # type=formOfAddress.
28
+ # Contains the Salutation,
29
+ # e.g. Mr., Mrs., Hon., Dr., Major, etc.
30
+ # type=generation.
31
+ # e.g. Sr., Jr., III (the third), etc.
32
+ # type=qualification.
33
+ # Contains the letters used to describe academic or other type qualifications held
34
+ # by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA,
35
+ # MCSD, etc.
36
+ attribute "type" do
37
+ use "required"
38
+ simple_type do
39
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
40
+ enumeration "aristocraticTitle"
41
+ enumeration "formOfAddress"
42
+ enumeration "generation"
43
+ enumeration "qualification"
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,19 @@
1
+ require "e_business_for_media/iab/types/iab_partner_info_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Contains all information on agency including contact and role. Multiple agencies
9
+ # can be attached to a proposal.
10
+ class Agency < Enterprisifier::Marshalling::XSD::Schema::Element
11
+ namespace "iab" => "http://ns.iab.net"
12
+ element "Agency" => EBusinessForMedia::IAB::Types::IABPartnerInfoType do
13
+ min_occurs "0"
14
+ max_occurs "3"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require "e_business_for_media/iab/types/discount_type"
2
+ require "enterprisifier/marshalling/xsd/schema/element"
3
+
4
+
5
+ module EBusinessForMedia
6
+ module IAB
7
+ module Elements
8
+ # Used to designate whether a discount is being applied according to agency
9
+ # commission practices. If not applicable, then this element should be provided
10
+ # with discount set to 0. Other types of discounts should be listed in
11
+ # OtherDiscount.
12
+ class AgencyCommission < Enterprisifier::Marshalling::XSD::Schema::Element
13
+ namespace "iab" => "http://ns.iab.net"
14
+ element "AgencyCommission" => EBusinessForMedia::IAB::Types::DiscountType
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,147 @@
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/restriction"
6
+ require "enterprisifier/marshalling/xsd/schema/sequence"
7
+ require "enterprisifier/marshalling/xsd/schema/simple_content"
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 Elements
15
+ # The same information as presented in the base elements, but represented in a
16
+ # different script.
17
+ # [BusinessRule(s): AlternateScript elements should contain sub-elements parallel
18
+ # to the base structure, but in the alternate script designated by the script
19
+ # attribute. 2 sibling AlternateScript elements should not use the same script. ]
20
+ # [Example(s): A person’s name may be represented in the Latin alphabet in the
21
+ # base structure but represented in Japanese Katakana and/or Japanese Kanji script
22
+ # (or Arabic characters, Korean characters et al) by use of AlternateScript
23
+ # elements. ]
24
+ class AlternateScript < Enterprisifier::Marshalling::XSD::Schema::Element
25
+ namespace "iab" => "http://ns.iab.net"
26
+ element "AlternateScript" do
27
+ min_occurs "0"
28
+ max_occurs "unbounded"
29
+ end
30
+ complex_type do
31
+ sequence do
32
+ # Contains, in one string, a fully formatted name with all of its pieces in their
33
+ # proper place.
34
+ # [BusinessRule(s): This includes all of the necessary punctuation. This
35
+ # de-normalized form of the name cannot be easily parsed. The use of multiple
36
+ # occurrences are officially deprecated in this release and will be removed in a
37
+ # future version. ]
38
+ element "FormattedName" => Enterprisifier::Marshalling::XSD::Types::String do
39
+ min_occurs "0"
40
+ end
41
+ # Used for legal documentation or other legal purposes. Contains, in one string, a
42
+ # fully formatted name with all of its pieces in their proper place. This includes
43
+ # all of the necessary punctuation. Extension to represent the worker's name.
44
+ element "LegalName" => Enterprisifier::Marshalling::XSD::Types::String do
45
+ min_occurs "0"
46
+ end
47
+ # Contains the given or chosen name. Also known as a person's first name. If
48
+ # multiple givenNames are used, the order is implied.
49
+ element "GivenName" => Enterprisifier::Marshalling::XSD::Types::String do
50
+ min_occurs "0"
51
+ max_occurs "unbounded"
52
+ end
53
+ # Contains the chosen name by which the person prefers to be addressed. Note: This
54
+ # name may be a name other than a given name, such as a nickname.
55
+ element "PreferredGivenName" => Enterprisifier::Marshalling::XSD::Types::String do
56
+ min_occurs "0"
57
+ end
58
+ # Contains a person's middle name or initial.
59
+ element "MiddleName" => Enterprisifier::Marshalling::XSD::Types::String do
60
+ min_occurs "0"
61
+ end
62
+ # Contains the non-chosen or inherited name. Also known as a person's last name in
63
+ # the Western context. The order is implied by the order of appearance of the
64
+ # FamilyName elements in the XML document.
65
+ element "FamilyName" do
66
+ min_occurs "0"
67
+ max_occurs "unbounded"
68
+ complex_type do
69
+ simple_content do
70
+ extension Enterprisifier::Marshalling::XSD::Types::String do
71
+ # Defines the order when multiple family names are used.
72
+ # Defines the order when multiple family names are used.
73
+ # primary=”true” Specifies that this occurrence of familyName is primary. It
74
+ # would appear first when multiple familyNames are used.
75
+ # primary=”false” Specifies that this occurrence of familyName is not primary.
76
+ # It would appear after the primary familyName. When multiple ‘False’ primary
77
+ # familyNames are used, the order is implied.
78
+ # primary=”undefined” Specifies that multiple familyNames do not apply. If
79
+ # multiple familyNames are used with this type, order is implied.
80
+ attribute "primary" do
81
+ simple_type do
82
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
83
+ enumeration "true"
84
+ enumeration "false"
85
+ enumeration "undefined"
86
+ end
87
+ end
88
+ end
89
+ # The aristocratic or other prefix for FamilyName.
90
+ # [Example(s): de (as in de Witt), la (as in la Salle); van (as in van der Voss).
91
+ # ]
92
+ attribute "prefix" => Enterprisifier::Marshalling::XSD::Types::String
93
+
94
+ end
95
+ end
96
+ end
97
+ end
98
+ # Contains the remaining parts of the PersonName as defined by the type attribute.
99
+ element "Affix" do
100
+ min_occurs "0"
101
+ max_occurs "unbounded"
102
+ complex_type do
103
+ simple_content do
104
+ extension Enterprisifier::Marshalling::XSD::Types::String do
105
+ # Defines the context for the affix.
106
+ # type=aristocraticTitle.
107
+ # e.g. Baron, Graf, Earl, etc.
108
+ # type=formOfAddress.
109
+ # Contains the Salutation,
110
+ # e.g. Mr., Mrs., Hon., Dr., Major, etc.
111
+ # type=generation.
112
+ # e.g. Sr., Jr., III (the third), etc.
113
+ # type=qualification.
114
+ # Contains the letters used to describe academic or other type qualifications held
115
+ # by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA,
116
+ # MCSD, etc.
117
+ attribute "type" do
118
+ use "required"
119
+ simple_type do
120
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
121
+ enumeration "aristocraticTitle"
122
+ enumeration "formOfAddress"
123
+ enumeration "generation"
124
+ enumeration "qualification"
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
133
+ # A code identifying a character script used in the associated elements. A script
134
+ # is a set of graphic characters used for the written form of one or more
135
+ # languages. A script, as opposed to an arbitrary subset of characters, is defined
136
+ # in distinction to other scripts where readers of one script may be unable to
137
+ # read the individual character glyphs of another script.
138
+ # [BusinessRule(s): This attribute contains an ISO 15924 code (4 letters). ]
139
+ # [Example(s): “Latn” for the Latin alphabet, “Hani” for Asian ideograph
140
+ # characters, and “Arab” for the Arabic alphabet. ]
141
+ attribute "script" => Enterprisifier::Marshalling::XSD::Types::String
142
+
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end