You will have to read the source like the rest of us do if you want to get anywhere. XmlSchema does not have a body of doc or examples.
On Thu, Apr 16, 2009 at 10:04 AM, Patrick Kiernan <[email protected]> wrote: > That doesnt work as getElements() returns an XmlObjectTable and this doesn't > have an interator() method > however it does have getNames() and getValues() which return iterators so > I've tried: > > XmlSchemaElement e = > (XmlSchemaElement)schema.getElements().getNames().next(); > > error message: java.lang.ClassCastException: javax.xml.namespace.QName > cannot be cast to > org.apache.ws.commons.schema.XmlSchemaElement > > I've also tried: > > XmlSchemaElement e = > (XmlSchemaElement)schema.getElements().getValues().next(); > > This works so I now have an XmlSchemaElement object called e. > > And from this you say to call getSchemaType to work my way down so I've > tried this however > I don't see how to return the names of the elements in the complex type ie. > to, from, heading, body. > > Thanks for your help with this, can you explain further please? > > On Thu, Apr 16, 2009 at 12:29 PM, Benson Margulies > <[email protected]>wrote: > >> You cast the XmlSchemaItem to an XmlSchemaElement. >> >> XmlSchemaElement e = >> (XmlSchemaElement)schema.getElements().iterator().next(); >> >> On Tu, Apr 16, 2009 at 7:27 AM, Patrick Kiernan <[email protected]> >> wrote: >> > I've tried: >> > >> > XmlSchemaObjectTable objectTable = schema.getElements(); >> > >> > Now I can print the name of the element by doing: >> > Iterator it = objectTable.getNames(); >> > System.out.println(it.next()); >> > >> > Ok but how do I "obtain" the one element in my schema so that I can call >> > getSchemaType on >> > it like you suggest? >> > >> > On Thu, Apr 16, 2009 at 12:19 PM, Benson Margulies < >> [email protected]>wrote: >> > >> >> Same thing I explained before. The top-level collections contain only >> >> top-level objects. The one element in your schema is sitting in the >> >> items() collection, or in the elements collection. You obtain it, and >> >> call getSchemaType on it to work our way down. >> >> >> >> The data structures really mirror the XML. >> >> >> >> >> >> On Thu, Apr 16, 2009 at 7:11 AM, Patrick Kiernan <[email protected]> >> >> wrote: >> >> > I'm not sure how to get the elements into an XmlSchemaElement object. >> >> > I have the schema in an object called "schema" of type XmlSchema. >> Looking >> >> at >> >> > the API >> >> > for methods on this and I see getSchemaTypes() which returns an >> >> > XmlSchemaObjectTable. >> >> > I've tried doing a getCount() on this but it returns 0 for the file >> I'm >> >> > testing. >> >> > >> >> > Can you explain further please? >> >> > >> >> > On Wed, Apr 15, 2009 at 7:50 PM, Benson Margulies < >> [email protected] >> >> >wrote: >> >> > >> >> >> There are methods on XmlSchemaElement that returns the type name >> (when >> >> >> it's in another schema) or the type (when it's in the same schema). >> >> >> You want getSchemaType(). >> >> >> >> >> >> On Wed, Apr 15, 2009 at 9:23 AM, Patrick Kiernan <[email protected] >> > >> >> >> wrote: >> >> >> > Ok so I want to parse the notes.xsd file. When I say parse I would >> >> like >> >> >> to >> >> >> > extract >> >> >> > the following: >> >> >> > >> >> >> > note >> >> >> > to [string] >> >> >> > from [string] >> >> >> > heading [string] >> >> >> > body [string] >> >> >> > >> >> >> > So I'd like to extract the fact that the elements to, from, heading >> >> and >> >> >> body >> >> >> > are of type string. It >> >> >> > may be important to note that I am trying make my parser ask >> generic >> >> as >> >> >> > possible i.e. it will do this >> >> >> > for any schema file. >> >> >> > >> >> >> > The full file is available here: >> >> >> > http://www.redbrick.dcu.ie/~hoss/uploads/note.xsd<http://www.redbrick.dcu.ie/%7Ehoss/uploads/note.xsd> >> < >> >> >> http://www.redbrick.dcu.ie/%7Ehoss/uploads/note.xsd> >> >> >> > >> >> >> > So I've the following code: >> >> >> > >> >> >> > try{ >> >> >> > InputStream is = is = new >> >> >> > >> >> >> >> >> >> FileInputStream("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(); >> >> >> > >> >> >> > So I have an object called schema. The methods getElements() and >> >> >> getItems() >> >> >> > both return note and not >> >> >> > the elements to, from, heading or body as they are in a sequence in >> a >> >> >> > complex type. >> >> >> > >> >> >> > You say to ask the elemnt for its type, how do I do this? >> >> >> > >> >> >> > Thanks, >> >> >> > Patrick >> >> >> > >> >> >> > >> >> >> > On Fri, Apr 10, 2009 at 10:38 PM, Benson Margulies < >> >> >> [email protected]>wrote: >> >> >> > >> >> >> >> You ask the element for its type. You cast the type to >> >> >> >> XmlSchemaComplexType. >> >> >> >> >> >> >> >> You ask it for for the particle. >> >> >> >> >> >> >> >> You cast that to XmlSchemaSequence. >> >> >> >> >> >> >> >> And the elements are in the sequence. >> >> >> >> >> >> >> > >> >> >> >> >> > >> >> >> > >> >
