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>
>> >> >
>> >> > 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.
>> >> >>
>> >> >
>> >>
>> >
>>
>

Reply via email to