You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Marc Kaufman <ma...@adobe.com> on 2016/07/14 18:51:01 UTC

isolated high surrogate

I'm stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I've checked the input stream, and all the surrogates are correctly paired. I've tried escaping the surrogate pairs (e.g. "&#-integer-;"), but that doesn't change the error.


RE: isolated high surrogate

Posted by Marc Kaufman <ma...@adobe.com>.
I didn’t find the source to javax.xml.transform online, but I guess I shouldn’t expect that a 10 year old code base gets it right… The code I’m working on was written in 2006, but no one tried surrogate characters until recently.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 2:15 PM
To: FOP Users <fo...@xmlgraphics.apache.org>
Subject: Re: isolated high surrogate

nothing to do with being an FOP developer; keep in mind that the actual input to FOP is XSL-FO, and not XNL + stylesheet; this latter functionality is a convenience layer that IMO should never have been added to FOP, for the simple reason that we keep fielding problem reports related to template processing that are outside the scope of FOP; best to discuss template problems with XSLT related MLs

On Thu, Jul 14, 2016 at 3:09 PM, Marc Kaufman <ma...@adobe.com>> wrote:
Worthwhile for someone to do, probably. Outside of my current needs. I’m not interested in being a FOP developer.

From: Glenn Adams [mailto:glenn@skynav.com<ma...@skynav.com>]
Sent: Thursday, July 14, 2016 1:48 PM

To: FOP Users <fo...@xmlgraphics.apache.org>>
Subject: Re: isolated high surrogate

I'd suggest you test FOP by using an XSL-FO input file directly rather than an XSL template. Template processing is not part of FOP functionality in the first place.

On Thu, Jul 14, 2016 at 2:37 PM, Marc Kaufman <ma...@adobe.com>> wrote:
More specifically, if I replace “ “ with u/200B (zero width space) in the string that contains surrogate characters, FOP parsing fails even if I just use xsl:value-of. I’m not going to pursue that at this time. Maybe when FOP handles non-BMP characters it should be revisited.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com<ma...@adobe.com>]
Sent: Thursday, July 14, 2016 12:34 PM

To: fop-users@xmlgraphics.apache.org<ma...@xmlgraphics.apache.org>
Subject: RE: isolated high surrogate

I’ve isolated the problem to a template definition that is trying to replace apace characters with non-breaking spaces. Evidently it clobbers some surrogate pairs. FWIW: here’s the offending line(s):

  <xsl:template name="zero_width_space_1">
    <xsl:param name="data"/>
    <xsl:param name="counter" select="0"/>
    <xsl:choose>
      <xsl:when test="$counter &lt; string-length($data)+1">
        <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
        <xsl:call-template name="zero_width_space_2">
          <xsl:with-param name="data" select="$data"/>
          <xsl:with-param name="counter" select="$counter+1"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template name="zero_width_space_2">
    <xsl:param name="data"/>
    <xsl:param name="counter"/>
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_1">
      <xsl:with-param name="data" select="$data"/>
      <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
  </xsl:template>

So, not an FOP problem.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com]
Sent: Thursday, July 14, 2016 12:22 PM
To: fop-users@xmlgraphics.apache.org<ma...@xmlgraphics.apache.org>
Subject: RE: isolated high surrogate

I tried that. Doesn’t work. I understand that non-BMP is not supported, and I’m prepared to live with two .notdef characters in the result, but I’m not sure why I’m getting the fatal error from the parser.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 12:01 PM
To: FOP Users <fo...@xmlgraphics.apache.org>>
Subject: Re: isolated high surrogate

