"Costello, Roger L." <firstname.lastname@example.org> wrote on 07/31/2010 01:50:37 PM:
> Hi Folks,
> Thanks to Michael Glavassevich, Michael Kay, and Boris Kolpackov for
> your excellent inputs.
> Here's what I learned (please correct any errors):
> Suppose that your XML Schema imports/includes some XML Schemas, and
> they import/include some XML Schemas, and so on. Thus, there is a
> big hierarchy of XML Schema documents.
> When does a validator read the XML Schema documents? Here are two
> ways that XML Schema validators could be implemented:
> 1. Just-in-time loading (a.k.a. on-demand loading): the validator
> reads an XML Schema document during instance validation, when a
> component from the relevant namespace is first encountered.
> 2. Eager loading: all XML Schema documents are (recursively) read
> prior to validating the XML instance document.
This is quite a different statement than what you originally had and is no longer an accurate description of how / when Xerces-J dynamically loads schemas. There could be multiple schema location hints (i.e. xsi:schemaLocation) in a document and Xerces-J won't load those schema documents unless the validator hits an element, attribute or type which has the target namespace of those schemas. If they don't import each other loading one of them won't cause the others to be loaded. The others might be loaded later if they're needed.
> The following XML Schema validators all use eager loading:
> SAXON (Java)
> SAXON (.NET)
> XERCES (Java)
> XERCES (C++)
> XERCES (Perl)
> LIBXML (Gnome's libxml2)
> 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: email@example.com
> subscribe: firstname.lastname@example.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
XML Parser Development
IBM Toronto Lab