Hi, When exactly does the XSD loader use the parser's entity resolver and when does it not?
My XML editor downloads and caches schemas to minimize network activity. The problem I am having is with schemas that include other schemas using <xs:include>, for example: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0"> <xs:include schemaLocation="dbnotn.xsd"/> <xs:include schemaLocation="dbcent.xsd"/> <xs:include schemaLocation="dbpool.xsd"/> <xs:include schemaLocation="dbhier.xsd"/> </xs:schema> The first time a file referencing an http: schema is opened, my custom entity resolver downloads and saves the schema to a local file named, say /home/slava/.jedit/dtds/cache39516.xml. Then each of of the <xs:include>'ed files is passed to the entity resolver, and correspondingly downloaded and cached. So far, so good. The second time a file referencing this schema is opened, the top-level file is resolved correctly from the cache. Unfortunately, Xerces then attempts to look for files named "dbnotn.xsd", "dbcent.xsd", "dbpool.xsd" and "dbhier.xsd" in the current directory, instead of passing these path names to the entity resolver. This is wrong. Why does it behave differently in this case, just because the top-level file is a local file? Why doesn't it _always_ pass all path names to the entity resolver? -- Slava Pestov --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
