Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] XML Schema: "Best used with the ______ tool"

From: Boris Kolpackov <boris@-------------.--->
To: Michael Kay <mike@--------.--->
Date: 11/28/2008 2:51:00 PM
Hi Michael,

Michael Kay <mike@s...> writes:

> > XSTL/XQuery compare strings to access an element
> 
> You need to get up to date. Decent XSLT/XQuery processors stopped 
> doing that years ago!

Yes, I must admit I am not up to date on this. Still, and correct
me if I am wrong, you will need to compare something (e.g., a pointer
or an integer). In the example I mentioned in my previous email, even
if the XSLT/XQuery processor can figure out at the query compile time
(based on the schema information) that the 'people' element can only
contain the 'person' element and skip the element name check (I don't
know if there are any production implementations that do this), you
will presumably still need a map lookup to get to the "age" attribute.
I don't think this can be anywhere close to a single direct memory
access in case of data binding.

> XSLT/XQuery processors can maintain the age as an integer rather than a
> string if they choose, especially if they are schema-aware.

I would imagine they will need to maintain both text and integer
representation (to maintain its lexical form). Also, since the
tree representation is generic, the int value (or long, or double,
etc.) will need to be dynamically allocated which is not cheap.


> However, there's
> a large class of queries and transformations that access the average node
> less than once, and in those cases doing the conversion just-in-time, when
> the value is accessed, is better than doing it just-in-case, when the XML is
> unmarshalled.

I agree with Dennis here in that XQuery can be usable when you need to
access a small subset of an XML document. However, when one needs to
access most of the data, or, worse, access the same data many times,
data binding will have speed/memory advantage.

Then there is the whole aspect of interfacing with the rest of the
world. Assembling text queries from bits and pieces that come from
different sources and then unpacking the results for further 
processing does not sound like something that is easy to use.

Finally, nobody said you cannot have both data binding and, say,
XQuery at the same time. Our product, for example, allow one to
run an XPath/XQuery query and get the results as data binding 
objects. 

Boris

-- 
Boris Kolpackov, Code Synthesis Tools   http://codesynthesis.com/~boris/blog
Open source XML data binding for C++:   http://codesynthesis.com/products/xsd
Mobile/embedded validating XML parsing: http://codesynthesis.com/products/xsde

_______________________________________________________________________

XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.

[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@l...
subscribe: xml-dev-subscribe@l...
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php



transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent