[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Xerces, schema caching, and namespaces

xerces caching grammars
Ah... What i wrote is for Xerces-J but it seems you are talking about 
Xerces C++.
Don't know what is the behavior of Xerces - C but i don't think it would 
be different than


Neeraj Bajaj wrote:

> Daniel McLean wrote:
>> The Xerces-C++ parser has the capability of caching grammars for
>> subsequent reuse.  Depending on the complexity of the grammar and the
>> instance documents, doing can give a significant performance boost.
>> However, the way W3C Schema grammars are cached seems a bit strange 
>> to me.
>> All "no-namespace" schemas are considered equivalent: a no-namespace
>> schema is stored in the pool of cached grammars using the key "".
>> This has ... problematic effects.
> I worked on caching long time back.. IIRC this is the default behavior 
> which can be changed,
> You can write your own logic to specify the criteria for caching for 
> ex. targetNamespace + SchemaLocation etc.
> Default behavior of Xerces is to store the grammar using 
> targetNamespace as key.

> You can also have mutiple Grammar Pools having different type of 
> grammars but
> then you have to write logic to set appropriate pool per the instance 
> document parsed which
> may be cumbersome.. You might like to check JAXP 1.3 Schema Validation 
> Framework
> which looks at the caching behavior in entirely different way.
> Neeraj
> [1] 
> http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/package-summary.html 
> [2] https://jaxp.dev.java.net
>> Rather than invent a new example, I'll pinch one from the Xerces mailing
>> list:
>>> First we parse a document based on schema A with root element A_root.
>>> The schema is cached on "". Everything is fine.
>>> Then we parse another document based on schema A. The cache finds the
>>> schema for "" and validates. Everything is fine.
>>> THEN we parse a document based on schema B with root element B_root.
>>> The parser looks in the cache, finds the schema for "" (type A) and 
>>> validates.
>>> This of course results in a shitload of errors and a failed parse.
>> [from 
>> http://marc.theaimsgroup.com/?l=xerces-c-dev&m=107598912614145&w=2]
>> To me, this behaviour seems wrong.  However, the Xerces folk think that
>> it's right:
>>> you shouldn't use schema caching if you have different schemas 
>>> sharing the same namespace (being this the empty one or not). A 
>>> namespace URI is a "domain", is like saying "when I am talking about 
>>> music a record is something that has songs in it; when talking about 
>>> sports a record is the best performance". You are using two schemas, 
>>> sharing the same "domain" label: nothing wrong with that, provided 
>>> that you don't mix them.
>> [from 
>> http://marc.theaimsgroup.com/?l=xerces-c-dev&m=107599141217514&w=2]
>> What's the right answer?
>> A additional but related question: is Xerces right to cache W3C Schemas
>> that _do_ target namespaces based on the target namespace of the 
>> schemas?
>> For that to be correct, the target namespace of the schema must be
>> considered to play an equivalent role to a DTD's PUBLIC identifier ...
>> which doesn't seem unreasonable, but may not be true.
>> Daniel
>> -----------------------------------------------------------------
>> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
>> initiative of OASIS <http://www.oasis-open.org>
>> The list archives are at http://lists.xml.org/archives/xml-dev/
>> To subscribe or unsubscribe from this list use the subscription
>> manager: <http://www.oasis-open.org/mlmanage/index.php>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
> The list archives are at http://lists.xml.org/archives/xml-dev/
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.

Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.