[oXygen-user] XSD, catalog and PUBLIC IDs

Eliot Kimber
Thu Jan 31 07:19:17 CST 2008


Theun Fleer wrote:

> What's the problem with my setup of catalog and PUBLIC IDs?


As Sorin said, you can only use a DOCTYPE declaration to point to a DTD.

However, you can point to an XSD schema through a catalog but you can't 
use an SGML-style PUBLIC ID to do it, you must use an absolute URI 
(e.g., "http://www.example.com/doctypes/schemas/myschema/myschema.xsd"). 
This is the because the schemaLocation attributes are defined as mapping 
URIs to URIs and a PUBLIC ID is not a URI syntactically.

If you are using the Xerxes parser (which is what Oxygen uses by 
default), in your catalog, use system entries to map the absolute URI to 
a local version of it. This is because Xerces implements the 
schemaLocation= and noNamespaceSchemaLocation= attributes as though they 
were system identifiers and so uses system lookups against your catalog.

If you are using (hopefully) any other parser you would use URI entries 
in the catalog to map the absolute URIs to local files.

Also, as Sorin said, you can map namespaces to schemas, assuming your 
documents use namespaces.

Cheers,

Eliot

-- 
Eliot Kimber
Senior Solutions Architect
"Bringing Strategy, Content, and Technology Together"
Main: 610.631.6770
www.reallysi.com
www.rsuitecms.com



More information about the oXygen-user mailing list