Sha256: 7b536192df1f2e5930317ae78370e9d11dd85208929b2747264b9a14500f29dd

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

require 'xml/mapping'

# forward declarations
class Address; end
class Office; end
class Customer; end


class Company
  include XML::Mapping

  text_node :name, "@name"

  object_node :address, "address", :class=>Address

  array_node :offices, "offices", "office", :class=>Office
  hash_node :customers, "customers", "customer", "@uid", :class=>Customer

  text_node :ent1, "arrtest/entry[1]"
  text_node :ent2, "arrtest/entry[2]"
  text_node :ent3, "arrtest/entry[3]"

  array_node :stuff, "stuff", "*"

  object_node :test_default_value_identity, "dummy", :default_value => ["default"]
end


class Address
  include XML::Mapping

  text_node :city, "city"
  numeric_node :zip, "zip", :default_value=>12576
  text_node :street, "street", :optional=>true
  numeric_node :number, "number"
end


class Office
  include XML::Mapping

  text_node :speciality, "@speciality"
  boolean_node :classified, "classified", "yes", "no"
  # object_node :address, "address", :class=>Address
  object_node :address, "address",
        :marshaller=>proc {|xml,value| value.fill_into_xml(xml)},
        :unmarshaller=>proc {|xml| Address.load_from_xml(xml)}
end


class Customer
  include XML::Mapping

  text_node :uid, "@uid"
  text_node :name, "name"
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
pdf-labels-1.0.0 vendor/xml-mapping/test/company.rb
xml-mapping-0.8.1 test/company.rb