[xquery-talk] best practice for function design with many optional params

Ronald Bourret rpbourret at rpbourret.com
Thu Jan 26 12:07:06 PST 2012


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/
> 
> _______________________________________________
> talk at x-query.com
> 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
> 
> 
> 


More information about the talk mailing list