[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