The other obvious variation is to pass a single node with children representing the optional variables. This is similar to the attribute approach Michael suggests, but allows for complex arguments. It also handles sequences, as these can be wrapped in a child.

For example:

<OptionalArgs>
   <Name>Ron</Name>
   <Address>
      <Street>123123 Main</Street>
      <City>Mainville</City>
      <State>CA</State>
   </Address>
   <!-- Optional Email child not available and so is missing -->
   <PhoneNumbers>
      <!-- Sequence here -->
      <PhoneNumber>333-333-3333</PhoneNumber>
      <PhoneNumber>444-444-4444</PhoneNumber>
   </PhoneNumber>
</OptionalArgs>

-- Ron

Florent Georges wrote:
David Lee wrote:

  Hi,

Another common practice is to pass a sequence as the options.

  The main drawback I see with this approach is that it copes very
badly with empty values (where the value is the empty sequence)
and with sequences (where a value can be a sequence).  And the
behaviour can be very surprising (and hard to debug) when one
passes an empty sequence or a sequence of more than one items by
mistake.

  As Mike said, maps would be perfect here...

  Regards,

--
Florent Georges
http://fgeorges.org/
http://h2oconsulting.be/

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk



-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1416 / Virus Database: 2109/4766 - Release Date: 01/25/12



_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to