Hi Xiaofeng,

The problem is in your code. Windows file paths aren't URIs however that is
what you're setting as the base URI on the LSInput. Even if it were correct
you need to set a system ID for it to have an effect. You're also doing a
number of unnecessary things in setting up the input, including one
(wrapping an InputStream in an InputStreamReader) which can lead to
encoding errors.

Keep it simple. I'm sure if you try this it will work:

    public static void main( String[] args ) throws URISyntaxException
    {
        File f = new File( "C:/226232/package/my.xsd" );
        XSLoader xsLoader = new XMLSchemaLoader( );
        XSModel xsModel = xsLoader.loadURI( f.toURI().toString() );
    }

Thanks.

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]

"Xiaofeng Zhang" <[EMAIL PROTECTED]> wrote on 09/05/2008 04:46:33
AM:

> Hi,
>
> I have modified my code to provide a base URI. But the problem still
exists.
> The followed test case can be used to reproduce the bug. The
> attached file contain the schema files used in this case. Is there
> other error in my case?
>
> public class Test
> {
>
>    /**
>     * @param args
>     * @throws URISyntaxException
>     */
>    public static void main( String[] args ) throws URISyntaxException
>    {
>       File f = new File( "C:/226232/package/my.xsd" );
>       URI uri = f.toURI( );
>       XSLoader xsLoader = new XMLSchemaLoader( );
>       LSInput input = new DOMInputImpl( );
>       try
>       {
>          input.setCharacterStream( new BufferedReader( new
> InputStreamReader( uri.toURL( )
>                .openStream( ) ) ) );
>          System.out.println( f.getParent( ) );
>          input.setBaseURI( f.getParent( ) );
>       }
>       catch ( IOException e )
>       {
>          System.out.println( e.toString( ) );
>       }
>
>       XSModel xsModel = xsLoader.load( input );
>    }
>
> }
>
> Regards,
> Xiaofeng
>
> -----Original Message-----
> From: Michael Glavassevich (JIRA) [mailto:[EMAIL PROTECTED]
> Sent: 2008年5月9日 11:19
> To: Xiaofeng Zhang
> Subject: [jira] Resolved: (XERCESJ-1307) XSLoader can not load XSD
> which include relative schemaLocation while absolute path works
>
>
>      [ https://issues.apache.org/jira/browse/XERCESJ-1307?page=com.
> atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Michael Glavassevich resolved XERCESJ-1307.
> -------------------------------------------
>
>     Resolution: Cannot Reproduce
>
> Hi, you asked a question about this on the j-users mailing list but
> then didn't respond [1] to my answer. It's highly likely that this
> is a usage error. Marking this as "Cannot Reproduce" unless you have
> a valid test case (including Java code) which you could post here
> which shows otherwise.
>
> [1] http://marc.info/?l=xerces-j-user&m=121013050120821&w=2
>
> > XSLoader can not load XSD which include relative schemaLocation
> while absolute path works
> >
>
-----------------------------------------------------------------------------------------

> >
> >                 Key: XERCESJ-1307
> >                 URL: https://issues.apache.org/jira/browse/XERCESJ-1307
> >             Project: Xerces2-J
> >          Issue Type: Bug
> >          Components: XML Schema API
> >    Affects Versions: 2.9.0
> >         Environment: Window XP
> >            Reporter: xiaofeng.zhang
> >             Fix For: 2.9.0
> >
> >
> > We use XSLoader to load XML schema. If the xsd file include
> relative schemaLocation a warning is thrown:
> > [Warning] :2:46: schema_reference.4: Failed to read schema
> document '../base.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>.
> > Changing to absolute path <xsd:include schemaLocation="file:///C:
> /.../base.xsd"/> the XSLoader will work.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
> [attachment "226232.zip" deleted by Michael Glavassevich/Toronto/IBM]

Reply via email to