Convert xmlDoc to xmlDatadoc in VB.NET

I have a XMLDocument object (returned from a class) that I want to
load into an XMLDataDocument.

I would have thought this would be simple but can't find a solution
anywhere.

Presumably it needs to go via a stream. I don't want to use a Text or
File reader/writer (no point putting it out to file, just to pull it
back in).

xmldatadoc.load(CObj(xmldoc)) makes sense to me, but not to .NET!

Do I use the memorystream to do this?

 kinda like: xmldoc -> memStream -> xmldatadoc 

Despite trawling through the help text and newsgroups for the past
couple of hours I can't figure the neccesary steps and methods to do
this.

Can anyone help?
thanks
Steve
0
10/30/2003 4:08:03 PM
dotnet.xml 7266 articles. 0 followers. Follow

4 Replies
645 Views

Similar Articles

[PageSpeed] 25

The correct abstraction in this case is XmlReader. It is like a stream but
instead of bytes it is stream of tokens (nodes, what ever).
You can useXmlDataDocument.Load(XmlReader reader) with it.
The problem is how to create XmlReader over XmlDocument.
You can write your own implementation of XmlReader that "reads" date from
XmlDocument or XPathNavigator or may be find existing one.
If you can't find one and don't want waste your time on its coding you can
use XslTransform class for this.
XslTransform has overload that returns XmlReader. Use "identical" transform
as XSLT stylesheet and you have required adapter.

<xsl:stylesheet  version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
  <xsl:template match="/">
  <xsl:copy-of select="node()" />
 </xsl:template>
</xsl:stylesheet>

-- 
Sergey

-------
This posting is provided "AS IS" with no warranties, and confers no rights.

"Steve Gilbey" <stevenojunk@hotmail.com> wrote in message
news:539ce4f3.0310300808.33d4c5ce@posting.google.com...
> I have a XMLDocument object (returned from a class) that I want to
> load into an XMLDataDocument.
>
> I would have thought this would be simple but can't find a solution
> anywhere.
>
> Presumably it needs to go via a stream. I don't want to use a Text or
> File reader/writer (no point putting it out to file, just to pull it
> back in).
>
> xmldatadoc.load(CObj(xmldoc)) makes sense to me, but not to .NET!
>
> Do I use the memorystream to do this?
>
>  kinda like: xmldoc -> memStream -> xmldatadoc
>
> Despite trawling through the help text and newsgroups for the past
> couple of hours I can't figure the neccesary steps and methods to do
> this.
>
> Can anyone help?
> thanks
> Steve


0
sdub (22)
10/30/2003 6:53:02 PM
Thanks Sergey,

I thought i had it cracked with:
    
    Dim xmlStream As New MemoryStream
    Dim objFileInfo As FileInfo
    Dim objSchemaStream As FileStream
    Dim strSchemaPath As String
    Dim GLdXML As New XmlDataDocument

    ' Load schema for dataset
    strSchemaPath = ".....USIXGL00.XSD"
    objFileInfo = New FileInfo(strSchemaPath)
    objSchemaStream = objFileInfo.OpenRead
    GLdXML.DataSet.ReadXmlSchema(objSchemaStream)
    GLXML.Save(xmlStream)
    xmlStream.Position = 0
    GLdXML.Load(xmlStream)
    Dim tbl As DataTable = GLdXML.DataSet.Tables.Item(0)
 
Which appears to deliver the XML into the destination, but the tbl
contains no rows.

Being pretty new to XML and Net (VB6/ADO, I can do), I haven't a clue
about XSLT and shaky on writing new class implementations, so it looks
like I have some more reading to do!

It's all soooo abstract!

Thanks for pointing me in the right direction!

Steve


