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 <bimargul...@gmail.com>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 <hossb...@gmail.com>
> 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 <
> bimargul...@gmail.com>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 <hossb...@gmail.com>
> >> 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 <
> bimargul...@gmail.com
> >> >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 <hossb...@gmail.com
> >
> >> >> 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 <
> >> >> bimargul...@gmail.com>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.
> >> >> >>
> >> >> >
> >> >>
> >> >
> >>
> >
>

Reply via email to