1 Reply Latest reply: Aug 1, 2012 6:10 AM by 537206 RSS

    XQuery contains function failing due to carriage return in XML

    537206
      I am trying to perform the following xquery:

      declare namespace tei="http://www.tei-c.org/ns/1.0";

      for $line in //tei:l
      where some $value in $line
      satisfies (contains($value, "A cherdd, myn Siat"))
      return $line

      this works fine for almost all cases except when al 'l' element contains a carriage return half way through it, e.g.

      <l n="15">A cherdd, myn Siat, yn
      batent</l>

      if I try to run the xquery above again to find the whole contents of the 'l' element it fails due to the carriage return

      declare namespace tei="http://www.tei-c.org/ns/1.0";

      for $line in //tei:l
      where some $value in $line
      satisfies (contains($value, "A cherdd, myn Siat, yn batent"))
      return $line

      I've been reading all the usual guides/sites and it seems that it might be possible to mitigate the effects of the 'carriage return' by the use of indexes. What I would really like to do however is to remove all the carriage returns. Does anyone know if it is possible to issue a command to dbxml to do this or should I just continue to investigate indexes?

      thanks in advance

      Edited by: user534203 on 27-Jul-2012 02:05
        • 1. Re: XQuery contains function failing due to carriage return in XML
          537206
          I have found a solution to my problem.

          Basically, the problem was that my XML editor, Oxygen, has a 'pretty print' formatting command which cause windows line breaks to be introduced when XML lines get too long to make things easier to read.

          I was saving the files with these line breaks included. Instead I should have been saving the files using the Document>Source>Join and Normalize menu option (Ctrl J). This removes all of the offending line breaks and solves the search problem within the db.

          Hope this helps someone out there.

          :)