Non-BMP characters are not presently supported by FOP, see [1]. When they are supported, you would best encode them in a file using a single (not two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com>> wrote:
I’m stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I’ve checked the input stream, and all the surrogates are correctly paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but that doesn’t change the error.





Re: isolated high surrogate

Posted by Glenn Adams <gl...@skynav.com>.
nothing to do with being an FOP developer; keep in mind that the actual
input to FOP is XSL-FO, and not XNL + stylesheet; this latter functionality
is a convenience layer that IMO should never have been added to FOP, for
the simple reason that we keep fielding problem reports related to template
processing that are outside the scope of FOP; best to discuss template
problems with XSLT related MLs

On Thu, Jul 14, 2016 at 3:09 PM, Marc Kaufman <ma...@adobe.com> wrote:

> Worthwhile for someone to do, probably. Outside of my current needs. I’m
> not interested in being a FOP developer.
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com]
> *Sent:* Thursday, July 14, 2016 1:48 PM
>
> *To:* FOP Users <fo...@xmlgraphics.apache.org>
> *Subject:* Re: isolated high surrogate
>
>
>
> I'd suggest you test FOP by using an XSL-FO input file directly rather
> than an XSL template. Template processing is not part of FOP functionality
> in the first place.
>
>
>
> On Thu, Jul 14, 2016 at 2:37 PM, Marc Kaufman <ma...@adobe.com> wrote:
>
> More specifically, if I replace “ “ with u/200B (zero width space) in the
> string that contains surrogate characters, FOP parsing fails even if I just
> use xsl:value-of. I’m not going to pursue that at this time. Maybe when FOP
> handles non-BMP characters it should be revisited.
>
>
>
> Marc
>
>
>
> *From:* Marc Kaufman [mailto:marckauf@adobe.com]
> *Sent:* Thursday, July 14, 2016 12:34 PM
>
>
> *To:* fop-users@xmlgraphics.apache.org
> *Subject:* RE: isolated high surrogate
>
>
>
> I’ve isolated the problem to a template definition that is trying to
> replace apace characters with non-breaking spaces. Evidently it clobbers
> some surrogate pairs. FWIW: here’s the offending line(s):
>
>
>
>   *<**xsl:template **name*=*"zero_width_space_1"**>*
>
>     *<**xsl:param **name*=*"data"**/>*
>
>     *<**xsl:param **name*=*"counter" **select*=*"0"**/>*
>
>     *<**xsl:choose**>*
>
>       *<**xsl:when **test*=*"$counter &lt; string-length($data)+1"**>*
>
>         *<**xsl:value-of **select*=
> *'concat(substring($data,$counter,1),"&#8203;")'**/>*
>
>         *<**xsl:call-template **name*=*"zero_width_space_2"**>*
>
>           *<**xsl:with-param **name*=*"data" **select*=*"$data"**/>*
>
>           *<**xsl:with-param **name*=*"counter" **select*=*"$counter+1"*
> */>*
>
>         *</**xsl:call-template**>*
>
>       *</**xsl:when**>*
>
>       *<**xsl:otherwise**>*
>
>       *</**xsl:otherwise**>*
>
>     *</**xsl:choose**>*
>
>   *</**xsl:template**>*
>
>
>
>   *<**xsl:template **name*=*"zero_width_space_2"**>*
>
>     *<**xsl:param **name*=*"data"**/>*
>
>     *<**xsl:param **name*=*"counter"**/>*
>
>     *<**xsl:value-of **select*=
> *'concat(substring($data,$counter,1),"&#8203;")'**/>*
>
>     *<**xsl:call-template **name*=*"zero_width_space_1"**>*
>
>       *<**xsl:with-param **name*=*"data" **select*=*"$data"**/>*
>
>       *<**xsl:with-param **name*=*"counter" **select*=*"$counter+1"**/>*
>
>     *</**xsl:call-template**>*
>
>   *</**xsl:template**>*
>
>
>
> So, not an FOP problem.
>
>
>
> Marc
>
>
>
> *From:* Marc Kaufman [mailto:marckauf@adobe.com <ma...@adobe.com>]
> *Sent:* Thursday, July 14, 2016 12:22 PM
> *To:* fop-users@xmlgraphics.apache.org
> *Subject:* RE: isolated high surrogate
>
>
>
> I tried that. Doesn’t work. I understand that non-BMP is not supported,
> and I’m prepared to live with two .notdef characters in the result, but I’m
> not sure why I’m getting the fatal error from the parser.
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com <gl...@skynav.com>]
> *Sent:* Thursday, July 14, 2016 12:01 PM
> *To:* FOP Users <fo...@xmlgraphics.apache.org>
> *Subject:* Re: isolated high surrogate
>
>
>
> Non-BMP characters are not presently supported by FOP, see [1]. When they
> are supported, you would best encode them in a file using a single (not
> two) numeric character entities, e.g., &#x010001;, etc.
>
>
>
> [1] https://issues.apache.org/jira/browse/FOP-1969
>
>
>
> On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com> wrote:
>
> I’m stumped by this error:
>
> org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51;
> java.lang.IllegalArgumentException: isolated high surrogate
>
>
>
> I have text with surrogate pairs throughout the file, but this only occurs
> in this context:
>
>     <fo:block padding-top="2em" padding-bottom=".5em" text-align="left"
> font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
>
>       *<**xsl:call-template **name*=*"zero_width_space_1"**>*
>
>         *<**xsl:with-param **name*=*"data" **select*=*"@documentName"**/>*
>
>       *</**xsl:call-template**>*
>
>     </fo:block>
>
>
>
> I’ve checked the input stream, and all the surrogates are correctly
> paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but
> that doesn’t change the error.
>
>
>
>
>
>
>

RE: isolated high surrogate

Posted by Marc Kaufman <ma...@adobe.com>.
Worthwhile for someone to do, probably. Outside of my current needs. I’m not interested in being a FOP developer.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 1:48 PM
To: FOP Users <fo...@xmlgraphics.apache.org>
Subject: Re: isolated high surrogate

I'd suggest you test FOP by using an XSL-FO input file directly rather than an XSL template. Template processing is not part of FOP functionality in the first place.

On Thu, Jul 14, 2016 at 2:37 PM, Marc Kaufman <ma...@adobe.com>> wrote:
More specifically, if I replace “ “ with u/200B (zero width space) in the string that contains surrogate characters, FOP parsing fails even if I just use xsl:value-of. I’m not going to pursue that at this time. Maybe when FOP handles non-BMP characters it should be revisited.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com<ma...@adobe.com>]
Sent: Thursday, July 14, 2016 12:34 PM

To: fop-users@xmlgraphics.apache.org<ma...@xmlgraphics.apache.org>
Subject: RE: isolated high surrogate

I’ve isolated the problem to a template definition that is trying to replace apace characters with non-breaking spaces. Evidently it clobbers some surrogate pairs. FWIW: here’s the offending line(s):

  <xsl:template name="zero_width_space_1">
    <xsl:param name="data"/>
    <xsl:param name="counter" select="0"/>
    <xsl:choose>
      <xsl:when test="$counter &lt; string-length($data)+1">
        <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
        <xsl:call-template name="zero_width_space_2">
          <xsl:with-param name="data" select="$data"/>
          <xsl:with-param name="counter" select="$counter+1"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template name="zero_width_space_2">
    <xsl:param name="data"/>
    <xsl:param name="counter"/>
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_1">
      <xsl:with-param name="data" select="$data"/>
      <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
  </xsl:template>

So, not an FOP problem.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com]
Sent: Thursday, July 14, 2016 12:22 PM
To: fop-users@xmlgraphics.apache.org<ma...@xmlgraphics.apache.org>
Subject: RE: isolated high surrogate

I tried that. Doesn’t work. I understand that non-BMP is not supported, and I’m prepared to live with two .notdef characters in the result, but I’m not sure why I’m getting the fatal error from the parser.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 12:01 PM
To: FOP Users <fo...@xmlgraphics.apache.org>>
Subject: Re: isolated high surrogate

Non-BMP characters are not presently supported by FOP, see [1]. When they are supported, you would best encode them in a file using a single (not two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com>> wrote:
I’m stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I’ve checked the input stream, and all the surrogates are correctly paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but that doesn’t change the error.




Re: isolated high surrogate

Posted by Glenn Adams <gl...@skynav.com>.
I'd suggest you test FOP by using an XSL-FO input file directly rather than
an XSL template. Template processing is not part of FOP functionality in
the first place.

On Thu, Jul 14, 2016 at 2:37 PM, Marc Kaufman <ma...@adobe.com> wrote:

> More specifically, if I replace “ “ with u/200B (zero width space) in the
> string that contains surrogate characters, FOP parsing fails even if I just
> use xsl:value-of. I’m not going to pursue that at this time. Maybe when FOP
> handles non-BMP characters it should be revisited.
>
>
>
> Marc
>
>
>
> *From:* Marc Kaufman [mailto:marckauf@adobe.com]
> *Sent:* Thursday, July 14, 2016 12:34 PM
>
> *To:* fop-users@xmlgraphics.apache.org
> *Subject:* RE: isolated high surrogate
>
>
>
> I’ve isolated the problem to a template definition that is trying to
> replace apace characters with non-breaking spaces. Evidently it clobbers
> some surrogate pairs. FWIW: here’s the offending line(s):
>
>
>
>   *<**xsl:template **name*=*"zero_width_space_1"**>*
>
>     *<**xsl:param **name*=*"data"**/>*
>
>     *<**xsl:param **name*=*"counter" **select*=*"0"**/>*
>
>     *<**xsl:choose**>*
>
>       *<**xsl:when **test*=*"$counter &lt; string-length($data)+1"**>*
>
>         *<**xsl:value-of **select*=
> *'concat(substring($data,$counter,1),"&#8203;")'**/>*
>
>         *<**xsl:call-template **name*=*"zero_width_space_2"**>*
>
>           *<**xsl:with-param **name*=*"data" **select*=*"$data"**/>*
>
>           *<**xsl:with-param **name*=*"counter" **select*=*"$counter+1"*
> */>*
>
>         *</**xsl:call-template**>*
>
>       *</**xsl:when**>*
>
>       *<**xsl:otherwise**>*
>
>       *</**xsl:otherwise**>*
>
>     *</**xsl:choose**>*
>
>   *</**xsl:template**>*
>
>
>
>   *<**xsl:template **name*=*"zero_width_space_2"**>*
>
>     *<**xsl:param **name*=*"data"**/>*
>
>     *<**xsl:param **name*=*"counter"**/>*
>
>     *<**xsl:value-of **select*=
> *'concat(substring($data,$counter,1),"&#8203;")'**/>*
>
>     *<**xsl:call-template **name*=*"zero_width_space_1"**>*
>
>       *<**xsl:with-param **name*=*"data" **select*=*"$data"**/>*
>
>       *<**xsl:with-param **name*=*"counter" **select*=*"$counter+1"**/>*
>
>     *</**xsl:call-template**>*
>
>   *</**xsl:template**>*
>
>
>
> So, not an FOP problem.
>
>
>
> Marc
>
>
>
> *From:* Marc Kaufman [mailto:marckauf@adobe.com <ma...@adobe.com>]
> *Sent:* Thursday, July 14, 2016 12:22 PM
> *To:* fop-users@xmlgraphics.apache.org
> *Subject:* RE: isolated high surrogate
>
>
>
> I tried that. Doesn’t work. I understand that non-BMP is not supported,
> and I’m prepared to live with two .notdef characters in the result, but I’m
> not sure why I’m getting the fatal error from the parser.
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com <gl...@skynav.com>]
> *Sent:* Thursday, July 14, 2016 12:01 PM
> *To:* FOP Users <fo...@xmlgraphics.apache.org>
> *Subject:* Re: isolated high surrogate
>
>
>
> Non-BMP characters are not presently supported by FOP, see [1]. When they
> are supported, you would best encode them in a file using a single (not
> two) numeric character entities, e.g., &#x010001;, etc.
>
>
>
> [1] https://issues.apache.org/jira/browse/FOP-1969
>
>
>
> On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com> wrote:
>
> I’m stumped by this error:
>
> org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51;
> java.lang.IllegalArgumentException: isolated high surrogate
>
>
>
> I have text with surrogate pairs throughout the file, but this only occurs
> in this context:
>
>     <fo:block padding-top="2em" padding-bottom=".5em" text-align="left"
> font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
>
>       *<**xsl:call-template **name*=*"zero_width_space_1"**>*
>
>         *<**xsl:with-param **name*=*"data" **select*=*"@documentName"**/>*
>
>       *</**xsl:call-template**>*
>
>     </fo:block>
>
>
>
> I’ve checked the input stream, and all the surrogates are correctly
> paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but
> that doesn’t change the error.
>
>
>
>
>

RE: isolated high surrogate

Posted by Marc Kaufman <ma...@adobe.com>.
More specifically, if I replace “ “ with u/200B (zero width space) in the string that contains surrogate characters, FOP parsing fails even if I just use xsl:value-of. I’m not going to pursue that at this time. Maybe when FOP handles non-BMP characters it should be revisited.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com]
Sent: Thursday, July 14, 2016 12:34 PM
To: fop-users@xmlgraphics.apache.org
Subject: RE: isolated high surrogate

I’ve isolated the problem to a template definition that is trying to replace apace characters with non-breaking spaces. Evidently it clobbers some surrogate pairs. FWIW: here’s the offending line(s):

  <xsl:template name="zero_width_space_1">
    <xsl:param name="data"/>
    <xsl:param name="counter" select="0"/>
    <xsl:choose>
      <xsl:when test="$counter &lt; string-length($data)+1">
        <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
        <xsl:call-template name="zero_width_space_2">
          <xsl:with-param name="data" select="$data"/>
          <xsl:with-param name="counter" select="$counter+1"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template name="zero_width_space_2">
    <xsl:param name="data"/>
    <xsl:param name="counter"/>
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_1">
      <xsl:with-param name="data" select="$data"/>
      <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
  </xsl:template>

So, not an FOP problem.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com]
Sent: Thursday, July 14, 2016 12:22 PM
To: fop-users@xmlgraphics.apache.org<ma...@xmlgraphics.apache.org>
Subject: RE: isolated high surrogate

I tried that. Doesn’t work. I understand that non-BMP is not supported, and I’m prepared to live with two .notdef characters in the result, but I’m not sure why I’m getting the fatal error from the parser.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 12:01 PM
To: FOP Users <fo...@xmlgraphics.apache.org>>
Subject: Re: isolated high surrogate

Non-BMP characters are not presently supported by FOP, see [1]. When they are supported, you would best encode them in a file using a single (not two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com>> wrote:
I’m stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I’ve checked the input stream, and all the surrogates are correctly paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but that doesn’t change the error.



RE: isolated high surrogate

Posted by Marc Kaufman <ma...@adobe.com>.
I’ve isolated the problem to a template definition that is trying to replace apace characters with non-breaking spaces. Evidently it clobbers some surrogate pairs. FWIW: here’s the offending line(s):

  <xsl:template name="zero_width_space_1">
    <xsl:param name="data"/>
    <xsl:param name="counter" select="0"/>
    <xsl:choose>
      <xsl:when test="$counter &lt; string-length($data)+1">
        <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
        <xsl:call-template name="zero_width_space_2">
          <xsl:with-param name="data" select="$data"/>
          <xsl:with-param name="counter" select="$counter+1"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template name="zero_width_space_2">
    <xsl:param name="data"/>
    <xsl:param name="counter"/>
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_1">
      <xsl:with-param name="data" select="$data"/>
      <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
  </xsl:template>

So, not an FOP problem.

Marc

From: Marc Kaufman [mailto:marckauf@adobe.com]
Sent: Thursday, July 14, 2016 12:22 PM
To: fop-users@xmlgraphics.apache.org
Subject: RE: isolated high surrogate

I tried that. Doesn’t work. I understand that non-BMP is not supported, and I’m prepared to live with two .notdef characters in the result, but I’m not sure why I’m getting the fatal error from the parser.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 12:01 PM
To: FOP Users <fo...@xmlgraphics.apache.org>>
Subject: Re: isolated high surrogate

Non-BMP characters are not presently supported by FOP, see [1]. When they are supported, you would best encode them in a file using a single (not two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com>> wrote:
I’m stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I’ve checked the input stream, and all the surrogates are correctly paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but that doesn’t change the error.



RE: isolated high surrogate

Posted by Marc Kaufman <ma...@adobe.com>.
I tried that. Doesn’t work. I understand that non-BMP is not supported, and I’m prepared to live with two .notdef characters in the result, but I’m not sure why I’m getting the fatal error from the parser.

From: Glenn Adams [mailto:glenn@skynav.com]
Sent: Thursday, July 14, 2016 12:01 PM
To: FOP Users <fo...@xmlgraphics.apache.org>
Subject: Re: isolated high surrogate

Non-BMP characters are not presently supported by FOP, see [1]. When they are supported, you would best encode them in a file using a single (not two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com>> wrote:
I’m stumped by this error:
org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51; java.lang.IllegalArgumentException: isolated high surrogate

I have text with surrogate pairs throughout the file, but this only occurs in this context:
    <fo:block padding-top="2em" padding-bottom=".5em" text-align="left" font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
      <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="@documentName"/>
      </xsl:call-template>
    </fo:block>

I’ve checked the input stream, and all the surrogates are correctly paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but that doesn’t change the error.



Re: isolated high surrogate

Posted by Glenn Adams <gl...@skynav.com>.
Non-BMP characters are not presently supported by FOP, see [1]. When they
are supported, you would best encode them in a file using a single (not
two) numeric character entities, e.g., &#x010001;, etc.

[1] https://issues.apache.org/jira/browse/FOP-1969

On Thu, Jul 14, 2016 at 12:51 PM, Marc Kaufman <ma...@adobe.com> wrote:

> I’m stumped by this error:
>
> org.xml.sax.SAXParseException; lineNumber: 92; columnNumber: 51;
> java.lang.IllegalArgumentException: isolated high surrogate
>
>
>
> I have text with surrogate pairs throughout the file, but this only occurs
> in this context:
>
>     <fo:block padding-top="2em" padding-bottom=".5em" text-align="left"
> font-family="Kozuka Gothic PR6N" font-size="18pt" color="black">
>
>       *<**xsl:call-template **name*=*"zero_width_space_1"**>*
>
>         *<**xsl:with-param **name*=*"data" **select*=*"@documentName"**/>*
>
>       *</**xsl:call-template**>*
>
>     </fo:block>
>
>
>
> I’ve checked the input stream, and all the surrogates are correctly
> paired. I’ve tried escaping the surrogate pairs (e.g. “&#-integer-;”), but
> that doesn’t change the error.
>
>
>