Yes. GetResourceAsStream takes classpath names, not file system pathnames. Stick with FileInputStream for those.
More in a minute ... On Fri, Apr 10, 2009 at 5:31 PM, Patrick Kiernan <hossb...@gmail.com> wrote: > Ok fair enough. How do you access the elements in the sequence? ie. extract > their names? > I just tried your test case as a java class: > > package schemaparser; > > import java.io.InputStream; > > import javax.xml.transform.stream.StreamSource; > > import org.apache.ws.commons.schema.XmlSchema; > import org.apache.ws.commons.schema.XmlSchemaCollection; > import org.apache.ws.commons.schema.XmlSchemaObjectTable; > > > public class XSDSchemaTest2 { > > public static void main(String [] args){ > > try{ > InputStream is = > XSDSchemaTest2.class. > > getClassLoader().getResourceAsStream("C:\\Users\\Patrick\\Documents\\college\\FYP\\xml\\note.xsd"); > XmlSchemaCollection schemaCol = new XmlSchemaCollection(); > XmlSchema schema = schemaCol.read(new StreamSource(is), > null); > XmlSchemaObjectTable objectTable = schema.getElements(); > System.out.println(objectTable.getCount()); > } catch(Exception ex){ > ex.printStackTrace(); > } > > } > } > > When I try and run that I get the following error: > > org.apache.ws.commons.schema.XmlSchemaException > at > org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:386) > at > org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:422) > at > org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:448) > at schemaparser.XSDSchemaTest2.main(XSDSchemaTest2.java:23) > > Any idea what's wrong there? > > Thanks, > Patrick > > On Fri, Apr 10, 2009 at 10:26 PM, Benson Margulies > <bimargul...@gmail.com>wrote: > >> Oh! I completely misunderstood the question. >> >> Only top-level elements go into the collections. The elements inside a >> sequence do not. So those elements are not supposed to be in items or >> the elements object table. After all, you could have seven different >> elements named 'to' inside of seven different complex types. >> >> >> >> On Fri, Apr 10, 2009 at 5:22 PM, Patrick Kiernan <hossb...@gmail.com> >> wrote: >> > Yes I just saw your commit and the file you uploaded is the full copy of >> > notes.xsd: >> > +<?xml version="1.0"?> >> > +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> >> > + >> > +<xs:element name="note"> >> > + <xs:complexType> >> > + <xs:sequence> >> > + <xs:element name="to" type="xs:string"/> >> > + <xs:element name="from" type="xs:string"/> >> > + <xs:element name="heading" type="xs:string"/> >> > + <xs:element name="body" type="xs:string"/> >> > + </xs:sequence> >> > + </xs:complexType> >> > +</xs:element> >> > + >> > +</xs:schema> >> > >> > >> > On Fri, Apr 10, 2009 at 10:18 PM, Benson Margulies < >> bimargul...@gmail.com>wrote: >> > >> >> I don't have a full copy of 'notes.xsd'. I just have the fragment from >> >> your first message. To give me a whole file, make a JIRA and attach >> >> it. I just committed my unit test: grab the source tree from svn and >> >> look at >> >> >> >> /XmlSchema/src/test/java/tests/SingleElementNoNamespace.java >> >> >> >> The svn path you want is >> >> >> >> >> >> >> http://svn.apache.org/repos/asf/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Apr 10, 2009 at 5:12 PM, Patrick Kiernan <hossb...@gmail.com> >> >> wrote: >> >> > JDK is 6 >> >> > Don't have anything special in my classpath: >> >> > .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\program >> >> > files\java\jdk1.6.0_10\lib >> >> > >> >> > I don't have maven so I can't make a self-contained failing case using >> >> > maven. >> >> > >> >> > Is one member not incorrect since note.xsd has 5 elements: >> >> > >> >> > note >> >> > to >> >> > from >> >> > heading >> >> > body >> >> > >> >> > Can you provide your code please? >> >> > >> >> > Thanks, >> >> > Patrick >> >> > >> >> > On Fri, Apr 10, 2009 at 10:02 PM, Benson Margulies < >> >> bimargul...@gmail.com>wrote: >> >> > >> >> >> I just turned your code into a unit test, and it worked. The items >> >> >> collection comes up with one member, as does the elements object >> >> >> table. >> >> >> >> >> >> So, we have to look for some more interesting explanation. What JDK? >> >> >> Anything fancy in your class path, like a specific version of Xerces >> >> >> or some other alternative parser? >> >> >> >> >> >> Can you make a self-contained failing case using maven to specify all >> >> >> the dependencies? >> >> >> >> >> >> It is remotely possible that you've hit something fixed since 1.4.4, >> >> >> but very little has changed since then, and nothing in this >> >> >> neighborhood. >> >> >> >> >> >> >> >> >> On Fri, Apr 10, 2009 at 4:38 PM, Patrick Kiernan <hossb...@gmail.com >> > >> >> >> wrote: >> >> >> > I assumes that's: >> >> >> > >> >> >> > XmlSchemaObjectTable elementsObjTbl = schema.getElements(); >> >> >> > System.out.println(elementsObjTbl.getCount()); >> >> >> > >> >> >> > That's also empty. >> >> >> > >> >> >> > On Fri, Apr 10, 2009 at 9:27 PM, Benson Margulies < >> >> bimargul...@gmail.com >> >> >> >wrote: >> >> >> > >> >> >> >> I would expect that code of yours to work. My only suggestion >> before >> >> I >> >> >> >> debug is that you get the element collection and see if THAT is >> also >> >> >> >> empty. >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Apr 10, 2009 at 2:50 PM, Patrick Kiernan < >> hossb...@gmail.com >> >> > >> >> >> >> wrote: >> >> >> >> > Cool, thanks :) >> >> >> >> > Is it a bug or? >> >> >> >> > >> >> >> >> > Maybe you could include some code showing the common uses of the >> >> API. >> >> >> >> > >> >> >> >> > I basically want to be able to extract the elements of a schema >> and >> >> >> then >> >> >> >> > display it using a >> >> >> >> > JTree. >> >> >> >> > >> >> >> >> > Patrick >> >> >> >> > >> >> >> >> > On Fri, Apr 10, 2009 at 7:24 PM, Benson Margulies < >> >> >> bimargul...@gmail.com >> >> >> >> >wrote: >> >> >> >> > >> >> >> >> >> I'm a bit buried under Passover, but I'll sort this out over >> the >> >> >> >> >> weekend some time. >> >> >> >> >> >> >> >> >> >> On Fri, Apr 10, 2009 at 11:46 AM, Patrick Kiernan < >> >> >> hossb...@gmail.com> >> >> >> >> >> wrote: >> >> >> >> >> > Version 1.4.4 >> >> >> >> >> > >> >> >> >> >> > On Fri, Apr 10, 2009 at 1:55 PM, Benson Margulies < >> >> >> >> bimargul...@gmail.com >> >> >> >> >> >wrote: >> >> >> >> >> > >> >> >> >> >> >> You don't have a target namespace.... but that should be OK. >> >> What >> >> >> >> >> >> version have you grabbed? >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Apr 10, 2009 at 8:11 AM, Patrick Kiernan < >> >> >> hossb...@gmail.com >> >> >> >> > >> >> >> >> >> >> wrote: >> >> >> >> >> >> > Hi, >> >> >> >> >> >> > Trying to start using the API. Following the instructions >> in >> >> the >> >> >> >> >> tutorial >> >> >> >> >> >> I >> >> >> >> >> >> > can get the schema to print fine. >> >> >> >> >> >> > >> >> >> >> >> >> > However now I would like to start accessing elements. >> >> >> >> >> >> > >> >> >> >> >> >> > I tried the following: >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > InputStream is = new FileInputStream("note.xsd"); >> >> >> >> >> >> > XmlSchemaCollection schemaCol = new XmlSchemaCollection(); >> >> >> >> >> >> > XmlSchema schema = schemaCol.read(new StreamSource(is), >> >> null); >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > XmlSchemaObjectTable objectTable = schema.getElements(); >> >> >> >> >> >> > >> >> >> >> >> >> > System.out.println(objectTable.getCount()); >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > This prints out 0. Should it not print out the number of >> >> >> elements? >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > notes.xsd is as follows: >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > <?xml version="1.0"?> >> >> >> >> >> >> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> >> >> >> >> >> >> > >> >> >> >> >> >> > <xs:element name="note"> >> >> >> >> >> >> > <xs:complexType> >> >> >> >> >> >> > <xs:sequence> >> >> >> >> >> >> > <xs:element name="to" type="xs:string"/> >> >> >> >> >> >> > <xs:element name="from" type="xs:string"/> >> >> >> >> >> >> > <xs:element name="heading" type="xs:string"/> >> >> >> >> >> >> > <xs:element name="body" type="xs:string"/> >> >> >> >> >> >> > </xs:sequence> >> >> >> >> >> >> > </xs:complexType> >> >> >> >> >> >> > </xs:element> >> >> >> >> >> >> > >> >> >> >> >> >> > </xs:schema> >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> > Thanks, >> >> >> >> >> >> > >> >> >> >> >> >> > Patrick >> >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >> >> > >> >> >> >> >> >> >> > >> >> >> >> >> > >> >> >> > >> >