Re: Passing options from the command-line

Florent Georges <fgeorges@fgeorges.org> writes:
>> cat empty-option.xproc

That example didn't test what you think it did :-)

<p:pipeline xmlns:p="http://www.w3.org/ns/xproc" version="1.0">

   <p:option name="opt" select="'test'"/>

   <p:choose>
      <p:when test="p:value-available('opt')">
        <p:choose>
          <p:when test="$opt">
            <p:identity>
              <p:input port="source">
                <p:inline>
                  <when opt="true"/>
                </p:inline>
              </p:input>
            </p:identity>
          </p:when>
          <p:otherwise>
            <p:identity>
              <p:input port="source">
                <p:inline>
                  <otherwise opt="false"/>
                </p:inline>
              </p:input>
            </p:identity>
          </p:otherwise>
        </p:choose>
      </p:when>
      <p:otherwise>
         <p:identity>
            <p:input port="source">
               <p:inline>
                  <otherwise opt="undeclared"/>
               </p:inline>
            </p:input>
         </p:identity>
      </p:otherwise>
   </p:choose>

</p:pipeline>

But in any event, you're absolutely right. XML Calabash gets Effective Boolean
Value completely wrong. It relies on XdmAtomicValue.getBooleanValue() which
has the following JavaDoc:

    /**
     * Get the value converted to a boolean using the XPath casting rules
     * @return the result of converting to a boolean (Note: this is not the same as the
     * effective boolean value).
     * @throws SaxonApiException if the value cannot be cast to a boolean
     */

Note the note. Sigh.

Fixed now, I think. I'll add some test suite tests for this too.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh
Lead Engineer
MarkLogic Corporation
Phone: +1 413 624 6676
www.marklogic.com

Received on Thursday, 1 September 2011 14:12:05 UTC