You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Jeff Saremi <je...@yahoo.com> on 2005/04/27 17:35:46 UTC

[Digester] AddressBook example does not work!

Digester version: 1.6
JDK: 1.4.2

Has anyone tries running the AddressBook example in
the CVS under "xmlrules"? We I did and it does not
work. Here's the output. Compare it with the input XML
which i copied below (and the parser rules.xml):


Address book has 2 entries
Person #1
  category=acquaintance
  name=Gonzo
  email (type business) : gonzo@muppets.com
  address type: null
    null
    null null null
    null
  address type: null
    null
    null null null
    null
Person #2
  category=rolemodel
  name=Kermit
  email (type business) : kermit@muppets.com
  email (type home) : kermie@acme.com
  address type: null
    null
    null null null
    null


Example.xml:
<address-book>
  <person id="1" category="acquaintance">
    <name>Gonzo</name>
    <email type="business">gonzo@muppets.com</email>
    <address>
      <type>home</type>
      <street>123 Maine Ave.</street>
      <city>Las Vegas</city>
      <state>NV</state>
      <zip>01234</zip>
      <country>USA</country>
    </address>
    <address>
      <type>business</type>
      <street>234 Maple Dr.</street>
      <city>Los Angeles</city>
      <state>CA</state>
      <zip>98765</zip>
      <country>USA</country>
    </address>
  </person>

  <person id="2" category="rolemodel">
    <name>Kermit</name>
    <email type="business">kermit@muppets.com</email>
    <email type="home">kermie@acme.com</email>
    <address>
      <type>business</type>
      <street>987 Brown Rd</street>
      <city>Las Cruces</city>
      <state>NM</state>
      <zip>75321</zip>
      <country>USA</country>
    </address>
  </person>

</address-book>


xmlules.xml:
<digester-rules>
  <pattern value="address-book">
    <pattern value="person">
      <object-create-rule classname="Person"/>
      <set-properties-rule/>
      <set-next-rule methodname="addPerson"/>
      
      <pattern value="name">
        <call-method-rule methodname="setName"
paramcount="0"/>
      </pattern>
      
      <pattern value="email">
        <call-method-rule methodname="addEmail"
paramcount="2"/>  
        <call-param-rule paramnumber='0'
attrname='type'/>
        <call-param-rule paramnumber='1'/>
      </pattern>
      
      <pattern value="address">
        <object-create-rule classname="Address"/>
        <set-nested-properties-rule/>
        <set-next-rule methodname="addAddress"/>
      </pattern>
      
    </pattern>
  </pattern>
</digester-rules>


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org