[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Unrequested stdout output

Subject: Re: Unrequested stdout output
From: "Mark Wilson pubs@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Dec 2016 16:53:27 -0000
Re:  Unrequested stdout output
Thanks Michael,
That clears it up entirely.
Mark

On 12/21/2016 9:08 AM, Michael Kay mike@xxxxxxxxxxxx wrote:
The rule in the spec is that a principal result document is written if either (a) there is no secondary result document, or (b) the raw result of the initial template is a non-empty sequence. My guess would be that in your case the raw result contains some whitespace text nodes.

I usually avoid the problem by sending the principal output to dummy.xml and ignoring it: that's easier than worrying about where the pesky text nodes are coming from.

Michael Kay
Saxonica


On 21 Dec 2016, at 14:14, Mark Wilson mark@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

I build one of my websites (www.cpslib.org) using a Windows batch file that has 45 distinct steps (I have never learned XProc and am 77 years old so maybe never will). Even though I am using <xsl:result-document> in the style sheet, the characters
    <?xml version="1.0" encoding="UTF-8"?>
appear at stdout.  The document itself is written to file as specified in result-document.

I have greatly simplified the batch file, XML document, and the stylesheet, but the stdout output still appears when I run the batch file. I have several other stylesheets in the batch file that use result-document. Some exhibit this behavior, some do not.

I am unsure if this is an artifact of Saxon 97, the batch file process ,or my code.  Any help?
Mark

Batch file:
set SAXON_HOME=C:\saxon97
set SAXON_JAR=%SAXON_HOME%\saxon9he.jar
java -jar c:\saxon97\saxon9he.jar   work\text.xml xslt\071a-get-words.xsl

XML document (text.xml)
<?xml version="1.0" encoding="UTF-8"?>
<List>
   <Set lang="latin">
      <Text data="Lynx lynx" pofis-number="817" latin-original="Lynx lynx"
            text-location="coupon"
            domain="cr"
            year="2014"/>
   </Set>
</List>

XSLT stylesheet
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">

<xsl:output indent="yes"/>

  <xsl:template match="List">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="Set">
    <xsl:if test="@lang eq 'latin'">
      <xsl:result-document href="work/latin-words.xml">
        <List>
          <xsl:apply-templates/>
        </List>
      </xsl:result-document>
    </xsl:if>

</xsl:template>

  <xsl:template match="Text">
    <xsl:variable name="data" select="@data"/>
    <xsl:variable name="eng" select="@eng-original"/>
    <xsl:variable name="czech" select="@czech-original"/>
    <xsl:variable name="latin" select="@latin-original"/>
    <!-- Is the text on the stamp or elsewhere? -->
    <xsl:variable name="type" select="if(@text-location) then @text-location else 'stamp'"/>
    <xsl:variable name="domain" select="@domain"/>
    <xsl:variable name="year" select="@year"/>
    <xsl:variable name="pofis-prefix" select="@pofis-prefix"/>
    <xsl:variable name="pofis-number" select="@pofis-number"/>
    <xsl:variable name="pofis-suffix" select="@pofis-suffix"/>

    <!--walk over each distinct value setting that value as the current node-->
    <xsl:choose>

      <!-- Latin word list  -->
      <xsl:when test="parent::Set/@lang eq 'latin'">
        <xsl:for-each select="distinct-values(tokenize(lower-case(@data), '\s+'))">
          <xsl:variable name="initial-letter" select="upper-case(substring(., 1, 1))"/>
          <xsl:variable name="sort-word"
            select="concat($initial-letter, substring(., 2, string-length(.) -1))"/>
          <xsl:choose>
            <!-- Discard numbers -->
            <xsl:when test="number(substring-before(., '.'))"/>
            <xsl:otherwise>
              <Word word="{.}" sort-word="{$sort-word}" latin="{$latin}" domain="{$domain}"
                year="{$year}" pofis-prefix="{$pofis-prefix}" pofis-number="{$pofis-number}"
                pofis-suffix="{$pofis-suffix}" type="{$type}"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
      </xsl:when>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.