I think I can answer your first question. From what I recall in
parsing/reading documents, InputStream is a poor choice for XML documents
that include other documents. An InputStream object can't tell you where
its source is. Therefore, there is no way to find relative paths. I would
try the following:

final URL schema1Url = BeanGenerator.class.getResource("xsd/schema1.xsd");
final XmlObject schema1 = XmlObject.Factory.parse(schema1Url);

See if that helps.



On Wed, Aug 21, 2013 at 9:39 AM, Michael Szalay <michael.sza...@abacus.ch>wrote:

> Hi all
>
> I have some xsd schemas in my source tree and I want to generate java
> sources with XML Beans.
> I cannot use ant or maven task, I have to do it in plain java.
>
> I use the following java code:
>
> final InputStream schema1Stream =
> BeanGenerator.class.getResourceAsStream("xsd/schema1.xsd");
> final XmlObject schema1 = XmlObject.Factory.parse(schema1Stream);
> final InputStream schema2Stream =
> BeanGenerator.class.getResourceAsStream("xsd/schema2.xsd");
> final XmlObject schema2 = XmlObject.Factory.parse(schema2Stream);
> final XmlObject[] schemas = { schema1, schema2 };
> final BindingConfig config = new BindingConfig() {
>    @Override
>    public String lookupPackageForNamespace(String uri) {
>      return "ch.mypackage";
>    }
> };
>
> final Filer filer = new FilerImpl(null, new File(".java/src/"), null,
> true, true);
> final XmlOptions options = new XmlOptions();
> options.setCompileDownloadUrls();
> XmlBeans.compileXmlBeans(null, null, schemas, config, null, filer,
> options);
>
>
> I have questions:
>
> 1) The schemas have include statements like this:
>
>    <xs:include schemaLocation="./th000008_extern.xsd"/>
>
> How can I make XmlBeans to include this schemas? Its located in the same
> folder as the original schema, but XMLBeans does not
> find it:
>
> URL "./th000008_extern.xsd" is not well-formed
>
> how to solve that?
>
> 2) I want everything XmlBeans generates in the package "ch.mypackage".
> How can I to this? XmlBeans generates a lot of other stuff like xsb
> files which are not in that package.
>
> How can I say to XmlBeans to not generate this files?
>
> 3) When I use one of the generated classes, there is the following
> runtime error:
>
> java.lang.RuntimeException: Cannot load SchemaTypeSystem. Unable to load
> class with name
>
> schemaorg_apache_xmlbeans.system.s2EF0617F3F8756BE32108E3CF22693B4.TypeSystemHolder.
> Make sure the generated binary files are on the classpath.
>     at
> org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:783)
>     ... 29 more
> Caused by: java.lang.ClassNotFoundException:
>
> schemaorg_apache_xmlbeans.system.s2EF0617F3F8756BE32108E3CF22693B4.TypeSystemHolder
>     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>     at
> org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:769)
>     ... 30 more
>
> What is the problem here? Why is this class not generated?
>
> Thanks for a response
> Michael
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@xmlbeans.apache.org
> For additional commands, e-mail: user-h...@xmlbeans.apache.org
>
>

Reply via email to