"Sergey Dubinets" <sdub@online.microsoft.com> wrote in message news:<epPtMcxnDHA.1296@TK2MSFTNGP09.phx.gbl>...
> The correct abstraction in this case is XmlReader. It is like a stream but
> instead of bytes it is stream of tokens (nodes, what ever).
> You can useXmlDataDocument.Load(XmlReader reader) with it.
> The problem is how to create XmlReader over XmlDocument.
> You can write your own implementation of XmlReader that "reads" date from
> XmlDocument or XPathNavigator or may be find existing one.
> If you can't find one and don't want waste your time on its coding you can
> use XslTransform class for this.
> XslTransform has overload that returns XmlReader. Use "identical" transform
> as XSLT stylesheet and you have required adapter.
> 
> <xsl:stylesheet  version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
>   <xsl:template match="/">
>   <xsl:copy-of select="node()" />
>  </xsl:template>
> </xsl:stylesheet>
> 
> -- 
> Sergey
> 
> -------
> This posting is provided "AS IS" with no warranties, and confers no rights.
> 
> "Steve Gilbey" <stevenojunk@hotmail.com> wrote in message
> news:539ce4f3.0310300808.33d4c5ce@posting.google.com...
> > I have a XMLDocument object (returned from a class) that I want to
> > load into an XMLDataDocument.
> >
> > I would have thought this would be simple but can't find a solution
> > anywhere.
> >
> > Presumably it needs to go via a stream. I don't want to use a Text or
> > File reader/writer (no point putting it out to file, just to pull it
> > back in).
> >
> > xmldatadoc.load(CObj(xmldoc)) makes sense to me, but not to .NET!
> >
> > Do I use the memorystream to do this?
> >
> >  kinda like: xmldoc -> memStream -> xmldatadoc
> >
> > Despite trawling through the help text and newsgroups for the past
> > couple of hours I can't figure the neccesary steps and methods to do
> > this.
> >
> > Can anyone help?
> > thanks
> > Steve
0
10/31/2003 11:24:03 AM
In general it looks good but there are many places to make a mistake.
To debug this I'd recommend you use files (as the beginning at least) it is
not necessary slower but much easier to debug -- you can see what you write
to file and what you load from it.

Another thing that comes to mind is that rows can be loaded to different
table.
Check all tables in DataSet.
-- 
Sergey
-------
This posting is provided "AS IS" with no warranties, and confers no rights.

"Steve Gilbey" <stevenojunk@hotmail.com> wrote in message
news:539ce4f3.0310310324.5dcf36fb@posting.google.com...
> Thanks Sergey,
>
> I thought i had it cracked with:
>
>     Dim xmlStream As New MemoryStream
>     Dim objFileInfo As FileInfo
>     Dim objSchemaStream As FileStream
>     Dim strSchemaPath As String
>     Dim GLdXML As New XmlDataDocument
>
>     ' Load schema for dataset
>     strSchemaPath = ".....USIXGL00.XSD"
>     objFileInfo = New FileInfo(strSchemaPath)
>     objSchemaStream = objFileInfo.OpenRead
>     GLdXML.DataSet.ReadXmlSchema(objSchemaStream)
>     GLXML.Save(xmlStream)
>     xmlStream.Position = 0
>     GLdXML.Load(xmlStream)
>     Dim tbl As DataTable = GLdXML.DataSet.Tables.Item(0)
>
> Which appears to deliver the XML into the destination, but the tbl
> contains no rows.
>
> Being pretty new to XML and Net (VB6/ADO, I can do), I haven't a clue
> about XSLT and shaky on writing new class implementations, so it looks
> like I have some more reading to do!
>
> It's all soooo abstract!
>
> Thanks for pointing me in the right direction!
>
> Steve
>
>
> "Sergey Dubinets" <sdub@online.microsoft.com> wrote in message
news:<epPtMcxnDHA.1296@TK2MSFTNGP09.phx.gbl>...
> > The correct abstraction in this case is XmlReader. It is like a stream
but
> > instead of bytes it is stream of tokens (nodes, what ever).
> > You can useXmlDataDocument.Load(XmlReader reader) with it.
> > The problem is how to create XmlReader over XmlDocument.
> > You can write your own implementation of XmlReader that "reads" date
from
> > XmlDocument or XPathNavigator or may be find existing one.
> > If you can't find one and don't want waste your time on its coding you
can
> > use XslTransform class for this.
> > XslTransform has overload that returns XmlReader. Use "identical"
transform
> > as XSLT stylesheet and you have required adapter.
> >
> > <xsl:stylesheet  version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
> >   <xsl:template match="/">
> >   <xsl:copy-of select="node()" />
> >  </xsl:template>
> > </xsl:stylesheet>
> >
> > -- 
> > Sergey
> >
> > -------
> > This posting is provided "AS IS" with no warranties, and confers no
rights.
> >
> > "Steve Gilbey" <stevenojunk@hotmail.com> wrote in message
> > news:539ce4f3.0310300808.33d4c5ce@posting.google.com...
> > > I have a XMLDocument object (returned from a class) that I want to
> > > load into an XMLDataDocument.
> > >
> > > I would have thought this would be simple but can't find a solution
> > > anywhere.
> > >
> > > Presumably it needs to go via a stream. I don't want to use a Text or
> > > File reader/writer (no point putting it out to file, just to pull it
> > > back in).
> > >
> > > xmldatadoc.load(CObj(xmldoc)) makes sense to me, but not to .NET!
> > >
> > > Do I use the memorystream to do this?
> > >
> > >  kinda like: xmldoc -> memStream -> xmldatadoc
> > >
> > > Despite trawling through the help text and newsgroups for the past
> > > couple of hours I can't figure the neccesary steps and methods to do
> > > this.
> > >
> > > Can anyone help?
> > > thanks
> > > Steve


