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,30 @@
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
+ # The specific type of contact represented in the data. Examples being Primary,
10
+ # Sales, and Technical.
11
+ class IABTypeOfContactType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ simple_type "IABTypeOfContactType"
14
+
15
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
16
+ enumeration "Primary"
17
+ enumeration "Secondary"
18
+ enumeration "Technical"
19
+ enumeration "Sales"
20
+ enumeration "Emergency"
21
+ enumeration "Production"
22
+ enumeration "Billing"
23
+ enumeration "Account Executive"
24
+ enumeration "Buyer"
25
+ enumeration "Traffic"
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
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
+ # Internet email address.
10
+ class InternetEmailAddressType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "InternetEmailAddressType"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::String
15
+
16
+ end
17
+ end
18
+ end
19
+ 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
+ # Universal Resource Locator (URL) for a web site. Usually in the form
10
+ # http://www.hr-xml.org. This should include "http://".
11
+ class InternetWebAddressType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
12
+ namespace "iab" => "http://ns.iab.net"
13
+ simple_type "InternetWebAddressType"
14
+
15
+ restriction Enterprisifier::Marshalling::XSD::Types::String
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,33 @@
1
+ require "e_business_for_media/iab/types/telcom_number_type"
2
+ require "enterprisifier/marshalling/xsd/schema/attribute"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_content"
4
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
5
+ require "enterprisifier/marshalling/xsd/schema/extension"
6
+ require "enterprisifier/marshalling/xsd/types/boolean"
7
+
8
+
9
+ module EBusinessForMedia
10
+ module IAB
11
+ module Types
12
+ # MobileTelcomNumberType extends TelcomNumberType by adding an smsEnabled
13
+ # attribute.
14
+ class MobileTelcomNumberType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
15
+ namespace "iab" => "http://ns.iab.net"
16
+ complex_type "MobileTelcomNumberType"
17
+
18
+ complex_content do
19
+ mixed "false"
20
+ extension EBusinessForMedia::IAB::Types::TelcomNumberType do
21
+ # SMS (Short Message Service) is a service for sending messages of up to 160
22
+ # characters (224 characters if using a 5-bit mode) to mobile phones that use
23
+ # Global System for Mobile (GSM) communication.This boolean elements determines if
24
+ # the contact method is sms enabled or not (True/False).
25
+ attribute "smsEnabled" => Enterprisifier::Marshalling::XSD::Types::Boolean do
26
+ use "optional"
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,28 @@
1
+ require "e_business_for_media/iab/types/currency_code_type"
2
+ require "enterprisifier/marshalling/xsd/schema/attribute"
3
+ require "enterprisifier/marshalling/xsd/schema/complex_type"
4
+ require "enterprisifier/marshalling/xsd/schema/extension"
5
+ require "enterprisifier/marshalling/xsd/schema/simple_content"
6
+ require "enterprisifier/marshalling/xsd/types/decimal"
7
+
8
+
9
+ module EBusinessForMedia
10
+ module IAB
11
+ module Types
12
+ # A monetary value with explicit currency code information attached.
13
+ class MonetaryType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
14
+ namespace "iab" => "http://ns.iab.net"
15
+ complex_type "MonetaryType"
16
+
17
+ simple_content do
18
+ extension Enterprisifier::Marshalling::XSD::Types::Decimal do
19
+ # ISO 4217 - Representation of Currency and Funds.
20
+ attribute "currency" => EBusinessForMedia::IAB::Types::CurrencyCodeType do
21
+ use "required"
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ require "enterprisifier/marshalling/xsd/schema/restriction"
2
+ require "enterprisifier/marshalling/xsd/schema/simple_type"
3
+ require "enterprisifier/marshalling/xsd/types/decimal"
4
+
5
+
6
+ module EBusinessForMedia
7
+ module IAB
8
+ module Types
9
+ # A percentage represented as a decimal value betwee 0 and 100 inclusive.
10
+ class PercentageType < Enterprisifier::Marshalling::XSD::Schema::SimpleType
11
+ namespace "iab" => "http://ns.iab.net"
12
+ simple_type "PercentageType"
13
+
14
+ restriction Enterprisifier::Marshalling::XSD::Types::Decimal do
15
+ min_inclusive "0"
16
+ max_inclusive "100"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,282 @@
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 Types
15
+ # The name of a person.
16
+ class PersonNameType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
17
+ namespace "iab" => "http://ns.iab.net"
18
+ complex_type "PersonNameType"
19
+
20
+ # Contains, in one string, a fully formatted name with all of its pieces in
21
+ # their proper place. [BusinessRule(s): This includes all of the necessary
22
+ # punctuation. This de-normalized form of the name cannot be easily parsed. The
23
+ # use of multiple occurrences are officially deprecated in this release and will
24
+ # be removed in a future version. ]
25
+ sequence do
26
+ # Used for legal documentation or other legal purposes. Contains, in one string, a
27
+ # fully formatted name with all of its pieces in their proper place. This includes
28
+ # all of the necessary punctuation. Extension to represent the worker's name.
29
+ element "FormattedName" => Enterprisifier::Marshalling::XSD::Types::String do
30
+ min_occurs "0"
31
+ end
32
+ # Contains the given or chosen name. Also known as a person's first name. If
33
+ # multiple givenNames are used, the order is implied.
34
+ element "LegalName" => Enterprisifier::Marshalling::XSD::Types::String do
35
+ min_occurs "0"
36
+ end
37
+ # Contains the chosen name by which the person prefers to be addressed. Note: This
38
+ # name may be a name other than a given name, such as a nickname.
39
+ element "GivenName" => Enterprisifier::Marshalling::XSD::Types::String do
40
+ max_occurs "unbounded"
41
+ end
42
+ # Contains a person's middle name or initial.
43
+ element "PreferredGivenName" => Enterprisifier::Marshalling::XSD::Types::String do
44
+ min_occurs "0"
45
+ end
46
+ # Contains the non-chosen or inherited name. Also known as a person's last name in
47
+ # the Western context. The order is implied by the order of appearance of the
48
+ # FamilyName elements in the XML document.
49
+ element "MiddleName" => Enterprisifier::Marshalling::XSD::Types::String do
50
+ min_occurs "0"
51
+ end
52
+ # Contains the non-chosen or inherited name. Also known as a person's last name in
53
+ # the Western context. The order is implied by the order of appearance of the
54
+ # FamilyName elements in the XML document.
55
+ element "FamilyName" do
56
+ max_occurs "unbounded"
57
+ complex_type do
58
+ simple_content do
59
+ # Defines the order when multiple family names are used.
60
+ # Defines the order when multiple family names are used.
61
+ # primary=”true” Specifies that this occurrence of familyName is
62
+ # primary. It would appear first when multiple familyNames are used.
63
+ # primary=”false” Specifies that this occurrence of familyName is not
64
+ # primary. It would appear after the primary familyName. When multiple
65
+ # ‘False’ primary familyNames are used, the order is implied.
66
+ # primary=”undefined” Specifies that multiple familyNames do not apply.
67
+ # If multiple familyNames are used with this type, order is implied.
68
+ extension Enterprisifier::Marshalling::XSD::Types::String do
69
+ # Defines the order when multiple family names are used.
70
+ # Defines the order when multiple family names are used.
71
+ # primary=”true” Specifies that this occurrence of familyName is primary. It
72
+ # would appear first when multiple familyNames are used.
73
+ # primary=”false” Specifies that this occurrence of familyName is not primary.
74
+ # It would appear after the primary familyName. When multiple ‘False’ primary
75
+ # familyNames are used, the order is implied.
76
+ # primary=”undefined” Specifies that multiple familyNames do not apply. If
77
+ # multiple familyNames are used with this type, order is implied.
78
+ attribute "primary" do
79
+ simple_type do
80
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
81
+ enumeration "true"
82
+ enumeration "false"
83
+ enumeration "undefined"
84
+ end
85
+ end
86
+ end
87
+ # The aristocratic or other prefix for FamilyName. [Example(s): de (as in de
88
+ # Witt), la (as in la Salle); van (as in van der Voss). ]
89
+ attribute "prefix" => Enterprisifier::Marshalling::XSD::Types::String
90
+
91
+ end
92
+ end
93
+ end
94
+ end
95
+ # Contains the remaining parts of the PersonName as defined by the type attribute.
96
+ element "Affix" do
97
+ min_occurs "0"
98
+ max_occurs "unbounded"
99
+ complex_type do
100
+ simple_content do
101
+ # Defines the context for the affix.
102
+ # type=aristocraticTitle.
103
+ # e.g. Baron, Graf, Earl, etc.
104
+ # type=formOfAddress.
105
+ # Contains the Salutation,
106
+ # e.g. Mr., Mrs., Hon., Dr., Major, etc.
107
+ # type=generation.
108
+ # e.g. Sr., Jr., III (the third), etc.
109
+ # type=qualification.
110
+ # Contains the letters used to describe academic or other type
111
+ # qualifications held by a person and/or the distinctions conferred upon them.
112
+ # e.g. PhD, MD, CPA, MCSD, etc.
113
+ extension Enterprisifier::Marshalling::XSD::Types::String do
114
+ # Defines the context for the affix.
115
+ # type=aristocraticTitle.
116
+ # e.g. Baron, Graf, Earl, etc.
117
+ # type=formOfAddress.
118
+ # Contains the Salutation,
119
+ # e.g. Mr., Mrs., Hon., Dr., Major, etc.
120
+ # type=generation.
121
+ # e.g. Sr., Jr., III (the third), etc.
122
+ # type=qualification.
123
+ # Contains the letters used to describe academic or other type qualifications held
124
+ # by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA,
125
+ # MCSD, etc.
126
+ attribute "type" do
127
+ use "required"
128
+ simple_type do
129
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
130
+ enumeration "aristocraticTitle"
131
+ enumeration "formOfAddress"
132
+ enumeration "generation"
133
+ enumeration "qualification"
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
141
+ # The same information as presented in the base elements, but represented in a
142
+ # different script.
143
+ # [BusinessRule(s): AlternateScript elements should contain sub-elements parallel
144
+ # to the base structure, but in the alternate script designated by the script
145
+ # attribute. 2 sibling AlternateScript elements should not use the same script. ]
146
+ # [Example(s): A person’s name may be represented in the Latin alphabet in the
147
+ # base structure but represented in Japanese Katakana and/or Japanese Kanji script
148
+ # (or Arabic characters, Korean characters et al) by use of AlternateScript
149
+ # elements. ]
150
+ element "AlternateScript" do
151
+ min_occurs "0"
152
+ max_occurs "unbounded"
153
+ complex_type do
154
+ sequence do
155
+ # Contains, in one string, a fully formatted name with all of its pieces in their
156
+ # proper place.
157
+ # [BusinessRule(s): This includes all of the necessary punctuation. This
158
+ # de-normalized form of the name cannot be easily parsed. The use of multiple
159
+ # occurrences are officially deprecated in this release and will be removed in a
160
+ # future version. ]
161
+ element "FormattedName" => Enterprisifier::Marshalling::XSD::Types::String do
162
+ min_occurs "0"
163
+ end
164
+ # Used for legal documentation or other legal purposes. Contains, in one string, a
165
+ # fully formatted name with all of its pieces in their proper place. This includes
166
+ # all of the necessary punctuation. Extension to represent the worker's name.
167
+ element "LegalName" => Enterprisifier::Marshalling::XSD::Types::String do
168
+ min_occurs "0"
169
+ end
170
+ # Contains the given or chosen name. Also known as a person's first name. If
171
+ # multiple givenNames are used, the order is implied.
172
+ element "GivenName" => Enterprisifier::Marshalling::XSD::Types::String do
173
+ min_occurs "0"
174
+ max_occurs "unbounded"
175
+ end
176
+ # Contains the chosen name by which the person prefers to be addressed. Note: This
177
+ # name may be a name other than a given name, such as a nickname.
178
+ element "PreferredGivenName" => Enterprisifier::Marshalling::XSD::Types::String do
179
+ min_occurs "0"
180
+ end
181
+ # Contains a person's middle name or initial.
182
+ element "MiddleName" => Enterprisifier::Marshalling::XSD::Types::String do
183
+ min_occurs "0"
184
+ end
185
+ # Contains the non-chosen or inherited name. Also known as a person's last name in
186
+ # the Western context. The order is implied by the order of appearance of the
187
+ # FamilyName elements in the XML document.
188
+ element "FamilyName" do
189
+ min_occurs "0"
190
+ max_occurs "unbounded"
191
+ complex_type do
192
+ simple_content do
193
+ extension Enterprisifier::Marshalling::XSD::Types::String do
194
+ # Defines the order when multiple family names are used.
195
+ # Defines the order when multiple family names are used.
196
+ # primary=”true” Specifies that this occurrence of familyName is primary. It
197
+ # would appear first when multiple familyNames are used.
198
+ # primary=”false” Specifies that this occurrence of familyName is not primary.
199
+ # It would appear after the primary familyName. When multiple ‘False’ primary
200
+ # familyNames are used, the order is implied.
201
+ # primary=”undefined” Specifies that multiple familyNames do not apply. If
202
+ # multiple familyNames are used with this type, order is implied.
203
+ attribute "primary" do
204
+ simple_type do
205
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
206
+ enumeration "true"
207
+ enumeration "false"
208
+ enumeration "undefined"
209
+ end
210
+ end
211
+ end
212
+ # The aristocratic or other prefix for FamilyName.
213
+ # [Example(s): de (as in de Witt), la (as in la Salle); van (as in van der Voss).
214
+ # ]
215
+ attribute "prefix" => Enterprisifier::Marshalling::XSD::Types::String
216
+
217
+ end
218
+ end
219
+ end
220
+ end
221
+ # Contains the remaining parts of the PersonName as defined by the type attribute.
222
+ element "Affix" do
223
+ min_occurs "0"
224
+ max_occurs "unbounded"
225
+ complex_type do
226
+ simple_content do
227
+ extension Enterprisifier::Marshalling::XSD::Types::String do
228
+ # Defines the context for the affix.
229
+ # type=aristocraticTitle.
230
+ # e.g. Baron, Graf, Earl, etc.
231
+ # type=formOfAddress.
232
+ # Contains the Salutation,
233
+ # e.g. Mr., Mrs., Hon., Dr., Major, etc.
234
+ # type=generation.
235
+ # e.g. Sr., Jr., III (the third), etc.
236
+ # type=qualification.
237
+ # Contains the letters used to describe academic or other type qualifications held
238
+ # by a person and/or the distinctions conferred upon them. e.g. PhD, MD, CPA,
239
+ # MCSD, etc.
240
+ attribute "type" do
241
+ use "required"
242
+ simple_type do
243
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
244
+ enumeration "aristocraticTitle"
245
+ enumeration "formOfAddress"
246
+ enumeration "generation"
247
+ enumeration "qualification"
248
+ end
249
+ end
250
+ end
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end
256
+ # A code identifying a character script used in the associated elements. A script
257
+ # is a set of graphic characters used for the written form of one or more
258
+ # languages. A script, as opposed to an arbitrary subset of characters, is defined
259
+ # in distinction to other scripts where readers of one script may be unable to
260
+ # read the individual character glyphs of another script.
261
+ # [BusinessRule(s): This attribute contains an ISO 15924 code (4 letters). ]
262
+ # [Example(s): “Latn” for the Latin alphabet, “Hani” for Asian ideograph
263
+ # characters, and “Arab” for the Arabic alphabet. ]
264
+ attribute "script" => Enterprisifier::Marshalling::XSD::Types::String
265
+
266
+ end
267
+ end
268
+ end
269
+ # A code identifying a character script used in the associated elements. A script
270
+ # is a set of graphic characters used for the written form of one or more
271
+ # languages. A script, as opposed to an arbitrary subset of characters, is defined
272
+ # in distinction to other scripts where readers of one script may be unable to
273
+ # read the individual character glyphs of another script.
274
+ # [BusinessRule(s): This attribute contains an ISO 15924 code (4 letters). ]
275
+ # [Example(s): “Latn” for the Latin alphabet, “Hani” for Asian ideograph
276
+ # characters, and “Arab” for the Arabic alphabet. ]
277
+ attribute "script" => Enterprisifier::Marshalling::XSD::Types::String
278
+
279
+ end
280
+ end
281
+ end
282
+ end
@@ -0,0 +1,120 @@
1
+ require "enterprisifier/marshalling/xsd/schema/attribute"
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/schema/restriction"
6
+ require "enterprisifier/marshalling/xsd/schema/sequence"
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 Types
14
+ # Describes a postal address used for delivery of mail.
15
+ class PostalAddressType < Enterprisifier::Marshalling::XSD::Schema::ComplexType
16
+ namespace "iab" => "http://ns.iab.net"
17
+ complex_type "PostalAddressType"
18
+
19
+ sequence do
20
+ # Contains the ISO 3166-1 two-character country code.
21
+ element "CountryCode" do
22
+ simple_type do
23
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
24
+ pattern "[A-Z]{2}"
25
+ end
26
+ end
27
+ end
28
+ # Codes established by postal authorities for purposes of sorting and delivering
29
+ # mail.
30
+ element "PostalCode" => Enterprisifier::Marshalling::XSD::Types::String do
31
+ min_occurs "0"
32
+ end
33
+ # Represents the State, Province, and/or County. Military addresses should be
34
+ # stored in multiple regions (hierarchy region from highest to most specific): 1
35
+ # st region = APO (Army/Airforce Post Office); FPO (Fleet Post Office). 2 nd
36
+ # region = 2 letter designator for part of world (AE Œ Europe, AA Œ Americas)
37
+ element "Region" => Enterprisifier::Marshalling::XSD::Types::String do
38
+ min_occurs "0"
39
+ max_occurs "unbounded"
40
+ end
41
+ # Represents the city, town, village, or hamlet.
42
+ element "Municipality" => Enterprisifier::Marshalling::XSD::Types::String do
43
+ min_occurs "0"
44
+ end
45
+ # Contains one formatted address line with all of its pieces in their proper
46
+ # place. This includes all of the necessary punctuation. This de-normalized form
47
+ # of the delivery address cannot be easily parsed. AddressLine is used for
48
+ # delivery by the postal service. May contain the name or number of the building,
49
+ # house, and/or street. If the address is decomposed into StreetName and
50
+ # BuildingNumber, do not use AddressLine to store the address. Examples may
51
+ # include: Hancock Building; 5223 Oak Street; 213; East 23rd Avenue; P.O. Box 241;
52
+ # Suite 200.
53
+ element "DeliveryAddress" do
54
+ complex_type do
55
+ choice do
56
+ # AddressLine is used for delivery by the postal service. May contain the name or
57
+ # number of the building, house, and/or street. If the address is decomposed into
58
+ # StreetName and BuildingNumber, do not use AddressLine to store the address.
59
+ # Examples may include: Hancock Building; 5223 Oak Street; 213; East 23rd Avenue;
60
+ # P.O. Box 241; Suite 200.
61
+ element "AddressLine" => Enterprisifier::Marshalling::XSD::Types::String do
62
+ min_occurs "0"
63
+ max_occurs "unbounded"
64
+ end
65
+ sequence do
66
+ # Contains the street name or number. This may be used for verification, building
67
+ # the address, or storing in a database. If the address is decomposed into
68
+ # StreetName, BuildingNumber and Unit, do not use AddressLine to duplicate that
69
+ # part of the address information. Examples may include: Oak Street; East 23rd
70
+ # Avenue.
71
+ element "StreetName" => Enterprisifier::Marshalling::XSD::Types::String do
72
+ min_occurs "0"
73
+ end
74
+ # This element is defined as a string to handle "numbers" such as 7A or 15/III.
75
+ # The term "BuildingNumber" was also used instead of HouseNumber so all types of
76
+ # buildings could apply (house, building, warehouse, tower, etc). This may be used
77
+ # for verification, building the address, or storing in a database. If the address
78
+ # is decomposed into StreetName, BuildingNumber and Unit, do not use AddressLine
79
+ # to duplicate that part of the address information. Examples may include: Hancock
80
+ # Building; 5223.
81
+ element "BuildingNumber" => Enterprisifier::Marshalling::XSD::Types::String do
82
+ min_occurs "0"
83
+ end
84
+ # Contains the Apartment, Suite, Unit, Room, Floor, Trailer, Level, Hanger, etc.
85
+ # This may be used for verification, building the address, or storing in a
86
+ # database. If the address is decomposed into StreetName, BuildingNumber and Unit,
87
+ # do not use AddressLine to duplicate that part of the address information.
88
+ # Examples may include: Apt. 124, Ste. 300, Upper, Hanger A.
89
+ element "Unit" => Enterprisifier::Marshalling::XSD::Types::String do
90
+ min_occurs "0"
91
+ end
92
+ # Contains the Post Office Box. This may be used for verification, building the
93
+ # address, or storing in a database. Example: P.O. Box 241.
94
+ element "PostOfficeBox" => Enterprisifier::Marshalling::XSD::Types::String do
95
+ min_occurs "0"
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ # Defines if the postal address is a street address, military, or post office box.
103
+ # type = postOfficeBoxAddress
104
+ # type = streetAddress
105
+ # type = militaryAddress
106
+ # type = undefined
107
+ attribute "type" do
108
+ simple_type do
109
+ restriction Enterprisifier::Marshalling::XSD::Types::String do
110
+ enumeration "postOfficeBoxAddress"
111
+ enumeration "streetAddress"
112
+ enumeration "militaryAddress"
113
+ enumeration "undefined"
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end