[program-l] Re: Visual Basic .net: getting XMLWriter not to access the Internet

  • From: Doug Lee <dgl@xxxxxxxx>
  • To: program-l@xxxxxxxxxxxxx
  • Date: Tue, 17 May 2011 09:45:56 -0400

I believe UTF-8 can represent every character that UTF-16 can also
represent, just in less space.

On Tue, May 17, 2011 at 01:57:38PM +0100, Ian Sharpe wrote:
You can also use the Encoding.getBytes method in the System.Text namespace
when handling strings. However, I'm sure the XmlDocument class would honor
the UTF-16 character directive in an XML file?

For what it's worth though, UTF8 is a subset of UTF16 as far as I'm aware,
so unless your file contains any character represented by UTF16 and not
UTF8, (unlikely I suspect) you shouldn't have any issues anyway.

Cheers
Ian . 

-----Original Message-----
From: program-l-bounce@xxxxxxxxxxxxx [mailto:program-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Pranav Lal
Sent: 17 May 2011 12:41
To: program-l@xxxxxxxxxxxxx
Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to access
the Internet

Ian,
Ignore the bit about specifying the encoding when using a xmlDocument.
I have found a way to do this using a XMLTextWriter. I will try it and
revert.

On 5/17/11, Pranav Lal <pranav.lal@xxxxxxxxx> wrote:
> Hi Ian,
>
> As for what I am trying to do, I have a third party component that 
> outputs unformatted XML. I am using the XMLReader and XMLTextWriter 
> classes to write out formatted XML. After that, I edit the XML using 
> string manupulation. I find it easier to do then using the actual XML 
> cklasses. I would be happy to use the xml document class. However, I 
> cannot see how to output data from it as UTF-8. All strings in visual 
> basic .net are set to UTF-16.
>
> Pranav
>
> On 5/17/11, Ian Sharpe <isforums@xxxxxxxx> wrote:
>> It's been a while since I've used these classes but am sure the 
>> XmlReaderSettings class will have a validate property or something 
>> like that. In general, I tended to use the XmlDocument class which I 
>> found easier to work with with and didn't really have to worry about 
>> performance.
>> Obviously it depends on exactly what you are trying to do. What 
>> exactly are you trying to do by the way?
>>
>> In summary, you could try create a new XmlDocument object. Then use 
>> the Load method to load an XML file from the filesystem or internet, 
>> passing it the path/uri to the file. Or you can simply load raw XML 
>> into the object using the LoadXml method, passing it an XML string.
>>
>> I can't remember off the top of my head but suspect that by default, 
>> the Xml won't be validated. If I'm wrong, I think there's a Validate 
>> property that you can set to false before loading the Xml.
>>
>> You will theen be able to work with the entire XmlDocument in memory. 
>> If you file is large, this may be an issue.
>>
>> If you only want to extract parts of the Xml file, it may well be 
>> much simpler to use an XSL transform. If you're not familiar with 
>> XSL, this will be a steap learning curve but a good one in my view 
>> and worth tackling.
>>
>> Cheers
>> Ian
>>
>> -----Original Message-----
>> From: program-l-bounce@xxxxxxxxxxxxx
>> [mailto:program-l-bounce@xxxxxxxxxxxxx]
>> On Behalf Of Pranav Lal
>> Sent: 17 May 2011 11:50
>> To: program-l@xxxxxxxxxxxxx
>> Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to 
>> access the Internet
>>
>> Hi Ian,
>> <snip
>> 1. It maybe that the XmlTextReader is validating the XML file and in 
>> order to do this, it is looking for the scheme or DTD referrenced in 
>> the XML file.
>> You could try turning validation off for the XmlTextReader.
>> PL] How do I do this? I know that I need to use a XMLReaderSettings 
>> object but how do I apply that to the XMLTextWriter? I ask since the 
>> XMLTextWriter does not have a suitable constructer. There is the 
>> create method which takes a stream and a settings object but I can't 
>> figure out how to put all of this together.
>>
>> Pranav
>>
>> On 5/17/11, Ian Sharpe <isforums@xxxxxxxx> wrote:
>>> Hi Pranav
>>>
>>>
>>> I am assuming that you are not interested in the resource that the 
>>> XmlTextReader is going to the web to retrieve? Ie. That you are only 
>>> interested in the raw XML data? Here are a couple of other 
>>> suggestions that may help:
>>>
>>> 1. It maybe that the XmlTextReader is validating the XML file and in 
>>> order to do this, it is looking for the scheme or DTD referrenced in 
>>> the
>> XML file.
>>> You could try turning validation off for the XmlTextReader.
>>>
>>> 2. You could also simply remove the reference to the external file 
>>> from the XML file before you try reading it.
>>>
>>> Obviously you run the risk of handling potentially invalid XML files 
>>> but I suspect this won't be important in your scenario. If it is, 
>>> then you could always retrieve the external resources with the XML 
>>> file itself, save them all locally, and modify the references in the 
>>> XML to point to the local copies. Again, if the schema changes, your 
>>> app may fail, but then this would be the case if you were reading 
>>> the validating anyway and would require changes to your code to 
>>> allow for any
>> relevant changes anyway.
>>>
>>> Cheers
>>> Ian
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: program-l-bounce@xxxxxxxxxxxxx 
>>> [mailto:program-l-bounce@xxxxxxxxxxxxx]
>>> On Behalf Of Pranav Lal
>>> Sent: 17 May 2011 01:51
>>> To: program-l@xxxxxxxxxxxxx
>>> Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to 
>>> access the Internet
>>>
>>> Hi Ian,
>>>
>>> Yes and the code does not go out to the web. I have read some more 
>>> and suspect that I need to set the xml resolver to nothing. I know 
>>> that I have to use the xml reader settings object but cannot see how 
>>> to do that.
>>>
>>> In addition, I tried switching to using the xmlDocument object since 
>>> it is easy to set the resolver to nothing but that lead to a host of 
>>> problems so I wont go there yet.
>>>
>>> Pranav
>>> -----Original Message-----
>>> From: program-l-bounce@xxxxxxxxxxxxx 
>>> [mailto:program-l-bounce@xxxxxxxxxxxxx]
>>> On Behalf Of Ian Sharpe
>>> Sent: Monday, May 16, 2011 8:49 PM
>>> To: program-l@xxxxxxxxxxxxx
>>> Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to 
>>> access the Internet
>>>
>>> Did you try the passing in the simplified XML I provided or 
>>> something similar?
>>>
>>> Cheers
>>> ian
>>>
>>> -----Original Message-----
>>> From: program-l-bounce@xxxxxxxxxxxxx 
>>> [mailto:program-l-bounce@xxxxxxxxxxxxx]
>>> On Behalf Of Pranav Lal
>>> Sent: 16 May 2011 15:49
>>> To: program-l@xxxxxxxxxxxxx
>>> Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to 
>>> access the Internet
>>>
>>> Sorry,
>>>
>>> I have now tried setting standalone to "yes" without any success.
>>>
>>> Pranav
>>>
>>> -----Original Message-----
>>> From: program-l-bounce@xxxxxxxxxxxxx 
>>> [mailto:program-l-bounce@xxxxxxxxxxxxx]
>>> On Behalf Of Soronel Haetir
>>> Sent: Monday, May 16, 2011 6:40 AM
>>> To: program-l@xxxxxxxxxxxxx
>>> Subject: [program-l] Re: Visual Basic .net: getting XMLWriter not to 
>>> access the Internet
>>>
>>> Pranav,
>>>
>>> David was suggesting that you try setting standalone to "yes".
>>>
>>> On 5/15/11, Pranav Lal <pranav.lal@xxxxxxxxx> wrote:
>>>> Hi David and Ian,
>>>>
>>>> I have tried setting standalone="no" without any success. The 
>>>> problem
>>> seems
>>>> to be that the program is going out to look for the document type 
>>>> definition. I ran a network sniffer and can see this clearly. In 
>>>> case
>>> anyone
>>>> is curious, I have uploaded the first packet my program sends to my 
>>>> dropbox's public folder. You can get the text file containing the 
>>>> packet from http://dl.dropbox.com/u/3688386/ProgramPackets.txt
>>>>
>>>> Pranav
>>>>
>>>> ** To leave the list, click on the immediately-following link:-
>>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>>> ** If this link doesn't work then send a message to:
>>>> ** program-l-request@xxxxxxxxxxxxx
>>>> ** and in the Subject line type
>>>> ** unsubscribe
>>>> ** For other list commands such as vacation mode, click on the
>>>> ** immediately-following link:-
>>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>>> ** or send a message, to
>>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>>
>>>
>>>
>>> --
>>> Soronel Haetir
>>> soronel.haetir@xxxxxxxxx
>>> ** To leave the list, click on the immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>> ** If this link doesn't work then send a message to:
>>> ** program-l-request@xxxxxxxxxxxxx
>>> ** and in the Subject line type
>>> ** unsubscribe
>>> ** For other list commands such as vacation mode, click on the
>>> ** immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>> ** or send a message, to
>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>
>>> ** To leave the list, click on the immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>> ** If this link doesn't work then send a message to:
>>> ** program-l-request@xxxxxxxxxxxxx
>>> ** and in the Subject line type
>>> ** unsubscribe
>>> ** For other list commands such as vacation mode, click on the
>>> ** immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>> ** or send a message, to
>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>
>>> ** To leave the list, click on the immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>> ** If this link doesn't work then send a message to:
>>> ** program-l-request@xxxxxxxxxxxxx
>>> ** and in the Subject line type
>>> ** unsubscribe
>>> ** For other list commands such as vacation mode, click on the
>>> ** immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>> ** or send a message, to
>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>
>>> ** To leave the list, click on the immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>> ** If this link doesn't work then send a message to:
>>> ** program-l-request@xxxxxxxxxxxxx
>>> ** and in the Subject line type
>>> ** unsubscribe
>>> ** For other list commands such as vacation mode, click on the
>>> ** immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>> ** or send a message, to
>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>
>>> ** To leave the list, click on the immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>>> ** If this link doesn't work then send a message to:
>>> ** program-l-request@xxxxxxxxxxxxx
>>> ** and in the Subject line type
>>> ** unsubscribe
>>> ** For other list commands such as vacation mode, click on the
>>> ** immediately-following link:-
>>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>>> ** or send a message, to
>>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>>
>> ** To leave the list, click on the immediately-following link:-
>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>> ** If this link doesn't work then send a message to:
>> ** program-l-request@xxxxxxxxxxxxx
>> ** and in the Subject line type
>> ** unsubscribe
>> ** For other list commands such as vacation mode, click on the
>> ** immediately-following link:-
>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>> ** or send a message, to
>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>
>> ** To leave the list, click on the immediately-following link:-
>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
>> ** If this link doesn't work then send a message to:
>> ** program-l-request@xxxxxxxxxxxxx
>> ** and in the Subject line type
>> ** unsubscribe
>> ** For other list commands such as vacation mode, click on the
>> ** immediately-following link:-
>> ** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
>> ** or send a message, to
>> ** program-l-request@xxxxxxxxxxxxx with the Subject:- faq
>>
>
** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq

** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq

-- 
Doug Lee                 dgl@xxxxxxxx                http://www.dlee.org
SSB BART Group           doug.lee@xxxxxxxxxxxxxxxx   http://www.ssbbartgroup.com
No one alive is beyond hope; every second of life is a chance.
(08/29/02)
** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq

Other related posts: