473,399 Members | 3,656 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,399 software developers and data experts.

custom XPathNavigator implementation

I'm trying to build a couple classes that would allow for writing xsl
transforms against data that is not originally xml. I've got an xmlreader
implementation that seems to work well. Based on some issues with it and
transforms, I then wrapped it up in a custom xpathnavigator implementation.
Everything works fine from the transform functionality perspective, but it's
not scaling well to larger amounts of data, and I would like to find out if
these are framework limitations or results of my lack of knowledge.
Specifically, if I pass my xpathnavigator object into the transform method of
an xsltransform object along with a streamwriter instance, I'm expecting the
transform to be able to stream the result to the streamwriter without needing
to finish the entire transform first. Now, I could see some issues depending
on xsl options, but in a perfect world, with a perfect xsl, is this at all
possible? Also, I'm noticing that the xpathnavigator instance gets cloned
like crazy, at least once per node, creating millions of instances during the
transform. Can someone explain this to me?
Nov 12 '05 #1
1 2138
Hi Bruce,

Yes , the xsltransform streams the results to the writer as it transforms
and does not wait till the entire transform is finished to do it.

Regarding the cloning , since navigator is a pointer to node , the only way
to keep track of multiple nodes is to clone the navigator and make it point
to a different node. Since nodeset operations require the engine to keep
pointers to multiple nodes , the navigator gets cloned.

Cloning can be reduced by optimizing the stylesheet if possible. We have
done work to reduce the amount of cloning in whidbey , so that should help
as well.

Thanks
Nithya
"Bruce Dunwiddie" <Bruce Du*******@discussions.microsoft.com> wrote in
message news:BD**********************************@microsof t.com...
I'm trying to build a couple classes that would allow for writing xsl
transforms against data that is not originally xml. I've got an xmlreader
implementation that seems to work well. Based on some issues with it and
transforms, I then wrapped it up in a custom xpathnavigator
implementation.
Everything works fine from the transform functionality perspective, but
it's
not scaling well to larger amounts of data, and I would like to find out
if
these are framework limitations or results of my lack of knowledge.
Specifically, if I pass my xpathnavigator object into the transform method
of
an xsltransform object along with a streamwriter instance, I'm expecting
the
transform to be able to stream the result to the streamwriter without
needing
to finish the entire transform first. Now, I could see some issues
depending
on xsl options, but in a perfect world, with a perfect xsl, is this at all
possible? Also, I'm noticing that the xpathnavigator instance gets cloned
like crazy, at least once per node, creating millions of instances during
the
transform. Can someone explain this to me?

Nov 12 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Craig Pearson | last post by:
Hi My function receives an XPathNavigator object. From here I need to build a DataSet to load into SQL Server (using SQLXML adaptor). Does anyone have an idea on the most efficient way to...
7
by: news.microsoft.com | last post by:
Hi, Is the compilation of XSLT, using XPathNavigator.Compile, only beneficial when the returned XPathExpression is cached? Next question, how do I cache the returned XPathExpression object? ...
7
by: David Thielen | last post by:
Hi; Is there a way from an XPathNavigator object to get an xpath string that will, when used in a Select(xpath) on the underlying base/root XPathNavigator return the same XPathNavigator? In...
12
by: David Thielen | last post by:
Hi; I have an element: <space> </space> When I call SelectSingleNode() on it, the InnerXml is a 0 length String, not a String containing 1 space. Any ideas?
2
by: JSheble | last post by:
I'm integrating with a customer application, and in their assembly, when I call a method it returns data to us as an XPathNavigator object. I can parse the various elements I need out of this...
11
by: ericms | last post by:
Can anybody show me how to insert a CDATA section using XPathNavigator ? I have tried the follwing with no luck: XmlDocument docNav = new XmlDocument(); docNav.LoadXml(xmlString);...
4
by: Bruce Sandeman | last post by:
Hi, Does anyone know how to serialize an XPathNavigator object? I have tried the following but it moans that the xpn does not have a parameterless constructor. XPathNavigator xpn =...
2
by: =?Utf-8?B?Tm9yZW1hYw==?= | last post by:
Hi. Using VS2005, .NET 2.0. I have an xml document that I want to go through and set the values on attributes of elements. The elements are complex types defined in my schema (xsd) files. ...
1
by: asharda | last post by:
I have a custom property grid. I am using custom property grid as I do not want the error messages that the propertygrid shows when abphabets are entered in interger fields. The custom property...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.