Misspoke the problem.
 
Tested the scenario above and I'm getting 2 results for XALAN as well.
 
Actual problem:  The data I'm using is:
 
<form>
<commands>
<command label="one">one</command>
<command label="two">two</command>
<command label="three">three</command>
</commands>
<commands>
<command label="four">four</command>
<command label="five">five</command>
</commands>
</form>
 
and the XPath I'm using is: //command[1]/@label
 
In XALAN, I get the result "one".  In SAXON I get the result "one four".
 
Yet with XALAN the count(//command[1]) is two.  So the extra step for the @label is where the two implementations diverge.
 
How do I get the first command in the document?