[
https://issues.apache.org/jira/browse/JAXME-101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Himanshu Rathod updated JAXME-101:
----------------------------------
Attachment: jaxme-xslogicalparser.patch
A better patch to solve the issue. Takes care of absolute path vs. relative
path issues, as well.
> JaxMe XS does not handle circular dependencies correctly
> --------------------------------------------------------
>
> Key: JAXME-101
> URL: https://issues.apache.org/jira/browse/JAXME-101
> Project: JaxMe
> Issue Type: Bug
> Components: JaxMeXS
> Affects Versions: 0.5
> Environment: Windows Vista
> Reporter: Himanshu Rathod
> Attachments: circular1.xsd, circular2.xsd, jaxme-xslogicalparser.patch
>
>
> See attached sample XSD files for example of circular dependency.
> Here is the sample program used to parse the schema:
> import java.io.File;
> import java.io.FileInputStream;
> import org.apache.ws.jaxme.xs.XSParser;
> import org.apache.ws.jaxme.xs.XSSchema;
> import org.apache.ws.jaxme.xs.XSType;
> import org.xml.sax.InputSource;
> public class Main {
> public static void main(String[] args) throws Exception {
> String fileName = "circular1.xsd";
> File f = new File(fileName);
> FileInputStream fs = new FileInputStream(f);
> InputSource is = new InputSource(fs);
> is.setSystemId(f.toURL().toString());
> XSParser parser = new XSParser();
> parser.setValidating(false);
> XSSchema schema = parser.parse(is);
> System.out.println("Schema = " + schema);
> Object[] childs = schema.getChilds();
> for (int i = 0; i < childs.length; i++) {
> Object o = childs[i];
> System.out.println(o.getClass());
> if (o instanceof XSType)
> System.out.println(" name "
> + ((XSType)
> o).getName().getLocalName());
> }
> }
> }
> Here is the exception received when running the code above on the attached
> files:
> Exception in thread "main"
> org.apache.ws.jaxme.xs.parser.impl.LocSAXException: At
> file:/C:/Users/Himanshu/eclipse_workspace/JaxmeTest/circular1.xsd, line 4,
> column 28: A global type
> {http://TEST/1.0/edu.emory.cci.xml.schema.circular1}Type1 is already defined.
> at org.apache.ws.jaxme.xs.impl.XSSchemaImpl.add(XSSchemaImpl.java:322)
> at
> org.apache.ws.jaxme.xs.impl.XSLogicalParser.add(XSLogicalParser.java:409)
> at
> org.apache.ws.jaxme.xs.impl.XSLogicalParser.parse(XSLogicalParser.java:590)
> at
> org.apache.ws.jaxme.xs.impl.XSContentHandlerImpl.endDocument(XSContentHandlerImpl.java:80)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:769)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:560)
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1779)
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1758)
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(XMLEntityScanner.java:1259)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:1247)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
> at
> org.apache.ws.jaxme.xs.impl.XSLogicalParser.runContentHandler(XSLogicalParser.java:322)
> at
> org.apache.ws.jaxme.xs.impl.XSLogicalParser.parse(XSLogicalParser.java:724)
> at org.apache.ws.jaxme.xs.XSParser.parse(XSParser.java:178)
> at edu.emory.cci.jaxmetest.Main.main(Main.java:26)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]