<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='http://w3future.com/2003/xqx2xslt/xqx2xslt.xsl'?>
<xqx:module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xqx="http://www.w3.org/2003/12/XQueryX" 
    xsi:schemaLocation="http://www.w3.org/2003/12/XQueryX xqueryx.xsd">
  <xqx:mainModule>
    <xqx:queryBody>
      <xqx:expr xsi:type="xqx:elementConstructor">
        <xqx:tagName>results</xqx:tagName>
        <xqx:elementContent>
          <xqx:expr xsi:type="xqx:flworExpr">
            <xqx:forClause>
              <xqx:forClauseItem>
                <xqx:typedVariableBinding>
                  <xqx:varName>a</xqx:varName>
                </xqx:typedVariableBinding>
                <xqx:forExpr>
                  <xqx:expr xsi:type="xqx:functionCallExpr">
                    <xqx:functionName>distinct</xqx:functionName>
                    <xqx:parameters>
                      <xqx:expr xsi:type="xqx:pathExpr">
                        <xqx:expr xsi:type="xqx:functionCallExpr">
                          <xqx:functionName>document</xqx:functionName>
                          <xqx:parameters>
                            <xqx:expr xsi:type="xqx:stringConstantExpr">
                              <xqx:value>http://www.bn.com</xqx:value>
                            </xqx:expr>
                          </xqx:parameters>
                        </xqx:expr>
                        <xqx:stepExpr>
                          <xqx:xpathAxis>descendant-or-self</xqx:xpathAxis>
                          <xqx:elementTest>
                            <xqx:nodeName>
                              <xqx:QName>author</xqx:QName>
                            </xqx:nodeName>
                          </xqx:elementTest>
                        </xqx:stepExpr>
                      </xqx:expr>
                    </xqx:parameters>
                  </xqx:expr>
                </xqx:forExpr>
              </xqx:forClauseItem>
            </xqx:forClause>

            <xqx:returnClause>
              <xqx:expr xsi:type="xqx:elementConstructor">
                <xqx:tagName>result</xqx:tagName>
                <xqx:elementContent>
                  <xqx:expr xsi:type="xqx:sequenceExpr">
                    <xqx:expr xsi:type="xqx:variable">
                      <xqx:name>a</xqx:name>
                    </xqx:expr>

                    <xqx:expr xsi:type="xqx:flworExpr">
                      <xqx:forClause>
                        <xqx:forClauseItem>
                          <xqx:typedVariableBinding>
                            <xqx:varName>b</xqx:varName>
                          </xqx:typedVariableBinding>
                          <xqx:forExpr>
                            <xqx:expr xsi:type="xqx:pathExpr">
                              <xqx:expr xsi:type="xqx:functionCallExpr">
                                <xqx:functionName>document</xqx:functionName>
                                <xqx:parameters>
                                  <xqx:expr xsi:type="xqx:stringConstantExpr">
                                    <xqx:value>http://www.bn.com</xqx:value>
                                  </xqx:expr>
                                </xqx:parameters>
                              </xqx:expr>
                              <xqx:stepExpr>
                                <xqx:xpathAxis>child</xqx:xpathAxis>
                                <xqx:elementTest>
                                  <xqx:nodeName>
                                    <xqx:QName>bib</xqx:QName>
                                  </xqx:nodeName>
                                </xqx:elementTest>
                              </xqx:stepExpr>
                              <xqx:stepExpr>
                                <xqx:xpathAxis>child</xqx:xpathAxis>
                                <xqx:elementTest>
                                  <xqx:nodeName>
                                    <xqx:QName>book</xqx:QName>
                                  </xqx:nodeName>
                                </xqx:elementTest>
                                <xqx:predicates>
                                  <xqx:expr xsi:type="xqx:operatorExpr">
                                    <xqx:infixOp />
                                    <xqx:opType>=</xqx:opType>
                                    <xqx:parameters>
                                      <xqx:expr xsi:type="xqx:pathExpr">
                                        <xqx:expr xsi:type="xqx:contextItemExpr"/>
                                        <xqx:stepExpr>
                                          <xqx:xpathAxis>child</xqx:xpathAxis>
                                          <xqx:elementTest>
                                            <xqx:nodeName>
                                              <xqx:QName>author</xqx:QName>
                                            </xqx:nodeName>
                                          </xqx:elementTest>
                                        </xqx:stepExpr>
                                      </xqx:expr>
                                      <xqx:expr xsi:type="xqx:variable">
                                        <xqx:name>a</xqx:name>
                                      </xqx:expr>
                                    </xqx:parameters>
                                  </xqx:expr>
                                </xqx:predicates>
                              </xqx:stepExpr>
                            </xqx:expr>
                          </xqx:forExpr>
                        </xqx:forClauseItem>
                      </xqx:forClause>
                      <xqx:returnClause>
                        <xqx:expr xsi:type="xqx:pathExpr">
                          <xqx:expr xsi:type="xqx:variable">
                            <xqx:name>b</xqx:name>
                          </xqx:expr>
                          <xqx:stepExpr>
                            <xqx:xpathAxis>child</xqx:xpathAxis>
                            <xqx:elementTest>
                              <xqx:nodeName>
                                <xqx:QName>title</xqx:QName>
                              </xqx:nodeName>
                            </xqx:elementTest>
                          </xqx:stepExpr>
                        </xqx:expr>
                      </xqx:returnClause>
                    </xqx:expr>
                  </xqx:expr>
                </xqx:elementContent>
              </xqx:expr>
            </xqx:returnClause>
          </xqx:expr>
        </xqx:elementContent>
      </xqx:expr>
    </xqx:queryBody>
  </xqx:mainModule>
</xqx:module>
