Well the problem seems to be solved now, I needed a local copy of
datatypes.dtd as well, now I'm able to do the schema validation using
the xml catalog.
I used a standard implementation of LSResourceResolver and had it
print out the system Id's that it was resolving when checking the
xmldsig-core-schema.xsd file, and that's when I noticed that
datatypes.dtd was necessary.

Thanks,
Simon

On Dec 3, 2007 8:32 PM, Simon Bøggild <[EMAIL PROTECTED]> wrote:
> Hi Michael,
>
> The problem seems to be this initial declaration in the 
> xmldsig-core-schema.xsd:
>
> <!DOCTYPE schema
>   PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
> "http://www.w3.org/2001/XMLSchema.dtd";
>  [
>    <!ATTLIST schema
>      xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#";>
>    <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
>    <!ENTITY % p ''>
>    <!ENTITY % s ''>
>   ]>
>
> If I remove that section from the xsd file, then there's no problem
> using the catalog with the SchemaFactory. If the declaration is there
> I get the error message mentioned previously. XMLSchema.dtd is
> referenced in that declaration.
> I've tried to solve the problem by writing this in the xml catalog:
>
> <public publicId = "-//W3C//DTD XMLSchema 200102//EN"
> uri="/path/to/XMLSchema.dtd"/>
> , keeping a local copy of XMLSchema.dtd.
>
> I've also tried putting:
>
> <public publicId="http://www.w3.org/2000/09/xmldsig#";
> uri="/path/to/xmldsig-core-schema.xsd"/>
>
> No luck with any of those.
> So status is that cutting out the DOCTYPE declaration from the
> xmldsig-core-schema makes it possible to validate all schemas locally
> with the catalog, otherwise not.
>
> Regarding your question if I tried opening an InputStream with
> java.net.URL I'm not sure what you want me to accomplish? In short, a
> schema I have makes use of elements from xmldsig-core-schema, and I
> would simply like to be able to do my schema validation with a local
> copy of this schema rather than having Xerces SchemaValidator be
> dependant on establishing a connection to:
> http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd (I think I
> gave an incorrect address to this schema in my previous mail)
>
> Thanks,
> Simon
>
>
> On Dec 3, 2007 2:19 AM, Michael Glavassevich <[EMAIL PROTECTED]> wrote:
> > Hi Simon,
> >
> > "file:/path/to/xmldsig-core/xmldsig-core-schema.xsd" seems like the correct
> > result for the "rewriteSystem" you wrote. What are you expecting to get as
> > the resolved URI from the catalog resolver? Have you tried opening an
> > InputStream for this URI yourself with java.net.URL?
> >
> > Thanks.
> >
> > Michael Glavassevich
> > XML Parser Development
> > IBM Toronto Lab
> > E-mail: [EMAIL PROTECTED]
> > E-mail: [EMAIL PROTECTED]
> >
> > "Simon Bøggild" <[EMAIL PROTECTED]> wrote on 12/02/2007 02:06:23 PM:
> >
> >
> > > Hi,
> > >
> > > I'm trying to use XMLCatalogResolver as the ResourceResolver for a
> > > SchemaFactory when validating schemas. I've created a catalog file
> > > following the
> > http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
> > > .
> > > In the schemas that I check I have references to external schemas on
> > > the Internet, which is why I'm interested in keeping a local copy of
> > > those, and use a xml catalog to make the re-references when parsing
> > > schemas with SchemaFactory. It goes well for most of the referenced
> > > schemas, except when it comes to a particular schema:
> > >
> > http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
> > .
> > > For some reason the local copy I'm re-referencing to is not enough to
> > > make the schema validate. I'm getting the following error when
> > > SchemaFactory tries to parse it:
> > >
> > > org.xml.sax.SAXParseException: schema_reference.4: Failed to read
> > > schema document 'file:/path/to/xmldsig-core/xmldsig-core-schema.xsd',
> > > because 1) could not find the document; 2) the document could not be
> > > read; 3) the root element of the document is not <xsd:schema>.
> > >
> > > The schema is imported the following way from one of the schemas I use:
> > >
> > > <import namespace="http://www.w3.org/2000/09/xmldsig#";
> > >             schemaLocation="http://www.w3.org/TR/xmldsig-
> > > core/xmldsig-core-schema.xsd"/>
> > >
> > > I'm suspecting the problem might have something to do with the
> > > namespace, which contains the '#' symbol? The xmldsig-core-schema does
> > > not import any schemas itself.
> > >
> > > I've tried using a rewrite like this:
> > > <rewriteSystem systemIdStartString="http://www.w3.org/TR/xmldsig-core/";
> > > rewritePrefix="file:///path/to/xmldsig-core/"/>
> > >
> > > and I've also tried a systemId:
> > > <system systemId="
> > http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd";
> > > uri="/path/to/xmldsig-core/xmldsig-core-schema.xsd"/>
> > >
> > > No matter how I seem to make the catalog I get the SAXParseException
> > > when SchemaFactory tries to parse the local xmldsig-core.schema file.
> > > All schemas are validated without any problems without the catalog.
> > >
> > > How is it possible to correct the catalog to solve the problem?
> > >
> > > Thanks,
> > > Simon
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to