Hi,
-----Original Message----- From: Andreas Tscharner [mailto:andreas tscharner metromec ch]
Now my problem: A.xsd, B.xsd and C.xsd are all in memory in different places. I am able to "load" A.xsd usingxmlSchemaNewMemParserCtxt, butas it does not know about B.xsd and C.xsd I got the errorcode 1845:XML_SCHEMAV_CVC_ELT_1.The error message would be even more interesting.Sorry, my fault. I had the wrong schema file in the memory. With the correct file xmlSchemaParse returns NULL (I suppose it's because it cannot find the referenced (imported) schema file)... [snip]Subsequent XML Schema documents are located using the @schemaLocation of an import/include in Libxml2. You couldI have to use the Pascal bindings and I am not sure if I can realize this. Maybe I can try to modify the "schemasImports" pointer in the xmlSchema struct?
Have a look at the attached Delphi project. I experimented with Libxml2's I/O layer, as I needed to customize it for XSL transformations. The code is 1 1/2 years old, so some functions might be obsolete/deprecated already; additionally this is based on the old Pascal bindings; but it should suffice as an example of how to use xmlRegisterInputCallbacks(). Regards, Kasimier
Attachment:
pascal-xsltIO.zip
Description: pascal-xsltIO.zip