0
sdub (22)
10/31/2003 7:10:51 PM
To answer your question, you don't need to stream out the XmlDocument in
order to load it into the XmlDataDocument, you just need to turn the
XmlDocument into an XmlReader and feed it into the Load() method on the
XmlDataDocument.  You can do this using the XmlNodeReader class.  It will
allow you to treat any DOM node (XmlNode) as the root of an xml stream.

Also, in order to use the XmlDataDocument you need to have an XSD schema
that can be loaded and translated into relational metadata.  If you don't
preload a schema document (or manually define the tables and column types
using the DataSet API) you won't see any rows of data in the dataset.


XmlDocument doc = ...;
DataSet ds = new DataSet();
ds.ReadXmlSchema("myschema.xsd");
XmlDataDocument xdd = new XmlDataDocument(ds);
xdd.Load(new XmlNodeReader(doc));

I hope this helps
Matt Warren


-- 
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm.
"Steve Gilbey" <stevenojunk@hotmail.com> wrote in message
news:539ce4f3.0310300808.33d4c5ce@posting.google.com...
> I have a XMLDocument object (returned from a class) that I want to
> load into an XMLDataDocument.
>
> I would have thought this would be simple but can't find a solution
> anywhere.
>
> Presumably it needs to go via a stream. I don't want to use a Text or
> File reader/writer (no point putting it out to file, just to pull it
> back in).
>
> xmldatadoc.load(CObj(xmldoc)) makes sense to me, but not to .NET!
>
> Do I use the memorystream to do this?
>
>  kinda like: xmldoc -> memStream -> xmldatadoc
>
> Despite trawling through the help text and newsgroups for the past
> couple of hours I can't figure the neccesary steps and methods to do
> this.
>
> Can anyone help?
> thanks
> Steve


0
sqldev (66)
11/3/2003 7:33:08 PM
Reply:

Similar Artilces:

