At 11:49 PM 12/17/2000 +0530, Eugene wrote:
>I am retrieving a value from database, making an XML node with it and
>appending this node to a root node. The problem here is that if the value
>(retrieved from database) is too long it splits the value and puts the value
>into two lines. Now when the XSL tries to interpret this XML it throws a
>runtime error saying "String constant not properly ended".
>However, if I capture the XML, modify it to put those long string constants
>in one line and then merge it with the XSL no runtime error is thrown.
Not in the XML world, but in some database apps I've occasionally run into
a problem when text strings contain embedded apostrophes or quotation
marks, which can confuse a processor in some contexts. Extrapolating to
XML, let's say the value retrieved from the database is the string:
Don't tread on me.
If you take this literal string and try to insert it into an attribute
value delimited by apostrophes, you'd get something like:
<some_elem some_attrib='Don't tread on me.' />
I can imagine a processor -- XML or XSLT -- choking on that embedded
apostrophe and spitting out an error message like the one you're getting.
If that's the case, the conventional approach is to do some kind of
pre-processing which escapes the offending character. In XML-land, of
course, this would involve translating all embedded ' and " characters as
' and ", respectively. Or it might require (in MS script-land)
doing something like doubling all embedded literal apostrophes/quotes, or
using Chr$(34). Other languages might have other conventions, like:
If the problem is that the XSLT processor is getting tripped up by trying
to embed such a string in an attribute value, you can usually get around
the problem by using the <xml:attribute> element, e.g.:
name="some_attrib">Don't tread on me.</xml:attribute>
Of course, the problem may be unrelated to apostrophes/quotes/other string
delimiters at all. In which case a *brief* sample of *relevant* portions of
code (XML, XSLT, and offending text string) might make it easier for me to
(Speaking for myself, as a rule, whenever someone posts entire XML
documents and XSLT stylesheets to the list and asks for help debugging some
specific piece "but I don't know where it's going wrong," I almost never
have the patience to read through and figure out the whole blessed thing.
Others may be more patient though. :)
John E. Simpson | "He asked me if I knew what
http://www.flixml.org | time it was. I said, 'Yes, but
XML Q&A: http://www.xml.com | not right now.'" (Steven Wright)