[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: How to specify a Processing Instruction?
- From: Julian Reschke <julian.reschke@gmx.de>
- To: ComCity <mikeb@comcity.com>, xml-dev@lists.xml.org
- Date: Wed, 29 Aug 2001 09:23:42 +0200
> From: ComCity [mailto:mikeb@comcity.com]
> Sent: Tuesday, August 28, 2001 11:43 PM
> To: xml-dev@lists.xml.org
> Subject: How to specify a Processing Instruction?
>
>
> I need to create an MSXML document with a specific Processing Instruction
> and I'm finding it impossible to do. First, I tried create a template XML
> document on disk that I read in and modify it.
>
> Unfortunately, the XML file opens fine when it says this at the top
> <?xml version="1.0"?>
>
> but if I change it to this, which is what I need, it won't open.
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> Why?
This will only work when the file actually *IS* encoded in ISO-8859-1. For
instance, it will fail for files encoded in UTF-8 or UTF-16.
> I can't even seem to be a way to create a new XML document by scratch (or
> one that I can find) where you can create a new processing instruction
> beyond one that contains the version only even modify an existing XML
> document where you would change the
> processing instruction.
The XML declaration isn't a processing instruction. It's a conformance bug
in MSXML to treat it this way.
> There's IXMLDOMProcessingInstruction ....
>
> Very little documentation on it, but it only allow appears to let
> you set or
> change the XML version. I need to set the encoding as well.
>
> I need to be able to send an XML document and the processing instruction
> mus be: <?xml version="1.0" encoding="ISO-8859-1"?>
So what you really want it is: specify the output encoding when saving the
contents of the DOM to an XML file. This is currently outside the scope of
the DOM spec (DOM level 2 doesn't treat saving at all).
As far as I know, MSXML should support setting a processing instruction with
target "xml" and value "version='1.0' encoding='ISO-8859-1'" and later will
use the encoding value when saving.