Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > invalid XML character

Reply
Thread Tools

invalid XML character

 
 
Marco Montel
Guest
Posts: n/a
 
      12-07-2004
I have two applications that should comunicate through an xml file. This
xml will contain a CDATA section with a digital signature.

The problem is that the digital signature is composed of special
character that are nor correctly recognized by the xml parser.

When you try to open the follow file with an xml editor, like jedit, you
will see that the CDATA block is marked with follow error:


"An invalid XML character (Unicode: 0x6) was found in the CDATA section."

This is the xml file:

<?xml version="1.0" encoding="utf-8"?>
<Document>
<DataBlock>
<![CDATA[0‚V_ *†H†÷
 ‚VP0‚VL1 0+0‚FO *†H†÷
 ‚F@‚F<Content-Type: multipart/mixed;
boundary="----=_NextPart_717_3066_3832508151693287"
MIME-Version: 1.0
X-Mailer: EldoS MIMEBlackbox Library, version: 2004.04.16
Date: Sat, 4 Dec 2004 19:33:50 +0100
Message-ID: <200412041933500630@69768441>

This is a multi-part message in MIME format.

------=_NextPart_717_3066_3832508151693287
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: base64
]]>
</DataBlock>
</Document>


How can I handle this special content in an xml file ? Should I use an
other encoding ?


bye marco
 
Reply With Quote
 
 
 
 
Martin Honnen
Guest
Posts: n/a
 
      12-07-2004


Marco Montel wrote:


> The problem is that the digital signature is composed of special
> character that are nor correctly recognized by the xml parser.
>
> When you try to open the follow file with an xml editor, like jedit, you
> will see that the CDATA block is marked with follow error:
>
>
> "An invalid XML character (Unicode: 0x6) was found in the CDATA section."


In XML 1.0 0x6 is indeed not an allowed character so you need to encode
it, using Base64 encoding for instance.

--

Martin Honnen
http://JavaScript.FAQTs.com/
 
Reply With Quote
 
 
 
 
Marco Montel
Guest
Posts: n/a
 
      12-07-2004
Martin Honnen wrote:
>
>
> Marco Montel wrote:
>
>
>> The problem is that the digital signature is composed of special
>> character that are nor correctly recognized by the xml parser.
>>
>> When you try to open the follow file with an xml editor, like jedit,
>> you will see that the CDATA block is marked with follow error:
>>
>>
>> "An invalid XML character (Unicode: 0x6) was found in the CDATA section."

>
>
> In XML 1.0 0x6 is indeed not an allowed character so you need to encode
> it, using Base64 encoding for instance.
>


This is a great idea ! I didn't know that the xml 1.0 specification does
not allow some control caracter. I see that xml 1.1 allow that, but my
parser support only the XML 1.0 specification.

thanks a lot

bye marco
 
Reply With Quote
 
David Carlisle
Guest
Posts: n/a
 
      12-07-2004
Marco Montel <(E-Mail Removed)> writes:

> Martin Honnen wrote:
> >
> >
> > Marco Montel wrote:
> >
> >
> >> The problem is that the digital signature is composed of special
> >> character that are nor correctly recognized by the xml parser.
> >>
> >> When you try to open the follow file with an xml editor, like jedit,
> >> you will see that the CDATA block is marked with follow error:
> >>
> >>
> >> "An invalid XML character (Unicode: 0x6) was found in the CDATA section."

> >
> >
> > In XML 1.0 0x6 is indeed not an allowed character so you need to encode
> > it, using Base64 encoding for instance.
> >

>
> This is a great idea ! I didn't know that the xml 1.0 specification does
> not allow some control caracter. I see that xml 1.1 allow that, but my
> parser support only the XML 1.0 specification.
>
> thanks a lot
>
> bye marco


Even XML 1.1 wouldn't allow the character in a CDATA section.

in XML 1.1 you can encode the character as a character reference, but
you can't have character references in a CDATA section (as & has no
special meaning in a CDATA section)

David
 
Reply With Quote
 
lkrubner@geocities.com
Guest
Posts: n/a
 
      12-08-2004
I'm a total beginner, and I hope you won't mind a stupid question. I
don't understand your point about the ampersand not having a special
meaning in the CDATA section. Can you elaborate on that? Would it have
a special meaning elsewhere? Why would it need a special meaning in the
CDATA section? I thought CDATA sections were there when you wanted the
parser to ignore everything in the secton and just pass the text
through.

 
Reply With Quote
 
Roland Eriksson
Guest
Posts: n/a
 
      12-08-2004
On 7 Dec 2004 20:59:14 -0800, http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

>...I don't understand your point about the ampersand not
>having a special meaning in the CDATA section ... Would it have
>a special meaning elsewhere?


Yes; in a PCDATA section (e.g. inside "normal" marked up content) the
ampersand does have a special meaning, it signals to the parser that
"here is a possible start of an entity, or a numeric character,
reference".

>Why would it need a special meaning in the CDATA section?


It does not "need" to have a special meaning and, per definition of
CDATA, it _can_not_ have a special meaning in CDATA.

>I thought CDATA sections were there when you wanted the parser to
>ignore everything in the section and just pass the text through.


Yep, that's about it.

--
Rex


 
Reply With Quote
 
David Carlisle
Guest
Posts: n/a
 
      12-08-2004

Roland's pretty much answered this already but just to be explict.

the point I was making was that you can't have character 1 in XML 1 as
it's a banned control character, but in XML 1.1 (if your application
supports it, which most don't yet) you can not have the literal control
character but you can have " & # 1 ; " (without the spaces) to refer to
that character which will then appear as the character with unicode
number 1 if you look at the document using and API. DOM, SAX, XPath etc.

However the error message in the original posting refered to a CDATA
section but you can not refer to character 1 in a CDATA section even in
XML 1.1 as in:

"< [ C D A T A & # 1 ; ] ] > "

The & does not start a character reference as it is no longer special,
it just starts itself so the above (again without the spaces) is the
equvalent to

"& a m p ; # 1 ; "


David


(Spaces added as some (bad) newsreaders/mailreaders are confused by
character references and try to interpret them even in a plain text
message)

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
invalid character in base-64 string and invalid postback or callba kevin ASP .Net 0 01-16-2008 09:39 PM
How to detect the Invalid XML Character ? sachinik19@gmail.com XML 2 06-13-2006 12:19 AM
this code: &#x3, an invalid XML character error. Kaidi XML 3 09-27-2004 03:51 PM
Invalid XML character Mark XML 5 08-18-2004 01:57 PM
Character reference "&#c" is an invalid XML character cgbusch XML 6 09-02-2003 07:04 PM



Advertisments