How to Convert UTC to localTIme(C# )
I have got the value of user account's lastlogon time. Its type is Int64. This value is stored as a large integer that represents the number of 100 nanosecond intervals since January 1, 1601 (UTC)(Refer to MSDN). I don't know how to convert this value to localTime. The following is my code. ################################################################ DirectoryEntry deUser = new DirectoryEntry(ldappath); DirectorySearcher src = new DirectorySearcher(deUser); src.Filter = "(&(objectClass=user)(SAMAccountName=" + accountNa...

Convert text to time value
I have a series of time values in a 'General' format. They are of the type: 184525 Which is 18:45:25 or 6:45:25 pm. A time which is am would be of the type: 12345 Which is 1:23:45 am. Is there a way to convert those 'General' values to an Excel serial so that I can figure out the difference between two times? I've seen a bunch of examples on the net, but none of those that I have found deal with this format that I can tell. Thanks. Hi try =--TEXT(A1,"00:00:00") -- Regards Frank Kabel Frankfurt, Germany "Andy" <amelton@gmail.com> schrieb...

how to convert date
Hi, I'm looking for some method to convert mail date, in format: eg. "Sun, 18 Sep 2005 20:57:08 +0200", to computer local time. I tried CTime but without resoults. m. Have you tried COleDateTime::ParseDateTime()? m.wski21.usunto@aust.com wrote: > Hi, > > I'm looking for some method to convert mail date, in format: > eg. "Sun, 18 Sep 2005 20:57:08 +0200", to computer local time. > I tried CTime but without resoults. > > m. >I'm looking for some method to convert mail date, in format: >eg. "Sun, 18 Sep 2005 20:57:08 +0200&qu...

Outlook 2002 Net Folders
The Net Folders add-in is not available. Help! NetFolders isn't supported in versions of Outlook after 2000 - it was buggy to begin with! See http://www.slipstick.com/outlook/share.htm for more options. J.B. Smith wrote: > The Net Folders add-in is not available. Help! ...

Excel: Auto converting text to numbers
I am downloading an Excel sheet, and the numbers come in as text. It basically comes in as "33 %" but Excel registers this as text, not a percentage. I have a cell that will be used to add the numbers, but since they are text it doesn't work. Given this information, is there a way to convert the imported data into numbers. I would prefer to include this into my formula. The potential numbers are: 0, 1, 2, 3, 4, 0 %, 25 %, 33 %, 50 %, 67 %, 75 %, 100 %, and N/A I would prefer a function, again if possible, that could convert any number. Please note, the space between the nu...

How do I convert dates to text keeping the format?
I'm trying to convert a column of data in date format *m/d/yyyy to a text format without converting to serial numbers. Ie: I want to retain the mm/dd/yyyy format. Is there a way to do this? =TEXT(A1,"MM/DD"/YYYY") "sprlarry" <sprlarry@discussions.microsoft.com> wrote in message news:69669AA6-FD15-47D7-843D-FC768728BF7A@microsoft.com... > I'm trying to convert a column of data in date format *m/d/yyyy to a text > format without converting to serial numbers. Ie: I want to retain the > mm/dd/yyyy format. Is there a way to do this? That ...

how to convert excel's .cvf file to .csv file
...

Convert Access97 to 2000
Hello, we're currently running access97 and would like to convert it to 2000, but we don't know what is the administrator password for this database. Also this database is running on multi user and have difference permission for diffence users. Could someone help me how to do make this happen but keep the currently permission retaint. Thanks ...

Net display extended desktop
I've created a html page with microsoft frontpage and in it theres a wmv video. When i open the page, I can watch the video in my main screen, but then when I move it to my extended screen, theres nothing but a black screen. Is there a way I can fix this? Thanks. When you go to your POS screen and press ctrl+F6 is 'show net display' enabled? -- Jenny "Mike" wrote: > I've created a html page with microsoft frontpage and in it theres a wmv video. > When i open the page, I can watch the video in my main screen, but then when > I > move it to my ext...

Getting an integer value (in one line) out of SelectSingleNode from an XMLDoc.
[C# code oriented] Two questions: (1) I can pull the text of an XML element as a string just fine using code as such: strSomeString = myXmlDoc.SelectSingleNode("/Element1/Element2/Element3[1]", myXmlNSMgr).InnerText; However, the text to be found there is an integer number. I have tried to use just about every casting and conversion method to be able to place that value into an integer variable. This includes code such as: intSomeInt = (int)(strSomeString = myXmlDoc.SelectSingleNode("/Element1/Element2/Element3[1]", myXmlNSMgr).InnerText); intSomeInt = Convert.ToInt...

Convert 2000 Calendar to web page
Greetings, When I convert my calendar for 2005 to a webpage, the page is off by 1 day. Is there a template or fix available to fix this? Thanks, Duane I can edit the html file but this should not be the case. Fixes? Suggestions...other than use Apple? "Duane Perry" <dlp_sr@yahoo.com> wrote in message news:yZRtd.5561$0r.1710@newsread1.news.pas.earthlink.net... > Greetings, > > When I convert my calendar for 2005 to a webpage, the page is off by 1 day. > Is there a template or fix available to fix this? > > Thanks, > > Duane > > Duane, ...

XML Note convert to DataSet
Hello, I have this function: object acmResponse = acmLogin.acmString("4001", "", paramFormLogin + paramUserBasics);System.Xml.XmlNode[] acmNodes = (System.Xml.XmlNode[])acmResponse; What I have todo, to convert the XML Object in the DataSet Object? Thank you Matthias ...

Pset method in VB.net
Hi all, I have a picturebox with a customized Scale and I want to plot a point on it. In the old VB6 it was very simple : Picturebox1.Scale (-0.5,0.5)-(0.5,-0.5) ' customized scale coordinates in my sample Picturebox1.Pset (x,y), color Now (after same searching) I found the method to set a customized Scale in VB.NET (ScaleTransform and TranslateTransform) but 'm not able to draw the Points. I can draw Lines,rectangles in such scale without any problems but not Points. For example in my scale how to draw a Point in the (0.1, 0.2) position/coordinates? I tried...

Problem converting from Quicken to M2005
My Quicken files are mostly investment related, and generally converted fine. However all bonds (regular and muni's) converted as Investment type: Mutual Fund, not Bond. (1) How do I prevent that, (2) How do you change the Investment Type for an item? Thank you. In microsoft.public.money, Mike wrote: >My Quicken files are mostly investment related, and generally >converted fine. However all bonds (regular and muni's) converted as >Investment type: Mutual Fund, not Bond. (1) How do I prevent that, (2) Money typically converts custom data types from Quicken into funds. I thou...

Convert
Is it possible to convert a Money file created in the USA version to that of the UK version? Thanks in advance The general way is QIF Export then Import. It's involved and has limitations like loan accounts don't QIF. See http://www.bollar.org/msmoney/#Q1. "Crispy" <nowayspammers@hotmail.com> wrote in message news:uQKSfzfyDHA.2500@TK2MSFTNGP09.phx.gbl... > Is it possible to convert a Money file created in the USA version to that of > the UK version? ...

vB code
Hi, Can I use vB code when sending messages in Outlook? Thanks. David Possibly, depending on exactly what you have in mind. FYI, there is a = newsgroup specifically for general Outlook programming issues "down the = hall" at microsoft.public.outlook.program_vba or, via web interface, at = http://www.microsoft.com/office/community/en-us/default.mspx?dg=3Dmicroso= ft.public.outlook.program_vba --=20 Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for=20 ...

Numbers converting to decimal
I a trying to figure out why when I type 11 and automatically converts it to .11, if I type 11. it will stay 11,if I change all the cells to text then back to number they willstay. I have checked the formatting of the cells, it even happens when I open a brand new worksheet. Any ideas? Thanks Dawn Hi Dawn, Tools>Option>Edit, uncheck Fixed Decimal -- Kind Regards, Niek Otten Microsoft MVP - Excel "DawnP" <anonymous@discussions.microsoft.com> wrote in message news:c3cf01c48a05$d75359d0$a501280a@phx.gbl... > I a trying to figure out why when I type 11 and &...

Converting Quicken 2004 to Money
Quicken 2004 has many bugs, and I have had it. The most recent being that it doesn't work AT ALL now that it is the year 2004. I have had to change the date on my computer today to open it. I want to get Money instead, however I do not know if Money can get my data from the 2004 version. Does anybody know for sure? Yes is the answer to the question you posed. No is the answer to the question you are getting to but didn't pose. M04 imports Q03 and earlier. If the past predicts the future M05 will import Q04. "Colin" <anonymous@discussions.microsoft.com> wrote ...

Converting from AOL to Outlook
Is there an efficient way for me to convert my AOL address book over to Outlook? Before I buy Outlook, I want to be sure I cam make the conversion without loosing the large address book I have on AOL. "Herb Clader" <Herb Clader@discussions.microsoft.com> wrote in message news:44A9739C-A94F-49AB-BF08-31D78A86CCB7@microsoft.com... > Is there an efficient way for me to convert my AOL address book over to > Outlook? > > Before I buy Outlook, I want to be sure I cam make the conversion without > loosing the large address book I have on AOL. AOL's help p...

Customizing "Convert Campaign Response"
We have created custom Fields in the Campaign Response entity that we would like to populate on the Lead Entity when we do a conversion. However it doesn't seem like this is possible from the Data Map. Is there a way to modify what fields are carried forward during a conversion, or do I need to find a different method? Thank you in advance. Hi, As I had some time left, I tried to figure this one out. To my surprise I can't find ANY direct link between a converted campaign response and a new lead. There is only an indirect link, through the campaign entity. But that does not ...

Outlook in VB.NET
I am using VB.NET 2005. I created a project using the Microsoft Outlook 8.0 Object Library (Object Model) in my previous machine. Now that I have a new machine, when I try to compile that program in the new machine, it gives me erros like "Type 'Outlook.Application' is not defined", "Type 'Outlook.NameSpace' is not defined". I have MS Outlook in my new machine. In the new machine when I go to "Add Reference", select the COM tab, the only MS Outlook listed is "Microsoft Outlook 11.0 Object Library", while in the previous machine both...

Problem with AFX_THREAD_STATE class converting from VS6.0 to VS.NET 2003
I have inherited some code that works in VS6.0. It has code snippets like the following: _AFX_THREAD_STATE* pThreadState = AfxGetThreadState(); pThreadState->m_nLastHit = 0; and _AFX_THREAD_STATE* pThreadState = AfxGetThreadState(); CToolTipCtrl* pToolTip = pThreadState->m_pToolTip; It then does things with these values. In VS.NET, there is no member variable in _AFX_THREAD_STATE that corresponds to m_nLastHit or m_pToolTip. Have these been replaced by something similar in VS.NET 2003 that I can use? #if (_MFC_VER < 0x0700) _AFX_THREAD_STATE* pThreadState = AfxGetThrea...

Convert English language document to Hindi
Is there any software available to convert an English language text document to Hindi language document by using dictionary based translation (not transliteration). For example: The sentence : My name is Joseph Should be converted to : ???? ??? ????? ?? ...

Converting Hours an minutes just into minutes #2
Is thier a formula to use to change hous and minutes, just into minutes ex: 01:30 (1 hour and 30 minutes) into 90 minutes. And how do you format the cells. Thank you Select the cell and change the format to: [m] -- Gary's Student "Six Sigma Blackbelt" wrote: > Is thier a formula to use to change hous and minutes, just into minutes ex: > 01:30 (1 hour and 30 minutes) into 90 minutes. And how do you format the > cells. > > Thank you ...

converting chart to spreadsheet?
how can i revert back to my spreadsheet from a chart? thanks You mean you have a chart but don't have the data it was created from? This article in the Microsoft knowledge base describes a macro that will extract data from a chart. http://support.microsoft.com/default.aspx?scid=kb;en-us;137016 - Jon ------- Jon Peltier, Microsoft Excel MVP Tutorials and Custom Solutions http://PeltierTech.com _______ "excel chart" <excel chart@discussions.microsoft.com> wrote in message news:7E415558-89B6-457B-A340-2A8CE2BA5521@microsoft.com... > how can i revert back to my s...