Hi Xiaofeng, There's a setEncoding() method on LSInput but you shouldn't need to use it if the encoding is declared [1] in the document (in which case the parser will figure it out itself).
Thanks. [1] http://www.w3.org/TR/2004/REC-xml-20040204/#charencoding Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED] "Xiaofeng Zhang" <[EMAIL PROTECTED]> wrote on 11/05/2008 11:27:39 PM: > Hi Michael, > > Thanks for your reply. I have another question. We need to support > all kinds of character encoding (such as "gb2312","Big5"). How can I > tell XSLoader the character encoding of the XML document. > > Regards, > Xiaofeng > -----Original Message----- > From: Michael Glavassevich [mailto:[EMAIL PROTECTED] > Sent: 2008年5月10日 22:55 > To: j-users@xerces.apache.org > Cc: Xiaofeng Zhang > Subject: Re: XSLoader can not load XSD which include relative > schemaLocation while absolute path works > > 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.