Loading ...
Sorry, an error occurred while loading the content.

bug with escaped CDATA

Expand Messages
  • mrdamnfrenchy
    I just tried sending XML containing CDATA using SOAP::Lite. It gets encoded like this: <?xml version= 1.0 ?
    Message 1 of 3 , Feb 27, 2002
    • 0 Attachment
      I just tried sending XML containing CDATA using SOAP::Lite. It gets encoded like this:

      <item xsi:type="xsd:string"><?xml version="1.0"?>
      <stuff><![CDATA[
      stuff in the cdata
      ]]></stuff>
      </item>

      Unfortunately, expat chokes on the ]]>, even though we are not in a CDATA (the starting < is escaped).

      From the XML specs (http://www.w3.org/TR/2000/REC-xml-20001006)(section 2.4)

      The ampersand character (&) and the left angle bracket
      (<) may appear in their literal form only when used as markup
      delimiters, or within a comment, a processing instruction,
      or a CDATA section. If they are needed elsewhere, they must
      be escaped using either numeric character references or the
      strings "&" and "<" respectively. The right angle
      bracket (>) may be represented using the string ">", and must,
      for compatibility, be escaped using ">" or a character reference
      when it appears in the string "]]>" in content, when that string is
      not marking the end of a CDATA section.

      So I guess that means when SOAP::Lite decides to encode < and &, it should also encode ']]>' to ']]>'.
    • Paul Kulchenko
      ... That s correct. It was fixed in v0.52. Thanks. Best wishes, Paul. ... __________________________________________________ Do You Yahoo!? Yahoo! Greetings -
      Message 2 of 3 , Feb 27, 2002
      • 0 Attachment
        > So I guess that means when SOAP::Lite decides to encode < and &, it
        > should also encode ']]>' to ']]>'.
        That's correct. It was fixed in v0.52. Thanks.

        Best wishes, Paul.

        --- mrdamnfrenchy <mrdamnfrenchy@...> wrote:
        > I just tried sending XML containing CDATA using SOAP::Lite. It gets
        > encoded like this:
        >
        > <item xsi:type="xsd:string"><?xml version="1.0"?>
        > <stuff><![CDATA[
        > stuff in the cdata
        > ]]></stuff>
        > </item>
        >
        > Unfortunately, expat chokes on the ]]>, even though we are not in a
        > CDATA (the starting < is escaped).
        >
        > From the XML specs
        > (http://www.w3.org/TR/2000/REC-xml-20001006)(section 2.4)
        >
        > The ampersand character (&) and the left angle bracket
        > (<) may appear in their literal form only when used as markup
        > delimiters, or within a comment, a processing instruction,
        > or a CDATA section. If they are needed elsewhere, they must
        > be escaped using either numeric character references or the
        > strings "&" and "<" respectively. The right angle
        > bracket (>) may be represented using the string ">", and must,
        > for compatibility, be escaped using ">" or a character
        > reference
        > when it appears in the string "]]>" in content, when that string
        > is
        > not marking the end of a CDATA section.
        >
        > So I guess that means when SOAP::Lite decides to encode < and &, it
        > should also encode ']]>' to ']]>'.
        >
        >
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >


        __________________________________________________
        Do You Yahoo!?
        Yahoo! Greetings - Send FREE e-cards for every occasion!
        http://greetings.yahoo.com
      • Mathieu Longtin
        I noticed about fifteen minutes ago. Terribly sorry about that. Moral of the story: keep your libraries up to date. -Mathieu ...
        Message 3 of 3 , Feb 27, 2002
        • 0 Attachment
          I noticed about fifteen minutes ago. Terribly sorry about
          that.

          Moral of the story: keep your libraries up to date.

          -Mathieu

          --- Paul Kulchenko <paulclinger@...> wrote:
          > > So I guess that means when SOAP::Lite decides to encode
          > < and &, it
          > > should also encode ']]>' to ']]>'.
          > That's correct. It was fixed in v0.52. Thanks.
          >
          > Best wishes, Paul.
          >
          > --- mrdamnfrenchy <mrdamnfrenchy@...> wrote:
          > > I just tried sending XML containing CDATA using
          > SOAP::Lite. It gets
          > > encoded like this:
          > >
          > > <item xsi:type="xsd:string"><?xml version="1.0"?>
          > > <stuff><![CDATA[
          > > stuff in the cdata
          > > ]]></stuff>
          > > </item>
          > >
          > > Unfortunately, expat chokes on the ]]>, even though we
          > are not in a
          > > CDATA (the starting < is escaped).
          > >
          > > From the XML specs
          > > (http://www.w3.org/TR/2000/REC-xml-20001006)(section
          > 2.4)
          > >
          > > The ampersand character (&) and the left angle
          > bracket
          > > (<) may appear in their literal form only when used
          > as markup
          > > delimiters, or within a comment, a processing
          > instruction,
          > > or a CDATA section. If they are needed elsewhere,
          > they must
          > > be escaped using either numeric character references
          > or the
          > > strings "&" and "<" respectively. The right
          > angle
          > > bracket (>) may be represented using the string
          > ">", and must,
          > > for compatibility, be escaped using ">" or a
          > character
          > > reference
          > > when it appears in the string "]]>" in content, when
          > that string
          > > is
          > > not marking the end of a CDATA section.
          > >
          > > So I guess that means when SOAP::Lite decides to encode
          > < and &, it
          > > should also encode ']]>' to ']]>'.
          > >
          > >
          > >
          > >
          > > ------------------------ Yahoo! Groups Sponsor
          > >
          > > To unsubscribe from this group, send an email to:
          > > soaplite-unsubscribe@yahoogroups.com
          > >
          > >
          > >
          > > Your use of Yahoo! Groups is subject to
          > > http://docs.yahoo.com/info/terms/
          > >
          > >
          >
          >
          > __________________________________________________
          > Do You Yahoo!?
          > Yahoo! Greetings - Send FREE e-cards for every occasion!
          > http://greetings.yahoo.com


          __________________________________________________
          Do You Yahoo!?
          Yahoo! Greetings - Send FREE e-cards for every occasion!
          http://greetings.yahoo.com
        Your message has been successfully submitted and would be delivered to recipients shortly.